import type { ProviderTurnActionPolicy, ProviderTurnTraceEntry } from "@best-agent/protocol";
import type { ConversationMessage, ProviderToolOption } from "../../provider/provider-core.js";
import type { RequiredToolConstraint } from "./tool-constraint-types.js";
export type ProviderTurnRequestKind = ProviderTurnTraceEntry["requestKind"];
export type ProviderToolVisibilityDecision = {
    hiddenTools: ProviderTurnTraceEntry["hiddenTools"];
    policy: ProviderTurnTraceEntry["visibilityPolicy"];
    visibleTools: ProviderToolOption[];
};
export declare function isProviderToolSelectableByConstraint(constraint: RequiredToolConstraint, toolName: string): boolean;
export declare function resolveProviderVisibleTools(availableTools: ProviderToolOption[], requiredToolConstraint?: RequiredToolConstraint, _messages?: ConversationMessage[]): ProviderToolOption[];
export declare function resolveProviderToolVisibility(availableTools: ProviderToolOption[], requiredToolConstraint?: RequiredToolConstraint, _messages?: ConversationMessage[]): ProviderToolVisibilityDecision;
export declare function resolveProviderTurnActionPolicy(input: {
    allowPhaseResult: boolean;
    allowPlanUpdate: boolean;
    requestKind: ProviderTurnRequestKind;
    requiredToolConstraint?: RequiredToolConstraint;
    visibleTools: ProviderToolOption[];
}): ProviderTurnActionPolicy;
//# sourceMappingURL=tool-visibility-policy.d.ts.map