import { IOS_LANGUAGE } from "../setup/patches/common";
import { FileUpdatable, Patchable } from "./file";
type ProjectFileType = "resource" | "source";
declare const UPLOAD_SYMBOLS_PHASE = "Embrace Symbol Uploads";
declare const EMBRACE_INIT_OBJECTIVEC = "[EmbraceInitializer start];";
declare const EMBR_RUN_SCRIPT = "\"${SRCROOT}/../node_modules/@embrace-io/react-native/ios/scripts/run.sh\"";
declare const EMBR_NATIVE_POD = "pod 'EmbraceIO'";
declare const EMBR_KSCRASH_MODULAR_HEADER_POD = "\n# [Embrace] Make KSCrash modular so Swift can import it \npod 'KSCrash', :modular_headers => true\n";
declare const BUNDLE_PHASE_REGEXP: RegExp;
declare const MKDIR_SOURCEMAP_DIR = "mkdir -p \"$CONFIGURATION_BUILD_DIR/embrace-assets\"";
declare const EXPORT_SOURCEMAP_RN_VAR = "export SOURCEMAP_FILE=\"$CONFIGURATION_BUILD_DIR/embrace-assets/main.jsbundle.map\";";
declare const ENOENT_XCODE_PROJ_ERROR_MESSAGE = "Looks like the app name in package.json doesn't match your iOS project. If you used a custom package name (--package-name), double-check the iOS project name and rerun";
declare const EMBRACE_IMPORT_OBJECTIVEC: ({ bridgingHeader, }: {
    bridgingHeader?: string;
}) => string[];
declare const getAppDelegateByIOSLanguage: (projectName: string, language: IOS_LANGUAGE) => FileUpdatable | undefined;
declare const getPodFile: () => FileUpdatable;
declare const podfilePatchable: () => Promise<FileUpdatable>;
declare const embracePlistPatchable: () => Promise<FileUpdatable>;
declare const xcodePatchable: (projectName: string) => Promise<XcodeProject>;
declare const getXcodeProject: (path: string) => Promise<XcodeProject>;
declare class XcodeProject implements Patchable {
    project: any;
    path: string;
    constructor(path: string | undefined, project: any);
    buildPhaseObj(): {
        [key: string]: any;
    };
    hasLine(key: string, line: string | RegExp): boolean;
    modifyPhase(key: string, line: string | RegExp, add: string): void;
    findPhase(line: string | RegExp): string;
    findAndRemovePhase(match: string | RegExp): void;
    patch(): void;
    writeSync(): any;
    addFile(groupName: string, path: string, fileType?: ProjectFileType): void;
    getBridgingHeaderName(groupName: string): string;
    private getTargetHash;
    private getBuildProperty;
    private updateBuildProperty;
    removeResourceFile(groupName: string, path: string): void;
    private findHash;
    addBridgingHeader(projectName: string): Promise<boolean>;
}
declare const projectNameToBridgingHeader: (projectName: string) => string;
declare const getBridgingHeaderContents: () => string;
declare const findNameWithCaseSensitiveFromPath: (path: string, name: string) => string;
export { type ProjectFileType, EMBR_NATIVE_POD, EMBR_KSCRASH_MODULAR_HEADER_POD, BUNDLE_PHASE_REGEXP, MKDIR_SOURCEMAP_DIR, EXPORT_SOURCEMAP_RN_VAR, EMBR_RUN_SCRIPT, EMBRACE_INIT_OBJECTIVEC, UPLOAD_SYMBOLS_PHASE, ENOENT_XCODE_PROJ_ERROR_MESSAGE, EMBRACE_IMPORT_OBJECTIVEC, getAppDelegateByIOSLanguage, getPodFile, podfilePatchable, embracePlistPatchable, xcodePatchable, getXcodeProject, projectNameToBridgingHeader, getBridgingHeaderContents, findNameWithCaseSensitiveFromPath, XcodeProject, };
