import type { ApiClient } from '@playdrop/api-client';
import type { UserResponse } from '@playdrop/types';
import type { AppTask } from '../catalogue';
import type { AppBuildArtifacts } from './build';
export type AppUploadResult = {
    fileUnchanged?: boolean;
    metadataUnchanged?: boolean;
    sourceUnchanged?: boolean;
    ecsUnchanged?: boolean;
    serverUnchanged?: boolean;
    versionCreated?: boolean;
    version?: string;
    versionId?: number;
    versionNodeId?: string;
};
export type AppUploadOptions = {
    skipEcs?: boolean;
    skipReview?: boolean;
    clearTags?: boolean;
    creatorUsername?: string;
    token?: string | null;
    user?: UserResponse | null;
    runStagedUploadLaunchCheck?: boolean;
    launchCheckTimeoutMs?: number;
};
export declare function uploadApp(client: ApiClient, task: AppTask, artifacts: AppBuildArtifacts | null, options?: AppUploadOptions): Promise<AppUploadResult>;
