export type SyncTagRegistrationState = "pending" | "waiting" | "firing" | "reregisteredWhileFiring";
export interface SyncTag {
    tag: string;
    registrationState: SyncTagRegistrationState;
    registrationStateAt: string;
    createdAt: string;
    registeredAt: string;
    /**
     * false if the user agent will retry this sync event if it fails, or true if no further attempts will be made after the current attempt.
     */
    lastChance?: boolean;
}
export declare function getSyncTagStore(): import("../data").KeyValueStore<SyncTag>;
export declare function getSyncTagRegistrationState(tag: string): Promise<SyncTagRegistrationState>;
export declare function setSyncTagRegistrationState(tag: string, registrationState: SyncTagRegistrationState): Promise<SyncTag>;
export declare function deregisterSyncTag(tag: string): Promise<void>;
export declare class DurableSyncManager {
    register(tag: string): Promise<void>;
    getTags(): Promise<string[]>;
    [Symbol.asyncIterator](): AsyncIterator<SyncTag, any, undefined>;
}
export declare const sync: DurableSyncManager;
