import { type InferSelectModel, type Table } from 'drizzle-orm'; import type { RealtimeAction, RealtimePublisher } from './publisher.js'; export type RealtimeTransport = 'disabled' | 'memory' | 'redis'; export type SchemaTable> = Extract; export interface RealtimeFacade = Record> { readonly enabled: boolean; readonly transport: RealtimeTransport; publish>(table: TTable, action: RealtimeAction, record: InferSelectModel, metadata?: { operationId?: string; }): Promise; } /** * One name for a table everywhere: events, subscriptions, and the CRUD router * all use the schema key. Pass the schema so a key like `creditBalances` is not * published as its SQL name `credit_balances` — clients subscribe with the key * they call procedures with. Without a schema, the SQL name is the only name * available and is used as-is. */ export declare function createRealtimeFacade>(publisher?: RealtimePublisher, transport?: RealtimeTransport, schema?: TSchema): RealtimeFacade; //# sourceMappingURL=facade.d.ts.map