import type { ToolCall } from '../../../core/types.js';
import type { ProjectApprovalRule } from './types.js';
/**
 * Owns remembered approval rule semantics: target extraction, matching,
 * normalization, rule creation, and user-facing descriptions.
 */
export declare class ProjectApprovalRules {
    static normalizeCommand(command: string): string;
    static findMatching(args: {
        rules: ProjectApprovalRule[];
        tool: string;
        input: unknown;
    }): ProjectApprovalRule | undefined;
    static createForCommand(command: string): ProjectApprovalRule;
    static createForCall(call: ToolCall): ProjectApprovalRule | undefined;
    static describe(rule: ProjectApprovalRule): string;
    static extractTarget(args: {
        tool: string;
        input: unknown;
    }): string | undefined;
    static normalizePath(path: string): string;
    static buildLegacyVerificationPrefix(command: string): string | undefined;
    private static createShellRule;
    private static shouldUseVerificationPrefixApproval;
    private static buildVerificationPrefix;
    private static canonicalizeVerificationCommand;
}
//# sourceMappingURL=service.d.ts.map