export interface GoogleCalendar { id: string; summary: string; description?: string; timeZone: string; colorId?: string; backgroundColor?: string; foregroundColor?: string; accessRole: 'owner' | 'reader' | 'writer' | 'freeBusyReader'; defaultReminders?: Array<{ method: 'email' | 'popup'; minutes: number; }>; primary?: boolean; } export interface GoogleCalendarEvent { id: string; summary: string; description?: string; location?: string; start: { dateTime?: string; date?: string; timeZone?: string; }; end: { dateTime?: string; date?: string; timeZone?: string; }; status: 'confirmed' | 'tentative' | 'cancelled'; created: string; updated: string; creator?: { email?: string; displayName?: string; }; organizer?: { email?: string; displayName?: string; }; attendees?: Array<{ email: string; displayName?: string; responseStatus: 'needsAction' | 'declined' | 'tentative' | 'accepted'; optional?: boolean; }>; recurrence?: string[]; htmlLink: string; colorId?: string; transparency?: 'opaque' | 'transparent'; visibility?: 'default' | 'public' | 'private' | 'confidential'; reminders?: { useDefault: boolean; overrides?: Array<{ method: 'email' | 'popup'; minutes: number; }>; }; } export interface CreateEventData { summary: string; description?: string; location?: string; start: { dateTime?: string; date?: string; timeZone?: string; }; end: { dateTime?: string; date?: string; timeZone?: string; }; attendees?: Array<{ email: string; displayName?: string; optional?: boolean; }>; reminders?: { useDefault?: boolean; overrides?: Array<{ method: 'email' | 'popup'; minutes: number; }>; }; colorId?: string; transparency?: 'opaque' | 'transparent'; visibility?: 'default' | 'public' | 'private' | 'confidential'; recurrence?: string[]; } export interface CalendarListOptions { maxResults?: number; showDeleted?: boolean; showHidden?: boolean; } export interface EventListOptions { timeMin?: string; timeMax?: string; from?: string; to?: string; maxResults?: number; singleEvents?: boolean; orderBy?: 'startTime' | 'updated'; showDeleted?: boolean; q?: string; } export interface FreeBusyOptions { timeMin: string; timeMax: string; } export interface CalendarResponse { success: boolean; message?: string; error?: string; data?: T; metadata?: { executedAt: string; integrationKey: string; capabilityId: string; credentialName: string; action: string; nextPageToken?: string; totalResults?: number; }; } interface UseCalendarOptions { capabilityId?: string; integrationKey?: string; onSuccess?: (data: any) => void; onError?: (error: string) => void; } /** * React hook for Google Calendar operations * @param options - Configuration including capability ID, integration key, and callbacks * @returns Object with calendar functions and state management */ export declare function useCalendar(options?: UseCalendarOptions): { getCalendar: () => Promise>; listEvents: (eventOptions?: EventListOptions) => Promise>; getEvent: (eventId: string) => Promise>; createEvent: (eventData: CreateEventData) => Promise>; updateEvent: (eventId: string, eventData: Partial) => Promise>; deleteEvent: (eventId: string) => Promise>; getFreeBusy: (freeBusyOptions: FreeBusyOptions) => Promise>; reset: () => void; loading: boolean; error: string | null; success: boolean; }; export {}; //# sourceMappingURL=useCalendar.d.ts.map