@fakes/media-devices
Version:
A interactive fake implementation of MediaDevices interface in the browser for testing
37 lines • 1.42 kB
TypeScript
import { Context } from './context';
import { PermissionStatusFake } from './permissions/PermissionStatusFake';
export declare enum RequestedMediaInput {
Microphone = "Microphone",
Camera = "Camera"
}
export declare type PermissionPromptAction = 'dismiss' | 'allow' | 'block';
export interface PermissionPrompt {
requestedPermissions(): RequestedMediaInput[];
takeAction(action: PermissionPromptAction): void;
}
export interface PermissionRequest {
deviceKind: MediaDeviceKind;
granted: () => void;
blocked: () => void;
}
export declare type UserConsent = {
camera: PermissionState;
microphone: PermissionState;
};
export declare class UserConsentTracker {
private readonly _context;
private readonly _userConsent;
private readonly _trackedPermissionStatus;
private _pendingPermissionRequest;
constructor(_context: Context, _userConsent: UserConsent);
permissionStatusFor(kind: keyof UserConsent): PermissionStatusFake;
setPermissionFor(kind: keyof UserConsent, state: PermissionState): void;
requestPermissionFor(permissionRequest: PermissionRequest): void;
private permissionStateFor;
private permissionGrantedFor;
private permissionBlockedFor;
deviceAccessPrompt(): Promise<PermissionPrompt>;
private permissionPromptFor;
accessAllowedFor(kind: MediaDeviceKind): boolean;
}
//# sourceMappingURL=UserConsentTracker.d.ts.map