1import type { ExpoConfig } from '@expo/config-types';
2import type { JSONObject } from '@expo/json-file';
3import type { XcodeProject } from 'xcode';
4import type { ConfigPlugin, Mod } from '../Plugin.types';
5import type { ExpoPlist, InfoPlist } from '../ios/IosConfig.types';
6import type { AppDelegateProjectFile } from '../ios/Paths';
7type MutateInfoPlistAction = (expo: ExpoConfig, infoPlist: InfoPlist) => Promise<InfoPlist> | InfoPlist;
8/**
9 * Helper method for creating mods from existing config functions.
10 *
11 * @param action
12 */
13export declare function createInfoPlistPlugin(action: MutateInfoPlistAction, name?: string): ConfigPlugin;
14export declare function createInfoPlistPluginWithPropertyGuard(action: MutateInfoPlistAction, settings: {
15    infoPlistProperty: string;
16    expoConfigProperty: string;
17    expoPropertyGetter?: (config: ExpoConfig) => string;
18}, name?: string): ConfigPlugin;
19type MutateEntitlementsPlistAction = (expo: ExpoConfig, entitlements: JSONObject) => JSONObject;
20/**
21 * Helper method for creating mods from existing config functions.
22 *
23 * @param action
24 */
25export declare function createEntitlementsPlugin(action: MutateEntitlementsPlistAction, name: string): ConfigPlugin;
26/**
27 * Provides the AppDelegate file for modification.
28 *
29 * @param config
30 * @param action
31 */
32export declare const withAppDelegate: ConfigPlugin<Mod<AppDelegateProjectFile>>;
33/**
34 * Provides the Info.plist file for modification.
35 * Keeps the config's expo.ios.infoPlist object in sync with the data.
36 *
37 * @param config
38 * @param action
39 */
40export declare const withInfoPlist: ConfigPlugin<Mod<InfoPlist>>;
41/**
42 * Provides the main .entitlements file for modification.
43 * Keeps the config's expo.ios.entitlements object in sync with the data.
44 *
45 * @param config
46 * @param action
47 */
48export declare const withEntitlementsPlist: ConfigPlugin<Mod<JSONObject>>;
49/**
50 * Provides the Expo.plist for modification.
51 *
52 * @param config
53 * @param action
54 */
55export declare const withExpoPlist: ConfigPlugin<Mod<ExpoPlist>>;
56/**
57 * Provides the main .xcodeproj for modification.
58 *
59 * @param config
60 * @param action
61 */
62export declare const withXcodeProject: ConfigPlugin<Mod<XcodeProject>>;
63/**
64 * Provides the Podfile.properties.json for modification.
65 *
66 * @param config
67 * @param action
68 */
69export declare const withPodfileProperties: ConfigPlugin<Mod<Record<string, string>>>;
70export {};
71