import { TokenExhaustionHandoverState } from '../entities/TokenExhaustionHandoverState'; import { ClaudeHandoverSessionRepository } from './adapter-interfaces/ClaudeHandoverSessionRepository'; import { IssueCheckpointRepository } from './adapter-interfaces/IssueCheckpointRepository'; import { ProcessSignalRepository } from './adapter-interfaces/ProcessSignalRepository'; import { TmuxSessionRepository } from './adapter-interfaces/TmuxSessionRepository'; import { TokenRateLimitSnapshotRepository } from './adapter-interfaces/TokenRateLimitSnapshotRepository'; import { TokenExhaustionHandoverStateRepository } from './adapter-interfaces/TokenExhaustionHandoverStateRepository'; export declare const TOKEN_EXHAUSTION_SNAPSHOT_STALE_THRESHOLD_SECONDS = 900; export declare const TOKEN_EXHAUSTION_SNAPSHOT_HARD_STALE_THRESHOLD_SECONDS = 3600; export declare const TOKEN_EXHAUSTION_FIVE_HOUR_WARNING_FREE_THRESHOLD = 0.25; export declare const TOKEN_EXHAUSTION_SEVEN_DAY_WARNING_FREE_THRESHOLD = 0.15; export declare const DEFAULT_TOKEN_EXHAUSTION_HANDOVER_ACTION_COOLDOWN_SECONDS = 180; export type TokenExhaustionHandoverInput = { enabled: boolean; state: TokenExhaustionHandoverState; now: Date; handoverActionCooldownSeconds: number; }; export type TokenExhaustionHandoverResult = { killedSessionNames: string[]; terminatedPids: number[]; leftAliveSessionNames: string[]; skippedWorkspacePreparationSessionNames: string[]; state: TokenExhaustionHandoverState; }; export declare class TokenExhaustionHandoverUseCase { private readonly handoverSessionRepository; private readonly snapshotRepository; private readonly tmuxSessionRepository; private readonly processSignalRepository; private readonly issueCheckpointRepository; private readonly stateRepository; constructor(handoverSessionRepository: Pick, snapshotRepository: Pick, tmuxSessionRepository: Pick, processSignalRepository: ProcessSignalRepository, issueCheckpointRepository: Pick, stateRepository: Pick); run: (input: TokenExhaustionHandoverInput) => Promise; private forceKill; private stateKeyFor; private displayName; private isFresherTokenAvailable; private evaluateSnapshot; private freeRatio; private clamp01; private isWeeklyCapped; } //# sourceMappingURL=TokenExhaustionHandoverUseCase.d.ts.map