import type { SessionState } from "../../session/types"; export interface HookLogger { info(message: string): void; warn(message: string): void; error(message: string): void; setContext(key: string, value: string): void; } export declare function createHookLogger(hookName: string): HookLogger; export declare function readStdin(): Promise; export declare function parseHookInput(raw: string): Record; export declare function safeStr(obj: Record, key: string): string; export declare function countPendingByKind(records: Array<{ kind?: string | null; }>): Record; export declare function isOnlyBreakpoints(pendingByKind: Record): boolean; export declare function appendStopHookEvent(runDir: string, data: { sessionId: string; iteration: number; decision: "approve" | "block"; reason: string; runState: string; pendingKinds: string; hasPromise: boolean; effectId?: string; hookBackoffFireCount?: number; hookBackoffDelaySeconds?: number; hookBackoffInterrupted?: boolean; }, harness?: string): Promise; export declare function markSessionInactive(filePath: string, state: SessionState, prompt: string, reason: string): Promise; export declare function initializeSessionState(sessionId: string, stateDir: string, options?: { maxIterations?: number; verbose?: boolean; log?: HookLogger; }): Promise<{ persisted: boolean; filePath: string; }>; export interface IterationLimitResult { shouldExit: boolean; reason?: string; } export declare function checkIterationLimits(state: SessionState, maxIterations: number, _options?: { minIterationMs?: number; iterationTimes?: number[]; }): IterationLimitResult; export declare function buildFollowupMessage(nextIteration: number, runId: string, completionProof: string | undefined, runState: string, pendingKinds: string, prompt: string): string; //# sourceMappingURL=utils.d.ts.map