import { Accessor } from 'solid-js'; import { ConfigurableNavigator } from '../_configurable.js'; interface UseDevicesListOptions extends ConfigurableNavigator { onUpdated?: (devices: MediaDeviceInfo[]) => void; /** * Request for permissions immediately if it's not granted, * otherwise label and deviceIds could be empty * * @default false */ requestPermissions?: boolean; /** * Request for types of media permissions * * @default { audio: true, video: true } */ constraints?: MediaStreamConstraints; } interface UseDevicesListReturn { /** * All devices */ devices: Accessor; videoInputs: Accessor; audioInputs: Accessor; audioOutputs: Accessor; permissionGranted: Accessor; ensurePermissions: () => Promise; isSupported: Accessor; } /** * Reactive `enumerateDevices` listing available input/output devices. * * @see https://solidjs-use.github.io/solidjs-use/core/useDevicesList */ declare function useDevicesList(options?: UseDevicesListOptions): UseDevicesListReturn; export { UseDevicesListOptions, UseDevicesListReturn, useDevicesList };