1import { ExpoConfig } from '@expo/config-types';
2import { ConfigPlugin } from '../Plugin.types';
3import { InfoPlist } from './IosConfig.types';
4export declare const withBundleIdentifier: ConfigPlugin<{
5    bundleIdentifier?: string;
6}>;
7declare function getBundleIdentifier(config: Pick<ExpoConfig, 'ios'>): string | null;
8/**
9 * In Turtle v1 we set the bundleIdentifier directly on Info.plist rather
10 * than in pbxproj
11 */
12declare function setBundleIdentifier(config: ExpoConfig, infoPlist: InfoPlist): InfoPlist;
13/**
14 * Gets the bundle identifier defined in the Xcode project found in the project directory.
15 *
16 * A bundle identifier is stored as a value in XCBuildConfiguration entry.
17 * Those entries exist for every pair (build target, build configuration).
18 * Unless target name is passed, the first target defined in the pbxproj is used
19 * (to keep compatibility with the inaccurate legacy implementation of this function).
20 * The build configuration is usually 'Release' or 'Debug'. However, it could be any arbitrary string.
21 * Defaults to 'Release'.
22 *
23 * @param {string} projectRoot Path to project root containing the ios directory
24 * @param {string} targetName Target name
25 * @param {string} buildConfiguration Build configuration. Defaults to 'Release'.
26 * @returns {string | null} bundle identifier of the Xcode project or null if the project is not configured
27 */
28declare function getBundleIdentifierFromPbxproj(projectRoot: string, { targetName, buildConfiguration, }?: {
29    targetName?: string;
30    buildConfiguration?: string;
31}): string | null;
32/**
33 * Updates the bundle identifier for a given pbxproj
34 *
35 * @param {string} pbxprojPath Path to pbxproj file
36 * @param {string} bundleIdentifier Bundle identifier to set in the pbxproj
37 * @param {boolean} [updateProductName=true]  Whether to update PRODUCT_NAME
38 */
39declare function updateBundleIdentifierForPbxproj(pbxprojPath: string, bundleIdentifier: string, updateProductName?: boolean): void;
40/**
41 * Updates the bundle identifier for pbx projects inside the ios directory of the given project root
42 *
43 * @param {string} projectRoot Path to project root containing the ios directory
44 * @param {string} bundleIdentifier Desired bundle identifier
45 * @param {boolean} [updateProductName=true]  Whether to update PRODUCT_NAME
46 */
47declare function setBundleIdentifierForPbxproj(projectRoot: string, bundleIdentifier: string, updateProductName?: boolean): void;
48declare function resetAllPlistBundleIdentifiers(projectRoot: string): void;
49declare function resetPlistBundleIdentifier(plistPath: string): void;
50export { getBundleIdentifier, setBundleIdentifier, getBundleIdentifierFromPbxproj, updateBundleIdentifierForPbxproj, setBundleIdentifierForPbxproj, resetAllPlistBundleIdentifiers, resetPlistBundleIdentifier, };
51