import type { Slice } from './use-synced-store.js'; export interface DisposableSubscription { close(): void; } export interface NativeSlice { deviceId: string; data: T; version: number; updatedAt: number; } export interface SyncedStoreLike { set(data: T): Promise; local(): Promise; all(): Promise>>; version(): number; onChange(callback: (event: unknown) => void): DisposableSubscription; stop(): Promise; } export interface StoreSnapshot { localData: T | null; allSlices: Map>; version: number; } export interface SyncedStoreController { refresh(): Promise; close(): Promise; } export declare function slicesToMap(slices: Array>): Map>; /** * Keep a React-facing snapshot current while owning the native subscription * and store lifetime. Exported for deterministic lifecycle tests. */ export declare function subscribeSyncedStore(store: SyncedStoreLike, onSnapshot: (snapshot: StoreSnapshot) => void, onError?: (error: unknown) => void): SyncedStoreController; //# sourceMappingURL=synced-store-controller.d.ts.map