import type { RenderPreset } from '../../setup';
import { ClassicPreset, Scope } from 'rete';
import { type SocketPositionWatcher } from 'rete-render-utils';
import type { SvelteComponent } from 'svelte';
import type { ClassicScheme, ExtractPayload, SvelteArea2D } from './types';
export { default as Connection } from './components/Connection.svelte';
export { default as Control } from './components/Control.svelte';
export { default as Socket } from './components/Socket.svelte';
export { default as Button } from './components/Button.svelte';
export { default as InputControl } from './components/InputControl.svelte';
export { default as ExecSocket } from './components/ExecSocket.svelte';
export { default as AddXmlAttributeControl } from '../../AddXmlAttributeControl.svelte';
type Component<Props extends Record<string, any>> = ComponentType<SvelteComponent<Props>>;
type CustomizationProps<Schemes extends ClassicScheme> = {
    node?: (data: ExtractPayload<Schemes, 'node'>) => Component<any> | null;
    connection?: (data: ExtractPayload<Schemes, 'connection'>) => Component<any> | null;
    socket?: (data: ExtractPayload<Schemes, 'socket'>) => Component<any> | null;
    control?: <N extends ClassicPreset.Control>(data: ExtractPayload<Schemes, 'control'>) => Component<{
        data: N;
    }> | null;
};
type ClassicProps<Schemes extends ClassicScheme, K> = {
    socketPositionWatcher?: SocketPositionWatcher<Scope<never, [K]>>;
    customize?: CustomizationProps<Schemes>;
};
/**
 * Classic preset for rendering nodes, connections, controls and sockets.
 */
export declare function setup<Schemes extends ClassicScheme, K extends SvelteArea2D<Schemes>>(props?: ClassicProps<Schemes, K>): RenderPreset;
