import { IAxFilter } from './../../filters/iax-filter';
import { DataModelTreeDisplayType } from './../../data-model-tree/data-model-tree-enums';
import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { Attribute } from '../../data-model/attribute';
import { DataModel } from '../../data-model/data-model';
import { AxFilter } from '../../filters/ax-filter';
import { FilterCategory } from '../../filters/filter-category';
import { ReportFilterService } from './report-filter.service';
import { ActivatedRoute } from '@angular/router';
import { FieldsListService } from '../../../field-list-lib/fields-list.service';
import { ElementService } from '../element.service';
import { CategoryService } from '../../../filters/category-filter/category.service';
import { ScopeType, ScreenType } from '../../filters/condition-type';
import { MultiSelectFilterService } from '../../../../lib/filters/multi-select-filter/multi-select-filter.service';
import { MatMenuTrigger } from '@angular/material/menu';
import * as i0 from "@angular/core";
export declare class ReportFilterComponent implements OnInit, OnChanges {
    private _reportFilterService;
    private _activatedRoute;
    private _fieldsListService;
    private _elementService;
    private _categoryService;
    private _multiSelectFilterService;
    trigger: MatMenuTrigger;
    filters: Array<AxFilter>;
    categories: Array<FilterCategory>;
    reportId: number;
    chartType: number;
    filterScopeType: ScopeType;
    appVersion: number;
    isEditable: boolean;
    screenType: ScreenType;
    sendFilterToDashboard: EventEmitter<any>;
    filterCategorySendOnDashboardEvent: EventEmitter<any>;
    dirtyFlowCheckEvent: EventEmitter<any>;
    applyFilterEvent: EventEmitter<any>;
    commonFilterArray: any;
    categoryList: Array<FilterCategory>;
    dataModel: DataModel;
    showApplyFilterEvent: boolean;
    dataModelTreeDisplayType: typeof DataModelTreeDisplayType;
    scopeType: typeof ScopeType;
    private _unsubscribeAll;
    /**
     * constructor
     *
     */
    constructor(_reportFilterService: ReportFilterService, _activatedRoute: ActivatedRoute, _fieldsListService: FieldsListService, _elementService: ElementService, _categoryService: CategoryService, _multiSelectFilterService: MultiSelectFilterService);
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * On Init life cycle hook
     */
    ngOnInit(): void;
    /**
     * Close Mat Menu
     */
    closeMatMenu(): void;
    /***
     * following method is used to get filter and filter categories in add filter list
     * @param event
     */
    getAndSetFilterCategoryData(): void;
    getAllFilters(): void;
    /**
     * Send FIlter on Dashboard
     *
     * @param filter
     */
    sendFilterToDashboardEvent(filter: AxFilter): void;
    /**
     * Send filter category on Dashboard
     *
     * @param filterCategory
     */
    filterCategorySendOnDashboard(filterCategory: FilterCategory): void;
    /**
     * Call dirty flow event emit
     */
    dirtyFlowCheck(): void;
    /**
     * On destroy
     */
    ngOnDestroy(): void;
    /**
     * call when the global filters fields values are selected.
     */
    applyFilter(): void;
    /**
     * Add filter on Attribute Select.
     */
    addFilter(attribute: Attribute): void;
    /**
     * Remove Filter on attribute deselect.
     */
    removeFilter(attribute: Attribute): void;
    /**
     * Add Category Filter
     *
     * @param category
     */
    addCategory(category: FilterCategory): void;
    /**
     * Delete Category
     *
     * @param category
     */
    deleteCategory(category: FilterCategory): void;
    /**
     * Get Called on Filter delete .
     *
     * @param $event
     */
    filterDeleted(filter: IAxFilter): void;
    getFiltersCount(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReportFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ReportFilterComponent, "lib-report-filter", never, { "filters": "filters"; "categories": "categories"; "reportId": "reportId"; "chartType": "chartType"; "filterScopeType": "filterScopeType"; "appVersion": "appVersion"; "isEditable": "isEditable"; "screenType": "screenType"; }, { "sendFilterToDashboard": "sendFilterToDashboard"; "filterCategorySendOnDashboardEvent": "filterCategorySendOnDashboardEvent"; "dirtyFlowCheckEvent": "dirtyFlowCheckEvent"; "applyFilterEvent": "applyFilterEvent"; }, never, never>;
}
