import { LogFormat, LogLevel } from '@skyway-sdk/common';
import { RtcApiConfig, RtcRpcApiConfig } from '@skyway-sdk/rtc-api-client';
export { RtcApiConfig, RtcRpcApiConfig };
export declare type SkyWayConfigOptions = {
    /**@internal */
    rtcApi: RtcApiConfig;
    /**@internal */
    iceParamServer: {
        domain?: string;
        version?: number;
        secure?: boolean;
    };
    /**@internal */
    signalingService: {
        domain?: string;
        secure?: boolean;
    };
    /**@internal */
    analyticsService: {
        domain?: string;
        secure?: boolean;
    };
    rtcConfig: {
        encodedInsertableStreams?: boolean;
        /**
         * @internal
         * @description ms
         * */
        timeout?: number;
        turnPolicy?: TurnPolicy;
        turnProtocol?: TurnProtocol;
        /**
         * @internal
         * @description ms
         * */
        iceDisconnectBufferTimeout?: number;
    };
    token: {
        updateReminderSec?: number;
    };
    log: Partial<{
        level: LogLevel;
        format: LogFormat;
    }>;
    /**@internal */
    internal: {
        disableDPlane?: boolean;
    };
    member: Partial<MemberKeepAliveConfig>;
};
/**
 * @description [japanese] MemberのChannelとのKeepAliveに関する設定
 * @description [japanese]
 * Memberはブラウザのタブを閉じるとChannelから削除される。
 * iOS safariのようなbeforeunloadイベントに対応していないブラウザは、
 * タブを閉じたあと keepaliveIntervalSec + keepaliveIntervalGapSec 秒後に
 * Channelから削除される。
 */
export declare type MemberKeepAliveConfig = {
    /**@description [japanese] KeepAliveを行う周期 */
    keepaliveIntervalSec: number;
    /**@description [japanese] KeepAliveの周期を超えてChannelからMemberが削除されるまでの時間 */
    keepaliveIntervalGapSec: number;
};
/**@internal */
export declare type MemberInternalConfig = {
    /**@internal */
    disableSignaling?: boolean;
    disableAnalytics?: boolean;
};
export declare type TurnPolicy = 'enable' | 'disable' | 'turnOnly';
export declare type TurnProtocol = 'all' | 'udp' | 'tcp' | 'tls';
export declare class ContextConfig implements SkyWayConfigOptions {
    /**@internal */
    rtcApi: Required<SkyWayConfigOptions['rtcApi']>;
    /**@internal */
    iceParamServer: Required<SkyWayConfigOptions['iceParamServer']>;
    /**@internal */
    signalingService: Required<SkyWayConfigOptions['signalingService']>;
    /**@internal */
    analyticsService: Required<SkyWayConfigOptions['analyticsService']>;
    rtcConfig: Required<SkyWayConfigOptions['rtcConfig']>;
    token: Required<SkyWayConfigOptions['token']>;
    log: Required<SkyWayConfigOptions['log']>;
    /**@internal */
    internal: Required<SkyWayConfigOptions['internal']>;
    member: Required<SkyWayConfigOptions['member']>;
    /**@internal */
    constructor(options?: Partial<SkyWayConfigOptions>);
}
//# sourceMappingURL=config.d.ts.map