import { type CreateSyncularBridgeClientOptions, type SyncularBridge, type SyncularClientLike } from '@syncular/client';
export type SyncularTauriInvoke = <TResult>(command: string, args?: Record<string, unknown>) => Promise<TResult>;
export type SyncularTauriListen = <TPayload>(event: string, handler: (event: {
    payload: TPayload;
}) => void) => Promise<() => void>;
export interface SyncularTauriCommands {
    executeSql: string;
    applyMutationsCommit: string;
    applyLeasedMutationsCommit: string;
    sync: string;
    resumeFromBackground: string;
    start: string;
    stop: string;
    setSubscriptions: string;
    issueAuthLease: string;
    upsertAuthLease: string;
    authLease: string;
    activeAuthLeases: string;
    diagnosticSnapshot: string;
    joinPresence: string;
    leavePresence: string;
    updatePresenceMetadata: string;
    listConflicts: string;
    retryConflictKeepLocal: string;
    resolveConflict: string;
}
export interface CreateSyncularTauriClientOptions extends Omit<CreateSyncularBridgeClientOptions, 'bridge'> {
    invoke: SyncularTauriInvoke;
    listen?: SyncularTauriListen;
    commands?: Partial<SyncularTauriCommands>;
    eventPrefix?: string;
}
export declare function createSyncularTauriClient<DB>(options: CreateSyncularTauriClientOptions): Promise<SyncularClientLike<DB>>;
export declare function createSyncularTauriBridge(options: CreateSyncularTauriClientOptions): SyncularBridge;
//# sourceMappingURL=index.d.ts.map