import { DAVAccount, DAVCalendar, DAVCollection, DAVObject } from './models'; type SmartCollectionSyncBaseParam = { collection: T; method?: 'basic' | 'webdav'; headers?: Record; headersToExclude?: string[]; fetchOptions?: RequestInit; fetch?: typeof fetch; account?: DAVAccount; }; export type SmartCollectionSyncDetailedResult = Omit & { objects: { created: DAVObject[]; updated: DAVObject[]; deleted: DAVObject[]; }; }; export interface SmartCollectionSync { (param: SmartCollectionSyncBaseParam & { /** @deprecated Use smartCollectionSyncDetailed instead. */ detailedResult: true; }): Promise>; (param: SmartCollectionSyncBaseParam & { /** @deprecated Use smartCollectionSyncDetailed instead. */ detailedResult?: false; }): Promise; (param: SmartCollectionSyncBaseParam & { /** @deprecated Use smartCollectionSyncDetailed instead. */ detailedResult?: boolean; }): Promise>; } export interface SmartCollectionSyncDetailed { (param: SmartCollectionSyncBaseParam): Promise>; } type SyncCalendarsBaseParam = { oldCalendars: DAVCalendar[]; headers?: Record; headersToExclude?: string[]; fetchOptions?: RequestInit; fetch?: typeof fetch; account?: DAVAccount; }; export type SyncCalendarsDetailedResult = { created: DAVCalendar[]; updated: DAVCalendar[]; deleted: DAVCalendar[]; }; export interface SyncCalendars { (params: SyncCalendarsBaseParam & { /** @deprecated Use syncCalendarsDetailed instead. */ detailedResult: true; }): Promise; (params: SyncCalendarsBaseParam & { /** @deprecated Use syncCalendarsDetailed instead. */ detailedResult?: false; }): Promise; (params: SyncCalendarsBaseParam & { /** @deprecated Use syncCalendarsDetailed instead. */ detailedResult?: boolean; }): Promise; } export interface SyncCalendarsDetailed { (params: SyncCalendarsBaseParam): Promise; } export {};