export type SyncMode = 'Scheduled' | 'Period' | 'NotSyncable';
export type Condition = {
    type: string;
    status: 'True' | 'False' | 'Unknown';
    reason: string;
    message: string;
    lastSyncTime?: string;
    nextSyncTime?: string;
};
export type SyncStatus = {
    itemPath?: string;
    conditions?: Condition[];
    nextTimeoutInMS?: number;
    syncStatusPresent?: boolean;
    intervalLapsed?: boolean;
    syncMode?: SyncMode;
};
export type SyncWatcher = {
    itemPath: string;
    lastRevision: any;
    needsRevision: boolean;
    nextSync?: string;
    lastSync?: string;
    syncMode?: SyncMode;
    alreadyFired?: boolean;
};
export declare function createWatcherForItem(itemPath: string, itemCR?: any): Promise<SyncWatcher>;
export declare function destroyWatcherForItem(watcher: SyncWatcher): Promise<void>;
export declare function getSyncSpecs(itemPath: string, itemCR?: any): Promise<any>;
export declare function getSyncStatus(itemPath: string, itemCR?: any): Promise<SyncStatus>;
export declare function setSyncStatus(itemPath: string, reason: string, status: 'True' | 'False' | 'Unknown', message: string): Promise<SyncStatus>;
