import { Control } from '../control';
import { Emitter } from '../core/emitter';
import { IO } from '../io';
import { Control as ViewControl } from './control';
import { Socket as ViewSocket } from './socket';
import { Node as NodeEntity } from '../node';
import { Component } from '../engine/component';
import { EventsTypes } from '../events';
export declare class Node extends Emitter<EventsTypes> {
    node: NodeEntity;
    component: Component;
    sockets: Map<IO, ViewSocket>;
    controls: Map<Control, ViewControl>;
    el: HTMLElement;
    private _startPosition;
    constructor(node: NodeEntity, component: Component, emitter: Emitter<EventsTypes>);
    clearSockets(): void;
    bindSocket(el: HTMLElement, type: string, io: IO): void;
    bindControl(el: HTMLElement, control: Control): void;
    getSocketPosition(io: IO): number[];
    onSelect(e: MouseEvent): void;
    onStart(): void;
    onTranslate(dx: number, dy: number): void;
    onDrag(dx: number, dy: number): void;
    translate(x: number, y: number): void;
    update(): void;
    remove(): void;
}
