import { IAnalyticsPropertiesProvider } from '../../analytics/IAnalyticsPropertiesProvider';
import { HMSFacingMode, HMSVideoCodec, HMSVideoTrackSettings as IHMSVideoTrackSettings } from '../../interfaces';
export declare class HMSVideoTrackSettingsBuilder {
    private _width?;
    private _height?;
    private _codec?;
    private _maxFramerate?;
    private _maxBitrate?;
    private _deviceId?;
    private _facingMode?;
    private _advanced;
    setWidth(width?: number): this;
    setHeight(height?: number): this;
    codec(codec?: HMSVideoCodec): this;
    maxFramerate(maxFramerate?: number): this;
    /**
     * @param useDefault Ignored if maxBitrate is valid.
     * If true and maxBitrate is undefined - sets a default value.
     * If false and maxBitrate is undefined - sets undefined.
     */
    maxBitrate(maxBitrate?: number, useDefault?: boolean): this;
    deviceId(deviceId: string): this;
    advanced(advanced: Array<MediaTrackConstraintSet>): this;
    facingMode(mode: HMSFacingMode): this;
    build(): HMSVideoTrackSettings;
}
export declare class HMSVideoTrackSettings implements IHMSVideoTrackSettings, IAnalyticsPropertiesProvider {
    readonly width?: number;
    readonly height?: number;
    readonly codec?: HMSVideoCodec;
    readonly maxFramerate?: number;
    readonly maxBitrate?: number;
    readonly deviceId?: string;
    readonly advanced?: Array<MediaTrackConstraintSet>;
    facingMode?: HMSFacingMode;
    constructor(width?: number, height?: number, codec?: HMSVideoCodec, maxFramerate?: number, deviceId?: string | undefined, advanced?: Array<MediaTrackConstraintSet>, maxBitrate?: number, facingMode?: HMSFacingMode);
    toConstraints(isScreenShare?: boolean): MediaTrackConstraints;
    toAnalyticsProperties(): {
        width: number | undefined;
        height: number | undefined;
        video_bitrate: number | undefined;
        framerate: number | undefined;
        video_codec: HMSVideoCodec | undefined;
        facingMode: HMSFacingMode | undefined;
    };
    private improviseConstraintsAspect;
}
