import StandaloneBuildFlags from './StandaloneBuildFlags';
declare type StandaloneContextDataType = 'user' | 'service';
declare type StandaloneContextTestEnvironment = 'none' | 'local' | 'ci';
/**
 *  A user context is used when we are configuring a standalone app locally on a user's machine,
 *  such as during `exp detach`.
 */
export declare type StandaloneContextDataUser = {
    projectPath: string;
    exp: any;
};
/**
 *  A service context is used when we are generating a standalone app remotely on an Expo
 *  service machine, such as during `exp build`.
 */
export declare type StandaloneContextDataService = {
    expoSourcePath: string;
    archivePath: string | null;
    manifest: any;
    privateConfig: any;
    testEnvironment: StandaloneContextTestEnvironment;
    shellAppSdkVersion: string;
};
declare class StandaloneContext {
    type?: StandaloneContextDataType;
    data?: StandaloneContextDataUser | StandaloneContextDataService;
    config: any;
    published?: {
        url?: string;
        releaseChannel: string;
    };
    build?: StandaloneBuildFlags;
    static createUserContext: (projectPath: string, exp: any, publishedUrl?: string | undefined) => StandaloneContext;
    static createServiceContext: (expoSourcePath: string, archivePath: string | null, manifest: any, privateConfig: any, testEnvironment: StandaloneContextTestEnvironment, build: StandaloneBuildFlags, publishedUrl: string, releaseChannel: string, shellAppSdkVersion: string) => StandaloneContext;
    /**
     *  On iOS we begin configuring standalone apps before we have any information about the
     *  project's manifest.
     */
    isAnonymous: () => boolean;
}
export default StandaloneContext;