import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from "@angular/core";
import { IPoint, IRect, ISize } from '@foblex/2d';
import { FNodeBase } from './f-node-base';
import { BrowserService } from '@foblex/platform';
import { IHasHostElement } from '../i-has-host-element';
import * as i0 from "@angular/core";
export declare class FGroupDirective 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 rotate(value: number);
    get rotate(): number;
    rotateChange: EventEmitter<number>;
    set size(value: ISize);
    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<FGroupDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FGroupDirective, "[fGroup]", ["fComponent"], { "fId": { "alias": "fGroupId"; "required": false; }; "fParentId": { "alias": "fGroupParentId"; "required": false; }; "position": { "alias": "fGroupPosition"; "required": false; }; "rotate": { "alias": "fGroupRotate"; "required": false; }; "size": { "alias": "fGroupSize"; "required": false; }; "fDraggingDisabled": { "alias": "fGroupDraggingDisabled"; "required": false; }; "fSelectionDisabled": { "alias": "fGroupSelectionDisabled"; "required": false; }; "fIncludePadding": { "alias": "fIncludePadding"; "required": false; }; "fConnectOnNode": { "alias": "fConnectOnNode"; "required": false; }; "fMinimapClass": { "alias": "fMinimapClass"; "required": false; }; }, { "positionChange": "fGroupPositionChange"; "rotateChange": "fGroupRotateChange"; "sizeChange": "fGroupSizeChange"; }, never, never, false, never>;
    static ngAcceptInputType_fDraggingDisabled: unknown;
    static ngAcceptInputType_fSelectionDisabled: unknown;
    static ngAcceptInputType_fIncludePadding: unknown;
    static ngAcceptInputType_fConnectOnNode: unknown;
}
