/** * @internalapi * Helper type that defines the type of the options we expect. */ export declare type InputOptions = Record; /** * @internalapi * Helper type for what a [[ValidatorFunction]] should return; */ export declare type Validity = string | undefined; /** * @internalapi * Helper type for validation. All validators should have this typing. * If the option is invalid, then the validator should return a string * describing why, otherwise return nothing or `undefined`. */ export declare type ValidatorFunction = (option: any) => Validity | Promise; /** * @internalapi * Helper type for validation. Defines the configuration that `validateOptions` * expects. */ export declare type ValidatorConfig = Partial>; /** * @internalapi * Helper type for validation. Defines the record that describes the invalidity * of options if they are found invalid. */ export declare type InvalidityRecord = Partial>; /** * @internalapi * Helper type for audio device validation. */ interface AudioDeviceValidatorOptions { enumerateDevices?: typeof navigator.mediaDevices.enumerateDevices; kind?: MediaDeviceKind; } /** * @internalapi * Return a function that validates an audio device by ID. It will returns a * `string` representing why the ID is invalid, or nothing if it is valid. Will * throw if `enumerateDevices` is not supported by the system. * @param options Options to pass to the validator. A mock `enumerateDevices` * may be passed here, as well as a `kind` may be passed here if there is a * desire to check the `kind` of audio device. * @returns A function that takes a `string` representing the audio device ID to * be validated and returns a Promise resolving a `string` representing the * invalid message or `undefined` if the audio device is valid. */ export declare function createAudioDeviceValidator(options?: AudioDeviceValidatorOptions): ValidatorFunction; /** * @internalapi * Validate that an option is a valid device ID to pass to `getUserMedia` or * `setSinkId`. * @param option The option to check is a valid device ID to pass to * `getUserMedia` or `setSinkId`. * @returns If the option is not valid, return a string that describes why, * otherwise `undefined`. */ export declare function validateDeviceId(option: any): Validity; /** * @internalapi * Validate that an option is a valid string. * @param option The option to check is a valid string. * @returns If the option is not valid, return a string that describes why it is * invalid, otherwise return `undefined`. */ export declare function validateString(option: any): Validity; /** * @internalapi * Validate a time-based parameter, i.e. duration or interval. * @param option The duration of time to validate * @returns A possibly undefined string, if the time is valid it will return * undefined, otherwise an error message */ export declare function validateTime(option: any): Validity; /** * @internalapi * Validate that an option is neither `undefined` nor `null`. * @param option The option to check exists. * @returns A possibly undefined string, if the option exists it will return * `undefined`, otherwise a string representing why the option is invalid */ export declare function validateExists(option: any): Validity; /** * @internalapi * Validate that an option is a `boolean`. * @param option The option to check. * @returns A possibly undefined string, if the option is valid it will return * `undefined`, otherwise a string representing why the option is invalid */ export declare function validateBoolean(option: any): Validity; /** * @internalapi * Validate input options to the [[AudioInputTest]]. * @param inputOptions The options to validate. * @param config A record of option names to either a single * [[ValidatorFunction]] or an array of [[ValidatorFunctions]]. * @returns A Promise that resolves either with a [[InvalidityRecord]] describing * which options are invalid and why, or `undefined` if all options are vaild. */ export declare function validateOptions(inputOptions: T, config: ValidatorConfig): Promise | undefined>; export {};