import type { ConfigurableNavigator } from '../_configurable'; import { type Readable } from 'svelte/store'; 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'; export type GeneralPermissionDescriptor = PermissionDescriptor | { name: DescriptorNamePolyfill; }; export interface UsePermissionOptions extends ConfigurableNavigator { /** * Expose more controls * * @default false */ controls?: Controls; } export type UsePermissionReturn = Readable; export interface UsePermissionReturnWithControls { state: UsePermissionReturn; isSupported: Readable; query: () => Promise; } /** * Reactive Permissions API. * * @see https://sveltuse.pages.dev/docs/functions/usePermission */ export declare function usePermission(permissionDesc: GeneralPermissionDescriptor | GeneralPermissionDescriptor['name'], options?: UsePermissionOptions): UsePermissionReturn; export declare function usePermission(permissionDesc: GeneralPermissionDescriptor | GeneralPermissionDescriptor['name'], options: UsePermissionOptions): UsePermissionReturnWithControls; export {};