/**
 * Audit logging types and interfaces
 */
export interface AuditActor {
    id: string;
    type: 'user' | 'service' | 'system';
    ipAddress?: string;
    userAgent?: string;
    sessionId?: string;
}
export interface AuditResource {
    type: string;
    id: string;
    name?: string;
    metadata?: Record<string, unknown>;
}
export interface AuditAction {
    type: string;
    method: string;
    result: 'success' | 'failure' | 'error';
    errorCode?: string;
    errorMessage?: string;
}
export interface AuditContext {
    requestId: string;
    correlationId?: string;
    parentRequestId?: string;
    environment?: string;
    region?: string;
    clientApplication?: string;
    clientVersion?: string;
}
export interface AuditPerformance {
    duration: number;
    memoryUsed?: number;
    dbQueries?: number;
    apiCalls?: number;
}
export interface AuditEntry {
    id: string;
    timestamp: Date;
    actor: AuditActor;
    action: AuditAction;
    resource?: AuditResource;
    request?: {
        method: string;
        path?: string;
        parameters?: Record<string, unknown>;
        size?: number;
    };
    response?: {
        status: number;
        size?: number;
        error?: string;
    };
    performance?: AuditPerformance;
    context: AuditContext;
    metadata?: Record<string, unknown>;
    hash?: string;
}
export interface AuditQueryOptions {
    startTime?: Date;
    endTime?: Date;
    actors?: string[];
    actions?: string[];
    resources?: string[];
    status?: ('success' | 'failure' | 'error')[];
    limit?: number;
    offset?: number;
    orderBy?: 'timestamp' | 'duration';
    orderDirection?: 'asc' | 'desc';
    includeMetadata?: boolean;
}
export interface AuditExportOptions {
    format: 'json' | 'csv' | 'siem';
    startTime: Date;
    endTime: Date;
    filters?: AuditQueryOptions;
    includeHeaders?: boolean;
    compress?: boolean;
}
export interface AuditRetentionPolicy {
    retentionDays: number;
    archiveAfterDays?: number;
    compressAfterDays?: number;
    deletePersonalDataAfterDays?: number;
}
export interface AuditStatistics {
    totalEntries: number;
    successCount: number;
    failureCount: number;
    errorCount: number;
    averageDuration: number;
    topActors: Array<{
        actor: string;
        count: number;
    }>;
    topActions: Array<{
        action: string;
        count: number;
    }>;
    topErrors: Array<{
        error: string;
        count: number;
    }>;
    timeRange: {
        start: Date;
        end: Date;
    };
}
export interface AuditIntegrityCheck {
    isValid: boolean;
    errors?: string[];
    lastChecked: Date;
    entriesChecked: number;
    corruptedEntries?: string[];
}
export interface PIIMaskingConfig {
    fields: string[];
    patterns: RegExp[];
    maskingStrategy: 'hash' | 'partial' | 'remove' | 'encrypt';
    preserveFormat?: boolean;
}
export type AuditEventType = 'tool.call' | 'tool.list' | 'resource.read' | 'resource.list' | 'user.create' | 'user.update' | 'user.delete' | 'user.list' | 'group.create' | 'group.update' | 'group.delete' | 'group.list' | 'bulk.operation' | 'auth.login' | 'auth.logout' | 'auth.refresh' | 'system.startup' | 'system.shutdown' | 'error.unhandled';
export type ComplianceStandard = 'SOC2' | 'HIPAA' | 'GDPR' | 'PCI-DSS' | 'ISO27001';
export interface ComplianceReport {
    standard: ComplianceStandard;
    generatedAt: Date;
    period: {
        start: Date;
        end: Date;
    };
    findings: Array<{
        requirement: string;
        status: 'compliant' | 'non-compliant' | 'partial';
        evidence?: string[];
        recommendations?: string[];
    }>;
    summary: {
        totalRequirements: number;
        compliant: number;
        nonCompliant: number;
        partial: number;
    };
}
//# sourceMappingURL=types.d.ts.map