/// <reference types="pcore-pconnect-typedefs" />
import { OnInit, OnDestroy } from '@angular/core';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { ProgressSpinnerService } from '../../../_messages/progress-spinner.service';
import { Utils } from '../../../_helpers/utils';
import * as i0 from "@angular/core";
interface ListViewProps {
    globalSearch?: boolean;
    referenceList?: any;
    rowClickAction?: any;
    selectionMode?: string;
    referenceType?: string;
    compositeKeys?: any;
    showDynamicFields?: boolean;
    presets?: any;
    reorderFields: string | boolean;
    grouping: string | boolean;
}
export declare class Group {
    level: number;
    parent: Group;
    expanded: boolean;
    totalCounts: number;
    get visible(): boolean;
}
export declare class ListViewComponent implements OnInit, OnDestroy {
    private psService;
    private utils;
    paginator: MatPaginator;
    sort: MatSort;
    pConn$: typeof PConnect;
    bInForm$: boolean;
    payload: any;
    repeatList$: MatTableDataSource<any>;
    fields$: any[];
    displayedColumns$: any[];
    groupByColumns$: string[];
    configProps$: ListViewProps;
    updatedRefList: any;
    repeatListData: any[];
    searchIcon$: string;
    bShowSearch$: boolean;
    bColumnReorder$: boolean;
    bGrouping$: boolean;
    perfFilter: string;
    searchFilter: string;
    menuSvgIcon$: string;
    arrowSvgIcon$: string;
    arrowDownSvgIcon$: string;
    arrowUpSvgIcon$: string;
    filterSvgIcon$: string;
    filterOnSvgIcon$: string;
    groupBySvgIcon$: string;
    compareType: string;
    compareRef: string;
    arrowDirection: string;
    filterByColumns: any[];
    bShowFilterPopover$: boolean;
    bContains$: boolean;
    bDateTime$: boolean;
    filterContainsLabel$: string;
    filterContainsType$: string;
    filterContainsValue$: any;
    bIsDate$: boolean;
    bIsDateTime$: boolean;
    bIsTime$: boolean;
    currentFilterRefData: any;
    currentFilterImageEl: any;
    arFilterMainButtons$: any[];
    arFilterSecondaryButtons$: any[];
    selectionMode?: string;
    singleSelectionMode: boolean;
    multiSelectionMode: boolean;
    rowID: any;
    response: any;
    compositeKeys: any;
    showDynamicFields: any;
    filters: any;
    selectParam: any[];
    filterPayload: any;
    ref: any;
    cosmosTableRef: any;
    listContext: any;
    query: any;
    paging: any;
    fieldDefs: any;
    xRayApis: import("@pega/pcore-pconnect-typedefs/debug/xray-runtime").default;
    xRayUid: string | null;
    constructor(psService: ProgressSpinnerService, utils: Utils);
    ngOnInit(): void;
    getFieldFromFilter(filter: any, dateRange?: boolean): any;
    processFilterChange(data: any): void;
    filterBasedOnDateRange(dashboardFilterPayload: any, filter: any, relationalOp: any, selectParam: any, index: any): any;
    processFilterClear(): void;
    getFieldsMetadata(refList: any): Promise<object>;
    getListData(): void;
    preparePayload(): void;
    ngOnDestroy(): void;
    drop(event: CdkDragDrop<string[]>): void;
    updateFields(arFields: any[], arColumns: any, fields: any): any[];
    applySearch(event: Event): void;
    fieldOnChange(row: any): void;
    onCheckboxClick(row: any, event: any): void;
    _getIconStyle(level: any): string;
    _getGroupName(fieldName: any): any;
    _showButton(name: any, row: any): boolean;
    _listViewClick(column: any, row: any): void;
    _headerSortClick(event: any, columnData: any): void;
    sortCompare(a: any, b: any): number;
    compareByColumnPxRefObjectInsName(aValue: any, bValue: any): number | undefined;
    updateFilterDisplay(type: any): void;
    _filter(event: any, columnData: any): void;
    _clickAway(event: any): void;
    _filterContainsType(event: any): void;
    _filterContainsValue(event: any): void;
    _filterContainsDateValue(event: any, value: any): void;
    _filterContainsDateTimeValue(event: any): void;
    _filterContainsTimeValue(event: any): void;
    _onFilterActionButtonClick(event: any): void;
    updateFilterWithInfo(): void;
    updateFilterVarsWithCurrent(columnData: any): void;
    filterData(item: any): boolean;
    filterDataWithDate(item: any, filterObj: any, filterValue: any): any;
    filterDataWithCommonTypes(item: any, filterObj: any, filterValue: any): any;
    filterSortGroupBy(): void;
    _showUnGroupBy(columnData: any): boolean;
    _groupBy(event: any, columnData: any): void;
    _unGroupBy(event: any, columnData: any): void;
    checkGroupByColumn(field: any, add: any): void;
    addGroups(data: any[], groupByColumns: string[]): any[];
    getSublevel(data: any[], level: number, groupByColumns: string[], parent: Group): any[];
    uniqueBy(a: any, key: any): any;
    isGroup(index: any, item: any): boolean;
    _groupHeaderClick(row: any): void;
    customFilterPredicate(data: any | Group, filter: string): boolean;
    getDataRowVisible(data: any): boolean;
    getDataRowVisibleWithFilter(data: any, filter: any): boolean;
    updateData(listData: any[], fieldData: any[]): any[];
    openAssignment(row: any): void;
    openWork(row: any): void;
    initializeData(data: any): any;
    getType(field: any): any;
    initializeColumns(fields?: never[]): any[];
    getHeaderCells(colFields: any, fields: any): any;
    buildSelect(fieldDefs: any, colId: any, patchQueryFields?: never[], compositeKeys?: never[]): any;
    getField(fieldDefs: any, columnId: any): any;
    getFieldsMap(fieldDefs: any): Map<any, any>;
    addItemKeyInSelect(fieldDefs: any, itemKey: any, select: any, compositeKeys: any): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<ListViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ListViewComponent, "app-list-view", never, { "pConn$": { "alias": "pConn$"; "required": false; }; "bInForm$": { "alias": "bInForm$"; "required": false; }; "payload": { "alias": "payload"; "required": false; }; }, {}, never, never, true, never>;
}
export {};
