import { type ComponentType } from 'react'; import { type NodeId } from '@ironclad/rivet-core'; export type ContextMenuConfig = { contexts: ContextMenuContextConfig; commands: ContextMenuItem[]; }; export type ContextMenuContextConfig = { [key: string]: ContextMenuContextConfigContext; }; export type ContextMenuContextConfigContext = { contextType: Context; items: readonly ContextMenuItem[]; }; export type ContextMenuItem = { id: string; label: string; subLabel?: string; icon?: ComponentType; data?: Data | ((context: Context) => Data); conditional?: (context: Context) => boolean; items?: readonly ContextMenuItem[]; infoBox?: { title: string; description: string; image?: string; }; }; export type ContextMenuConfiguration = ReturnType; export declare function useContextMenuConfiguration(): { readonly contexts: { readonly node: { readonly contextType: { nodeType: string; nodeId: NodeId; canRunFromHere: boolean; }; readonly items: readonly [{ readonly id: "node-copy"; readonly label: "Copy"; readonly icon: React.FunctionComponent; }, { readonly id: "node-go-to-subgraph"; readonly label: "Go To Subgraph"; readonly icon: React.FunctionComponent; readonly conditional: (context: unknown) => boolean; }, { readonly id: "node-edit"; readonly label: "Edit"; readonly icon: React.FunctionComponent; }, { readonly id: "node-duplicate"; readonly label: "Duplicate"; readonly icon: React.FunctionComponent; }, { readonly id: "nodes-factor-into-subgraph"; readonly label: "Create Subgraph"; readonly icon: React.FunctionComponent; readonly conditional: () => boolean; }, { readonly id: "node-run-to-here"; readonly label: "Run to here"; readonly icon: React.FunctionComponent; }, { readonly id: "node-run-from-here"; readonly label: "Run from here"; readonly icon: React.FunctionComponent; readonly conditional: (context: unknown) => boolean; }, { readonly id: "node-delete"; readonly label: "Delete"; readonly icon: React.FunctionComponent; }]; }; readonly blankArea: { readonly contextType: {}; readonly items: readonly [{ readonly id: "add"; readonly label: "Add"; readonly items: ({ items: ContextMenuItem[]; id: "add-node-group:common"; label: "Common"; } | { items: ContextMenuItem[]; id: "add-node-group:text"; label: "Text"; } | { items: ContextMenuItem[]; id: "add-node-group:ai"; label: "AI"; } | { items: ContextMenuItem[]; id: "add-node-group:lists"; label: "Lists"; } | { items: ContextMenuItem[]; id: "add-node-group:numbers"; label: "Numbers"; } | { items: ContextMenuItem[]; id: "add-node-group:objects"; label: "Objects"; } | { items: ContextMenuItem[]; id: "add-node-group:data"; label: "Data"; } | { items: ContextMenuItem[]; id: "add-node-group:logic"; label: "Logic"; } | { items: ContextMenuItem[]; id: "add-node-group:input-output"; label: "Input/Output"; } | { items: ContextMenuItem[]; id: "add-node-group:advanced"; label: "Advanced"; } | { items: ContextMenuItem[]; id: "add-node-group:custom"; label: "Custom"; } | { items: ContextMenuItem[]; id: string; label: string; })[]; readonly icon: React.FunctionComponent; }, { readonly id: "paste"; readonly label: "Paste"; readonly icon: React.FunctionComponent; readonly conditional: () => boolean; }]; }; readonly graphList: { readonly contextType: {}; readonly items: readonly []; }; readonly graphListGraph: { readonly contextType: {}; readonly items: readonly []; }; }; readonly commands: ContextMenuItem[]; }; //# sourceMappingURL=useContextMenuConfiguration.d.ts.map