import { EventEmitter } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { DefaultIconDefinition } from '@c8y/ngx-components/icon-selector/model';
import { SupportedIconsSuggestions } from '@c8y/ngx-components/icon-selector/icons';
import * as i0 from "@angular/core";
export declare class IconSelectorComponent {
    iconCategoriesToExclude: string[];
    showIconClass: boolean;
    onSelect: EventEmitter<string>;
    selectedIcon: SupportedIconsSuggestions;
    icons$: Observable<DefaultIconDefinition[]>;
    filteredIcons$: Observable<DefaultIconDefinition[]>;
    searchTerm$: BehaviorSubject<string>;
    selectedIconCategory$: BehaviorSubject<string>;
    availableIconCategories$: Observable<string[]>;
    constructor();
    loadIconDefinitions(): Promise<DefaultIconDefinition[]>;
    filterIconsByCategoryAndSearchTerm(iconCategories: DefaultIconDefinition[], selectedCategory: string, searchTerm: string): DefaultIconDefinition[];
    onSearchChange(searchTerm: string): void;
    onCategoryFilterChanged(categoryChange: string): void;
    onIconClicked(icon: ReadonlyArray<string>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<IconSelectorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IconSelectorComponent, "c8y-icon-selector", never, { "iconCategoriesToExclude": { "alias": "iconCategoriesToExclude"; "required": false; }; "showIconClass": { "alias": "showIconClass"; "required": false; }; "selectedIcon": { "alias": "selectedIcon"; "required": false; }; }, { "onSelect": "onSelect"; }, never, never, false, never>;
}
//# sourceMappingURL=icon-selector.component.d.ts.map