import { SpacingSettings, GuidValue, MultilingualString } from "@omnia/fx-models"; import { TargetingFilterProperty } from "@omnia/fx-sp-models"; export interface CalendarRollupViewSettings { selectProperties: Array; } export declare enum CalendarType { Personal = "Personal", OfficeGroup = "OfficeGroup", CurrentUser = "CurrentUser" } /** * BASE FILTER * */ export interface OfficeGroupCalendarRollupFilter { searchString: string; itemLimit: number; } export interface CalendarRollupFilter { calendarSettings: Array; itemLimit: number; } export interface CalendarRollupBlockSettings extends CalendarRollupFilter { title: MultilingualString; selectedViewId: string; viewSettings: CalendarRollupViewSettings; spacing?: SpacingSettings; noResultText?: MultilingualString; isDisplayShowMore?: boolean; } export interface CalendarRollupRegistrationView { id: GuidValue; title: string; viewElement: string; } export interface CalendarGroup { id: string; name: string; } export interface Calendar { id: string; name?: string; color: string; type: CalendarType; nextQueryLink?: string; } export interface Event { id: string; subject: string; bodyPreview: string; start: EventDate; end: EventDate; color: string; organizer: EventPerson; webLink: string; isAllDay: boolean; location: EventLocation; calendar: Calendar; isNew?: boolean; isAddingtoCalendar?: boolean; body?: EventBody; attendees?: Array; onlineMeeting?: OnlineMeeting; attachments?: FileAttachment[]; } export interface FileAttachment { id: string; name: string; size: number; contentType: string; isInline: boolean; lastModifiedDateTime: Date; } export interface EventQueryResponse { value: Array; calendar: Calendar; } export interface EventDate { dateTime: string; timeZone: string; } export interface EventPerson { emailAddress: EventPersonEmail; } export interface EventPersonEmail { name: string; address: string; } export interface EventLocation { displayName: string; locationUri: string; coordinates: LocationCoordinates; } export interface LocationCoordinates { latitude: number; longitude: number; } export interface CalendarSettingsCalendar extends Calendar { targetingFilter?: TargetingFilterProperty; itemLimit: number; numberOfDaysToFetch: number; } export declare enum EventAttedeeType { Required = "required", Optional = "optional" } export interface EventAttendee { type: EventAttedeeType; status: EventStatus; emailAddress: EventPersonEmail; } export interface OnlineMeeting { joinUrl: string; } export interface EventStatus { response: string; date: Date; } export interface EventBody { contentType: string; content: string; } export declare module CalendarRollupEnums { enum DatePeriods { OneWeekFromToday = 1, TwoWeeksFromToday = 2, OneMonthFromToday = 3, LaterThanNow = 4, EarlierThanNow = 5 } }