import { Event } from '@skyway-sdk/common';
import type { Codec } from '../../../media';
import type { Transport, TransportConnectionState } from '../../../plugin/interface';
import type { ContentType, Stream, WebRTCStats } from '../base';
export declare abstract class RemoteStreamBase implements Stream {
    readonly id: string;
    readonly contentType: ContentType;
    readonly side = "remote";
    /**@internal */
    readonly _onConnectionStateChanged: Event<TransportConnectionState>;
    codec: Codec;
    private _connectionState;
    /**@internal */
    constructor(id: string, contentType: ContentType);
    /**@internal */
    _setConnectionState(state: TransportConnectionState): void;
    /**@internal */
    _getTransport: () => Transport | undefined;
    /**@internal */
    _getStats: () => Promise<WebRTCStats>;
    /**@internal */
    _getRTCPeerConnection(): RTCPeerConnection | undefined;
    /**@internal */
    _getConnectionState(): TransportConnectionState;
    /**@internal */
    toJSON(): {
        contentType: ContentType;
        id: string;
        codec: Codec;
        side: string;
    };
}
//# sourceMappingURL=base.d.ts.map