import type { LanguageModelV1FunctionTool, LanguageModelV1ToolChoice } from '@ai-sdk/provider';
import type { YagrModelProvider } from './provider-registry.js';
export type YagrToolCallingCapability = 'native' | 'compatible' | 'none';
export interface YagrModelCapabilityProfile {
    provider: YagrModelProvider;
    model: string;
    toolCalling: YagrToolCallingCapability;
    supportsParallelToolCalls: boolean;
    supportsStructuredOutputs: boolean;
    supportsStreamingToolCalls: boolean;
    supportsForcedToolChoice: boolean;
    prefersStrictToolSchemas: boolean;
}
export type CapabilityFlags = Omit<YagrModelCapabilityProfile, 'provider' | 'model' | 'toolCalling'>;
export declare const CAPABILITY_FLAGS: Record<YagrToolCallingCapability, CapabilityFlags>;
export declare function resolveModelCapabilityProfile(input: {
    provider: YagrModelProvider;
    model: string;
}): YagrModelCapabilityProfile;
export declare function getProviderOptionsForCapability(profile: YagrModelCapabilityProfile): {
    openai?: {
        strictSchemas: boolean;
    };
} | undefined;
export declare function getOpenAiCompatibleProviderSettingsForCapability(profile: YagrModelCapabilityProfile): {
    parallelToolCalls?: boolean;
    structuredOutputs?: boolean;
    simulateStreaming?: boolean;
} | undefined;
export declare function filterFunctionToolsForCapability(tools: LanguageModelV1FunctionTool[], profile: YagrModelCapabilityProfile): LanguageModelV1FunctionTool[];
export declare function normalizeToolChoiceForCapability(toolChoice: LanguageModelV1ToolChoice | undefined, profile: YagrModelCapabilityProfile): LanguageModelV1ToolChoice | undefined;
//# sourceMappingURL=model-capabilities.d.ts.map