import { type YagrModelCapabilityProfile } from '../llm/model-capabilities.js';
import type { YagrModelProvider } from '../llm/provider-registry.js';
export type YagrExecutionMode = 'stream' | 'generate';
export type YagrToolCallMode = 'parallel' | 'sequential' | 'disabled';
export interface YagrToolingPolicy {
    availableToolNames: string[];
    allowedToolNamesAfterWorkflowSync: string[];
    toolCallMode: YagrToolCallMode;
    executionCriticalToolNames: string[];
}
export interface YagrToolRuntimeStrategy {
    capabilityProfile: YagrModelCapabilityProfile;
    tooling: YagrToolingPolicy;
    executionMode: YagrExecutionMode;
    toolCallStreaming: boolean;
    providerOptions?: {
        openai?: {
            strictSchemas: boolean;
        };
    };
    inspectMaxSteps: number;
    executeMaxSteps: number;
    recoveryMaxSteps: number;
    inspectDirectives: string[];
    executeDirectives: string[];
    recoveryDirectives: string[];
}
export declare function resolveToolRuntimeStrategy(provider?: YagrModelProvider, model?: string): YagrToolRuntimeStrategy;
//# sourceMappingURL=tool-runtime-strategy.d.ts.map