export interface LoginConfig { serverUrl: string; email: string; username: string; domain?: string; } export interface Email { subject: string; from: string; fromName: string; date: string; isRead: boolean; hasAttachments: boolean; hasLinks: boolean; itemId: string; size: number; isMeeting: boolean; itemType: string; to: string[]; cc: string[]; body: string; bodyType: string; attachments: Attachment[]; preview: string; location?: string; start?: string; end?: string; requiredAttendees?: string[]; optionalAttendees?: string[]; } export interface Attachment { name: string; size: number; contentType: string; attachmentId: string; isInline: boolean; } export interface Folder { name: string; id: string; totalCount: number; unreadCount: number; childFolderCount: number; } export interface Person { name: string; email: string; mailboxType: string; firstName: string; lastName: string; jobTitle: string; department: string; company: string; office: string; alias: string; manager: string; managerEmail: string; phones: Record; address: string; directReports: Array<{ name: string; email: string }>; } export interface CalendarEvent { subject: string; start: string; end: string; location: string; isAllDay: boolean; isCancelled: boolean; isMeeting: boolean; isRecurring: boolean; organizer: string; organizerEmail: string; myResponse: string; itemId: string; body: string; requiredAttendees: string[]; optionalAttendees: string[]; } export interface FreeSlot { date: string; start: string; end: string; durationMinutes: number; } export interface MeetingResult { success: boolean; subject: string; date: string; startTime: string; endTime: string; location: string; requiredAttendees: string[]; optionalAttendees: string[]; error: string; }