import { DeviceManager } from './DeviceManager';
import { AudioDeviceManagerState } from './AudioDeviceManagerState';
import { AudioBitrateProfile } from '../gen/video/sfu/models/models';
import { TrackPublishOptions } from '../rtc';
/**
 * Base class for High Fidelity enabled Device Managers.
 */
export declare abstract class AudioDeviceManager<S extends AudioDeviceManagerState<C>, C = MediaTrackConstraints> extends DeviceManager<S, C> {
    /**
     * Sets the audio bitrate profile and stereo mode.
     */
    setAudioBitrateProfile(profile: AudioBitrateProfile): Promise<void>;
    /**
     * Overrides the default `publishStream` method to inject the audio bitrate profile.
     */
    protected publishStream(stream: MediaStream, options?: TrackPublishOptions): Promise<void>;
    /**
     * Applies Device Manager's specific audio profile settings.
     */
    protected abstract doSetAudioBitrateProfile(profile: AudioBitrateProfile): void;
}
/**
 * Prepares a new MediaTrackConstraints set based on the provided arguments.
 */
export declare const createAudioConstraints: (profile: AudioBitrateProfile) => MediaTrackConstraints;
