import { type ProcessGuardResult, type ProcessGuardStatus } from './process-guard.js'; import { type CronScheduler } from './scheduler.js'; type ProcessAliveChecker = (pid: number) => Promise; type OpenCodeInstanceChecker = (options: { pidFilePath: string; host: string; port: number; timeoutMs?: number; processKeywords?: string[]; }) => Promise; export type BridgeProcessStatus = 'ok' | 'not-running' | 'stale-pid'; export interface ProcessConsistencyStatus { opencodeStatus: ProcessGuardStatus; bridgeStatus: BridgeProcessStatus; stalePidCleaned: boolean; details: string; } export interface StaleLockCleanupResult { cleanedPaths: string[]; skippedPaths: string[]; } export interface BudgetResetResult { previous: number; current: number; maxBudget: number; } export interface RepairBudgetState { maxBudget: number; remaining: number; lastUpdatedAtMs: number; lastResetAtMs: number; } export interface ProcessCheckJobRunner { checkProcessConsistency: () => Promise; cleanupStaleLocks: () => Promise; resetBudget: () => Promise; } interface ProcessCheckJobAuditEvent { action: string; result: 'success' | 'failed'; metadata?: Record; } type ProcessCheckJobAuditLogger = (event: ProcessCheckJobAuditEvent) => Promise; export interface ProcessCheckJobRunnerOptions { bridgePidFilePath: string; opencodePidFilePath: string; opencodeHost: string; opencodePort: number; repairBudgetState: RepairBudgetState; staleLockPaths: string[]; staleLockMs?: number; opencodeProbeTimeoutMs?: number; processKeywords?: string[]; now?: () => number; isProcessAlive?: ProcessAliveChecker; checkOpenCodeSingleInstance?: OpenCodeInstanceChecker; auditLog?: ProcessCheckJobAuditLogger; } export interface ProcessCheckJobCronExpressions { processConsistencyCheck: string; staleLockCleanup: string; budgetReset: string; } export interface RegisterProcessCheckJobsOptions { runner: ProcessCheckJobRunner; cronExpressions?: Partial; timezone?: string; } export declare function createRepairBudgetState(maxBudget: number, now?: () => number): RepairBudgetState; export declare function createProcessCheckJobRunner(options: ProcessCheckJobRunnerOptions): ProcessCheckJobRunner; export declare function registerProcessCheckJobs(scheduler: CronScheduler, options: RegisterProcessCheckJobsOptions): void; export {}; //# sourceMappingURL=process-check-job.d.ts.map