import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from "@angular/core";
import { IPoint, IRect, ISize } from '@foblex/2d';
import { BrowserService } from '@foblex/platform';
import { FNodeBase } from './f-node-base';
import { IHasHostElement } from '../i-has-host-element';
import * as i0 from "@angular/core";
export declare class FNodeDirective extends FNodeBase implements OnInit, AfterViewInit, IHasHostElement, OnDestroy {
    private renderer;
    private fBrowser;
    private readonly _destroyRef;
    private readonly _fMediator;
    fId: string;
    fParentId: string | null | undefined;
    set position(value: IPoint);
    get position(): IPoint;
    positionChange: EventEmitter<IPoint>;
    set size(value: ISize);
    set rotate(value: number);
    get rotate(): number;
    rotateChange: EventEmitter<number>;
    get size(): ISize;
    sizeChange: EventEmitter<IRect>;
    fDraggingDisabled: boolean;
    fSelectionDisabled: boolean;
    fIncludePadding: boolean;
    fConnectOnNode: boolean;
    fMinimapClass: string[] | string;
    constructor(elementReference: ElementRef<HTMLElement>, renderer: Renderer2, fBrowser: BrowserService);
    ngOnInit(): void;
    protected setStyle(styleName: string, value: string): void;
    redraw(): void;
    ngAfterViewInit(): void;
    private _listenStateSizeChanges;
    refresh(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FNodeDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FNodeDirective, "[fNode]", ["fComponent"], { "fId": { "alias": "fNodeId"; "required": false; }; "fParentId": { "alias": "fNodeParentId"; "required": false; }; "position": { "alias": "fNodePosition"; "required": false; }; "size": { "alias": "fNodeSize"; "required": false; }; "rotate": { "alias": "fNodeRotate"; "required": false; }; "fDraggingDisabled": { "alias": "fNodeDraggingDisabled"; "required": false; }; "fSelectionDisabled": { "alias": "fNodeSelectionDisabled"; "required": false; }; "fIncludePadding": { "alias": "fIncludePadding"; "required": false; }; "fConnectOnNode": { "alias": "fConnectOnNode"; "required": false; }; "fMinimapClass": { "alias": "fMinimapClass"; "required": false; }; }, { "positionChange": "fNodePositionChange"; "rotateChange": "fNodeRotateChange"; "sizeChange": "fNodeSizeChange"; }, never, never, false, never>;
    static ngAcceptInputType_fDraggingDisabled: unknown;
    static ngAcceptInputType_fSelectionDisabled: unknown;
    static ngAcceptInputType_fIncludePadding: unknown;
    static ngAcceptInputType_fConnectOnNode: unknown;
}
