import { BaseSessionManager, type SessionAwareConfig, type SessionRecord } from './base-session-manager.js'; import type { ParseResult } from './cli-adapters/base.js'; import { CircuitBreaker } from './circuit-breaker.js'; import type { DispatchReservation, TicketDispatchResult, TicketSessionManager as TicketSessionManagerContract, TicketTriggerArgs } from './event-dispatcher.js'; import type { RuntimeAdapterResolver } from './runtime/composition/runtime-adapter-resolver.js'; export declare function composePersistentTriggerTurn(spec: TicketTriggerArgs): string; export declare class TicketSessionManager extends BaseSessionManager implements TicketSessionManagerContract { #private; readonly circuitBreaker: CircuitBreaker; onHarnessSessionLimit: ((info: { agentId: string; ticketId: string; role: string; reason: string; resetLabel: string; deferUntilMs: number; }) => void) | null; constructor(config: SessionAwareConfig, circuitBreaker?: CircuitBreaker, adapterResolver?: RuntimeAdapterResolver); tryReserveDispatch(ticketId: string, role: string, agentId: string): DispatchReservation; releaseDispatch(ticketId: string, role: string, agentId: string, nonce?: string): void; attachDispatchPid(ticketId: string, role: string, agentId: string, nonce: string | undefined, pid: number): void; hasInflightOrLiveDispatch(ticketId: string, role: string, agentId: string): boolean; dispatchTrigger(spec: TicketTriggerArgs): Promise; protected _onSessionReaped(sess: SessionRecord): void; protected _onStopDrain(sessions: SessionRecord[]): Promise; forwardCommentMention(ticketId: string, mention: any, targetAgentId?: string): boolean; forwardBoardUpdate(ticketId: string, ev: any): boolean; protected _onStdoutParsed(sess: SessionRecord, parsed: ParseResult, rawLine: string): void; protected _onChildExit(sess: SessionRecord, code: number | null, _signal: NodeJS.Signals | null): Promise; _snapshot(): Array<{ sessionKey: string; ticketId: string; role: string; pid: number; turnCount: number; startedAt: number; lastTouchedAt: number; }>; }