import { PIIDetection } from './detectors/pii-detector';
import { InjectionDetection } from './detectors/injection-detector';
import { HallucinationDetection } from './detectors/hallucination-detector';
export interface ShieldConfig {
    enabled: boolean;
    mode: 'off' | 'monitor' | 'enforce';
    pii: {
        enabled: boolean;
        maskFormat: string;
    };
    injection: {
        enabled: boolean;
        action: 'flag' | 'block' | 'mask' | 'require_approval';
    };
    hallucination: {
        enabled: boolean;
        action: 'flag' | 'rewrite' | 'block';
    };
    rewrite?: {
        enabled: boolean;
        model?: string;
        apiKey?: string;
    };
}
export interface ShieldDecision {
    action: 'allow' | 'block' | 'mask' | 'rewrite' | 'flag';
    reason: string;
    details: {
        pii?: PIIDetection;
        injection?: InjectionDetection;
        hallucination?: HallucinationDetection;
    };
    sanitizedOutput?: any;
    originalOutput?: any;
}
export declare class Shield {
    private static instance;
    private config;
    private piiDetector;
    private injectionDetector;
    private hallucinationDetector;
    private constructor();
    static getInstance(config?: Partial<ShieldConfig>): Shield;
    checkInput(input: any): ShieldDecision;
    checkOutput(input: any, output: any): ShieldDecision;
    getConfig(): ShieldConfig;
    updateConfig(config: Partial<ShieldConfig>): void;
    isEnabled(): boolean;
    getHealth(): {
        enabled: boolean;
        mode: string;
        detectors: {
            pii: boolean;
            injection: boolean;
            hallucination: boolean;
        };
    };
    attemptRewrite(originalOutput: any, hallucinationDetails: HallucinationDetection, input?: any): Promise<{
        success: boolean;
        rewrittenOutput?: any;
        error?: string;
    }>;
}
//# sourceMappingURL=shield.d.ts.map