/**
 * Client-side, display-only feature → model resolution.
 *
 * Mirrors a simplified version of cms-core's `resolveFeatureModel` so the UI can
 * preview which model a feature will use as the admin edits — including before
 * Save. The server resolver remains the authority for the AI runtime; this only
 * drives labels and capability warnings.
 */
import type { AiModelView } from './useAiSettings.js';
export declare function findModel(models: AiModelView[], id: string | undefined): AiModelView | undefined;
/** Required capabilities a model is missing. Unknown capability strings are ignored. */
export declare function missingCapabilities(model: AiModelView | undefined, required: string[]): string[];
export declare function capabilityLabel(key: string): string;
export interface EffectiveFeatureModel {
    /** The id that will be used (override, else the global default). */
    modelId: string;
    model?: AiModelView;
    /** True when the feature has its own model override (not the default). */
    isOverride: boolean;
    missingCapabilities: string[];
}
export declare function effectiveFeatureModel(override: string | undefined, defaultModelId: string, required: string[], models: AiModelView[]): EffectiveFeatureModel;
/** Whether a model satisfies every required capability and is selectable. */
export declare function isModelCompatible(model: AiModelView, required: string[]): boolean;
//# sourceMappingURL=featureModel.d.ts.map