import type { ProviderTurnActionPolicy } from "@best-agent/protocol";
import type { ProviderDecisionOutput, ProviderSelectedToolCall, ProviderToolOption } from "../../provider/provider-core.js";
import type { RequiredToolConstraint } from "./tool-constraint-types.js";
export type ProviderDecisionValidation = {
    ok: true;
} | {
    errorCode: string;
    invalidToolCall: ProviderSelectedToolCall;
    message: string;
    ok: false;
    reasonCode: "tool-not-allowed" | "tool-not-visible";
    source: "action-policy" | "profile" | "required-tool" | "visibility";
};
export declare function validateProviderDecision(input: {
    actionPolicy: ProviderTurnActionPolicy;
    availableTools: ProviderToolOption[];
    decision: Extract<ProviderDecisionOutput, {
        kind: "tool";
    }>;
    knownToolNames: readonly string[];
    profileAllowedToolNames: readonly string[];
    profileName: string;
    requiredToolConstraint?: RequiredToolConstraint;
    selectedToolCalls: ProviderSelectedToolCall[];
    threadMode: "default" | "plan";
    visibleTools: ProviderToolOption[];
}): ProviderDecisionValidation;
//# sourceMappingURL=provider-decision-validator.d.ts.map