import type { BundleCompatibilityOptions } from '../schemas/bundle'; import type { Compatibility } from '../utils'; interface CompatibilityResult { finalCompatibility: Compatibility[]; hasIncompatible: boolean; resolvedAppId: string; channel: string; } export declare function checkCompatibilityInternal(appId: string, options: BundleCompatibilityOptions, silent?: boolean): Promise; export declare function checkCompatibility(appId: string, options: BundleCompatibilityOptions): Promise; export type UploadCompatibilityResult = 'compatible' | 'incompatible' | 'skipped'; export interface UploadCompatibilitySummary { result: UploadCompatibilityResult; incompatibleCount: number; reasons: string[]; } /** * Summarize an upload's compatibility outcome for analytics. * * `finalCompatibility` is `undefined` when the comparison did not run (new * channel / no remote native metadata / `--ignore-metadata-check`), which is * reported as `skipped` so the funnel never silently counts a skip as * `compatible`. */ export declare function summarizeUploadCompatibility(finalCompatibility: Compatibility[] | undefined): UploadCompatibilitySummary; export {};