export declare type ProjectConfig = {
    exp: ExpoConfig;
    pkg: PackageJSONConfig;
    rootConfig: AppJSONConfig;
};
export declare type AppJSONConfig = {
    expo: ExpoConfig;
    [key: string]: any;
};
export declare type BareAppConfig = {
    name: string;
    displayName: string;
    [key: string]: any;
};
export declare type ExpoConfig = {
    name?: string;
    slug?: string;
    sdkVersion?: string;
    platforms?: Array<Platform>;
    nodeModulesPath?: string;
    [key: string]: any;
};
export declare type ExpRc = {
    [key: string]: any;
};
export declare type Platform = 'android' | 'ios' | 'web';
export declare type PackageJSONConfig = {
    [key: string]: any;
};
export declare function isUsingYarn(projectRoot: string): boolean;
export declare function fileExistsAsync(file: string): Promise<boolean>;
export declare function fileExists(file: string): boolean;
export declare function resolveModule(request: string, projectRoot: string, exp: ExpoConfig): string;
export declare function findConfigFileAsync(projectRoot: string): Promise<{
    configPath: string;
    configName: string;
    configNamespace: 'expo';
}>;
export declare function findConfigFile(projectRoot: string): {
    configPath: string;
    configName: string;
    configNamespace: 'expo';
};
export declare function configFilenameAsync(projectRoot: string): Promise<string>;
export declare function configFilename(projectRoot: string): string;
export declare function readExpRcAsync(projectRoot: string): Promise<ExpRc>;
export declare function setCustomConfigPath(projectRoot: string, configPath: string): void;
export declare function createEnvironmentConstants(appManifest: ExpoConfig, pwaManifestLocation: string): {
    name: any;
    /**
     * Omit app.json properties that get removed during the native turtle build
     *
     * `facebookScheme`
     * `facebookAppId`
     * `facebookDisplayName`
     */
    facebookScheme: undefined;
    facebookAppId: undefined;
    facebookDisplayName: undefined;
    ios: undefined;
    android: undefined;
    web: any;
    slug?: string | undefined;
    sdkVersion?: string | undefined;
    platforms?: Platform[] | undefined;
    nodeModulesPath?: string | undefined;
};
export declare function getConfigForPWA(projectRoot: string, getAbsolutePath: (...pathComponents: string[]) => string, options: object): ExpoConfig;
export declare function getNameFromConfig(exp?: ExpoConfig): {
    appName: string;
    webName: string;
};
export declare function validateShortName(shortName: string): Promise<void>;
export declare function getWebOutputPath(config?: {
    [key: string]: any;
}): string;
export declare function ensurePWAConfig(appJSON: AppJSONConfig | ExpoConfig, getAbsolutePath: ((...pathComponents: string[]) => string) | undefined, options: object): ExpoConfig;
export declare function readConfigJson(projectRoot: string, skipValidation?: boolean): ProjectConfig;
export declare function readConfigJsonAsync(projectRoot: string, skipValidation?: boolean): Promise<ProjectConfig>;
export declare function writeConfigJsonAsync(projectRoot: string, options: Object): Promise<ProjectConfig>;