export type LogLevel = "debug" | "info" | "warn" | "error"; export type ActivityStatus = "ok" | "error" | "denied" | "skipped"; export interface LogEntry { timestamp: string; level: LogLevel; event: string; harness: string; data?: Record; } export interface ActivityEntry { timestamp: string; level: "activity"; event: string; harness: string; status: ActivityStatus; durationMs: number; sessionId?: string; attributes?: Record; } export type UnifiedLogEntry = LogEntry | ActivityEntry; export type ActivityEnricher = () => Record | undefined; export type ActivitySink = (entry: ActivityEntry) => void; export declare function redactLogData(value: unknown): unknown; export declare function activityValueHash(value: string): string; /** Convert arbitrary strings to correlation-safe summaries for always-on activity. */ export declare function sanitizeActivityAttributes(attributes: Record): Record; export declare class ActiveActivity { private readonly logger; private readonly event; private readonly baseAttributes?; private readonly sessionId?; private readonly startedAt; private readonly timestamp; private endedEntry; constructor(logger: DebugLogger, event: string, baseAttributes?: Record | undefined, sessionId?: string | undefined); get ended(): boolean; end(status: ActivityStatus, attributes?: Record): ActivityEntry; } export declare class DebugLogger { static stderrSuppressed: boolean; enabled: boolean; readonly harness: string; readonly logFile: string | null; private readonly activityEntries; private activityEnricher; private activitySink; constructor(harness: string, opts?: { logFile?: string; }); get isEnabled(): boolean; enable(): void; disable(): void; setActivityEnricher(enricher: ActivityEnricher | null): void; setActivitySink(sink: ActivitySink | null): void; activities(): ReadonlyArray; startActivity(event: string, attributes?: Record, sessionId?: string): ActiveActivity; activity(event: string, status: ActivityStatus, options?: { attributes?: Record; durationMs?: number; sessionId?: string; timestamp?: string; }): ActivityEntry; log(level: LogLevel, event: string, data?: Record): void; debug(event: string, data?: Record): void; info(event: string, data?: Record): void; warn(event: string, data?: Record): void; error(event: string, data?: Record): void; private writeToStderr; private writeToFile; } export interface FormattedLogEntryParts { time: string; event: string; marker: string; details: string[]; } export declare function formatLogEntryParts(entry: UnifiedLogEntry): FormattedLogEntryParts; export declare function formatLogEntry(entry: UnifiedLogEntry): string; export declare function withQuietStderr(fn: () => Promise | T): Promise;