import RealtimeClient from './RealtimeClient'; import { type AdapterReqClass } from './lib/req-class-fetch'; type GatewayEndPoint = { BASE_URL: string; PROTOCOL: string; }; export type RealtimeAuthChangeEvent = 'SIGNED_OUT' | 'SIGNED_IN' | 'INITIAL_SESSION' | 'TOKEN_REFRESHED' | (string & {}); export type RealtimeAuthSession = { access_token?: string | null; }; export type RealtimeHostAuth = { onAuthStateChange: (callback: (event: RealtimeAuthChangeEvent, session: RealtimeAuthSession | null) => void) => unknown; }; type RealtimeHostAuthFactory = ((this: RealtimeHostApp, config?: unknown) => RealtimeHostAuth) & Partial; export type RealtimeHostApp = { config?: { env?: string; }; request?: { getAccessToken?: (token?: string | null) => Promise; }; platform?: { adapter?: { wsClass?: RealtimeClient['socketAdapter']['transport']; reqClass?: AdapterReqClass; }; }; /** * CloudBase Auth。可能是尚未调用的 `app.auth` 工厂,或已经初始化后的 Auth 实例。 * 未注册 auth 组件时可缺省。 */ auth?: RealtimeHostAuthFactory | RealtimeHostAuth; authInstance?: RealtimeHostAuth; getEndPointWithKey: (key: string) => GatewayEndPoint; registerComponent: (component: { name: string; entity: Record; }) => void; }; /** * 从 GATEWAY 端点拼出 CloudBase Realtime WebSocket 基址: * `wss://{GW}/v1/realtime` * * Phoenix Socket 会再补 `/websocket`,最终为: * `wss://{GW}/v1/realtime/websocket?apikey={accessToken}&vsn=1.0.0` * * GATEWAY 的 `BASE_URL` 已含 `/v1`(如 `//{env}.api.tcloudbasegateway.com/v1`)。 */ export declare function buildRealtimeEndPoint(app: Pick): string; /** * 把 CloudBase Auth 事件推给 Realtime:登录 / 刷新立刻 `setAuth(token)`,登出 `setAuth()`。 * 对标 supabase-js `SupabaseClient._listenForAuthEvents`。同一 client 只绑定一次。 */ export declare function bindRealtimeAuthEvents(client: RealtimeClient, auth: RealtimeHostAuth): void; export declare function createRealtimeClient(app: RealtimeHostApp): RealtimeClient; export declare function registerRealtimeJs(app: Pick): void; export {}; //# sourceMappingURL=cloudbase.d.ts.map