/**
 * Runtime Guardrails for Revenue Suite
 * Enforces citations, approvals, and audit logging as per manifest requirements
 */
export interface Citation {
    sourceDoc: string;
    section?: string;
    version?: string;
    lineNumber?: number;
    quote?: string;
}
export interface ApprovalRequest {
    id: string;
    actionType: string;
    actionDescription: string;
    riskLevel: 'low' | 'medium' | 'high' | 'critical';
    requiredApprover: string;
    context: Record<string, any>;
    requestedAt: Date;
}
export interface ApprovalResponse {
    requestId: string;
    approved: boolean;
    approver: string;
    approvedAt: Date;
    notes?: string;
}
export interface AuditLogEntry {
    id: string;
    timestamp: Date;
    correlationId: string;
    userId: string;
    actionType: string;
    actionDescription: string;
    inputs: Record<string, any>;
    outputs?: Record<string, any>;
    citations?: Citation[];
    approvalId?: string;
    status: 'success' | 'failed' | 'pending_approval';
    errorMessage?: string;
    metadata?: Record<string, any>;
}
/**
 * Citation Validator
 * Ensures every claim has proper source attribution
 */
export declare class CitationValidator {
    /**
     * Validates that a response includes proper citations
     */
    validateCitations(response: string, citations: Citation[]): {
        valid: boolean;
        coverage: number;
        missing: string[];
    };
    /**
     * Extracts citations from structured response
     */
    extractCitations(response: any): Citation[];
}
/**
 * Approval Manager
 * Handles human-in-the-loop approval workflows
 */
export declare class ApprovalManager {
    private pendingApprovals;
    private approvalHistory;
    /**
     * Request approval for a high-risk action
     */
    requestApproval(actionType: string, actionDescription: string, riskLevel: ApprovalRequest['riskLevel'], requiredApprover: string, context: Record<string, any>): Promise<ApprovalRequest>;
    /**
     * Record an approval response
     */
    recordApproval(response: ApprovalResponse): Promise<void>;
    /**
     * Check if an action requires approval based on policy
     */
    requiresApproval(actionType: string, actionContext: Record<string, any>): {
        required: boolean;
        approver?: string;
        riskLevel?: ApprovalRequest['riskLevel'];
    };
    /**
     * Get pending approval by ID
     */
    getPendingApproval(id: string): ApprovalRequest | undefined;
    /**
     * Get approval status
     */
    getApprovalStatus(id: string): ApprovalResponse | undefined;
}
/**
 * Audit Logger
 * Logs all actions with inputs, outputs, and correlation IDs
 */
export declare class AuditLogger {
    private logs;
    private observabilityEndpoint?;
    constructor(observabilityEndpoint?: string);
    /**
     * Log an action with full context
     */
    logAction(entry: Omit<AuditLogEntry, 'id' | 'timestamp'>): Promise<string>;
    /**
     * Redact PII from audit logs
     */
    private redactPII;
    /**
     * Send audit log to external observability system
     */
    private sendToObservability;
    /**
     * Query audit logs by correlation ID
     */
    getLogsByCorrelationId(correlationId: string): AuditLogEntry[];
    /**
     * Query audit logs by user ID
     */
    getLogsByUserId(userId: string): AuditLogEntry[];
    /**
     * Get all logs (for testing/debugging)
     */
    getAllLogs(): AuditLogEntry[];
}
/**
 * Guardrails Orchestrator
 * Coordinates citation validation, approval flows, and audit logging
 */
export declare class GuardrailsOrchestrator {
    private citationValidator;
    private approvalManager;
    private auditLogger;
    constructor(observabilityEndpoint?: string);
    getCitationValidator(): CitationValidator;
    getApprovalManager(): ApprovalManager;
    getAuditLogger(): AuditLogger;
    /**
     * Execute an action with full guardrail enforcement
     */
    executeWithGuardrails<T>(userId: string, correlationId: string, actionType: string, actionDescription: string, actionFn: () => Promise<T>, inputs: Record<string, any>, options?: {
        requireCitations?: boolean;
        citations?: Citation[];
    }): Promise<T>;
}
/**
 * Get or create the guardrails orchestrator instance
 */
export declare function getGuardrails(observabilityEndpoint?: string): GuardrailsOrchestrator;
//# sourceMappingURL=guardrails.d.ts.map