1082815dcSEvan Baconimport type { ExpoConfig } from '@expo/config-types';
2082815dcSEvan Baconimport type { JSONObject } from '@expo/json-file';
3082815dcSEvan Baconimport type { XcodeProject } from 'xcode';
4082815dcSEvan Baconimport type { ConfigPlugin, Mod } from '../Plugin.types';
5082815dcSEvan Baconimport type { ExpoPlist, InfoPlist } from '../ios/IosConfig.types';
6082815dcSEvan Baconimport type { AppDelegateProjectFile } from '../ios/Paths';
7*9b26454eSBartosz Kaszubowskitype MutateInfoPlistAction = (expo: ExpoConfig, infoPlist: InfoPlist) => Promise<InfoPlist> | InfoPlist;
8082815dcSEvan Bacon/**
9082815dcSEvan Bacon * Helper method for creating mods from existing config functions.
10082815dcSEvan Bacon *
11082815dcSEvan Bacon * @param action
12082815dcSEvan Bacon */
13082815dcSEvan Baconexport declare function createInfoPlistPlugin(action: MutateInfoPlistAction, name?: string): ConfigPlugin;
14082815dcSEvan Baconexport declare function createInfoPlistPluginWithPropertyGuard(action: MutateInfoPlistAction, settings: {
15082815dcSEvan Bacon    infoPlistProperty: string;
16082815dcSEvan Bacon    expoConfigProperty: string;
17082815dcSEvan Bacon    expoPropertyGetter?: (config: ExpoConfig) => string;
18082815dcSEvan Bacon}, name?: string): ConfigPlugin;
19*9b26454eSBartosz Kaszubowskitype MutateEntitlementsPlistAction = (expo: ExpoConfig, entitlements: JSONObject) => JSONObject;
20082815dcSEvan Bacon/**
21082815dcSEvan Bacon * Helper method for creating mods from existing config functions.
22082815dcSEvan Bacon *
23082815dcSEvan Bacon * @param action
24082815dcSEvan Bacon */
25082815dcSEvan Baconexport declare function createEntitlementsPlugin(action: MutateEntitlementsPlistAction, name: string): ConfigPlugin;
26082815dcSEvan Bacon/**
27082815dcSEvan Bacon * Provides the AppDelegate file for modification.
28082815dcSEvan Bacon *
29082815dcSEvan Bacon * @param config
30082815dcSEvan Bacon * @param action
31082815dcSEvan Bacon */
32082815dcSEvan Baconexport declare const withAppDelegate: ConfigPlugin<Mod<AppDelegateProjectFile>>;
33082815dcSEvan Bacon/**
34082815dcSEvan Bacon * Provides the Info.plist file for modification.
35082815dcSEvan Bacon * Keeps the config's expo.ios.infoPlist object in sync with the data.
36082815dcSEvan Bacon *
37082815dcSEvan Bacon * @param config
38082815dcSEvan Bacon * @param action
39082815dcSEvan Bacon */
40082815dcSEvan Baconexport declare const withInfoPlist: ConfigPlugin<Mod<InfoPlist>>;
41082815dcSEvan Bacon/**
42082815dcSEvan Bacon * Provides the main .entitlements file for modification.
43082815dcSEvan Bacon * Keeps the config's expo.ios.entitlements object in sync with the data.
44082815dcSEvan Bacon *
45082815dcSEvan Bacon * @param config
46082815dcSEvan Bacon * @param action
47082815dcSEvan Bacon */
48082815dcSEvan Baconexport declare const withEntitlementsPlist: ConfigPlugin<Mod<JSONObject>>;
49082815dcSEvan Bacon/**
50082815dcSEvan Bacon * Provides the Expo.plist for modification.
51082815dcSEvan Bacon *
52082815dcSEvan Bacon * @param config
53082815dcSEvan Bacon * @param action
54082815dcSEvan Bacon */
55082815dcSEvan Baconexport declare const withExpoPlist: ConfigPlugin<Mod<ExpoPlist>>;
56082815dcSEvan Bacon/**
57082815dcSEvan Bacon * Provides the main .xcodeproj for modification.
58082815dcSEvan Bacon *
59082815dcSEvan Bacon * @param config
60082815dcSEvan Bacon * @param action
61082815dcSEvan Bacon */
62082815dcSEvan Baconexport declare const withXcodeProject: ConfigPlugin<Mod<XcodeProject>>;
63082815dcSEvan Bacon/**
64082815dcSEvan Bacon * Provides the Podfile.properties.json for modification.
65082815dcSEvan Bacon *
66082815dcSEvan Bacon * @param config
67082815dcSEvan Bacon * @param action
68082815dcSEvan Bacon */
69082815dcSEvan Baconexport declare const withPodfileProperties: ConfigPlugin<Mod<Record<string, string>>>;
70082815dcSEvan Baconexport {};
71