import type { Capability, CapabilityContext, CapabilityPlanDetails, CapabilityVerification, RollbackContext } from "./types.js"; import { type NodePermissionSandboxOptions } from "./sandbox.js"; export interface CapabilityExecutor { execute(capability: Capability, input: unknown, context: CapabilityContext): unknown | Promise; plan?(capability: Capability, input: unknown): CapabilityPlanDetails | Promise; verify?(capability: Capability, output: unknown, context: CapabilityContext): boolean | CapabilityVerification | undefined | Promise; rollback?(capability: Capability, context: RollbackContext): unknown | Promise; } export declare class InProcessExecutor implements CapabilityExecutor { execute(capability: Capability, input: unknown, context: CapabilityContext): unknown; plan(capability: Capability, input: unknown): Promise; verify(capability: Capability, output: unknown, context: CapabilityContext): Promise; rollback(capability: Capability, context: RollbackContext): Promise; } export type SandboxOptionResolver = (capability: Capability, context?: CapabilityContext) => Omit; export declare class NodePermissionExecutor implements CapabilityExecutor { private readonly options; constructor(options?: SandboxOptionResolver); private module; private sandboxOptions; execute(capability: Capability, input: unknown, context: CapabilityContext): Promise; plan(capability: Capability, input: unknown): Promise; verify(capability: Capability, output: unknown, context: CapabilityContext): Promise; rollback(capability: Capability, context: RollbackContext): Promise; } //# sourceMappingURL=executor.d.ts.map