import { CommonFilterService } from './common-filter.service';
import { EventEmitter, OnInit, OnDestroy, SimpleChanges, OnChanges, AfterViewInit } from '@angular/core';
import { MatSelect } from '@angular/material/select';
import { AxExpression } from '../../enlighten-lib/ax-expression/ax-expression';
import { AxFilter } from '../../enlighten-lib/filters/ax-filter';
import { ScreenType } from '../../enlighten-lib/filters/condition-type';
import { Subject } from 'rxjs';
import { DataSourceTypes } from '../../axo-utils/data-source-types';
import { WidgetSubType } from '../../forms/page/common/widget-enums';
import { DataViewFilter } from '../../data-view-lib/data-view/data-view-filter';
import * as i0 from "@angular/core";
export declare class CommonFilterComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit {
    _commonFilterService: CommonFilterService;
    selectElem: MatSelect;
    filter: AxFilter;
    screenType: ScreenType;
    appVersionId: number;
    appId: number;
    formId?: number;
    reportId: number;
    resetFilterEvent: EventEmitter<any>;
    parentFilterValueChange: EventEmitter<AxFilter>;
    filterValueChange: EventEmitter<any>;
    parentFilterEvent: EventEmitter<any>;
    applyFilterEvent: EventEmitter<any>;
    clearValueEvent: EventEmitter<any>;
    expression: AxExpression;
    _unsubscribeAll: Subject<any>;
    pageIndex: number;
    pageSize: number;
    totalSeriesLength: any;
    defaultValue: any;
    dataSource: DataSourceTypes;
    showSearchBox: boolean;
    searchText: string;
    seriesList: Array<any>;
    isDataLoaded: boolean;
    displayValue: string;
    toolTipValue: string;
    widgetSubType: typeof WidgetSubType;
    screenTypes: typeof ScreenType;
    temporyfilters: (AxFilter | DataViewFilter)[];
    /**
     * Constructor
     */
    constructor(_commonFilterService: CommonFilterService);
    /**
     * This will get called after view init
     * means get called after html render.
     * for lazy loading we need scroll element.
     */
    ngAfterViewInit(): void;
    /**
     * On Change Life cycle hook
     *
     * @param changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * On Init Life cycle hook
     */
    ngOnInit(): void;
    /**
     * On Destroy life cycle hook
     */
    ngOnDestroy(): void;
    /**
     * All Subscribers should be implemented here
     */
    subscribers(): void;
    /**
     * Set filter series  data source.
     */
    setDataSourceType(): void;
    /**
     * update the value of filter label in displayed value
     */
    setDisplayValue(): void;
    /**
     * Get Called on Filter Value change
     */
    filterValueChanged(): void;
    /**
     * Set Expression value in component variable;
     *  This will be overridden in child component.
     */
    setExpressionValue(): void;
    /**
     * Reset Filter
     * this will be overridden in child component.
     */
    resetFilter(): void;
    /**
     * Clear value
     * This will be overridden in child component.
     */
    clearValue(): void;
    /**
     * Apply filter
     */
    applyFilter(): void;
    /**
     * Set Default value
     *  This will be overridden in child component.
     */
    setDefaultValue(): void;
    /**
     * This will get called on parent filter value change.
     * This will be overridden in child component.
     */
    applyParentFilter(): void;
    /**
     * Get series list from backend.
     * we need this in common component for common lazy loading api calls.
     */
    getSeriesList(clearSeries?: boolean): void;
    /**
     * This will get called on data loaded.
     * Get Called only first time.
     *
     */
    onDataLoaded(): void;
    /**
     * Register panel scroll event (this is listener for mat options scroll.)
     * We used this scroll for filter series lazy loading
     */
    registerPanelScrollEvent(): void;
    /**
     * Search filter value
     *
     * @param searchText
     */
    searchTextChanged(searchText: string): void;
    addEllipsesToDisplayValue(displayValue: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CommonFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CommonFilterComponent, "lib-common-filter", never, { "filter": "filter"; "screenType": "screenType"; "appVersionId": "appVersionId"; "appId": "appId"; "formId": "formId"; "reportId": "reportId"; "resetFilterEvent": "resetFilterEvent"; "parentFilterValueChange": "parentFilterValueChange"; }, { "filterValueChange": "filterValueChange"; "parentFilterEvent": "parentFilterEvent"; "applyFilterEvent": "applyFilterEvent"; "clearValueEvent": "clearValueEvent"; }, never, never>;
}
