import type { DevicePublicKey } from './contract'; import type { BoatKeyStore } from './keystore'; import type { SealingLatchStore } from './latch'; import type { RemoteLink } from './remotelink'; export type KeySyncState = 'idle' | 'published' | 'mismatch' | 'failing'; export interface KeySyncStatus { state: KeySyncState; lastError: string | null; devices: number; sealing: boolean; } export interface KeySyncDeps { relayUrl: string; getRemote: () => RemoteLink | undefined; keys: BoatKeyStore; latch: SealingLatchStore; debug: (msg: string) => void; intervalMs?: number; } export declare const PROMPTED_FLOOR_MS = 30000; export declare const MAX_APPROVALS = 8; export declare class KeySync { private readonly deps; private timer; private inFlight; private readonly intervalMs; private stopped; private failures; private state; private lastError; private published; private deviceList; private latched; private persisted; private generation; private lastPollAt; constructor(deps: KeySyncDeps); start(): void; prompt(now?: number): void; stop(): void; status(): KeySyncStatus; devices(): DevicePublicKey[]; sealing(): boolean; reset(): void; private remember; private schedule; private tick; private poll; }