import { InstantAPIError, InstantSchemaDef, InstaQLResponse, ValidQuery, PageInfoResponse } from '@instantdb/core'; export type SubscriptionReadyState = 'closed' | 'connecting' | 'open'; export type SubscribeQuerySessionInfo = { machineId: string; sessionId: string; }; export type SubscribeQueryPayload, Q extends ValidQuery, UseDates extends boolean = false> = { type: 'ok'; data: InstaQLResponse; pageInfo: PageInfoResponse | undefined; sessionInfo: SubscribeQuerySessionInfo | null; } | { type: 'error'; error: InstantAPIError; readyState: SubscriptionReadyState; isClosed: boolean; sessionInfo: SubscribeQuerySessionInfo | null; }; export type SubscribeQueryCallback, Q extends ValidQuery, UseDates extends boolean = false> = (payload: SubscribeQueryPayload) => void; export interface SubscribeQueryResponse, Q extends ValidQuery, UseDates extends boolean = false> { /** Stop the subscription and close the connection. */ close(): void; /** Warns when attempting to iterate synchronously */ [Symbol.iterator](): never; /** Async iterator of query payloads */ [Symbol.asyncIterator](): AsyncIterableIterator>; /** Ready state of the connection */ readonly readyState: SubscriptionReadyState; /** `true` if the connection is closed and no more payloads will be delivered */ readonly isClosed: boolean; /** Debug info about the session. Will return null while the session is initializing. */ readonly sessionInfo: SubscribeQuerySessionInfo | null; } export declare function subscribe, Q extends ValidQuery, UseDates extends boolean>(query: Q, cb: SubscribeQueryCallback | undefined, opts: { headers: HeadersInit; inference: boolean; apiURI: string; }): SubscribeQueryResponse; //# sourceMappingURL=subscribe.d.ts.map