import { WebSocketInterface } from "../types/globals.js"; import { CollectionType } from "../types/schema.js"; import { ApplyQueryFields } from "../types/output.js"; import { Query } from "../types/query.js"; //#region src/realtime/types.d.ts type WebSocketAuthModes = "public" | "handshake" | "strict"; interface WebSocketConfig { authMode?: WebSocketAuthModes; reconnect?: { delay: number; retries: number; } | false; connect?: { timeout: number; } | false; heartbeat?: boolean; debug?: boolean; url?: string; } interface SubscribeOptions { event?: SubscriptionOptionsEvents; query?: Query; uid?: string; } type WebSocketEvents = "open" | "close" | "error" | "message"; type RemoveEventHandler = () => void; type WebSocketEventHandler = (this: WebSocketInterface, ev: Event | CloseEvent | any) => any; interface WebSocketClient { isConnected(): Promise; connect(): Promise; disconnect(): void; onWebSocket(event: "open", callback: (this: WebSocketInterface, ev: Event) => any): RemoveEventHandler; onWebSocket(event: "error", callback: (this: WebSocketInterface, ev: Event) => any): RemoveEventHandler; onWebSocket(event: "close", callback: (this: WebSocketInterface, ev: CloseEvent) => any): RemoveEventHandler; onWebSocket(event: "message", callback: (this: WebSocketInterface, ev: any) => any): RemoveEventHandler; onWebSocket(event: WebSocketEvents, callback: WebSocketEventHandler): RemoveEventHandler; sendMessage(message: string | Record): void; subscribe>(collection: Collection, options?: Options): Promise<{ subscription: AsyncGenerator | "init">, void, unknown>; unsubscribe(): void; }>; } type ConnectionState = { code: "open"; connection: WebSocketInterface; firstMessage: boolean; } | { code: "connecting"; connection: Promise; } | { code: "error"; } | { code: "closed"; }; type ReconnectState = { attempts: number; active: false | Promise; }; type Fallback = Selected extends Options ? Selected : Options; type SubscriptionOptionsEvents = "create" | "update" | "delete"; type SubscriptionEvents = "init" | SubscriptionOptionsEvents; type SubscriptionOutput | undefined, Events extends SubscriptionEvents, TItem = (TQuery extends Query ? ApplyQueryFields, TQuery["fields"]> : Partial)> = { type: "subscription"; uid?: string; } & ({ [Event in Events]: { event: Event; data: SubscriptionPayload[Event]; } }[Events] | { event: "error"; error: { code: string; message: string; }; }); type SubscriptionPayload = { init: Item[]; create: Item[]; update: Item[]; delete: string[] | number[]; }; type WebSocketAuthError = { type: "auth"; status: "error"; error: { code: string; message: string; }; }; //#endregion export { ConnectionState, ReconnectState, RemoveEventHandler, SubscribeOptions, SubscriptionEvents, SubscriptionOptionsEvents, SubscriptionOutput, SubscriptionPayload, WebSocketAuthError, WebSocketAuthModes, WebSocketClient, WebSocketConfig, WebSocketEventHandler, WebSocketEvents }; //# sourceMappingURL=types.d.ts.map