import { ChangeDetectorRef, OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
import { DynamicItemLoader, DynamicItemSource, PackageManager } from '@anglr/dynamic';
import { Logger } from '@anglr/common';
import { Dictionary } from '@jscrpt/common';
import { Observable, Subscription } from 'rxjs';
import { LayoutEditorMetadataExtractor } from '../../services';
import { ComponentsPaletteItem, LayoutModuleTypes } from './componentsPalette.interface';
import * as i0 from "@angular/core";
/**
 * Component displaying available components palette
 */
export declare class ComponentsPaletteSAComponent implements OnInit, OnChanges, OnDestroy {
    protected moduleTypesLoader: DynamicItemLoader<LayoutModuleTypes>;
    protected changeDetector: ChangeDetectorRef;
    protected packageManager: PackageManager;
    protected metadataExtractor: LayoutEditorMetadataExtractor;
    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: ComponentsPaletteItem[];
    /**
     * Gets array of used packages
     */
    protected get usedPackages(): string[];
    /**
     * Array of whitelisted packages
     */
    protected whiteListedPackages: string[];
    /**
     * Available items grouped by group name
     */
    protected groupedItems: Dictionary<(ComponentsPaletteItem & {
        temp?: boolean;
    })[]>;
    /**
     * Used for refreshing pipe value
     */
    protected refreshPipe: boolean;
    /**
     * 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<LayoutModuleTypes>, changeDetector: ChangeDetectorRef, packageManager: PackageManager, metadataExtractor: LayoutEditorMetadataExtractor, _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;
    /**
     * Initialize items in palette
     */
    protected initItems(): Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ComponentsPaletteSAComponent, [null, null, null, null, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ComponentsPaletteSAComponent, "components-palette", never, { "packages": { "alias": "packages"; "required": false; }; "whiteList": { "alias": "whiteList"; "required": false; }; "blackList": { "alias": "blackList"; "required": false; }; }, {}, never, never, true, never>;
}
//# sourceMappingURL=componentsPalette.component.d.ts.map