import { Store } from '../types'; export interface SyncTransport { send(message: any): void; onReceive(handler: (message: any) => void): () => void; close?(): void; } export type ConflictResolver = (local: T, remote: Partial) => Partial; export interface SyncOptions { transport: SyncTransport | (() => SyncTransport); filter?: (state: T) => any; resolve?: 'remote-wins' | 'local-wins' | 'merge' | ConflictResolver; instanceId?: string; accept?: (message: any) => boolean; } export declare function syncMiddleware(options: SyncOptions): (store: Store) => Store; export declare function broadcastChannelTransport(channelName: string): SyncTransport; export declare function storageEventTransport(storageKey: string, storage?: Storage): SyncTransport; export declare function webSocketTransport(url: string, protocols?: string | string[]): SyncTransport;