import { IPoint } from '@foblex/2d';
import { ElementRef, InjectionToken, OutputEmitterRef, Signal } from '@angular/core';
import { FCanvasChangeEvent } from './domain';
import { IHasHostElement } from '../i-has-host-element';
import * as i0 from "@angular/core";
export declare const F_CANVAS: InjectionToken<FCanvasBase>;
export declare abstract class FCanvasBase implements IHasHostElement {
    abstract fCanvasChange: OutputEmitterRef<FCanvasChangeEvent>;
    abstract hostElement: HTMLElement;
    abstract fGroupsContainer: Signal<ElementRef<HTMLElement>>;
    abstract fNodesContainer: Signal<ElementRef<HTMLElement>>;
    abstract fConnectionsContainer: Signal<ElementRef<HTMLElement>>;
    transform: import("@foblex/2d").ITransformModel;
    abstract redraw(): void;
    abstract redrawWithAnimation(): void;
    getPosition(): IPoint;
    setPosition(position: IPoint): void;
    abstract setScale(scale: number, toPosition: IPoint): void;
    abstract resetScale(): void;
    emitCanvasChangeEvent(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FCanvasBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FCanvasBase, never, never, {}, {}, never, never, false, never>;
}
