import { Accessor } from 'solid-js'; import { ConfigurableNavigator } from '../_configurable.js'; type DescriptorNamePolyfill = 'accelerometer' | 'accessibility-events' | 'ambient-light-sensor' | 'background-sync' | 'camera' | 'clipboard-read' | 'clipboard-write' | 'gyroscope' | 'magnetometer' | 'microphone' | 'notifications' | 'payment-handler' | 'persistent-storage' | 'push' | 'speaker'; type GeneralPermissionDescriptor = PermissionDescriptor | { name: DescriptorNamePolyfill; }; interface UsePermissionOptions extends ConfigurableNavigator { /** * Expose more controls * * @default false */ controls?: Controls; } type UsePermissionReturn = Accessor; interface UsePermissionReturnWithControls { state: UsePermissionReturn; isSupported: Accessor; query: () => Promise; } /** * Reactive Permissions API. * * @see https://solidjs-use.github.io/solidjs-use/core/usePermission */ declare function usePermission(permissionDesc: GeneralPermissionDescriptor | GeneralPermissionDescriptor['name'], options?: UsePermissionOptions): UsePermissionReturn; declare function usePermission(permissionDesc: GeneralPermissionDescriptor | GeneralPermissionDescriptor['name'], options: UsePermissionOptions): UsePermissionReturnWithControls; export { GeneralPermissionDescriptor, UsePermissionOptions, UsePermissionReturn, UsePermissionReturnWithControls, usePermission };