import type { ScapiConfirmation, ScapiRuntimeControl } from '@salesforce/b2c-tooling-sdk/scapi'; import type { ToolContext, ToolResult } from '../../utils/types.js'; declare function deferred(): { promise: Promise; resolve: (value: T) => void; reject: (reason: Error) => void; }; interface OperationRecord { kind: 'auth' | 'request'; method?: string; path?: string; status: 'awaiting_confirmation' | 'completed' | 'failed' | 'in_flight' | 'not_sent' | 'unknown'; httpStatus?: number; } interface ApprovalRound { state: string; key: string; prompt: ToolResult; decision: ReturnType>; responded?: boolean; } /** One worker survives protocol round trips; none of its code is replayed. */ export declare class ScapiExecution { readonly digest: string; private readonly supportsElicitation; private readonly mintState; control?: ScapiRuntimeControl; readonly controller: AbortController; done: Promise; readonly id: `${string}-${string}-${string}-${string}-${string}`; readonly operations: OperationRecord[]; result?: ToolResult; readonly rounds: Map; private cancellation?; private cancellationListeners; private dispatched; private event; private pending?; private queue; constructor(digest: string, supportsElicitation: boolean, mintState: (round: number) => string); cancel(reason?: string): void; confirm(request: ScapiConfirmation): Promise; finish(result: ToolResult): void; markDispatched(): void; retry(state: string, context: ToolContext): Promise; runCall(kind: OperationRecord['kind'], input: unknown, operation: () => Promise): Promise; wait(context?: ToolContext): Promise; } /** Stdio-server-owned continuations. Terminal records are bounded; tokens never start new work. */ export declare class ScapiExecutionRegistry { private readonly options; private readonly executions; private readonly secret; constructor(options?: { maxActive?: number; }); cancel(id: string): Promise; destroyAll(): Promise; retry(args: unknown, context: ToolContext): Promise; start(args: unknown, context: ToolContext | undefined, run: (execution: ScapiExecution) => Promise): Promise; } export {};