import * as i0 from '@angular/core'; import { OnDestroy, OnInit, EventEmitter, ChangeDetectorRef } from '@angular/core'; import { BehaviorSubject, Subscription } from 'rxjs'; import { NovoLabelService } from 'novo-elements/services'; import * as i9 from 'novo-elements/elements/dropdown'; import { NovoDropdownElement } from 'novo-elements/elements/dropdown'; import * as i2 from '@angular/common'; import * as i3 from '@angular/forms'; import * as i4 from '@angular/cdk/scrolling'; import * as i5 from 'novo-elements/elements/tabs'; import * as i6 from 'novo-elements/elements/list'; import * as i7 from 'novo-elements/elements/form'; import * as i8 from 'novo-elements/elements/button'; import * as i10 from 'novo-elements/elements/common'; import * as i11 from 'novo-elements/elements/checkbox'; type TabbedGroupPickerTab = { typeName: string; typeLabel: string; valueField: string; labelField: string; scrollOffset?: number; icon?: string; } & (ParentTab | ChildTab); type ParentTab = { childTypeName: string; data: Array; }; type BaseOption = { selected?: boolean; indeterminate?: boolean; } & { [key: string]: any; }; type ParentOption = BaseOption & { children: Option[]; }; type Option = BaseOption | ParentOption; type ChildTab = { data: Array<{ selected?: boolean; } & { [key: string]: any; }>; }; type TabbedGroupPickerQuickSelect = { label: string; selected?: boolean; childTypeName?: string; children?: (({ selected?: boolean; } & { [key: string]: any; }) | number)[]; all?: boolean; }; type QuickSelectConfig = { label: string; items: TabbedGroupPickerQuickSelect[]; }; type TabbedGroupPickerButtonConfig = { theme: string; side: string; icon: string; label: string; size?: string; }; declare class NovoTabbedGroupPickerElement implements OnDestroy, OnInit { labelService: NovoLabelService; private ref; private scrollableInstance; private inputElement; dropdown: NovoDropdownElement; multiple: boolean; buttonConfig: TabbedGroupPickerButtonConfig; tabs: TabbedGroupPickerTab[]; quickSelectConfig: QuickSelectConfig; showFooter: boolean; selectionEnabled: boolean; activation: EventEmitter; selectionChange: EventEmitter; applyChange: EventEmitter; cancelChange: EventEmitter; displayTabs: TabbedGroupPickerTab[]; displayTabIndex: number; filterText: BehaviorSubject; filterTextSubscription: Subscription; loading: boolean; showClearAll: boolean; appliedState: TabbedGroupPickerTab[]; scrollViewportHeight: number; virtualScrollItemSize: number; constructor(labelService: NovoLabelService, ref: ChangeDetectorRef); get displayTab(): TabbedGroupPickerTab; set displayTab(tab: TabbedGroupPickerTab); get minBufferPx(): number; get maxBufferPx(): number; ngOnInit(): void; ngOnDestroy(): void; loadValues(): void; changeTab(tab: TabbedGroupPickerTab): void; getPixelHeight(element: HTMLElement): number; setupDisplayData(): void; createChildrenReferences(): void; makeCompareFunction(key: string): (a: T | { [key: string]: T; }, b: T | { [key: string]: T; }) => 1 | -1 | 0 | undefined; replaceChildrenWithReferences(parent: { children: any[]; }, sortedData: ChildTab['data'], compareFunction: (a: any, b: any) => 1 | -1 | 0, warnFunction: (child: any) => void): void; makeWarningFunction(parentLabel: string, childLabel: string, childValueField: any): (child: any) => void; onDropdownToggle(event: any): void; activateItem(item: any, tab?: TabbedGroupPickerTab): void; onItemToggled(item: Option): void; initializeDescendantSelection(): void; updateDescendants(parentIsSelected: boolean, children: Option[]): void; updateClearAll(itemWasJustSelected?: boolean): void; updateParentsAndQuickSelect(): void; getSelectedState: (childArray: Option[]) => "selected" | "indeterminate" | undefined; getSelectedValues(): TabbedGroupPickerTab[]; emitSelectedValues(): void; updateAppliedState(): void; apply(): void; cancel(): void; revertState(): void; deselectEverything(event: any): void; onClearFilter(event: any): void; onFilter(event: { target: { value: string; }; }): void; filter: (searchTerm: string) => void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class NovoTabbedGroupPickerModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { NovoTabbedGroupPickerElement, NovoTabbedGroupPickerModule }; export type { ChildTab, ParentTab, QuickSelectConfig, TabbedGroupPickerButtonConfig, TabbedGroupPickerQuickSelect, TabbedGroupPickerTab };