import { Context } from './context';
import { MediaDeviceDescription } from './MediaDeviceDescription';
import { OpenMediaTracks } from './OpenMediaTracks';
import { UserConsentTracker } from './UserConsentTracker';
declare type DeviceChangeListener = (this: MediaDevices, ev: Event) => any;
export declare class MediaDevicesFake extends EventTarget implements MediaDevices {
    private readonly _context;
    private readonly _userConsentTracker;
    private readonly _openMediaTracks;
    private readonly _deviceDescriptions;
    private readonly _onDeviceChangeListener;
    constructor(_context: Context, _userConsentTracker: UserConsentTracker, _openMediaTracks: OpenMediaTracks);
    private get devices();
    get ondevicechange(): DeviceChangeListener | null;
    set ondevicechange(listener: DeviceChangeListener | null);
    enumerateDevices(): Promise<MediaDeviceInfo[]>;
    getSupportedConstraints(): MediaTrackSupportedConstraints;
    getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;
    noDevicesAttached(): void;
    attach(toAdd: MediaDeviceDescription): void;
    remove(toRemove: MediaDeviceDescription): void;
    private informDeviceChangeListener;
}
export {};
//# sourceMappingURL=MediaDevicesFake.d.ts.map