import type { Filter, FilterContext, FilterResult, JsonObject } from '../types.js';
type ConstraintMatchCondition = 'missing' | 'empty' | 'missingOrEmpty';
interface ToolConstraintRule {
    id: string;
    direction: 'request' | 'response' | 'both';
    providerProtocol?: string;
    providerId?: string;
    modelId?: string;
    toolNamePattern?: string;
    path: string;
    when: ConstraintMatchCondition;
    action: 'warn' | 'patch' | 'drop';
    patchText?: string;
}
interface ToolGovernanceConstraintsConfig {
    rules: ToolConstraintRule[];
}
/**
 * Tool post-constraints filter（请求/响应阶段的最后一小步约束）：
 * - 默认只记录（warn），不修改 payload；
 * - 修剪/修复行为完全由配置驱动（ToolGovernanceConstraintsConfig）；
 * - 当前仅实现缺失/空 description 的简单场景，后续可按配置扩展。
 */
export declare class ToolPostConstraintsFilter implements Filter<JsonObject> {
    readonly name = "tool_post_constraints";
    readonly stage: FilterContext['stage'];
    private readonly config;
    constructor(stage: FilterContext['stage'], config?: ToolGovernanceConstraintsConfig);
    apply(input: JsonObject, ctx: FilterContext): FilterResult<JsonObject>;
}
export {};
