import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { DropDownDirective } from 'ng-devui/dropdown';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { Observable } from 'rxjs';
import { FilterConfig } from '../../../../data-table.model';
import * as i0 from "@angular/core";
export declare class FilterComponent implements OnInit, OnChanges, OnDestroy {
    private ref;
    private i18n;
    private thComponent;
    private doc;
    beforeFilter: (value: any) => boolean | Promise<boolean> | Observable<boolean>;
    customFilterTemplate: TemplateRef<any>;
    extraFilterTemplate: TemplateRef<any>;
    searchFn: (term: string) => Observable<Array<any>>;
    filterList: Array<FilterConfig>;
    filterIconActive: boolean;
    filterMultiple: boolean;
    filterBoxWidth: any;
    filterBoxHeight: any;
    column: any;
    closeWhenScroll: boolean;
    showFilterIcon: boolean;
    filterIconActiveChange: EventEmitter<boolean>;
    filterChange: EventEmitter<FilterConfig[]>;
    filterToggle: EventEmitter<{
        isOpen: boolean;
        checklist: FilterConfig[];
    }>;
    get canShow(): boolean;
    isDirty: boolean;
    get filterWidthNum(): number;
    filterDropdown: any;
    private sourceSubject;
    private sourceSubscription;
    private filterSubscription;
    private i18nSubscription;
    private searchElement;
    checkedListForFilter: any[];
    filterListDisplay: any[];
    searchText: string;
    selectedItem: any;
    isFilterHidden: boolean;
    filterHalfChecked: boolean;
    filterAllChecked: boolean;
    i18nCommonText: I18nInterface['common'];
    filterIconActiveInner: boolean;
    DEBONCE_TIME: number;
    document: Document;
    filterPadding: number;
    constructor(ref: ChangeDetectorRef, i18n: I18nService, thComponent: any, doc: any);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    closeFilter(dropdown: DropDownDirective): void;
    getFilterDataMultiple(): void;
    resetFilterData(): void;
    removeDuplication(array: any, key: any): any;
    setFilterIconActive(checkedData: any): void;
    getFilterDataRadio(item: any): void;
    canFilter(isOpen: any): Promise<boolean>;
    resetSources(): void;
    onContainerScroll: () => void;
    showFilterContent($event: any): void;
    filterCheckAll($event: any): void;
    setHalfChecked(): void;
    checkboxChange($event: any, item: any): void;
    onSearch(value: any): void;
    registerFilterChange(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FilterComponent, "d-table-filter", never, { "beforeFilter": { "alias": "beforeFilter"; "required": false; }; "customFilterTemplate": { "alias": "customFilterTemplate"; "required": false; }; "extraFilterTemplate": { "alias": "extraFilterTemplate"; "required": false; }; "searchFn": { "alias": "searchFn"; "required": false; }; "filterList": { "alias": "filterList"; "required": false; }; "filterIconActive": { "alias": "filterIconActive"; "required": false; }; "filterMultiple": { "alias": "filterMultiple"; "required": false; }; "filterBoxWidth": { "alias": "filterBoxWidth"; "required": false; }; "filterBoxHeight": { "alias": "filterBoxHeight"; "required": false; }; "column": { "alias": "column"; "required": false; }; "closeWhenScroll": { "alias": "closeWhenScroll"; "required": false; }; "showFilterIcon": { "alias": "showFilterIcon"; "required": false; }; }, { "filterIconActiveChange": "filterIconActiveChange"; "filterChange": "filterChange"; "filterToggle": "filterToggle"; }, never, never, false, never>;
}
