import { ModelHint, ModelSpec, Provider } from "@graphorin/core"; //#region src/preferred-model/index.d.ts /** * Result returned by {@link resolvePreferredModel}. * * @stable */ interface PreferredModelResolution { readonly resolvedProvider: Provider; readonly resolvedModelId: string; readonly source: 'prepare-step' | 'tier-map' | 'spec' | 'agent-preferred' | 'fallthrough-default' /** * The run was invoked with `AgentCallOptions.pinnedProvider` - * invocation-scoped intent that wins over every preference ladder * and suppresses the fallback chain (fail-closed pinning for * proactive fires). */ | 'pinned'; readonly hintApplied?: ModelHint; readonly fallthroughReason?: 'tier-not-mapped' | 'provider-unavailable' | 'override-takes-precedence'; } /** * Pure inputs to {@link resolvePreferredModel}. * * @stable */ interface ResolvePreferredModelInput { readonly prepareStepProvider?: Provider; readonly toolPreferredModels: ReadonlyArray; readonly agentPreferredModel?: ModelHint | ModelSpec; readonly agentDefaultProvider: Provider; readonly modelTierMap?: Partial>; } /** * Pick the highest-cost tier across the supplied per-tool hints. * Explicit `ModelSpec` entries are treated as the highest tier * (`'smart'`) for tie-breaking - the conservative-correctness rule * documented in DEC-169. * * Returns the picked hint together with the original `ModelSpec` * (when an explicit spec won the tie-break). * * @stable */ declare function pickTopTierAcrossTools(hints: ReadonlyArray): { readonly hint: ModelHint; readonly spec?: ModelSpec; } | undefined; /** * Walk the precedence ladder and return the resolved provider for a * single agent step. Pure function - no side effects. * * @stable */ declare function resolvePreferredModel(input: ResolvePreferredModelInput): PreferredModelResolution; //#endregion export { PreferredModelResolution, ResolvePreferredModelInput, pickTopTierAcrossTools, resolvePreferredModel }; //# sourceMappingURL=index.d.ts.map