react-native-permissions
Version:
An unified permissions API for React Native on iOS, Android and Windows
51 lines (42 loc) • 1.39 kB
text/typescript
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> = T[keyof T];
export type AndroidPermission = ValueOf<AndroidPermissionMap>;
export type IOSPermission = ValueOf<IOSPermissionMap>;
export type WindowsPermission = ValueOf<WindowsPermissionMap>;
export type Permission = AndroidPermission | IOSPermission | WindowsPermission;
export type PermissionStatus = ValueOf<ResultMap>;
export type RationaleObject = {
title: string;
message: string;
buttonPositive: string;
buttonNegative?: string;
};
export type Rationale = RationaleObject | (() => Promise<boolean>);
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;
};