import { FunctionalEvents } from '../../../../../Class/Functional';
import { Semifunctional } from '../../../../../Class/Semifunctional';
import { System } from '../../../../../system';
import { EE } from '../../../../../types/interface/EE';
import { MS } from '../../../../../types/interface/MS';
export interface I<T> {
    offer: string;
    close: any;
    opt: RTCConfiguration;
}
export interface O<T> {
    stream: MS;
    answer: string;
    emitter: EE<any>;
}
export type PeerReceiver_EE = {
    message: [any];
};
export type PeerReceiverEvents = FunctionalEvents<PeerReceiver_EE> & PeerReceiver_EE;
export default class PeerReceiver<T> extends Semifunctional<I<T>, O<T>, PeerReceiverEvents> {
    private _peer;
    private _unlisten;
    private _connected;
    private _flag_err_invalid_offer;
    constructor(system: System);
    f({ opt }: I<T>): Promise<void>;
    private _output_answer;
    onDataInputData(name: string, data: any): Promise<void>;
    onDataInputDrop(name: string): void;
    onDataOutputDrop(name: string): void;
    private _send_data;
    private _send;
    private _setup_peer;
    private _disconnect;
}
