import * as ConfigUtils from '@expo/config'; import { AssetUtils } from './xdl'; declare type StartOptions = { reset?: boolean; nonInteractive?: boolean; nonPersistent?: boolean; maxWorkers?: number; webOnly?: boolean; }; declare type PublishOptions = { releaseChannel?: string; }; declare type Release = { fullName: string; channel: string; channelId: string; publicationId: string; appVersion: string; sdkVersion: string; publishedTime: string; platform: string; }; export declare type ProjectStatus = 'running' | 'ill' | 'exited'; export declare function currentStatus(projectDir: string): Promise<ProjectStatus>; export declare function getManifestUrlWithFallbackAsync(projectRoot: string): Promise<{ url: string; isUrlFallback: false; }>; export declare function getSlugAsync(projectRoot: string, options?: {}): Promise<string>; export declare function getLatestReleaseAsync(projectRoot: string, options: { releaseChannel: string; platform: string; }): Promise<Release | null>; export declare function mergeAppDistributions(projectRoot: string, sourceDirs: Array<string>, outputDir: string): Promise<void>; /** * Apps exporting for self hosting will have the files created in the project directory the following way: . ├── android-index.json ├── ios-index.json ├── assets │ └── 1eccbc4c41d49fd81840aef3eaabe862 └── bundles ├── android-01ee6e3ab3e8c16a4d926c91808d5320.js └── ios-ee8206cc754d3f7aa9123b7f909d94ea.js */ export declare function exportForAppHosting(projectRoot: string, publicUrl: string, assetUrl: string, outputDir: string, options?: { isDev?: boolean; dumpAssetmap?: boolean; dumpSourcemap?: boolean; publishOptions?: PublishOptions; }): Promise<void>; export declare function findReusableBuildAsync(releaseChannel: string, platform: string, sdkVersion: string, slug: string): Promise<{ downloadUrl?: string; canReuse: boolean; }>; export declare function publishAsync(projectRoot: string, options?: PublishOptions): Promise<{ url: string; ids: string[]; err?: string; }>; declare type BuildJob = unknown; declare type BuildStatusResult = { jobs: BuildJob[]; err: null; userHasBuiltAppBefore: boolean; userHasBuiltExperienceBefore: boolean; canPurchasePriorityBuilds: boolean; numberOfRemainingPriorityBuilds: number; hasUnlimitedPriorityBuilds: boolean; }; declare type BuildCreatedResult = { id: string; ids: string[]; priority: 'normal' | 'high'; canPurchasePriorityBuilds: boolean; numberOfRemainingPriorityBuilds: number; hasUnlimitedPriorityBuilds: boolean; }; export declare function buildAsync(projectRoot: string, options?: { current?: boolean; mode?: string; platform?: 'android' | 'ios' | 'all'; expIds?: Array<string>; type?: string; releaseChannel?: string; bundleIdentifier?: string; publicUrl?: string; sdkVersion?: string; }): Promise<BuildStatusResult | BuildCreatedResult>; export declare function startReactNativeServerAsync(projectRoot: string, options?: StartOptions, verbose?: boolean): Promise<void>; export declare function stopReactNativeServerAsync(projectRoot: string): Promise<void>; export declare function startExpoServerAsync(projectRoot: string): Promise<void>; export declare function stopExpoServerAsync(projectRoot: string): Promise<void>; export declare function startTunnelsAsync(projectRoot: string): Promise<void>; export declare function stopTunnelsAsync(projectRoot: string): Promise<void>; export declare function setOptionsAsync(projectRoot: string, options: { packagerPort?: number; }): Promise<void>; export declare function getUrlAsync(projectRoot: string, options?: object): Promise<string>; export declare function optimizeAsync(projectRoot: string | undefined, options: AssetUtils.OptimizationOptions): Promise<void>; export declare function startAsync(projectRoot: string, options?: StartOptions, verbose?: boolean): Promise<ConfigUtils.ExpoConfig>; export declare function stopWebOnlyAsync(projectDir: string): Promise<void>; export declare function stopAsync(projectDir: string): Promise<void>; export {};