import PulsoidBaseSocket from './PulsoidBaseSocket'; import PulsoidRoomSocket from './PulsoidRoomSocket'; import type { PulsoidHeartRateMessage, PulsoidSocketEventType, PulsoidSocketOptions, PulsoidTokenError, PulsoidRoomSocketOptions } from './types'; declare class PulsoidSocket extends PulsoidBaseSocket { private online; private debounceOfflineEvent; protected get requiredScope(): string; protected get url(): string; protected getEventTypes(): PulsoidSocketEventType[]; protected onMessageHandler(event: MessageEvent): void; protected onFirstCloseCleanup(): void; protected onDisconnect(): void; private onOfflineEventHandler; private onOnlineEventHandler; private constructor(); static create(token: string, options?: PulsoidSocketOptions): PulsoidSocket; static createRoom(token: string, roomId: string, options?: PulsoidRoomSocketOptions): PulsoidRoomSocket; on(eventType: 'heart-rate', callback: (data: PulsoidHeartRateMessage) => void): void; on(eventType: 'open', callback: (event: Event) => void): void; on(eventType: 'close', callback: (event: CloseEvent) => void): void; on(eventType: 'error', callback: (event: Event) => void): void; on(eventType: 'online', callback: () => void): void; on(eventType: 'offline', callback: () => void): void; on(eventType: 'reconnect', callback: (e: { attempt: number; }) => void): void; on(eventType: 'token-error', callback: (e: PulsoidTokenError) => void): void; off(eventType: 'heart-rate', callback?: (data: PulsoidHeartRateMessage) => void): void; off(eventType: 'open', callback?: (event: Event) => void): void; off(eventType: 'close', callback?: (event: CloseEvent) => void): void; off(eventType: 'error', callback?: (event: Event) => void): void; off(eventType: 'online', callback?: () => void): void; off(eventType: 'offline', callback?: () => void): void; off(eventType: 'reconnect', callback?: (e: { attempt: number; }) => void): void; off(eventType: 'token-error', callback?: (e: PulsoidTokenError) => void): void; isOnline: () => boolean; } export default PulsoidSocket;