/**
 * Structured Logging Service
 *
 * Provides structured logging with automatic trace context injection,
 * log levels, and consistent formatting for observability.
 *
 * @packageDocumentation
 */
export interface LogContext {
    /** Trace ID for distributed tracing */
    traceId?: string;
    /** Span ID for distributed tracing */
    spanId?: string;
    /** Tenant ID for multi-tenancy */
    tenantId?: string;
    /** Agent CAR ID */
    carId?: string;
    /** Request ID */
    requestId?: string;
    /** Component name */
    component?: string;
    /** Additional context */
    [key: string]: unknown;
}
export interface StructuredLogger {
    trace(ctx: LogContext, msg: string): void;
    debug(ctx: LogContext, msg: string): void;
    info(ctx: LogContext, msg: string): void;
    warn(ctx: LogContext, msg: string): void;
    error(ctx: LogContext, msg: string): void;
    fatal(ctx: LogContext, msg: string): void;
    child(bindings: Record<string, unknown>): StructuredLogger;
}
export interface LoggingConfig {
    /** Log level */
    level: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
    /** Pretty print in development */
    pretty: boolean;
    /** Include trace context automatically */
    includeTraceContext: boolean;
    /** Redact sensitive fields */
    redact: string[];
    /** Service name */
    serviceName: string;
}
/**
 * Initialize logging with configuration
 */
export declare function initLogging(config?: Partial<LoggingConfig>): StructuredLogger;
/**
 * Get the global logger instance
 */
export declare function getLogger(): StructuredLogger;
/**
 * Create a component-scoped logger
 */
export declare function createComponentLogger(component: string): StructuredLogger;
/**
 * Create an Agent Anchor logger with CAR context
 */
export declare function createAgentLogger(carId: string, tenantId: string): StructuredLogger;
/**
 * Create an A2A logger with call chain context
 */
export declare function createA2ALogger(requestId: string, callerCarId: string, calleeCarId: string): StructuredLogger;
/**
 * Create a sandbox logger with container context
 */
export declare function createSandboxLogger(containerId: string, carId: string, tier: number): StructuredLogger;
/**
 * Log an agent lifecycle event
 */
export declare function logAgentEvent(logger: StructuredLogger, event: 'registered' | 'activated' | 'suspended' | 'revoked' | 'archived', carId: string, details?: Record<string, unknown>): void;
/**
 * Log a trust score change
 */
export declare function logTrustChange(logger: StructuredLogger, carId: string, oldScore: number, newScore: number, oldTier: number, newTier: number, reason: string): void;
/**
 * Log an A2A invocation
 */
export declare function logA2AInvocation(logger: StructuredLogger, phase: 'start' | 'success' | 'failure' | 'timeout', callerCarId: string, calleeCarId: string, action: string, details?: Record<string, unknown>): void;
/**
 * Log a sandbox event
 */
export declare function logSandboxEvent(logger: StructuredLogger, event: 'created' | 'started' | 'stopped' | 'destroyed' | 'violation', containerId: string, details?: Record<string, unknown>): void;
/**
 * Log an attestation
 */
export declare function logAttestation(logger: StructuredLogger, type: string, carId: string, outcome: 'success' | 'failure', details?: Record<string, unknown>): void;
//# sourceMappingURL=logging.d.ts.map