/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { IContent, ITool } from '@vybestack/llxprt-code-core';
export interface RedactionPattern {
    name: string;
    pattern: RegExp;
    replacement: string;
    enabled: boolean;
}
export interface RedactionConfig {
    redactApiKeys: boolean;
    redactCredentials: boolean;
    redactFilePaths: boolean;
    redactUrls: boolean;
    redactEmails: boolean;
    redactPersonalInfo: boolean;
    customPatterns?: RedactionPattern[];
}
export declare class ConversationDataRedactor {
    private redactionConfig;
    private redactionPatterns;
    constructor(config?: Partial<RedactionConfig>);
    /**
     * Redact sensitive data from a conversation message
     */
    redactMessage(message: IContent, providerName: string): IContent;
    /**
     * Redact sensitive data from tool definitions
     */
    redactToolCall(tool: ITool): ITool;
    /**
     * Redact sensitive data from response content
     */
    redactResponseContent(content: string, providerName: string): string;
    /**
     * Redact entire conversation consistently
     */
    redactConversation(messages: IContent[], providerName: string): IContent[];
    /**
     * Redact API keys from content based on provider
     */
    redactApiKeys(content: string, providerName: string): string;
    /**
     * Redact sensitive file paths
     */
    redactSensitivePaths(content: string): string;
    /**
     * Redact personal identifiable information
     */
    redactPersonalInfo(content: string): string;
    private shouldRedact;
    private redactContent;
    private redactToolParameters;
    private redactFilePath;
    private redactShellCommand;
    private redactUrl;
    private initializeRedactionPatterns;
    /**
     * Update redaction configuration
     */
    updateConfig(config: Partial<RedactionConfig>): void;
    /**
     * Get current redaction statistics
     */
    getRedactionStats(content: string, providerName: string): RedactionStats;
}
export interface RedactionStats {
    totalRedactions: number;
    redactionsByType: Record<string, number>;
}
