1import { ExpoConfig } from '@expo/config-types';
2import { ConfigPlugin } from '../Plugin.types';
3import { AndroidManifest, ManifestUsesPermission } from './Manifest';
4export declare const withPermissions: ConfigPlugin<string[] | void>;
5/** Given a permission or list of permissions, block permissions in the final `AndroidManifest.xml` to ensure no installed library or plugin can add them. */
6export declare const withBlockedPermissions: ConfigPlugin<string[] | string>;
7export declare const withInternalBlockedPermissions: ConfigPlugin;
8export declare function addBlockedPermissions(androidManifest: AndroidManifest, permissions: string[]): AndroidManifest;
9export declare function getAndroidPermissions(config: Pick<ExpoConfig, 'android'>): string[];
10export declare function setAndroidPermissions(config: Pick<ExpoConfig, 'android'>, androidManifest: AndroidManifest): AndroidManifest;
11export declare function isPermissionAlreadyRequested(permission: string, manifestPermissions: ManifestUsesPermission[]): boolean;
12export declare function addPermissionToManifest(permission: string, manifestPermissions: ManifestUsesPermission[]): ManifestUsesPermission[];
13export declare function removePermissions(androidManifest: AndroidManifest, permissionNames?: string[]): void;
14export declare function addPermission(androidManifest: AndroidManifest, permissionName: string): void;
15export declare function ensurePermissions(androidManifest: AndroidManifest, permissionNames: string[]): {
16    [permission: string]: boolean;
17};
18export declare function ensurePermission(androidManifest: AndroidManifest, permissionName: string): boolean;
19export declare function ensurePermissionNameFormat(permissionName: string): string;
20export declare function getPermissions(androidManifest: AndroidManifest): string[];
21