export declare const MAX_INSTALL_ATTEMPTS = 3; export declare const INSTALL_RETRY_BACKOFFS_MS: readonly number[]; export declare const BOOT_VERIFY_TIMEOUT_MS: number; export declare const MAX_ROLLBACK_ATTEMPTS = 2; export type BootVerificationPhase = 'installing' | 'install_failed' | 'install_blocked' | 'awaiting_boot' | 'rolling_back'; export interface BootVerificationRecord { phase: BootVerificationPhase; previousVersion: string; targetVersion: string; bootAttempts: number; installFailures: number; lastInstallFailureAtMs: number | null; rollbackAttempts: number; reason: string; updatedAtMs: number; } export interface UpdatePinRecord { version: string; reason: string; pinnedAtMs: number; } export declare function bootStatePath(dir?: string): string; export declare function updatePinPath(dir?: string): string; export declare function readBootVerificationRecord(dir?: string): BootVerificationRecord | null; export declare function writeBootVerificationRecord(record: BootVerificationRecord, dir?: string): void; export declare function clearBootVerificationRecord(dir?: string): void; export declare function newInstallRecord(input: { previousVersion: string; targetVersion: string; nowMs: number; carryFrom?: BootVerificationRecord | null; }): BootVerificationRecord; export declare function withInstallFailure(record: BootVerificationRecord, nowMs: number, detail: string, maxAttempts?: number): BootVerificationRecord; export declare function withAwaitingBoot(record: BootVerificationRecord, nowMs: number): BootVerificationRecord; export declare function withBootAttempt(record: BootVerificationRecord, nowMs: number): BootVerificationRecord; export declare function withRollbackAttempt(record: BootVerificationRecord, nowMs: number, detail: string): BootVerificationRecord; export declare function readUpdatePin(dir?: string): UpdatePinRecord | null; export declare function writeUpdatePin(pin: UpdatePinRecord, dir?: string): void; export interface UpdateApprovalRecord { version: string; source: string; approvedAtMs: number; } export declare function updateApprovalPath(dir?: string): string; export declare function readUpdateApproval(dir?: string): UpdateApprovalRecord | null; export declare function writeUpdateApproval(approval: UpdateApprovalRecord, dir?: string): void; export declare const UPDATE_WINDOW_ENV = "AWB_AGENT_MANAGER_UPDATE_WINDOW"; export interface MaintenanceWindow { startMinute: number; endMinute: number; } export declare function parseMaintenanceWindow(raw?: string | null): MaintenanceWindow | null; export declare function isWithinMaintenanceWindow(now: Date, window: MaintenanceWindow | null): boolean; export declare function withinMaintenanceWindowNow(now?: Date, raw?: string | null | undefined): boolean; export type BootDecisionKind = 'none' | 'arm' | 'install_failed' | 'rollback' | 'pin_only' | 'rollback_landed' | 'rollback_failed' | 'stale'; export interface BootDecision { kind: BootDecisionKind; rollbackToVersion: string | null; summary: string | null; } export declare function evaluateBootVerification(input: { record: BootVerificationRecord | null; currentVersion: string; maxRollbackAttempts?: number; }): BootDecision; export declare function evaluateBootProbe(input: { heartbeatOk: boolean; elapsedMs: number; timeoutMs: number; }): 'verified' | 'waiting' | 'failed'; export interface InstallRetryDecision { proceed: boolean; stop: boolean; waitMs: number | null; summary: string | null; } export declare function evaluateInstallRetryGate(input: { installFailures: number; lastFailureAtMs: number | null; nowMs: number; withinWindow: boolean; maxAttempts?: number; backoffsMs?: readonly number[]; }): InstallRetryDecision;