import type { BuildNeededOptions } from '../schemas/build';
import type { Compatibility } from '../schemas/common';
type VersionChangeType = 'major' | 'minor' | 'patch' | 'prerelease' | 'changed' | 'same' | 'new' | 'removed';
interface PublicChannelRow {
    name: string | null;
}
export interface BuildNeededResult {
    required: boolean;
    resolvedAppId: string;
    channel: string;
    finalCompatibility: Compatibility[];
}
export declare const BUILD_NEEDED_ERROR_EXIT_CODE = 2;
interface FormatOptions {
    color?: boolean;
}
export declare function getConfiguredDefaultChannel(config: unknown): string | undefined;
export declare function selectDefaultChannelName(rows: PublicChannelRow[]): string;
export declare function getVersionChangeType(entry: Compatibility): VersionChangeType;
export declare function getNativeDiffLabel(entry: Compatibility): string;
export declare function isBuildNeeded(finalCompatibility: Compatibility[]): boolean;
export declare function getBuildNeededExitCode(required: boolean): number;
export declare function formatShortBuildNeeded(required: boolean): string;
export declare function formatBuildNeededTable(finalCompatibility: Compatibility[], options?: FormatOptions): string;
export declare function formatVerboseBuildNeeded(result: BuildNeededResult, options?: FormatOptions): string;
export declare function getBuildNeeded(appId: string | undefined, options: BuildNeededOptions): Promise<BuildNeededResult>;
export declare function checkBuildNeeded(appId: string | undefined, options: BuildNeededOptions): Promise<void>;
export {};
