export type ContextTargetKind = "entity" | "object"; /** One right-click verb: a label plus the command it dispatches (walk-then-act supported by args). */ export interface ContextVerb { label: string; command: string; args?: Record; /** Greyed-out and non-dispatchable when true (e.g. requirement unmet). */ disabled?: boolean; } /** Builds a {@link ContextVerb} for a right-click menu entry. */ export declare function contextVerb(label: string, command: string, args?: Record): ContextVerb; export interface ContextMenu { kind: ContextTargetKind; targetId: string; /** World point the click landed on, forwarded to dispatched commands for walk-then-act. */ point?: readonly [number, number, number]; verbs: readonly ContextVerb[]; } export interface BuildContextMenuInput { kind: ContextTargetKind; targetId: string; verbs: readonly ContextVerb[] | undefined; point?: readonly [number, number, number]; } /** Assemble a menu from a target's catalog verbs; null when the target lists none. */ export declare function buildContextMenu(input: BuildContextMenuInput): ContextMenu | null; /** * Command input a chosen verb dispatches: the verb's own args, plus the target id and * the world point, so a single handler can walk the actor to the target then perform it. */ export declare function contextVerbInput(menu: ContextMenu, verb: ContextVerb): Record;