import { type ModelBadgeKind } from './badges';
import type { PickerTranslator } from './i18n';
import type { CostTier, DiscoveryModel, ModelGroup, ModelTag } from './types';
export interface DeriveModelTagsContext {
    i18n?: PickerTranslator;
    homeRegion?: string;
    recommendedModelIds?: readonly string[];
    previewModelIds?: readonly string[];
    badgesFor?: (model: DiscoveryModel) => readonly ModelBadgeKind[];
    customTagsFor?: (model: DiscoveryModel) => readonly ModelTag[];
}
export declare function deriveModelTags(model: DiscoveryModel, context?: DeriveModelTagsContext): ModelTag[];
export declare function defaultCostTier(model: DiscoveryModel): CostTier | null;
export declare function getSubstitutionTarget(model: DiscoveryModel): string | null;
export type GroupStrategy = 'subscription' | 'vendor' | 'flat';
export interface GroupModelsContext {
    recommendedModelIds?: readonly string[];
    previewModelIds?: readonly string[];
    i18n?: PickerTranslator;
}
export declare function groupModels(models: DiscoveryModel[], strategy?: GroupStrategy, context?: GroupModelsContext): ModelGroup[];
export declare function filterModels(models: DiscoveryModel[], query: string): DiscoveryModel[];
//# sourceMappingURL=utils.d.ts.map