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