export type RealtimeAction = 'create' | 'update' | 'delete'; export type RealtimeChange = { table: string; action: RealtimeAction; record: Record; operationId?: string; }; export type RealtimeHeartbeat = { type: 'heartbeat'; intervalMs?: number; }; export type RealtimeEvent = RealtimeChange | RealtimeHeartbeat; export type RealtimeProcedure = { call(input: { tables: string[]; }, options?: { signal?: AbortSignal; lastEventId?: string; }): Promise>; }; export type RealtimeSyncHandle = { close(): void; done: Promise; }; export type RealtimeClock = { setTimeout(fn: () => void, ms: number): unknown; clearTimeout(handle: unknown): void; }; export declare const DEFAULT_KEEPALIVE_MS = 5000; export declare const DEFAULT_LIVENESS_FACTOR = 2.5; export type RealtimeStreamOptions = { subscribe: (options: { signal: AbortSignal; lastEventId?: string; }) => Promise>; onChange: (change: RealtimeChange) => void; onReconnect: () => void | Promise; onError?: (error: unknown) => void; onRetry?: (retry: { attempt: number; delayMs: number; }) => void; signal: AbortSignal; retryMs?: number; maxRetryMs?: number; livenessFactor?: number; defaultKeepaliveMs?: number; clock?: RealtimeClock; random?: () => number; }; export declare function isRealtimeHeartbeat(event: RealtimeEvent): event is RealtimeHeartbeat; /** Shared reconnecting transport used by LiveView, Query, and DB adapters. */ export declare function openRealtimeStream(options: RealtimeStreamOptions): RealtimeSyncHandle; //# sourceMappingURL=realtime.d.ts.map