/**
 * Cloud sync for desktop chat history — the local agent acts as the bridge.
 *
 * Identity is the local Base wallet (~/.blockrun). We run the SAME SIWE flow a
 * browser does against franklin.run (/api/try/auth/nonce → sign → verify), hold
 * the session, and proxy conversation load/save/delete to the existing
 * /api/try/conversations API (GCS-backed, per-wallet). So the desktop and the
 * web share one history keyed by wallet — and the web server needs no changes.
 *
 * Everything is best-effort: callers fall back to the local file on any failure
 * (offline, not-deployed, auth hiccup), so cloud sync never breaks local use.
 */
export interface CloudConversation {
    id: string;
    title: string;
    createdAt: number;
    updatedAt: number;
    messages: unknown[];
}
export declare function isCloudSyncEnabled(): boolean;
export declare function cloudList(): Promise<CloudConversation[]>;
/** Reconcile cloud to match the given local list: upsert changed, delete removed. */
export declare function cloudSync(conversations: CloudConversation[]): Promise<void>;
