import { OnDestroy, OnInit, ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { DynamicItemSource, EditorHotkeys, MetadataHistoryManager } from '@anglr/dynamic';
import { Subscription } from 'rxjs';
import { RelationsCanvasSAComponent } from '../relationsCanvas/relationsCanvas.component';
import { RelationsNodeDragData, RelationsNodeMetadata } from '../../interfaces';
import * as i0 from "@angular/core";
/**
 * Component that represents relations editor with palette and canvas
 */
export declare class RelationsEditorSAComponent implements OnInit, OnChanges, OnDestroy {
    protected history: MetadataHistoryManager<RelationsNodeMetadata[]>;
    protected changeDetector: ChangeDetectorRef;
    protected hotkeys?: EditorHotkeys | undefined;
    /**
     * Subscriptions created during initialization
     */
    protected initSubscriptions: Subscription;
    /**
     * Relation canvas
     */
    protected relationCanvas: RelationsCanvasSAComponent | undefined | null;
    /**
     * Metadata used for rendering relations in canvas
     */
    metadata: RelationsNodeMetadata[];
    /**
     * Array of packages that should be used, if specified, package manager is not displayed
     */
    packages: string[] | undefined | null;
    /**
     * Array of dynamic items sources which should be whitelisted, if this is used, package which is whitelisted will override black list and only components from whitelist will be available
     */
    whiteList: DynamicItemSource[] | undefined | null;
    /**
     * Array of dynamic items sources which should be blacklisted, components used in this list will not be available, only if overriden by whitelist
     */
    blackList: DynamicItemSource[] | undefined | null;
    constructor(history: MetadataHistoryManager<RelationsNodeMetadata[]>, changeDetector: ChangeDetectorRef, hotkeys?: EditorHotkeys | undefined);
    /**
     * Initialize component
     */
    ngOnInit(): void;
    /**
     * Called when input value changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Called when component is destroyed
     */
    ngOnDestroy(): void;
    /**
     * Adds new node into canvas and metadata
     * @param event - Drop event that occured
     */
    protected addNode(event: CdkDragDrop<RelationsNodeDragData, RelationsNodeDragData, RelationsNodeDragData>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RelationsEditorSAComponent, [null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RelationsEditorSAComponent, "relations-editor", never, { "metadata": { "alias": "metadata"; "required": false; }; "packages": { "alias": "packages"; "required": false; }; "whiteList": { "alias": "whiteList"; "required": false; }; "blackList": { "alias": "blackList"; "required": false; }; }, {}, never, never, true, never>;
}
//# sourceMappingURL=relationsEditor.component.d.ts.map