import type { SlopeEvent, SprintConflict } from './types.js'; import type { StandupReport } from './standup.js'; /** Escalation trigger types */ export type EscalationTrigger = 'blocker_timeout' | 'claim_conflict' | 'test_failure_cascade' | 'manual'; /** Escalation severity */ export type EscalationSeverity = 'warning' | 'critical'; /** Escalation action to take */ export type EscalationAction = 'log_event' | 'mark_blocked' | 'notify_standup'; /** Configuration for escalation rules in .slope/config.json */ export interface EscalationConfig { /** Minutes before a blocked agent triggers escalation (default: 15) */ blocker_timeout?: number; /** Whether claim conflicts auto-escalate (default: true) */ claim_conflict?: boolean; /** Number of test failures across swarm before escalation (default: 10) */ test_failure_cascade?: number; /** Actions to take on escalation */ actions?: EscalationAction[]; } /** A detected escalation condition */ export interface EscalationResult { trigger: EscalationTrigger; severity: EscalationSeverity; description: string; session_id?: string; agent_role?: string; actions: EscalationAction[]; } /** * Merge user config with defaults. */ export declare function resolveEscalationConfig(config?: EscalationConfig): Required; /** * Detect escalation conditions from swarm state. * * Checks three trigger types: * 1. blocker_timeout — agent blocked for longer than configured threshold * 2. claim_conflict — overlapping claims between agents * 3. test_failure_cascade — excessive test failures across the swarm */ export declare function detectEscalation(opts: { config?: EscalationConfig; standups?: StandupReport[]; conflicts?: SprintConflict[]; events?: SlopeEvent[]; now?: number; }): EscalationResult[]; /** * Create an escalation event suitable for store.insertEvent(). */ export declare function buildEscalationEvent(escalation: EscalationResult, sessionId: string, sprintNumber?: number): Omit; //# sourceMappingURL=escalation.d.ts.map