import Nymph from './Nymph.js'; import type { NymphOptions, Options, Selector } from './Nymph.types.js'; import type { EntityInstanceType } from './Entity.js'; import type { EntityConstructor, EntityInterface } from './Entity.types.js'; import type { PubSubCallbacks, PubSubConnectCallback, PubSubCountCallback, PubSubDisconnectCallback, PubSubEventType, PubSubRejectCallback, PubSubResolveCallback, PubSubErrorCallback, PubSubSubscribable, PubSubUpdate } from './PubSub.types.js'; export default class PubSub { private nymph; private authToken; private switchToken; private connection; private waitForConnectionTimeout; private pubsubUrl; private WebSocket; private subscriptions; private connectCallbacks; private disconnectCallbacks; private errorCallbacks; private noConsole; constructor(nymphOptions: NymphOptions, nymph: Nymph); subscribeEntities(options: Options & { return: 'guid'; }, ...selectors: Selector[]): PubSubSubscribable>; subscribeEntities(options: Options, ...selectors: Selector[]): PubSubSubscribable[]>>; subscribeEntity(options: Options & { return: 'guid'; }, ...selectors: Selector[]): PubSubSubscribable>; subscribeEntity(options: Options, ...selectors: Selector[]): PubSubSubscribable | null>>; subscribeUID(name: string): (resolve?: PubSubResolveCallback | undefined, reject?: PubSubRejectCallback | undefined, count?: PubSubCountCallback | undefined) => { unsubscribe: () => void; }; subscribeWith(entity: T, resolve?: PubSubResolveCallback | undefined, reject?: PubSubRejectCallback | undefined, count?: PubSubCountCallback | undefined): PubSubSubscription; connect(): void; close(): void; private _waitForConnection; private _attemptConnect; private _onopen; private _onmessage; private _onclose; private _send; isConnectionOpen(): boolean; isConnectionConnecting(): boolean; isConnection(): boolean; private _subscribeQuery; private _subscribeUID; private _sendQuery; private _sendUID; private _isCountSubscribedQuery; private _isCountSubscribedUID; private _unsubscribeQuery; private _unsubscribeUID; private _sendUnQuery; private _sendUnUID; updateArray(current: EntityInterface[], update: PubSubUpdate): void; on(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : T extends 'error' ? PubSubErrorCallback : never): () => boolean; off(event: T, callback: T extends 'connect' ? PubSubConnectCallback : T extends 'disconnect' ? PubSubDisconnectCallback : T extends 'error' ? PubSubErrorCallback : never): boolean; authenticate(authToken: string | null, switchToken?: string | null): void; } export declare class PubSubSubscription { query: string; callbacks: PubSubCallbacks; unsubscribe: () => void; constructor(query: string, callbacks: PubSubCallbacks, unsubscribe: () => void); }