import { type AfterViewInit, type OnDestroy, type OnInit } from '@angular/core'; import { type ControlValueAccessor, FormControl } from '@angular/forms'; import { PanZoomComponent } from './components/pan-zoom/pan-zoom.component'; import { type DfDataConnection, type DfDataModel, type DfDataNode, type DfEvent, type DfInteractionOptions, type DfPoint } from './ng-draw-flow.interfaces'; import * as i0 from "@angular/core"; import * as i1 from "./directives/errors/errors.directive"; import * as i2 from "@ng-web-apis/resize-observer"; /** * Root component of **ng-draw-flow** – a lightweight graph editor * capable of rendering and manipulating hundreds of nodes and edges. * * * Acts as a form-field (`ControlValueAccessor`) whose value is the * entire diagram (`DfDataModel`). * * Wraps the low-level services (`PanZoomService`, `ConnectionsService` * …) and re-emits high-level events so host applications can stay * framework-agnostic. * * Exposes a minimal public API (`zoomIn`, `zoomOut`, `resetPosition`, * `setScale`, `removeConnection`, `removeNode`) for programmatic control. * * Broadcasts state and events through `NgDrawFlowStoreService` so host apps * can react without a direct reference to the component instance. */ export declare class NgDrawFlowComponent implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy { private readonly cdr; private readonly injector; private controlStatus; private readonly cancelPendingChanges$; private pendingChange; private readonly destroyRef; private readonly hostElement; private readonly renderer; private readonly connectionsService; private readonly panZoomService; private readonly panZoomOptions; private readonly selectionService; private readonly store; private readonly interactionState; private readonly cvaDisabled; private readonly maxViewportFrameRetries; private frameRequestId; private viewportFrameRetryCount; private shouldFrameViewport; private hasFramedExternalModel; private destroyed; private interactionVersion; private readonly activePointers; protected readonly panzoom: import("@angular/core").Signal; /** Form state inputs are populated automatically by Signal Forms. */ readonly disabledInput: import("@angular/core").InputSignal; readonly readonlyInput: import("@angular/core").InputSignal; readonly invalid: import("@angular/core").InputSignal; readonly touched: import("@angular/core").InputSignal; readonly dirty: import("@angular/core").InputSignal; readonly pending: import("@angular/core").InputSignal; /** Dynamic overrides for the legacy provider's interaction defaults. */ readonly interactionOptions: import("@angular/core").InputSignal>; protected readonly disabled: import("@angular/core").Signal; protected readonly readonly: import("@angular/core").Signal; /** Emits the current zoom percentage (100 === actual size) each time it changes. */ protected readonly scale: import("@angular/core").OutputEmitterRef; /** Fired after a new edge is successfully created. */ protected readonly connectionCreated: import("@angular/core").OutputEmitterRef>; /** Fired after an edge is removed—via UI, `removeConnection()` or `removeNode()`. */ protected readonly connectionDeleted: import("@angular/core").OutputEmitterRef>; /** Fired when an edge receives focus in the scene. */ protected readonly connectionSelected: import("@angular/core").OutputEmitterRef; /** Fired when a node receives focus in the scene. */ protected readonly nodeSelected: import("@angular/core").OutputEmitterRef; /** Fired whenever the user drags a node to a new position. */ protected readonly nodeMoved: import("@angular/core").OutputEmitterRef>; /** Fired when a node is removed from the graph. */ protected readonly nodeDeleted: import("@angular/core").OutputEmitterRef>; protected readonly form: FormControl; protected readonly $rootReady: import("@angular/core").WritableSignal; constructor(); ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; writeValue(value: DfDataModel | null | undefined): void; registerOnChange(fn: (value: DfDataModel) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; /** Zooms one step *in* towards the center of the scene. */ zoomIn(): void; /** Zooms one step *out* from the center of the scene. */ zoomOut(): void; /** Partially updates zoom and coordinates. */ setPosition(position?: Partial & { zoom?: number; }): void; /** Resets both zoom factor and pan offset to their defaults. */ resetPosition(): void; /** * Applies an absolute zoom factor to the scene (1 === 100%) while respecting * configured pan/zoom bounds. */ setScale(scale: number): void; /** Replaces the current model and propagates the change to the bound control. */ setDataModel(model: DfDataModel): void; /** Method that removes an existing edge. */ removeConnection(connection: DfDataConnection): void; /** Method that removes an existing node and all related edges. */ removeNode(node: DfDataNode | string): void; /** Clears any active selection in the scene. */ clearSelection(): void; protected onScaleChange(scale: number): void; protected onConnectionCreated(event: DfEvent): void; protected onConnectionDeleted(event: DfEvent): void; protected onNodeDeleted(event: DfEvent): void; protected onNodeMoved(event: DfEvent): void; protected onResize(event: readonly ResizeObserverEntry[]): void; protected onFocusOut(event: FocusEvent): void; protected onPointerDown(event: PointerEvent): void; protected onPointerEnd(event: PointerEvent): void; protected isTouched(): boolean; protected markAsTouched(): void; private watchFormChanges; private flushPendingChange; private cancelPendingChange; private onChange; private onTouched; private cancelInteraction; private applyModel; private isFocusableDescendant; private isSameConnection; private scheduleViewportFraming; private cancelViewportFraming; private applyViewportFraming; private retryViewportFraming; private getViewportFramingTargetRect; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }