import type { SupabaseClient } from '@supabase/supabase-js';
import type { Database } from '../types/supabase.types';
import type { AutoBumpLevel } from '../versionHelpers';
export type ManifestEntry = {
    file: string;
    hash: string;
};
export type ManifestDiff = {
    added: string[];
    removed: string[];
    changed: string[];
    counts: {
        added: number;
        removed: number;
        changed: number;
    };
};
export type AiBumpDecision = {
    level: AutoBumpLevel;
    reason: string;
};
export declare function diffManifests(local: ManifestEntry[], remote: ManifestEntry[]): ManifestDiff;
export declare function fetchRemoteManifest(supabase: SupabaseClient<Database>, versionId: number): Promise<ManifestEntry[]>;
export declare function resolveBaseVersionForAutoBump(supabase: SupabaseClient<Database>, appid: string, channels: string[]): Promise<{
    name: string;
    id: number;
} | null>;
export declare function requestAiBumpLevel(options: {
    apikey: string;
    appId: string;
    baseVersion: string;
    manifestDiff: ManifestDiff;
    nativeCompatibility?: {
        summary: string;
        breaking?: boolean;
    };
    supaHost?: string;
    supaAnon?: string;
}): Promise<AiBumpDecision>;
export declare function resolveAutoBumpLevelFromAi(ctx: {
    supabase: SupabaseClient<Database>;
    appid: string;
    channels: string[];
    path: string;
    apikey: string;
    options?: {
        supaHost?: string;
        supaAnon?: string;
    };
}): Promise<AiBumpDecision>;
