import type { AreaPlugin } from 'rete-area-plugin'; import type { Schemes } from '../schemes'; import type { AreaExtra } from '../area'; import type { NodeEditor, NodeFactory } from '../editor'; import type { GeosDataContext } from '../../geos'; import type { NewGeosContext } from '../../global/todo.svelte'; export declare abstract class SetupClass { abstract setup(editor: NodeEditor, area: AreaPlugin, factory: NodeFactory, geos: GeosDataContext, geosContextV2: NewGeosContext): void; } export type Setup = { name: string; } & ({ setup: SetupFunction; type?: 'editor'; } | { setup: SetupAreaFunction; type: 'area'; }); export type SetupParams = { editor: NodeEditor; factory: NodeFactory; container?: HTMLElement; area?: AreaPlugin; }; export type SetupParamsWithArea = SetupParams & { area: AreaPlugin; }; export type SetupResult = {}; export type SetupFunction = (params: SetupParams) => SetupParams | Promise | void | Promise; export type SetupAreaFunction = (params: SetupParamsWithArea) => SetupParamsWithArea | Promise | void | Promise; export declare function isSetup(o: unknown): o is Setup;