import { HttpClient } from '@angular/common/http';
import { FormType } from './../../forms/page/common/widget-enums';
import { FiltersService } from './../../filters/filters.service';
import { DataView } from './../data-view/data-view';
import { AfterViewInit, EventEmitter, OnInit, SimpleChanges } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { MatSelectionListChange } from '@angular/material/list';
import { MatMenuTrigger } from '@angular/material/menu';
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 { MetaColumnTypes } from '../../filters/metaColumnTypes';
import { AxForm } from '../../forms/ax-form';
import { DataViewService } from '../data-view.service';
import { DataViewType, ViewType } from '../data-view/data-view-enums';
import { DataViewFiltersService } from './data-view-filters.service';
import { MatDialog } from '@angular/material/dialog';
import { ActivatedRoute } from '@angular/router';
import { UserDataService } from '../../../public-api';
import { Router } from '@angular/router';
import { CommonLibConfigurationService } from '../../../public-api';
import { CommonService } from '../../../public-api';
import { AxoSnackBarService } from '../../../public-api';
import { SubscribedPlanName } from '../../subscribedPlanName.service';
import { StripeService } from '../../stripe.service';
import * as i0 from "@angular/core";
export declare class DataViewFiltersComponent implements OnInit, AfterViewInit {
    private http;
    private _dataVIewFilterService;
    private _dataVIewFiltersService;
    private _dataViewService;
    private _formBuilder;
    private _filterService;
    private _userDataService;
    private _AxoService;
    private _router;
    dialog: MatDialog;
    private _activatedRoute;
    private commonLibConfig;
    private _commonService;
    _subscribedPlanName: SubscribedPlanName;
    private stripeService;
    form: AxForm;
    filters: Array<AxFilter>;
    categories: Array<FilterCategory>;
    isEditable: boolean;
    screenType: ScreenType;
    appVersionId: number;
    selectedViewType: ViewType;
    userEmail: string;
    dataViews: DataView;
    showAssignToButton: boolean;
    dirtyFlowCheckEvent: EventEmitter<any>;
    applyFilterEmit: EventEmitter<any>;
    resetFilterEmit: EventEmitter<any>;
    clearFilterEmit: EventEmitter<any>;
    addNewRecord: EventEmitter<any>;
    generateQR: EventEmitter<any>;
    refreshData: EventEmitter<any>;
    assign: EventEmitter<any>;
    exportData: EventEmitter<any>;
    contextMenu: MatMenuTrigger;
    propertyMenuTrigger: MatMenuTrigger;
    selectedFormObjectIds: string[];
    displayMenu: boolean;
    scopeType: number;
    showSearchBox: boolean;
    showField: boolean;
    titleValue: string;
    searchedTerm: string;
    showApplyFilterEvent: boolean;
    formId: string;
    selectedWidget: Array<string>;
    commonFilterArray: Array<any>;
    exportFormBuilder: FormGroup;
    displayNotification: boolean;
    emailPattern: string;
    displayEmailValidationError: boolean;
    forms: Array<AxForm>;
    obs: ResizeObserver;
    metaColumns: Array<MetaColumnTypes>;
    unhandledWIdgetsInFilters: any[];
    unhandledWIdgetSubTypesInFilters: any[];
    assetforms: Array<AxForm>;
    actionForms: Array<AxForm>;
    actions: any;
    actionforms: any[];
    containerId: number;
    isAccountStatusActive: boolean;
    qrCodeMenu: MatMenuTrigger;
    disableMenu: boolean;
    dataViewId: string;
    containerViewPresent: boolean;
    temporyfilters: Array<string>;
    temporyfilters1: Array<string>;
    assetformsTemp: Array<AxForm>;
    showQRButton: boolean;
    userPermissions: string[] | null;
    private _unsubscribeAll;
    /**
     * Constructor
     *
     * @param _dataVIewFilterService
     * @param _formBuilder
     */
    constructor(http: HttpClient, _dataVIewFilterService: DataViewFiltersService, _dataVIewFiltersService: DataViewFiltersService, _dataViewService: DataViewService, _formBuilder: FormBuilder, _filterService: FiltersService, _userDataService: UserDataService, _AxoService: AxoSnackBarService, _router: Router, dialog: MatDialog, _activatedRoute: ActivatedRoute, commonLibConfig: CommonLibConfigurationService, _commonService: CommonService, _subscribedPlanName: SubscribedPlanName, stripeService: StripeService);
    showOverlay: boolean;
    toggleOverlay(): void;
    close(): void;
    get formTypes(): typeof FormType;
    /**
     * On init life cycle hook
     */
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /**
     * On changes life cycle hook.
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Subscribers should be implemented here
     */
    subscribers(): void;
    getUserDetails(): void;
    getDataViewNumber(url: string): void;
    /**
     * Getter for dataViewType
     */
    get dataViewType(): typeof DataViewType;
    /**
     * Getter for View Type
     */
    get ViewType(): typeof ViewType;
    get screenTypes(): typeof ScreenType;
    /**
     * Generate common filter list from existing filters and cotegories.
     */
    generateCommonFilterList(): 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 | any, form: AxForm): void;
    /**
     * Add Meta Column Filter
     *
     * @param event
     */
    addMetaColumnFilter(event: MatSelectionListChange | any): void;
    addAssetFormsFilter(event: MatSelectionListChange | any): 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;
    removeValueFromLocalStorage(value: any): void;
    /**
     * Get filter by widget identifier.
     *
     * @param identifier
     * @returns
     */
    getFilterFromList(identifier: string): AxFilter;
    getFilterAssetFromList(identifier: string): AxFilter;
    /**
     * This will get called from filter commonent on filter delete.
     *
     * @param index
     */
    deleteFilter(index: number): void;
    getFiltersCount(): boolean;
    /**
     *  Validation of email id for export of tabular report
     */
    emailValidate(): void;
    /**
     *  close the export to email menu on click of cancel
     */
    closeExportMenu(): void;
    accessPremium(): boolean;
    onExportClick(): void;
    /**
     *  call this function for send email with excel report as attachment
     */
    sendEmail(): void;
    /**
     * Open Mat menu on right click on add filter  button.
     * @param event
     */
    openPropertyMenu(event: PointerEvent): void;
    /**
     * Open generate Qr dialog box
     *
     */
    openGenerateQrDialog(form: AxForm): void;
    generateQrButton(): void;
    navigateToBilling(): void;
    clearAllFilters(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DataViewFiltersComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DataViewFiltersComponent, "lib-data-view-filters", never, { "form": "form"; "filters": "filters"; "categories": "categories"; "isEditable": "isEditable"; "screenType": "screenType"; "appVersionId": "appVersionId"; "selectedViewType": "selectedViewType"; "userEmail": "userEmail"; "dataViews": "dataViews"; "showAssignToButton": "showAssignToButton"; }, { "dirtyFlowCheckEvent": "dirtyFlowCheckEvent"; "applyFilterEmit": "applyFilterEmit"; "resetFilterEmit": "resetFilterEmit"; "clearFilterEmit": "clearFilterEmit"; "addNewRecord": "addNewRecord"; "generateQR": "generateQR"; "refreshData": "refreshData"; "assign": "assign"; "exportData": "exportData"; }, never, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DataViewFiltersComponent>;
}
