import { Event } from '@skyway-sdk/common';
import type { Codec } from '../../../media';
import { Transport, TransportConnectionState } from '../../../plugin/interface';
import { ContentType, Stream, WebRTCStats } from '../base';
export declare abstract class RemoteStreamBase implements Stream {
    readonly id: string;
    readonly contentType: ContentType;
    readonly side = "remote";
    /**
     * @deprecated
     * @use Subscription.onConnectionStateChanged
     * @description [japanese] メディア通信の状態が変化した時に発火するイベント
     */
    readonly onConnectionStateChanged: Event<TransportConnectionState>;
    /**@internal */
    readonly _onConnectionStateChanged: Event<TransportConnectionState>;
    codec: Codec;
    private _connectionState;
    /**@internal */
    constructor(id: string, contentType: ContentType);
    /**@internal */
    _setConnectionState(state: TransportConnectionState): void;
    /**@internal */
    _getTransport: () => Transport | undefined;
    /**
     * @deprecated
     * @use Subscription.getStats
     */
    readonly getStats: () => Promise<WebRTCStats>;
    /**@internal */
    _getStats: () => Promise<WebRTCStats>;
    /**
     * @deprecated
     * @use Subscription.getRTCPeerConnection
     */
    getRTCPeerConnection(): RTCPeerConnection | undefined;
    /**@internal */
    _getRTCPeerConnection(): RTCPeerConnection | undefined;
    /**
     * @deprecated
     * @use Subscription.getConnectionState
     */
    getConnectionState(): TransportConnectionState;
    /**@internal */
    _getConnectionState(): TransportConnectionState;
    /**@internal */
    toJSON(): {
        contentType: ContentType;
        id: string;
        codec: Codec;
        side: string;
    };
}
//# sourceMappingURL=base.d.ts.map