import { EventEmitter, OnInit, SimpleChanges, OnChanges } from '@angular/core';
import { MatSelectionListChange } from '@angular/material/list';
import { AxForm } from '../../../forms/ax-form';
import { DataModel } from '../../../enlighten-lib/data-model/data-model';
import { AxFilter } from '../../../enlighten-lib/filters/ax-filter';
import { FilterSourceElementType } from '../../../enlighten-lib/filters/chart-filter-type';
import { FilterCategory } from '../../../enlighten-lib/filters/filter-category';
import { IChartComponent } from '../../../enlighten-lib/report/graphical-report/ichart-component';
import { FormObjectListFilterService } from './form-object-list-filter.service';
import { ActivatedRoute } from '@angular/router';
import { ElementService } from '../../../enlighten-lib/report/element.service';
import { ScreenType } from '../../../enlighten-lib/filters/condition-type';
import { CommonService } from '../../../../lib/common.service';
import * as i0 from "@angular/core";
export declare class FormObjectListFilterComponent implements OnInit, OnChanges {
    private _formObjectListFilterService;
    private _route;
    private _elementService;
    private activatedRoute;
    private _commonService;
    dataModel: DataModel;
    form: AxForm;
    filters: Array<AxFilter>;
    categories: Array<FilterCategory>;
    isEditable: boolean;
    appVersionId: number;
    dirtyFlowCheckEvent: EventEmitter<any>;
    filterChangeEmit: EventEmitter<any>;
    resetFilterEmit: EventEmitter<any>;
    applyFilterEmit: EventEmitter<any>;
    chartRef: IChartComponent;
    appId: number;
    filterSourceElementType: FilterSourceElementType;
    screenType: ScreenType;
    scopeType: number;
    showSearchBox: boolean;
    showField: boolean;
    titleValue: string;
    searchedTerm: any;
    showApplyFilterEvent: boolean;
    formId: string;
    selectedWidget: Array<string>;
    commonFilterArray: Array<any>;
    private _unsubscribeAll;
    constructor(_formObjectListFilterService: FormObjectListFilterService, _route: ActivatedRoute, _elementService: ElementService, activatedRoute: ActivatedRoute, _commonService: CommonService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    showFilterDiv(): void;
    clear(): void;
    /**
     * Add new filter functionality
     *
     * @param event
     */
    addBasicFilterToDataList(event: MatSelectionListChange): void;
    getAllFilters(): void;
    filterChangedEvent(): void;
    /**
     * Resets all the filters
     */
    filterResetEvent(): void;
    /**
     * Deletes the single filter
     *
     * @param index
     */
    deleteFilterEmit(index: any): void;
    /**
     * Clears the single filter
     *
     * @param index
     */
    clearFilterEmit(index: any): void;
    /**
     * Emits the event for applying filter on Apply button
     */
    applyFilterEvent(): void;
    /**
     * Create Attribute object
     *
     * @param attributes
     * @returns attribute array
     */
    createAttributesObject(form: AxForm): AxForm;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormObjectListFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormObjectListFilterComponent, "lib-form-object-list-filter", never, { "dataModel": "dataModel"; "form": "form"; "filters": "filters"; "categories": "categories"; "isEditable": "isEditable"; "appVersionId": "appVersionId"; "chartRef": "chartRef"; "appId": "appId"; "filterSourceElementType": "filterSourceElementType"; }, { "dirtyFlowCheckEvent": "dirtyFlowCheckEvent"; "filterChangeEmit": "filterChangeEmit"; "resetFilterEmit": "resetFilterEmit"; "applyFilterEmit": "applyFilterEmit"; }, never, never>;
}
