import { DatePipe } from '@angular/common';
import { DoCheck, OnDestroy, OnInit, QueryList } from '@angular/core';
import { Subject, Subscription } from 'rxjs';
import { DateRange } from '../date-range-picker/date-range-picker.model';
import { IFilterOption, IFiltersConfig } from './filters-config.interface';
import { FilterType } from './filters-type.enum';
import { FiltersConfig } from './filters.config';
import { FiltersModel } from './filters.model';
import * as i0 from "@angular/core";
export declare class FiltersComponent implements OnInit, DoCheck, OnDestroy {
    private conf;
    private datePipe;
    private carousel;
    dateRangePickers: QueryList<any>;
    FilterType: typeof FilterType;
    data: FiltersModel[];
    onFilterOptionChanged$: Subject<FiltersModel>;
    searchFilter$: Subject<FiltersModel>;
    subscriptions: Subscription;
    private _filters;
    private _oldFilters;
    private _collapsed;
    customMask: string;
    get collapsed(): boolean;
    set collapsed(value: boolean);
    get filters(): IFiltersConfig[];
    set filters(value: IFiltersConfig[]);
    constructor(conf: FiltersConfig, datePipe: DatePipe);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngDoCheck(): void;
    getIntervalOptions(options: IFilterOption[]): string[];
    resetFilters(silent?: boolean): void;
    clearSearch(filter: FiltersModel, silent?: boolean): void;
    setDefaultDate(filter: FiltersModel): void;
    /**
     * Called when filter option is selected
     */
    onFilterOptionSelected(filter: FiltersModel, option: IFilterOption): void;
    /**
     * Called when character is typed in the search filter type
     */
    onSearchFilterChange(filter: FiltersModel): void;
    /**
     * Called when selection is made in the date range filter type
     */
    onDateRangeFilterChange(filter: FiltersModel, dateRange: DateRange): void;
    onCollapsedFilter($event: any): void;
    onCollapsedSearch($event: any): void;
    onCollapsedDateRangePicker($event: any): void;
    onCollapsedFilterBack($event: any): void;
    onMultiSelectHidden(filter: FiltersModel): void;
    /**
     * Used for track by and boost performance
     */
    trackByFn(index: any, action: any): any;
    /**
     * Convert filter config objects to Filter Models
     */
    setData(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FiltersComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FiltersComponent, "hxa-filters", never, { "customMask": "customMask"; "collapsed": "collapsed"; "filters": "filters"; }, {}, never, never>;
}
