import type { TCalendarColors, TCalendarEvent, TCalendarListEntry, TCalendarListParams, TCalendarMetadata, TEventListParams, TFreeBusy, TFreeBusyParams } from "./types";
type TGoogleCalendarConfig = {
    accessToken: string;
    cache?: boolean;
    cacheTTL?: number;
};
declare function createCalendarService(config: TGoogleCalendarConfig): {
    getCalendars: (params?: TCalendarListParams) => Promise<TCalendarListEntry[]>;
    getCalendar: (calendarId: string) => Promise<TCalendarMetadata>;
    getEvents: (calendarId?: string, params?: TEventListParams) => Promise<TCalendarEvent[]>;
    getEvent: (calendarId: string, eventId: string) => Promise<TCalendarEvent>;
    getUpcomingEvents: (calendarId?: string, maxResults?: number) => Promise<TCalendarEvent[]>;
    getEventsInDateRange: (calendarId: string | undefined, startDate: Date, endDate: Date) => Promise<TCalendarEvent[]>;
    getTodaysEvents: (calendarId?: string) => Promise<TCalendarEvent[]>;
    searchEvents: (query: string, calendarId?: string, maxResults?: number) => Promise<TCalendarEvent[]>;
    getColors: () => Promise<TCalendarColors>;
    getFreeBusy: (params: TFreeBusyParams) => Promise<TFreeBusy>;
    isTimeSlotBusy: (calendarId: string, startTime: Date, endTime: Date) => Promise<boolean>;
    getAllCalendarEvents: (maxResults?: number) => Promise<{
        calendar: TCalendarListEntry;
        events: TCalendarEvent[];
    }[]>;
};
export { createCalendarService };
export type { TGoogleCalendarConfig };
export * from "./types";
//# sourceMappingURL=index.d.ts.map