import type { UploadBundleResult } from '../schemas/bundle';
import type { OptionsUpload } from './upload_interface';
import { createSupabaseClient } from '../utils';
type SupabaseType = Awaited<ReturnType<typeof createSupabaseClient>>;
export type { UploadBundleResult };
export declare function getDefaultUploadChannel(appId: string, supabase: SupabaseType, hostWeb: string): Promise<string>;
export declare function uploadBundleInternal(preAppid: string, options: OptionsUpload, silent?: boolean): Promise<UploadBundleResult>;
/**
 * Validate mutually-exclusive and dependent upload options, failing fast (via
 * `uploadFail`) before any network call. Exported so the option-conflict guards
 * (e.g. `--fail-on-incompatible` + `--ignore-metadata-check`) can be unit-tested
 * directly.
 */
export declare function checkValidOptions(options: OptionsUpload): void;
export declare function uploadBundle(appid: string, options: OptionsUpload): Promise<{
    success: boolean;
    bundle: string;
    encryptionMethod: "none" | "v1" | "v2";
    checksum?: string | null | undefined;
    sessionKey?: string | undefined;
    ivSessionKey?: string | null | undefined;
    storageProvider?: string | undefined;
    skipped?: boolean | undefined;
    reason?: string | undefined;
    builderAction?: "launch-onboarding" | "launch-build" | undefined;
}>;
