type ObjectKey = string | number | symbol; type EmptyObject = Record; type Base64Binary = string; interface BaseBusEvent { name: string; } interface ListenerOptions { /** * Whether a listener should be invoked at most once after being added. * The default value is false. */ once?: boolean; /** * A function that returns a boolean to determine if the listener should be called. * The guard not set by default. * * @since 5.1.0 */ guard?: (event: Extract) => boolean; /** * An AbortSignal. The listener will be removed when the abort() method of the AbortController which owns the AbortSignal is called. * See [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) for details. * * @since 5.1.0 */ signal?: AbortSignal; } type Listener = (event: Extract) => void | Promise; type AddEventListener = (event: EventName, listener: Listener, options?: ListenerOptions) => void; type RemoveEventListener = (event: EventName, listener: Listener) => void; declare enum ContainerEvent { ModuleRegistered = "MODULE_REGISTERED" } interface ModuleRegisteredEvent extends BaseBusEvent { name: ContainerEvent.ModuleRegistered; token: Token; } type ContainerEvents = ModuleRegisteredEvent; interface Container { readonly key: string; registerModule: (module: ModuleLoader) => void; registerModules: (modules: ModuleLoader[]) => void; getModule(token: Token, required?: false): Module | undefined; getModule(token: Token, required: true): Module; getModuleAsync: (token: Token) => Promise; addEventListener: AddEventListener; removeEventListener: RemoveEventListener; } interface Token { name: string; module?: ModuleType; } interface InitModuleOptions { container: Container; key: string; } interface ModuleLoader { token: Token; options: Options; required: Token[]; setup: (initOptions: InitModuleOptions) => ModuleType; } type ModuleFactory = Options extends EmptyObject ? () => ModuleLoader : (options: Options) => ModuleLoader; interface BaseModule { /** * @hidden */ container: Container; } declare class BaseModuleImpl implements BaseModule { /** * @hidden */ container: Container; /** * @hidden */ constructor(initOptions: InitModuleOptions); } interface WasmProcessor { /** * WASM processor version. */ version: string; /** * Binary data of the WASM processor. */ wasm: Base64Binary; } interface NoiseSuppression extends BaseModule { /** * Returns a WASM processor instance. */ getProcessor: () => WasmProcessor; } declare global { interface Navigator { getBattery?: () => Promise; } } interface BatteryManager extends EventTarget { level: number; charging: boolean; chargingTime: number; dischargingTime: number; } /** * Advanced noise suppression, echo cancellation and auto gain control, moderate CPU usage. * Good for mid-range devices and desktop browsers. * * * Not recommended for mobile devices. */ export interface NoiseSuppressionBalanced extends NoiseSuppression { } /** * @hidden */ export declare class NoiseSuppressionBalancedImpl extends BaseModuleImpl implements NoiseSuppressionBalanced { private readonly logger?; constructor(initModuleOptions: InitModuleOptions); getProcessor(): WasmProcessor; } /** * @function */ export declare const NoiseSuppressionBalancedLoader: ModuleFactory; export declare const noiseSuppressionBalancedToken: Token; export {};