import { ScopeType } from './../enlighten-lib/filters/condition-type';
import { OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
import { AxFilter } from '../enlighten-lib/filters/ax-filter';
import { ScreenType } from '../enlighten-lib/filters/condition-type';
import { FilterCategory } from '../enlighten-lib/filters/filter-category';
import { AxoFiltersService } from './axo-filters.service';
import { MatSelectionListChange } from '@angular/material/list';
import { DataModel } from '../enlighten-lib/data-model/data-model';
import * as i0 from "@angular/core";
export declare class AxoFiltersComponent implements OnChanges {
    private _axoFilterService;
    filters: Array<AxFilter>;
    categories: Array<FilterCategory>;
    screenType: ScreenType;
    appVersionId: number;
    dataModel: DataModel;
    scopeType: ScopeType;
    dirtyFlowCheckEvent: EventEmitter<any>;
    applyFilterEmit: EventEmitter<any>;
    resetFilterEmit: EventEmitter<any>;
    clearFilterEmit: EventEmitter<any>;
    sendFilterToDashboard: EventEmitter<any>;
    filterCategorySendOnDashboardEvent: EventEmitter<any>;
    commonFilterArray: Array<any>;
    categoryList: Array<any>;
    showSearchBox: boolean;
    showField: boolean;
    titleValue: string;
    searchedTerm: string;
    showApplyFilterEvent: boolean;
    formId: string;
    selectedWidget: Array<string>;
    form: any;
    /**
     *Constructor
     */
    constructor(_axoFilterService: AxoFiltersService);
    /**
     * Ng On changes get called on Input changes
     *
     * @param changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Initialize axo filter
     */
    initializeAxoFilter(): void;
    /**
     * Get Data model
     */
    getDataModel(): void;
    /**
     * Generate common filter list from existing filters and categories.
     */
    generateCommonFilterList(): void;
    /**
     * This will get called from filter commonent on filter delete.
     *
     * @param index
     */
    deleteFilter(index: number): void;
    /**
     * Remove filter from filter array if filter is not saved or mark as deleted if it's saved.
     *
     * @param filter
     */
    removeBasicFilter(filter: AxFilter): void;
    /**
     * This will get called on MatSelection Change
     * We delete filter if if deselect widget or we create new filter if select widget.
     *
     * @param event
     */
    addBasicFilter(event: MatSelectionListChange, formId: number): void;
    /**
     * Get filter by widget identifier.
     *
     * @param identifier
     * @returns
     */
    getFilterFromList(identifier: string): AxFilter;
    closeMatMenu(): void;
    showFilterDiv(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AxoFiltersComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AxoFiltersComponent, "axo-filters", never, { "filters": "filters"; "categories": "categories"; "screenType": "screenType"; "appVersionId": "appVersionId"; "dataModel": "dataModel"; "scopeType": "scopeType"; }, { "dirtyFlowCheckEvent": "dirtyFlowCheckEvent"; "applyFilterEmit": "applyFilterEmit"; "resetFilterEmit": "resetFilterEmit"; "clearFilterEmit": "clearFilterEmit"; "sendFilterToDashboard": "sendFilterToDashboard"; "filterCategorySendOnDashboardEvent": "filterCategorySendOnDashboardEvent"; }, never, never>;
}
