export interface UseDeviceListOptions { /** * Callback when devices are updated */ onUpdated?: (devices: MediaDeviceInfo[]) => void; /** * Request for permissions immediately if it's not granted, * otherwise label and deviceIds could be empty * * @defaultValue false */ requestPermissions?: boolean; /** * Request for types of media permissions * * @defaultValue { audio: true, video: true } */ constraints?: MediaStreamConstraints; } export interface UseDeviceListReturns { /** * List of all devices */ devices: MediaDeviceInfo[]; /** * a getter to get all video inputs */ videoInputs: MediaDeviceInfo[]; /** * a getter to get all audio inputs */ audioInputs: MediaDeviceInfo[]; /** * a getter to get all audio outputs */ audioOutputs: MediaDeviceInfo[]; /** * a boolean to check if permission is granted */ isPermissionGranted: boolean; /** * a function to check if the browser supports the API */ isSupported: boolean; /** * a function to request for permissions to access the media devices */ ensurePermission(): Promise; /** * a function to update the list of devices */ update(): Promise; } /** * A React Hook that returns a list of devices that are currently connected. */ export declare function useDeviceList(options?: UseDeviceListOptions): UseDeviceListReturns;