import { EventEmitter } from 'ee-ts'; /** * Інтерфейс, що описує структуру повідомлення. */ export interface Message { event?: string; status?: string; seq?: number; seq_reply?: number; data: any; error?: object; sock_id?: string; } /** * Інтерфейс, що описує структуру запиту. */ export interface Request { seq: number; action: string; data?: object; } /** * Інтерфейс, що описує події, які можуть виникнути у сокеті. */ export interface SocketEvents { /** * Обробник події надходження повідомлення. * @param msg Повідомлення, що надійшло. */ message(msg: Message): void; /** * Обробник події закриття з'єднання. * @param code Код закриття з'єднання. */ close(code: number): void; /** * Обробник події відкриття з'єднання. */ open(): void; } /** * Клас для роботи з WebSocket-з'єднанням. */ export declare class Socket extends EventEmitter { private host; private appName?; private appVer?; private socket; /** * Конструктор класу Socket. * @param host Хост для підключення. * @param appName Імя підключення. */ constructor(host: string, appName?: string | undefined, appVer?: string | undefined); /** * Встановлює з'єднання з WebSocket. * @param token Токен для авторизації. */ connect(_token: string): void; /** * Відправляє запит через WebSocket. * @param request Запит, який необхідно відправити. * @returns Ніколи або null. */ send(request: Request): never | null; /** * Закриває WebSocket-з'єднання. * @param code Код закриття з'єднання (необов'язково). */ close(code?: number): void; /** * Викликається при відкритті з'єднання. * Генерує подію 'open'. * @private */ private onOpen; /** * Викликається при закритті з'єднання. * Генерує подію 'close' та очищає слухачів подій. * @param code Код закриття з'єднання. * @private */ private onClose; /** * Викликається при отриманні повідомлення. * Парсує дані повідомлення і генерує подію 'message'. * @param data Дані повідомлення у форматі рядка. * @private */ private onMessage; } //# sourceMappingURL=socket.d.ts.map