import { ChangeDetectorRef, OnInit, OnDestroy, SimpleChanges } from '@angular/core';
import { CdkDropList } from '@angular/cdk/drag-drop';
import { DynamicItemLoader, DynamicItemSource, PackageManager } from '@anglr/dynamic';
import { Logger } from '@anglr/common';
import { Dictionary } from '@jscrpt/common';
import { Observable, Subscription } from 'rxjs';
import { NodesPaletteItem } from './nodesPalette.interface';
import { RelationsModuleTypes, RelationsNodeDef } from '../../misc/types';
import { RelationsNodeManager } from '../../services';
import * as i0 from "@angular/core";
/**
 * Component displaying available nodes palette
 */
export declare class NodesPaletteSAComponent implements OnInit, OnDestroy {
    protected _moduleTypesLoader: DynamicItemLoader<RelationsModuleTypes>;
    protected _nodesLoader: DynamicItemLoader<RelationsNodeDef>;
    protected _changeDetector: ChangeDetectorRef;
    protected packageManager: PackageManager;
    protected _metadataManager: RelationsNodeManager;
    protected _refreshObservables?: Observable<void>[] | undefined;
    protected _logger?: Logger | undefined;
    /**
     * Subscriptions created during initialization
     */
    protected initSubscriptions: Subscription;
    /**
     * Array of all available items in palette
     */
    protected allItems: NodesPaletteItem[];
    /**
     * Gets array of used packages
     */
    protected get usedPackages(): string[];
    /**
     * Available items grouped by group name
     */
    protected groupedItems: Dictionary<(NodesPaletteItem & {
        temp?: boolean;
    })[]>;
    /**
     * Generated component id, that is used for new component
     */
    protected newCompnentId: string;
    /**
     * Indication whether drag element is over palette
     */
    protected isDragOverPalette: boolean;
    /**
     * Array of whitelisted packages
     */
    protected whiteListedPackages: string[];
    /**
     * Instance of canvas drop list
     */
    canvasDropList: CdkDropList;
    /**
     * Array of packages that should be used, if specified, package manager is ignored
     */
    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(_moduleTypesLoader: DynamicItemLoader<RelationsModuleTypes>, _nodesLoader: DynamicItemLoader<RelationsNodeDef>, _changeDetector: ChangeDetectorRef, packageManager: PackageManager, _metadataManager: RelationsNodeManager, _refreshObservables?: Observable<void>[] | undefined, _logger?: Logger | undefined);
    /**
     * Initialize component
     */
    ngOnInit(): Promise<void>;
    /**
     * Called when input value changes
     */
    ngOnChanges(changes: SimpleChanges): Promise<void>;
    /**
     * Called when component is destroyed
     */
    ngOnDestroy(): void;
    /**
     * Loads available relations nodes into palette
     */
    protected loadNodes(): Promise<void>;
    /**
     * Generates new component id
     */
    protected generateNewId(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodesPaletteSAComponent, [null, null, null, null, null, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NodesPaletteSAComponent, "nodes-palette", never, { "canvasDropList": { "alias": "canvasDropList"; "required": false; }; "packages": { "alias": "packages"; "required": false; }; "whiteList": { "alias": "whiteList"; "required": false; }; "blackList": { "alias": "blackList"; "required": false; }; }, {}, never, never, true, never>;
}
//# sourceMappingURL=nodesPalette.component.d.ts.map