import type { EngagementScope } from "../store/scope.js"; import type { ToolCall } from "../types.js"; export type ActionCapability = "passive" | "active-enumeration" | "authentication" | "exploitation" | "persistence" | "destructive"; export type EngagementPhase = "recon" | "enumeration" | "authentication" | "exploitation" | "post-exploitation"; export interface EngagementAction { target: string; url?: string | undefined; port?: number | undefined; path?: string | undefined; method?: string | undefined; phase: EngagementPhase; capability: ActionCapability; redirectChain?: string[] | undefined; resolvedAddresses?: string[] | undefined; } export interface PolicyDecision { allowed: boolean; reason: string; normalizedTarget: string; capability: ActionCapability; phase: EngagementPhase; } export declare function isLocalDevProbeAction(action: EngagementAction): boolean; export declare function evaluateEngagementAction(scope: EngagementScope | undefined, action: EngagementAction, now?: number): PolicyDecision; export interface PolicyLease { decision: PolicyDecision; release: () => void; } export declare class EngagementPolicyEngine { private readonly now; private tokens; private lastRefill; private active; private scopeIdentity; constructor(now?: () => number); acquire(scope: EngagementScope | undefined, action: EngagementAction): PolicyLease; } export declare function actionFromUrl(input: { url: string; method?: string | undefined; phase?: EngagementPhase | undefined; capability?: ActionCapability | undefined; redirectChain?: string[] | undefined; resolvedAddresses?: string[] | undefined; }): EngagementAction; export interface InteractiveEngagementState { readonly target?: string | undefined; readonly port?: number | undefined; readonly phase?: EngagementPhase | undefined; readonly capability?: ActionCapability | undefined; } export interface InteractiveEngagementAssessment { readonly state: InteractiveEngagementState; readonly effectful: boolean; readonly decision?: PolicyDecision | undefined; } export declare function advanceInteractiveEngagementState(current: InteractiveEngagementState, text: string): InteractiveEngagementState; export declare function evaluateInteractiveEngagementInput(scope: EngagementScope | undefined, current: InteractiveEngagementState, text: string, now?: number): InteractiveEngagementAssessment; export declare function engagementActionForToolCall(call: ToolCall): EngagementAction | undefined; export declare function engagementActionsForToolCall(call: ToolCall): EngagementAction[];