import { EventEmitter, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { PageEvent } from '@angular/material/paginator';
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
import { CommonLibConfigurationService } from '../../common-lib-configuration.service';
import { AxFilter } from '../../enlighten-lib/filters/ax-filter';
import { ScreenType } from '../../enlighten-lib/filters/condition-type';
import { AxForm } from '../../forms/ax-form';
import { DataList } from '../../forms/page/data-list/data-list';
import { DataListColumn } from '../../forms/page/data-list/data-list-column';
import { Widget } from '../../forms/page/widgets/widget';
import { FormType, SortingOrder } from '../../forms/page/common/widget-enums';
import { FormObjectViewService } from '../form-object-view/form-object-view.service';
import { FormObjectListService } from './form-object-list.service';
import { Router } from '@angular/router';
import { DataViewService } from '../../data-view-lib/data-view.service';
import { GhostLoaderType } from '../../ghost-loader/ghost-loader.component';
import { UserDataService } from '../../core/user/user-data.service';
import { DataViewFilter } from '../../data-view-lib/data-view/data-view-filter';
import * as i0 from "@angular/core";
export declare class FormObjectListComponent implements OnInit, OnDestroy {
    private _formObjectViewService;
    private _formObjectListService;
    private _commonLibConfigurationService;
    private _router;
    private _dataViewService;
    private _userDataService;
    listView: DataList;
    screenType: ScreenType;
    form: AxForm;
    searchText: string;
    enbledCaching: boolean;
    filters: Array<AxFilter>;
    applyFilterEmitter: EventEmitter<any>;
    resetFilterEmitter: EventEmitter<any>;
    clearFilterEmitter: EventEmitter<any>;
    refreshDataEmitter: EventEmitter<any>;
    exportDataEmitter: EventEmitter<any>;
    appManifest: any;
    GlobalGhostLoaderEnabled: boolean;
    exportDataListEvent: EventEmitter<any>;
    showDataDetailView: EventEmitter<any>;
    addNewRecordEvent: EventEmitter<any>;
    editFormObjectEvent: EventEmitter<any>;
    updateFormObjectStatus: EventEmitter<any>;
    ChildLoaded: EventEmitter<any>;
    showLoader: boolean;
    showGhostLoader: boolean;
    baseUrl: string;
    axonatorX1Url: string;
    pageIndex: number;
    pageSize: number;
    totalFormObjects: number;
    pageSizeOptions: number[];
    orderedArray: any[];
    arrayForApi: any[];
    temporyfilters: (AxFilter | DataViewFilter)[];
    widgetMap: Map<string, Widget>;
    orderMap: Map<string, string>;
    GhostLoaderType: typeof GhostLoaderType;
    listViewData: Array<AxForm>;
    listViewDataArray: any[];
    selectedRows: boolean[];
    selectedFormObjectIds: string[];
    selectedFormObjectTitle: string[];
    selectAllRows(isSelected: boolean): void;
    toggleRowSelection(isSelected: boolean, index: number): void;
    showSearch: boolean;
    widgetType: any;
    pagesize: number;
    private _unsubscribeAll;
    isAccountStatusActive: boolean;
    constructor(_formObjectViewService: FormObjectViewService, _formObjectListService: FormObjectListService, _commonLibConfigurationService: CommonLibConfigurationService, _router: Router, _dataViewService: DataViewService, _userDataService: UserDataService);
    get formTypes(): typeof FormType;
    get sortOrder(): typeof SortingOrder;
    ngOnInit(): void;
    private initializeDefaultSort;
    /**
     * On Change life cycle hook Get call on input change
     *
     * @param changes
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Initilize list view
     */
    initializeFormObjectList(): void;
    /**
     * Set Page size options by columns length
     */
    setPageSizeOptions(): void;
    /**
     * All subscriber should be implemented here.
     */
    subscribers(): void;
    /**
     * Created widget Map that will be use to get widget by identifier.
     */
    createWidgetMap(widgets: Array<Widget>): void;
    /**
     * Get List View structure
     */
    getListViewDetails(): void;
    /**
     * Map widget with column
     *
     * @param columns
     * @returns
     */
    mapWidegtWithColumn(columns: Array<DataListColumn>): Array<DataListColumn>;
    /**
     * Show detail View
     *
     * @param formObject
     */
    showDetailView(formObject: AxForm): void;
    /**
     * Get Form Object
     */
    getFormObjects(): void;
    /**
     * Build List view data accordingly to column order
     *
     * @param formObjects
     */
    buildListViewData(formObjects: Array<AxForm>): void;
    /**
     * This will find and return widget by identifier.if widget not found return null
     *
     * @param identifier
     * @param formObject
     * @returns
     */
    getDataWidget(identifier: string, formObject: AxForm): Widget;
    /**
     * Handled Pagination events
     *
     * @param event
     */
    handlePageEvent(event: PageEvent): void;
    /**
     * Export Data List
     */
    exportDataList(): void;
    /**
     * Enabled and
     *
     * @param formObject
     * @param event
     */
    enableToggle(formObject: AxForm, event: MatSlideToggleChange): void;
    /**
     * This function returns widget from formObjectsMap by widget identifier.
     *
     * @param index
     * @param column
     * @returns
     */
    /**
     * This function returns widget from formObjectsMap by widget identifier.
     *
     * @param index
     * @param column
     * @returns
     */
    /**
     * checks whether the widget exists
     * and than checks whether value exists or not.
     *
     * @param index
     * @param column
     * @returns
     */
    /**
     * Edit form object
     *
     * @param AxForm
     * @param MouseEvent
     */
    editData(formObject: AxForm, event: MouseEvent): void;
    /**
     *  unsubscribe all subsctiber on destroy life cycle hook
     */
    ngOnDestroy(): void;
    /**
     * this function will call when clicked on column header
     *
     * @param event
     * @param widget
     */
    sort(event: KeyboardEvent, widget: Widget): void;
    getFormattedString(identifier: string, subType: string): string;
    /**
     * to Add multiple column identifiers in sorting array
     *
     * @param identifier
     */
    multipleSorting(identifier: string): void;
    /**
     * to sort single column
     *
     * @param identifier
     */
    singleColumnSorting(identifier: string): void;
    /**
     * to update sort order according last sortig order
     *
     * @param identifier
     */
    updateSortingOrder(identifier: string): void;
    navigateToBilling(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormObjectListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormObjectListComponent, "form-object-list", never, { "listView": "listView"; "screenType": "screenType"; "form": "form"; "searchText": "searchText"; "enbledCaching": "enbledCaching"; "filters": "filters"; "applyFilterEmitter": "applyFilterEmitter"; "resetFilterEmitter": "resetFilterEmitter"; "clearFilterEmitter": "clearFilterEmitter"; "refreshDataEmitter": "refreshDataEmitter"; "exportDataEmitter": "exportDataEmitter"; "appManifest": "appManifest"; "GlobalGhostLoaderEnabled": "GlobalGhostLoaderEnabled"; }, { "exportDataListEvent": "exportDataListEvent"; "showDataDetailView": "showDataDetailView"; "addNewRecordEvent": "addNewRecordEvent"; "editFormObjectEvent": "editFormObjectEvent"; "updateFormObjectStatus": "updateFormObjectStatus"; "ChildLoaded": "ChildLoaded"; }, never, never>;
}
