export type PiHooksLogLevel = "error" | "warn" | "info" | "debug"; export interface PiHooksLogEntry { readonly ts?: string; readonly level?: PiHooksLogLevel; readonly kind: string; readonly message?: string; readonly event?: string; readonly sessionId?: string; readonly cwd?: string; readonly hookId?: string; readonly hookSource?: string; readonly action?: string; readonly toolName?: string; readonly details?: Record; } interface PiHooksLogger { readonly enabled: boolean; readonly filePath?: string; readonly level?: PiHooksLogLevel; log(entry: PiHooksLogEntry): void; error(kind: string, message: string, fields?: Omit): void; warn(kind: string, message: string, fields?: Omit): void; info(kind: string, message: string, fields?: Omit): void; debug(kind: string, message: string, fields?: Omit): void; } export declare function getPiHooksLogger(): PiHooksLogger; export declare function getPiHooksLogFilePath(): string; export declare function resetPiHooksLoggerForTests(): void; /** * Test helper. Currently a no-op because writes are synchronous, but kept * in place so callers that want to be future-proof against an async * write-path can express "drain everything before I assert". */ export declare function flushPiHooksLoggerForTests(): void; /** * Test helper. Returns the running count of write batches the logger has * processed since the last reset. Each call to logger.log() bumps it by 1. */ export declare function getPiHooksLoggerDrainCountForTests(): number; export {};