import { EventEmitter } from 'node:events'; import type { KillSwitchLevel, KillSwitchAction, KillSwitchEvent } from './types.js'; export declare class KillSwitch extends EventEmitter { private eventLog; private logPath; private suspendedEntities; private systemHalted; constructor(logPath?: string); /** * Activate the kill switch at a given level. * Validates that the level has authority for the requested action. * Validates that the level is not being overridden by a higher level. */ activate(level: KillSwitchLevel, action: KillSwitchAction, target: string, triggeredBy: string, reason: string): Promise; /** * Release a kill switch hold on a target. * Only a level equal to or higher than the suspending level can release. */ release(target: string, releasedBy: string, level: KillSwitchLevel): Promise<{ released: boolean; reason: string; }>; /** * Check if a target is suspended. */ isSuspended(target: string): { suspended: boolean; event?: KillSwitchEvent; }; /** * Check if the system is halted (Layer 2 kill switch). */ isSystemHalted(): boolean; /** * Get all currently suspended entities. */ getSuspended(): Map; /** * Get the full event log. */ getEventLog(): readonly KillSwitchEvent[]; /** * Validate that a given entity has authority to perform an action. * Used before executing any operation to check kill switch status. */ validateAuthority(requestingLevel: KillSwitchLevel, action: KillSwitchAction, target: string): { authorized: boolean; reason: string; }; private logEvent; }