Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / shared / lib / interfaces / calendar / Invite.ts
blob91495fcbabb84b632564a54a905bf15c9c40f640
1 import type { Nullable } from '@proton/shared/lib/interfaces';
3 import type { ICAL_ATTENDEE_ROLE, ICAL_ATTENDEE_STATUS } from '../../calendar/constants';
4 import type { DecryptedKey } from '../Key';
5 import type { CalendarSettings, VisualCalendar } from './Calendar';
6 import type { DecryptedCalendarKey } from './CalendarKey';
7 import type { CalendarEvent } from './Event';
8 import type { VcalAttendeeProperty, VcalOrganizerProperty, VcalVeventComponent } from './VcalModel';
10 export interface PartstatActions {
11     accept: () => Promise<void>;
12     acceptTentatively: () => Promise<void>;
13     decline: () => Promise<void>;
14     retryCreateEvent: ({
15         partstat,
16         isProtonInvite,
17     }: {
18         partstat: ICAL_ATTENDEE_STATUS;
19         isProtonInvite: boolean;
20     }) => Promise<void>;
21     retryUpdateEvent: ({
22         partstat,
23         timestamp,
24         isProtonInvite,
25         calendarEvent,
26     }: {
27         partstat: ICAL_ATTENDEE_STATUS;
28         timestamp: number;
29         isProtonInvite: boolean;
30         calendarEvent?: CalendarEvent;
31     }) => Promise<void>;
34 export interface CalendarWidgetData {
35     calendar: VisualCalendar;
36     isCalendarDisabled: boolean;
37     calendarNeedsUserAction: boolean;
38     memberID?: string;
39     addressID?: string;
40     addressKeys?: DecryptedKey[];
41     calendarKeys?: DecryptedCalendarKey[];
42     calendarSettings?: CalendarSettings;
45 export interface PmInviteData {
46     isProtonReply?: boolean;
47     sharedEventID?: string;
48     sharedSessionKey?: string;
51 export interface Participant {
52     vcalComponent: VcalAttendeeProperty | VcalOrganizerProperty;
53     name: string;
54     emailAddress: string;
55     displayName: string;
56     displayEmail: string;
57     partstat?: ICAL_ATTENDEE_STATUS;
58     role?: ICAL_ATTENDEE_ROLE;
59     addressID?: string;
60     attendeeIndex?: number;
61     token?: string;
62     updateTime?: Nullable<number>;
63     attendeeID?: string;
66 export interface SavedImportData {
67     savedEvent: CalendarEvent;
68     savedVevent: VcalVeventComponent;
71 export interface SavedInviteData extends SavedImportData {
72     savedVcalAttendee: VcalAttendeeProperty;