/* istanbul ignore file */ import { DecryptedItemInterface, DeletedItemInterface, FullyFormedPayloadInterface } from '@standardnotes/models' import { SyncOptions } from './SyncOptions' import { AbstractService } from '../Service/AbstractService' import { SyncEvent } from '../Event/SyncEvent' import { SyncOpStatus } from './SyncOpStatus' import { HttpRequest } from '@standardnotes/responses' export interface SyncServiceInterface extends AbstractService { sync(options?: Partial): Promise getRawSyncRequestForExternalUse( items: (DecryptedItemInterface | DeletedItemInterface)[], ): Promise isDatabaseLoaded(): boolean onNewDatabaseCreated(): Promise loadDatabasePayloads(): Promise beginAutoSyncTimer(): void resetSyncState(): void markAllItemsAsNeedingSyncAndPersist(): Promise downloadFirstSync(waitTimeOnFailureMs: number, otherSyncOptions?: Partial): Promise persistPayloads(payloads: FullyFormedPayloadInterface[]): Promise lockSyncing(): void unlockSyncing(): void syncSharedVaultsFromScratch(sharedVaultUuids: string[]): Promise setLaunchPriorityUuids(launchPriorityUuids: string[]): void isOutOfSync(): boolean getLastSyncDate(): Date | undefined getSyncStatus(): SyncOpStatus completedOnlineDownloadFirstSync: boolean }