data-channel-router
Version:
Data channel router
35 lines (34 loc) • 1.62 kB
TypeScript
import { DataChannelEvents, DataChannelSignalQuality, DataChannelStatuses } from "../enums";
import { IDataChannel, IDataChannelOptions } from "../interfaces";
import { Id } from "../types";
import { EventEmitter } from "../utils";
type ChannelEvents = typeof DataChannelEvents.IDLE | typeof DataChannelEvents.CONNECTED | typeof DataChannelEvents.UNAVAILABLE;
type OnIdleListener = (channel: IDataChannel) => void;
type OnConnectedListener = (channel: IDataChannel, previousStatus: DataChannelStatuses) => void;
type OnUnavailableListener = (channel: IDataChannel) => void;
type DataChanelListeners = OnIdleListener | OnConnectedListener | OnUnavailableListener;
/**
* Data channel target
* @link https://github.com/DjonnyX/data-channel-router/blob/main/library/src/components/DataChannelExecutor.ts
* @author Evgenii Grebennikov
* @email djonnyx@gmail.com
*/
export declare class DataChannelExecutor<R = any> extends EventEmitter<ChannelEvents, DataChanelListeners> {
private _options;
private static __nextId;
private _id;
get id(): Id;
private _status;
get status(): DataChannelStatuses;
set status(v: DataChannelStatuses);
private _signal;
get signal(): DataChannelSignalQuality;
set signal(v: DataChannelSignalQuality);
private _router;
get router(): R;
constructor(_options: IDataChannelOptions, id?: Id);
protected dispatchStatus(status: DataChannelStatuses, previousStatus: DataChannelStatuses): void;
ping(executor: () => Promise<any>, cb?: (error: any | null, delay: number | null) => void): Promise<void>;
dispose(): void;
}
export {};