import type { AppVersionInsert, AppVersionRow } from '../types/api';
import type { CapgoClient } from '../utils';
import { invokeCapgoCliApi } from '../utils';
interface VersionOptions {
    silent?: boolean;
    apikey?: string;
    apiHost?: string;
    /** Injectable for unit tests; defaults to invokeCapgoCliApi. */
    invoke?: typeof invokeCapgoCliApi;
}
interface DeleteSpecificVersionOptions extends VersionOptions {
    autoUnlink?: boolean;
}
interface CapgoHttpOptions {
    apikey: string;
    silent?: boolean;
    apiHost?: string;
}
export type BundleVersionLookupRow = Pick<AppVersionRow, 'id' | 'name' | 'checksum' | 'deleted' | 'created_at'>;
export declare function fetchBundleVersionRow(apikey: string, appId: string, version: string, options?: VersionOptions & {
    includeDeleted?: boolean;
}): Promise<BundleVersionLookupRow | null>;
export type UpsertAppVersionInput = Pick<AppVersionInsert, 'app_id' | 'name'> & Partial<Omit<AppVersionInsert, 'app_id' | 'name'>>;
export declare function upsertAppVersion(apikey: string, versionData: UpsertAppVersionInput, options?: VersionOptions): Promise<number>;
export declare function deleteAppVersion(client: CapgoClient | null, appid: string, bundle: string, options?: VersionOptions): Promise<void>;
export declare function deleteSpecificVersion(client: CapgoClient, appid: string, bundle: string, options?: DeleteSpecificVersionOptions): Promise<void>;
export declare function displayBundles(data: (AppVersionRow & {
    keep?: string;
})[], silent?: boolean): void;
export declare function getActiveAppVersions(apikeyOrClient: string | CapgoClient, appid: string, options?: VersionOptions): Promise<AppVersionRow[]>;
export declare function getChannelsVersion(options: CapgoHttpOptions, appid: string): Promise<(number | null)[]>;
export declare function getVersionData(apikeyOrClient: string | CapgoClient, appid: string, bundle: string, options?: VersionOptions): Promise<AppVersionRow>;
export {};
