import type { Readable } from "svelte/store"; import type { ConfigurableNavigator } from "../_configurable"; declare 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 declare type GeneralPermissionDescriptor = PermissionDescriptor | { name: DescriptorNamePolyfill; }; export interface PermissionOptions extends ConfigurableNavigator { /** * Expose more controls * * @default false */ controls?: Controls; } export declare type PermissionReturn = Readable; export interface PermissionReturnWithControls { state: PermissionReturn; is_supported: Readable; query: () => Promise; } /** * Reactive Permissions API. * */ export declare function permission(permissionDesc: GeneralPermissionDescriptor | GeneralPermissionDescriptor["name"], options?: PermissionOptions): PermissionReturn; export declare function permission(permissionDesc: GeneralPermissionDescriptor | GeneralPermissionDescriptor["name"], options: PermissionOptions): PermissionReturnWithControls; export {};