import { Point2D } from '@obliczeniowo/elementary/classes';
import { ComponentRef, SimpleChanges, ViewContainerRef, ElementRef, QueryList, EventEmitter } from '@angular/core';
import { BoxItemModel } from '../../models/box-item.model';
import { ModellerService } from '../../services/modeller.service';
import { ModellerBoxComponent } from '../modeller-box/modeller-box.component';
import { ModellerConnectorModel } from '../../models/modeller-connector.model';
import { Connector, RelationConnectorComponent } from '@obliczeniowo/elementary/connectors';
import * as i0 from "@angular/core";
export declare class ModellerSpaceComponent {
    protected modeller: ModellerService;
    protected ref: ElementRef<HTMLElement>;
    boxes: BoxItemModel[];
    /** */
    connectorsSet: Connector[];
    /** Inputs values to filtering out */
    input: {
        [key: string]: any;
    };
    /**  */
    output: EventEmitter<any>;
    /** */
    connectorsSetChanged: EventEmitter<Connector[]>;
    /** */
    boxesChanged: EventEmitter<BoxItemModel[]>;
    /** Output filtered out values */
    protected _output: {
        [key: string]: any;
    };
    protected components: (ComponentRef<ModellerBoxComponent> | any)[];
    protected translation: Point2D;
    protected buttons: number;
    protected mouse: Point2D;
    protected mousePos: Point2D;
    protected clickedPlace: Point2D;
    protected selected?: ModellerBoxComponent;
    protected source?: string;
    protected connectors: ModellerConnectorModel[];
    protected create?: ModellerConnectorModel;
    protected connectorsComponents: QueryList<RelationConnectorComponent>;
    containerRef: ViewContainerRef;
    timer: any;
    mousemove(event: MouseEvent): void;
    mousedown(event: MouseEvent): void;
    mouseup(event: MouseEvent): void;
    protected moveCreated(): void;
    protected setBoxes(): void;
    constructor(modeller: ModellerService, ref: ElementRef<HTMLElement>);
    recalcPos(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    setInputOutput(): void;
    setConnectors(after?: () => void): void;
    removeEmptyConnector(fullId: string, side: 'left' | 'right'): boolean;
    reload(): void;
    getById(id: string): ComponentRef<any> | undefined;
    /** by assumption first one should be an output and should always exist */
    getInput(): ComponentRef<ModellerBoxComponent>;
    /** by assumption second one should be an output and should always exist */
    getOutput(): ComponentRef<ModellerBoxComponent>;
    protected menuClicked(command: string): void;
    protected removeConnector(connector: ModellerConnectorModel): void;
    protected emitConnectorsSet(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModellerSpaceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ModellerSpaceComponent, "obl-modeller-space", never, { "boxes": { "alias": "boxes"; "required": false; }; "connectorsSet": { "alias": "connectorsSet"; "required": false; }; "input": { "alias": "input"; "required": false; }; }, { "output": "output"; "connectorsSetChanged": "connectorsSetChanged"; "boxesChanged": "boxesChanged"; }, never, never, false, never>;
}
