export { MediaDeviceDescription } from './MediaDeviceDescription';
export { anyMicrophone, anyCamera, anyDevice, anySpeaker } from './DeviceMother';
export { PermissionPrompt, PermissionPromptAction, RequestedMediaInput } from './UserConsentTracker';
import { MediaDeviceDescription } from './MediaDeviceDescription';
import { PermissionPrompt, UserConsent } from './UserConsentTracker';
export declare type LogLevel = 'off' | 'all';
export declare type PermissionSetup = Partial<UserConsent>;
export declare type InitialSetup = PermissionSetup & {
    attachedDevices?: MediaDeviceDescription[];
    logLevel?: LogLevel;
};
export declare const stillHaveToAskForDeviceAccess: (additional?: PermissionSetup) => PermissionSetup;
export declare const allAccessGranted: (additional?: PermissionSetup) => PermissionSetup;
export declare const allAccessDenied: (additional?: PermissionSetup) => PermissionSetup;
export interface MediaDevicesControl {
    readonly mediaDevices: MediaDevices;
    readonly permissions: Permissions;
    installInto(target: Window): void;
    uninstall(): void;
    attach(...toAdd: MediaDeviceDescription[] | [MediaDeviceDescription[]]): void;
    remove(toRemove: MediaDeviceDescription | 'all'): void;
    deviceAccessPrompt(): Promise<PermissionPrompt>;
    setPermissionFor(...permissionSetup: [type: 'camera' | 'microphone', state: PermissionState] | [PermissionSetup]): void;
}
export declare const forgeMediaDevices: (initial?: InitialSetup) => MediaDevicesControl;
export { MediaStreamCheckResult, Scenario } from './Scenarios';
export declare const scenarios: {
    all: Map<string, import("./Scenarios").Scenario>;
    passUndefined: import("./Scenarios").Scenario;
    existingDevice: import("./Scenarios").Scenario;
    allConstraintsFalse: import("./Scenarios").Scenario;
    requestedDeviceTypeNotAttached: import("./Scenarios").Scenario;
    noDeviceWithDeviceId: import("./Scenarios").Scenario;
};
//# sourceMappingURL=index.d.ts.map