export type ColorsFromAssets = ColorAppConfig & ColorConfig;
export interface SetupConfig {
    cli: {
        version: string;
        requireCommit: boolean;
    };
    build: {
        production: {
            distribution: string;
            ios: {
                buildConfiguration: "Release" | "Debug";
                bundleIdentifier: string;
            };
            android: {
                gradleCommand: string;
            };
        };
        staging: {
            distribution: string;
            ios: {
                buildConfiguration: string;
                bundleIdentifier: string;
                simulator: boolean;
            };
            android: {
                gradleCommand: string;
                buildType: string;
                withoutCredentials: boolean;
            };
            env: {
                environment: string;
                branding: {
                    logoURL: string;
                };
                baseURL: {
                    native: string;
                    web: string;
                };
                verbiage: {
                    displayName: string;
                    primaryTagline: string;
                    secondaryTagline: string;
                };
                jwPlayer: {
                    playerKey: string;
                    playerSecret: string;
                };
                authentication: {
                    login: {
                        email: string;
                        password: string;
                        phoneNumber: string;
                        firstName: string;
                        lastName: string;
                    };
                    register: {
                        email: string;
                        password: string;
                        phoneNumber: string;
                        firstName: string;
                        lastName: string;
                    };
                };
                stripeDetails: {
                    secretKey: string;
                    publishableKey: string;
                };
                apiKeys: {
                    logRocketSlug: string;
                };
            };
        };
        development: {
            distribution: string;
            developmentClient: boolean;
            ios: {
                buildConfiguration: string;
                bundleIdentifier: string;
                simulator: boolean;
            };
            android: {
                gradleCommand: string;
                withoutCredentials: boolean;
            };
            env: {
                environment: string;
                branding: {
                    logoURL: string;
                };
                baseURL: {
                    native: string;
                    web: string;
                };
                verbiage: {
                    displayName: string;
                    primaryTagline: string;
                    secondaryTagline: string;
                };
                jwPlayer: {
                    playerKey: string;
                    playerSecret: string;
                };
                authentication: {
                    login: {
                        email: string;
                        password: string;
                        phoneNumber: string;
                        firstName: string;
                        lastName: string;
                    };
                    register: {
                        email: string;
                        password: string;
                        phoneNumber: string;
                        firstName: string;
                        lastName: string;
                    };
                };
                stripeDetails: {
                    secretKey: string;
                    publishableKey: string;
                };
                apiKeys: {
                    logRocketSlug: string;
                };
            };
        };
        local: {
            distribution: string;
            developmentClient: boolean;
            ios: {
                buildConfiguration: string;
                bundleIdentifier: string;
                simulator: boolean;
            };
            android: {
                gradleCommand: string;
                withoutCredentials: boolean;
            };
            env: {
                environment: string;
                branding: {
                    logoURL: string;
                };
                baseURL: {
                    native: string;
                    web: string;
                };
                verbiage: {
                    displayName: string;
                    primaryTagline: string;
                    secondaryTagline: string;
                };
                jwPlayer: {
                    playerKey: string;
                    playerSecret: string;
                };
                authentication: {
                    login: {
                        email: string;
                        password: string;
                        phoneNumber: string;
                        firstName: string;
                        lastName: string;
                    };
                    register: {
                        email: string;
                        password: string;
                        phoneNumber: string;
                        firstName: string;
                        lastName: string;
                    };
                };
                stripeDetails: {
                    secretKey: string;
                    publishableKey: string;
                };
                apiKeys: {
                    logRocketSlug: string;
                };
            };
        };
    };
    submit: {
        production: {
            ios: {
                appStoreConnectApiKey: string;
                ascAppId: string;
                version: string;
                buildNumber: string;
                releaseNotes: string;
                screenshots: string[];
            };
            android: {
                serviceAccountKeyPath: string;
                track: string;
                packageName: string;
                versionCode: number;
                releaseNotes: string;
            };
        };
        staging: {
            ios: {
                appStoreConnectApiKey: string;
                ascAppId: string;
                version: string;
                buildNumber: string;
                releaseNotes: string;
                screenshots: string[];
            };
            android: {
                serviceAccountKeyPath: string;
                track: string;
                packageName: string;
                versionCode: number;
                releaseNotes: string;
            };
        };
        development: {
            ios: {
                appStoreConnectApiKey: string;
                ascAppId: string;
                version: string;
                buildNumber: string;
                releaseNotes: string;
                screenshots: string[];
            };
            android: {
                serviceAccountKeyPath: string;
                track: string;
                packageName: string;
                versionCode: number;
                releaseNotes: string;
            };
        };
    };
}
interface IosEasBuildConfig {
    buildConfiguration: string;
    bundleIdentifier: string;
    simulator: boolean;
}
interface AndroidEasBuildConfig {
    gradleCommand: ":app:bundleDebug" | ":app:bundleRelease" | ":app:assembleDebug" | ":app:assembleRelease" | string;
    buildType: "release" | "debug" | string;
    withoutCredentials: boolean;
}
interface EasBuildConfig {
    distribution: "store" | "internal";
    developmentClient: boolean;
    ios: IosEasBuildConfig;
    android: AndroidEasBuildConfig;
    env?: AppConfigFromEnv;
}
interface EasConfig {
    cli: {
        version: string;
        requireCommit: boolean;
    };
    build: {
        production: EasBuildConfig;
        staging: EasBuildConfig;
        development: EasBuildConfig;
        local: {
            distribution: string;
            developmentClient: boolean;
            ios: {
                buildConfiguration: string;
                bundleIdentifier: string;
                simulator: boolean;
            };
            android: {
                gradleCommand: string;
                withoutCredentials: boolean;
            };
            env: AppConfigFromEnv;
        };
    };
    submit: {
        production?: EasSubmitConfig;
        staging?: EasSubmitConfig;
        dev?: EasSubmitConfig;
    };
}
interface AndroidSubmitConfig {
    serviceAccountKeyPath: string;
    track: string;
    packageName: string;
    versionCode: number;
    releaseNotes: string;
}
interface IosSubmitConfig {
    appStoreConnectApiKey: string;
    ascAppId: string;
    version: string;
    buildNumber: string;
    releaseNotes: string;
    screenshots: string[];
}
interface EasSubmitConfig {
    production: {
        ios: IosSubmitConfig;
        android: AndroidSubmitConfig;
    };
    staging: {
        ios: IosSubmitConfig;
        android: AndroidSubmitConfig;
    };
    development: {
        ios: IosSubmitConfig;
        android: AndroidSubmitConfig;
    };
}
export type PartialEasConfig = Partial<EasConfig>;
export interface BundleConfig {
    colorsPath: string;
    envVariables: AppConfigFromEnv;
    imagesPath: string;
    appName: string;
    title: string;
    domainName: string;
    versionsPath?: string;
    projectId: string;
    easConfig?: PartialEasConfig;
}
export interface AppConfigFromEnv {
    environment: EnvType;
    baseURL: {
        native: string;
        web: string;
    };
    branding: {
        logoURL: string;
    };
    verbiage: {
        displayName: string;
        primaryTagline: string;
        secondaryTagline: string;
    };
    authentication: {
        login: {
            email: string;
            password: string;
            phoneNumber: string;
            firstName: string;
            lastName: string;
        };
        register: {
            email: string;
            password: string;
            phoneNumber: string;
            firstName: string;
            lastName: string;
        };
    };
    apiKeys: {
        [key: string]: string;
    };
}
export interface VersionsJSON {
    production: EnvironmentConfig;
    staging: EnvironmentConfig;
    development: EnvironmentConfig;
}
export interface AndroidVersion {
    versionCode: number;
}
export interface IOSVersion {
    buildNumber: string;
}
export interface AppVersion {
    version: string;
}
export interface EnvironmentConfig {
    ios: IOSVersion;
    android: AndroidVersion;
    app: AppVersion;
}
export declare enum EnvEumFromPackage {
    production = "production",
    staging = "staging",
    development = "development",
    local = "local"
}
export type EnvType = "production" | "staging" | "development" | "local" | EnvEumFromPackage;
export interface ColorMode {
    light: string;
    dark?: string;
}
export interface SplashConfig {
    backgroundColor: ColorMode;
}
export interface AdaptiveIconConfig {
    backgroundColor: ColorMode;
}
export interface StatusBarConfig {
    backgroundColor: ColorMode;
}
export interface NavigationBarConfig {
    backgroundColor: ColorMode;
}
export interface ColorConfig {
    statusBar: StatusBarConfig;
    navigationBar: NavigationBarConfig;
    primaryColor: ColorMode;
}
export interface ColorAppConfig {
    splash: SplashConfig;
    adaptiveIcon: AdaptiveIconConfig;
    iconColor: ColorMode;
    themeColor: string;
}
export interface ExtraConfig {
    eas: {
        projectId: string;
    };
    env: AppConfigFromEnv;
}
export interface PieceOfConfig extends Partial<any> {
    name: string;
    slug: string;
    version?: string;
    icon: string;
    scheme: string;
    android: {
        package: string;
        versionCode?: number;
        backgroundColor: string;
        splash: {
            image: string;
            backgroundColor: string;
            resizeMode?: "cover" | "contain";
        };
        adaptiveIcon: {
            foregroundImage: string;
        };
        icon: string;
    };
    web: {
        backgroundColor: string;
        splash: {
            image: string;
            backgroundColor: string;
            resizeMode?: "cover" | "contain";
        };
        shortName: string;
        favicon: string;
        themeColor: string;
    };
    ios: {
        bundleIdentifier: string;
        backgroundColor: string;
        buildNumber?: string;
        splash: {
            image: string;
            resizeMode?: "cover" | "contain";
            backgroundColor: string;
        };
        icon: string;
    };
    extra?: ExtraConfig;
}
export {};
