import type { ApiClient } from '@playdrop/api-client';
import type { UserResponse } from '@playdrop/types';
import type { AppTask } from '../catalogue';
import { collectAppValidationWarnings, validateAppTask, runFormatScript } from './validate';
import { buildApp, type AppBuildArtifacts } from './build';
import { uploadApp, type AppUploadResult } from './upload';
import { formatHostedLaunchCheckFailure, runLocalHostedLaunchCheck, runUploadedHostedLaunchCheck, type HostedLaunchCheckResult } from './launchCheck';
export type AppPipelineResult = {
    artifacts: AppBuildArtifacts | null;
    upload: AppUploadResult;
    warnings: string[];
};
export type AppPipelineOptions = {
    skipEcs?: boolean;
    skipReview?: boolean;
    clearTags?: boolean;
    creatorUsername?: string;
    apiBase?: string;
    webBase?: string | null;
    token?: string | null;
    user?: UserResponse | null;
    runLocalLaunchCheck?: boolean;
    runStagedUploadLaunchCheck?: boolean;
    launchCheckTimeoutMs?: number;
    ensureRegisteredAppShell?: boolean;
};
export declare function runAppPipeline(client: ApiClient, task: AppTask, options?: AppPipelineOptions): Promise<AppPipelineResult>;
export { collectAppValidationWarnings, validateAppTask, buildApp, uploadApp, runFormatScript };
export { formatHostedLaunchCheckFailure, runLocalHostedLaunchCheck, runUploadedHostedLaunchCheck, type HostedLaunchCheckResult, };
