@rksan/mock-media-devices
Version:
WebAPI window.navigator.mediaDevices のモック
90 lines • 2.92 kB
TypeScript
import * as types from "../../../types";
interface Keys<P> {
name: string;
default: P;
}
interface Entry<P, O> {
keys: Keys<P>[];
type: string;
value: (def: P, val?: P | O) => P;
}
interface EntryOfString extends Entry<string, types.ConstrainDOMString> {
type: "string";
}
interface EntryOfBoolean extends Entry<boolean, types.ConstrainBoolean> {
type: "boolean";
}
interface EntryOfULong extends Entry<number, types.ConstrainULong> {
type: "ulong";
}
interface EntryOfDouble extends Entry<number, types.ConstrainDouble> {
type: "double";
}
export interface KeyOfStringForAll extends Keys<string> {
name: "groupId" | "deviceId";
default: string;
}
export interface EntryOfStringForAll extends EntryOfString {
keys: KeyOfStringForAll[];
}
export type EntryForAll = EntryOfStringForAll;
export interface KeyOfBooleanForAudio extends Keys<boolean> {
name: "autoGainControl" | "echoCancellation" | "noiseSuppression";
default: boolean;
}
export interface EntryOfBooleanForAudio extends EntryOfBoolean {
keys: KeyOfBooleanForAudio[];
}
export interface KeyOfULongForAudio extends Keys<number> {
name: "channelCount" | "sampleRate" | "sampleSize";
default: number;
}
export interface EntryOfULongForAudio extends EntryOfULong {
keys: KeyOfULongForAudio[];
}
export interface KeyOfDoubleForAudio extends Keys<number> {
name: "latency" | "volume";
default: number;
}
export interface EntryOfDoubleForAudio extends EntryOfDouble {
keys: KeyOfDoubleForAudio[];
}
export type EntryForAudio = EntryOfBooleanForAudio | EntryOfULongForAudio | EntryOfDoubleForAudio;
export interface KeyOfStringForVideo extends Keys<string> {
name: "facingMode" | "resizeMode";
default: string;
}
export interface EntryOfStringForVideo extends EntryOfString {
keys: KeyOfStringForVideo[];
}
export interface KeyOfULongForVideo extends Keys<number> {
name: "frameRate" | "height" | "width";
}
export interface EntryOfULongForVideo extends EntryOfULong {
keys: KeyOfULongForVideo[];
}
export interface KeyOfDoubleForVideo extends Keys<number> {
name: "aspectRatio";
default: number;
}
export interface EntryOfDoubleForVideo extends EntryOfDouble {
keys: KeyOfDoubleForVideo[];
}
export type EntryForVideo = EntryOfStringForVideo | EntryOfULongForVideo | EntryOfDoubleForVideo;
export interface KeyOfStringForShare extends Keys<string> {
name: "cursor" | "displaySurface";
default: string;
}
export interface EntryOfStringForShare extends EntryOfString {
keys: KeyOfStringForShare[];
}
export interface KeyOfBooleanForShare extends Keys<boolean> {
name: "logicalSurface";
default: boolean;
}
export interface EntryOfBooleanForShare extends EntryOfBoolean {
keys: KeyOfBooleanForShare[];
}
export type EntryForShare = EntryOfStringForShare | EntryOfBooleanForShare;
export {};
//# sourceMappingURL=index.d.ts.map