/**
 * ProhibitedPractices -- EU AI Act Art. 5 enforcement.
 *
 * Detects and blocks AI practices explicitly prohibited under
 * EU AI Act Article 5, including social scoring, real-time
 * biometric identification, subliminal manipulation, and
 * exploitation of vulnerabilities.
 *
 * T-073: Map to EU AI Act Art. 5 prohibited practices.
 *
 * @connexum/ai-governance
 */
export interface ProhibitedPracticesConfig {
    /** Directory for violation logs */
    dataDir: string;
    /** Agent name */
    agentName: string;
    /** Whether to block on detection or just warn (default: true) */
    enforceBlock?: boolean;
    /** Custom patterns to add to detection */
    customPatterns?: ProhibitedPattern[];
}
export interface ProhibitedPattern {
    id: string;
    article: string;
    category: ProhibitedCategory;
    description: string;
    /** Keywords/patterns that indicate this practice */
    indicators: string[];
    severity: 'CRITICAL' | 'HIGH';
}
export type ProhibitedCategory = 'SOCIAL_SCORING' | 'SUBLIMINAL_MANIPULATION' | 'EXPLOITATION' | 'REAL_TIME_BIOMETRIC' | 'PREDICTIVE_POLICING' | 'EMOTION_RECOGNITION' | 'FACIAL_RECOGNITION_DB' | 'CUSTOM';
export interface PracticeViolation {
    id: string;
    pattern: ProhibitedPattern;
    content: string;
    matchedIndicators: string[];
    action: 'BLOCKED' | 'WARNED';
    agentName: string;
    detectedAt: string;
}
export interface PracticeCheckResult {
    allowed: boolean;
    violations: PracticeViolation[];
    checkedPatterns: number;
}
export declare class ProhibitedPractices {
    private config;
    private patterns;
    private violationFile;
    constructor(config: ProhibitedPracticesConfig);
    /**
     * Check content for prohibited practices.
     */
    check(content: string): PracticeCheckResult;
    /**
     * Check a tool call for prohibited practices.
     * Inspects tool name and arguments.
     */
    checkToolCall(toolName: string, args: Record<string, unknown>): PracticeCheckResult;
    /**
     * Get all recorded violations.
     */
    getViolations(limit?: number): PracticeViolation[];
    /**
     * Get statistics.
     */
    getStats(): {
        totalViolations: number;
        byCategory: Record<string, number>;
        byArticle: Record<string, number>;
        blocked: number;
        warned: number;
    };
    /**
     * Get all active patterns.
     */
    getPatterns(): ProhibitedPattern[];
    /**
     * Add a custom pattern at runtime.
     */
    addPattern(pattern: ProhibitedPattern): void;
    private persistViolation;
}
//# sourceMappingURL=prohibited-practices.d.ts.map