import type { ApiClient } from './request';
export type CalendarInfo = {
    id: string;
    name: string;
    primary: boolean;
    color?: string;
};
export type CalendarPreferences = {
    busyTimeCalendars: string[];
    destinationCalendar: string | null;
    allDayEventsBlockAvailability: boolean;
};
export type CalendarConnectionStatus = "connected" | "needs_reauth" | "disconnected";
export type CalendarStatusResponse = {
    connected: boolean;
    provider: string | null;
    status?: CalendarConnectionStatus;
    calendars: CalendarInfo[];
    preferences: CalendarPreferences;
    error?: string;
};
export type UpdateCalendarPreferencesRequest = {
    busyTimeCalendars?: string[];
    destinationCalendar?: string | null;
    allDayEventsBlockAvailability?: boolean;
};
export type UpdateCalendarPreferencesResponse = {
    success: boolean;
};
export type DisconnectCalendarResponse = {
    success: boolean;
};
export type BookingCalendarFeedSubjectKind = "staff_member" | "venue";
export type BookingCalendarFeedLink = {
    subjectKind: BookingCalendarFeedSubjectKind;
    subjectId: string;
    status: "active" | "revoked";
    version: number;
    url: string;
    lastUsedAt: string | null;
    updatedAt: string;
};
export type BookingCalendarFeedStatusResponse = {
    enabled: boolean;
    feed: BookingCalendarFeedLink | null;
};
export type BookingCalendarFeedMutationResponse = {
    enabled: boolean;
    feed: BookingCalendarFeedLink;
};
export declare function getCalendarStatusRequest(apiClient: ApiClient, siteId: string, resourceId: string, options?: RequestInit): Promise<CalendarStatusResponse>;
export declare function updateCalendarPreferencesRequest(apiClient: ApiClient, siteId: string, resourceId: string, payload: UpdateCalendarPreferencesRequest, options?: RequestInit): Promise<UpdateCalendarPreferencesResponse>;
export declare function disconnectCalendarRequest(apiClient: ApiClient, siteId: string, resourceId: string, options?: RequestInit): Promise<DisconnectCalendarResponse>;
export declare function getResourceCalendarFeedRequest(apiClient: ApiClient, siteId: string, resourceId: string, options?: RequestInit): Promise<BookingCalendarFeedStatusResponse>;
export declare function regenerateResourceCalendarFeedRequest(apiClient: ApiClient, siteId: string, resourceId: string, options?: RequestInit): Promise<BookingCalendarFeedMutationResponse>;
export declare function revokeResourceCalendarFeedRequest(apiClient: ApiClient, siteId: string, resourceId: string, options?: RequestInit): Promise<BookingCalendarFeedStatusResponse>;
export declare function getVenueCalendarFeedRequest(apiClient: ApiClient, siteId: string, venueId: string, options?: RequestInit): Promise<BookingCalendarFeedStatusResponse>;
export declare function regenerateVenueCalendarFeedRequest(apiClient: ApiClient, siteId: string, venueId: string, options?: RequestInit): Promise<BookingCalendarFeedMutationResponse>;
export declare function revokeVenueCalendarFeedRequest(apiClient: ApiClient, siteId: string, venueId: string, options?: RequestInit): Promise<BookingCalendarFeedStatusResponse>;
