1import { PermissionResponse, PermissionStatus, PermissionExpiration, PermissionHookOptions } from 'expo-modules-core';
2/**
3 * Requests the user to authorize or deny access to app-related data that can be used for tracking
4 * the user or the device. Examples of data used for tracking include email address, device ID,
5 * advertising ID, etc. On iOS 14.5 and above, if the user denies this permission, any attempt to
6 * collect the IDFA will return a string of 0s.
7 *
8 * The system remembers the user’s choice and doesn’t prompt again unless a user uninstalls and then
9 * reinstalls the app on the device.
10 *
11 * On Android, web, and iOS 13 and below, this method always returns that the permission was
12 * granted.
13 * @example
14 * ```typescript
15 * const { granted } = await requestTrackingPermissionsAsync();
16 *
17 * if (granted) {
18 *   // Your app is authorized to track the user or their device
19 * }
20 * ```
21 */
22export declare function requestTrackingPermissionsAsync(): Promise<PermissionResponse>;
23/**
24 * Checks whether or not the user has authorized the app to access app-related data that can be used
25 * for tracking the user or the device. See `requestTrackingPermissionsAsync` for more details.
26 *
27 * On Android, web, and iOS 13 and below, this method always returns that the permission was
28 * granted.
29 *
30 * @example
31 * ```typescript
32 * const { granted } = await getTrackingPermissionsAsync();
33 *
34 * if (granted) {
35 *   // Your app is authorized to track the user or their device
36 * }
37 * ```
38 */
39export declare function getTrackingPermissionsAsync(): Promise<PermissionResponse>;
40/**
41 * Check or request the user to authorize or deny access to app-related data that can be used for tracking
42 * the user or the device. Examples of data used for tracking include email address, device ID,
43 * advertising ID, etc. On iOS 14.5 and above, if the user denies this permission, any attempt to
44 * collect the IDFA will return a string of 0s.
45 *
46 * The system remembers the user’s choice and doesn’t prompt again unless a user uninstalls and then
47 * reinstalls the app on the device.
48 *
49 * On Android, web, and iOS 13 and below, this method always returns that the permission was
50 * granted.
51 * @example
52 * ```ts
53 * const [status, requestPermission] = useTrackingPermissions();
54 * ```
55 */
56export declare const useTrackingPermissions: (options?: PermissionHookOptions<object> | undefined) => [PermissionResponse | null, () => Promise<PermissionResponse>, () => Promise<PermissionResponse>];
57/**
58 * Returns whether the TrackingTransparency API is available on the current device.
59 *
60 * @returns Currently this is `true` on iOS 14 and above only. On devices where the
61 * Tracking Transparency API is unavailable, the get and request permissions methods will always
62 * resolve to `granted`.
63 */
64export declare function isAvailable(): boolean;
65export { PermissionResponse, PermissionStatus, PermissionExpiration, PermissionHookOptions };
66//# sourceMappingURL=TrackingTransparency.d.ts.map