import type { Exec } from '../exec.js'; import type { SupervisorBackend } from '../supervisor/types.js'; import type { LogPage, LogRecord } from './types.js'; export declare function redactLogLine(input: string, patterns?: RegExp[]): { text: string; redactionApplied: boolean; }; export interface RoleLogSource { tail(limit: number, cursor?: string): Promise; } /** * Presentation-only compaction for noisy historical monitor transport hiccups. * Exact reason and adjacency are part of the key: a different or intervening * record always starts a new run. Source journal/file records are untouched. */ export declare function compactMonitorStreamHiccups(records: LogRecord[]): LogRecord[]; export declare class StructuredLogService { private readonly backend; private readonly exec; private readonly cursorKey; constructor(backend: SupervisorBackend, exec?: Exec); source(roleId: string): RoleLogSource; private tail; private cursor; private validCursor; } /** Bounded launchd file reader used by tests and diagnostics. */ export declare function readKnownRoleLog(roleId: string, limit?: number): LogPage;