import { ProtocolMode } from "./sock/ProtocolMode"; import { PacketManager } from './packet/PacketManager'; import { Pipe } from './pipe/Pipe'; import { Packet } from "./packet/Packet"; import { PacketState } from "./state/PacketState"; import { UserConnector } from "./user/UserConnector"; import { EventBus } from './eventbus/EventBus'; export declare class Phantom { /** * Порт прослушивания */ private port; /** * Режим протокола */ private protoMode; /** * Менеджер сетевых пакетов */ private packetManager; /** * Ссылка для подключения */ private url; /** * Так как протокол с шифрованием - шифрование включается сразу, ключ выбирается случайный. Ключ по сети не отправляется. Чтобы начать общаться с этим клиентом - нужно знать этот ключ */ private keyEncryption; /** * Пайплайн для приема/отправки данных */ private pipeLine; private nPacketInvoker; private userConnector; eventBus: EventBus; /** * Конструктор протокола * @param protoMode в каком режиме работает протокол * @param port порт протокола * @param url обязательный параметр если ProtocolMode.CLIENT - указать адрес до серверной машины без порта */ constructor(protoMode: ProtocolMode, port: number, url?: string); /** * Регистрирует N пакеты (n-negative. пакеты которые имеют отрицательный PacketID, т.е системные пакеты протокола) * @param pipe пайплайн */ private nPacketsRegistre; /** * Возвращает ключ шифрования * @returns ключ шифрования */ getEncryptKey(): string; /** * Устанавливает ключ шифрования * @param keyEncryption ключ */ setEncryptionKey(keyEncryption: string): void; /** * Получить менеджер пакетов для регистрации новых сетевых пакетов * @returns PacketManager */ getPacketManager(): PacketManager; /** * Получить режим работы протокола * @returns режим работы протокола */ getProtocolMode(): ProtocolMode; /** * Получить обьект для регистрации событий * @returns EventBus */ getEventBus(): EventBus; /** * Класс для соединения с другими пользователями протокола, а так же для отслеживания соединений с вами и их принятия * @returns UserConnector */ getUserConnector(): UserConnector; /** * Отправить пакет * @param packet пакет * @returns статус отправки пакета PacketState */ send(packet: Packet): PacketState; getPipeLine(): Pipe; /** * Функция прослушивания */ connect(callbackId?: Function): void; }