import type { IAuditEvent, IAuditEventSummary } from './IAuditEvent';
import type { IAuditService, IAuditRecordInput, IAuditQuery, IAuditQueryResult } from './IAuditService';
import type { AuditLevel } from './ISupervisorSecurityPolicy';
/**
 * SecurityAuditService - In-memory audit trail implementation.
 *
 * Vision 27 Section 7: "All security-relevant events MUST be auditable"
 *
 * This implementation is suitable for:
 * - Development and testing
 * - Single-node deployments
 * - Demo applications
 *
 * For production/enterprise:
 * - Implement IAuditService with SIEM integration
 * - Add persistent storage
 * - Add cross-realm correlation
 *
 * See: Vision/27-SECURITY-FEDERATION-DRAFT.md Section 7
 */
export declare class SecurityAuditService implements IAuditService {
    private readonly _events;
    private readonly _maxEvents;
    /**
     * Create an audit service.
     *
     * @param maxEvents - Maximum events to retain (FIFO eviction)
     */
    constructor(maxEvents?: number);
    /**
     * Record an audit event.
     *
     * Vision 27 Section 7.3 audit levels:
     * - 'none': Skip unless security-critical
     * - 'failures': Only denied/error outcomes
     * - 'summary': Basic info only
     * - 'full': Complete details
     */
    record(input: IAuditRecordInput, level: AuditLevel): string;
    /**
     * Query audit trail.
     *
     * Vision 27 Section 7.2:
     * - WHO ACCESSED WHAT
     * - WHAT DID USER X DO
     */
    query(query: IAuditQuery): IAuditQueryResult;
    /**
     * Get capability delegation chain.
     *
     * Vision 27 Section 7.2: "CAPABILITY LINEAGE"
     */
    getCapabilityLineage(capabilityId: string): IAuditEvent[];
    /**
     * Get outcome statistics.
     */
    getOutcomeStats(fromTimestamp?: number, toTimestamp?: number): {
        success: number;
        denied: number;
        error: number;
    };
    /**
     * Export audit trail.
     *
     * Vision 27 Section 7.2: Compliance reporting
     */
    export(query: IAuditQuery): IAuditEvent[] | IAuditEventSummary[];
    /**
     * Clear old events.
     */
    clearOlderThan(olderThan: number): number;
    /**
     * Get all events (for debugging).
     */
    getAllEvents(): readonly IAuditEvent[];
    /**
     * Get recent events.
     */
    getRecentEvents(count?: number): IAuditEvent[];
    /**
     * Clear all events.
     */
    clear(): void;
    /**
     * Determine if event should be recorded based on audit level.
     *
     * Vision 27 Section 7.3:
     * - Security-critical actions ALWAYS logged
     * - Failures/denials ALWAYS logged
     * - Otherwise respects audit level
     */
    private _shouldRecord;
    /**
     * Check if event matches query.
     */
    private _matchesQuery;
    /**
     * Generate unique event ID.
     */
    private _generateEventId;
    /**
     * Build delegation chain from capability events.
     */
    private _buildDelegationChain;
}
/**
 * ConsoleAuditService - Logs audit events to console.
 *
 * Useful for development and debugging.
 * Wraps SecurityAuditService and adds console output.
 */
export declare class ConsoleAuditService implements IAuditService {
    private readonly _inner;
    private readonly _prefix;
    constructor(prefix?: string);
    record(input: IAuditRecordInput, level: AuditLevel): string;
    query(query: IAuditQuery): IAuditQueryResult;
    getCapabilityLineage(capabilityId: string): IAuditEvent[];
    getOutcomeStats(fromTimestamp?: number, toTimestamp?: number): {
        success: number;
        denied: number;
        error: number;
    };
    export(query: IAuditQuery): IAuditEvent[] | IAuditEventSummary[];
    clearOlderThan(olderThan: number): number;
}
/**
 * NullAuditService - No-op implementation.
 *
 * For tests or when auditing is completely disabled.
 */
export declare class NullAuditService implements IAuditService {
    record(_input: IAuditRecordInput, _level: AuditLevel): string;
    query(_query: IAuditQuery): IAuditQueryResult;
    getCapabilityLineage(_capabilityId: string): IAuditEvent[];
    getOutcomeStats(_fromTimestamp?: number, _toTimestamp?: number): {
        success: number;
        denied: number;
        error: number;
    };
    export(_query: IAuditQuery): IAuditEvent[] | IAuditEventSummary[];
    clearOlderThan(_olderThan: number): number;
}
//# sourceMappingURL=SecurityAuditService.d.ts.map