import type {AndroidPermissionMap} from './permissions.android'; import type {IOSPermissionMap} from './permissions.ios'; import type {WindowsPermissionMap} from './permissions.windows'; import type {ResultMap} from './results'; type ValueOf = T[keyof T]; export type AndroidPermission = ValueOf; export type IOSPermission = ValueOf; export type WindowsPermission = ValueOf; export type Permission = AndroidPermission | IOSPermission | WindowsPermission; export type PermissionStatus = ValueOf; export type RationaleObject = { title: string; message: string; buttonPositive: string; buttonNegative?: string; }; export type Rationale = RationaleObject | (() => Promise); export type LocationAccuracy = 'full' | 'reduced'; export type LocationAccuracyOptions = {purposeKey: string}; export type NotificationOption = | 'alert' | 'badge' | 'sound' | 'carPlay' | 'criticalAlert' | 'provisional' | 'providesAppSettings'; export type NotificationSettings = { alert?: boolean; badge?: boolean; sound?: boolean; carPlay?: boolean; criticalAlert?: boolean; provisional?: boolean; providesAppSettings?: boolean; lockScreen?: boolean; notificationCenter?: boolean; }; export type NotificationsResponse = { status: PermissionStatus; settings: NotificationSettings; };