import { NodeId, ClassicPreset as Classic, GetSchemes } from 'rete'; import { Position, RenderSignal } from '../../types'; declare type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; declare type GetControls> = Intersection[keyof Intersection] extends Classic.Control ? Intersection[keyof Intersection] : Classic.Control; declare type GetSockets, Union = Exclude> = Union extends { socket: any; } ? Union['socket'] : Classic.Socket; export declare type Side = 'input' | 'output'; export declare type AngularRenderData = { element: HTMLElement; type: 'socket'; payload: GetSockets; nodeId: NodeId; side: Side; key: string; } | { element: HTMLElement; type: 'control'; payload: GetControls; }; export declare type ExtractPayload = Extract, { type: 'render'; data: { type: K; }; }>['data']; export declare type AngularArea2D = RenderSignal<'node', { payload: T['Node']; }> | RenderSignal<'connection', { payload: T['Connection']; start?: Position; end?: Position; }> | RenderSignal<'socket', { payload: GetSockets; nodeId: NodeId; side: Side; key: string; }> | RenderSignal<'control', { payload: GetControls; }> | { type: 'unmount'; data: { element: HTMLElement; }; }; export declare type ClassicScheme = GetSchemes & { isLoop?: boolean; }>; export {};