/// <reference types="pcore-pconnect-typedefs" />
import { OnInit, OnDestroy } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatSort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table';
import { AngularPConnectData, AngularPConnectService } from '../../../_bridge/angular-pconnect';
import { DatapageService } from '../../../_services/datapage.service';
import { Utils } from '../../../_helpers/utils';
import * as i0 from "@angular/core";
interface SimpleTableManualProps {
    visibility?: boolean;
    grouping?: any;
    referenceList?: any[];
    children?: any[];
    renderMode?: string;
    presets?: any[];
    label?: string;
    showLabel?: boolean;
    dataPageName?: string;
    contextClass?: string;
    propertyLabel?: string;
    fieldMetadata?: any;
    allowTableEdit?: boolean;
    editMode?: string;
    addAndEditRowsWithin?: any;
    viewForAddAndEditModal?: any;
    editModeConfig?: any;
    displayMode?: string;
    useSeparateViewForEdit: any;
    viewForEditModal: any;
}
declare class Group {
    level: number;
    parent: Group;
    expanded: boolean;
    totalCounts: number;
    get visible(): boolean;
}
export declare class SimpleTableManualComponent implements OnInit, OnDestroy {
    private angularPConnect;
    private utils;
    private dataPageService;
    sort: MatSort;
    pConn$: typeof PConnect;
    formGroup$: FormGroup;
    angularPConnectData: AngularPConnectData;
    configProps$: SimpleTableManualProps;
    fields$: any[];
    bVisible$: boolean;
    displayedColumns: string[];
    rowData: MatTableDataSource<any>;
    originalData: any[];
    processedFields: any[];
    fieldDefs: any[];
    requestedReadOnlyMode: boolean;
    readOnlyMode: boolean;
    editableMode: boolean;
    menuIconOverride$: string;
    pageReference: string;
    referenceList: any;
    contextClass: any;
    showAddRowButton: boolean;
    prevReferenceList: any[];
    elementsData: MatTableDataSource<any>;
    rawFields: any;
    label?: string;
    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;
    groupByColumns$: string[];
    compareType: string;
    compareRef: string;
    arrowDirection: string;
    filterByColumns: any[];
    currentFilterRefData: any;
    filterContainsLabel$: string;
    filterContainsType$: string;
    filterContainsValue$: any;
    bShowFilterPopover$: boolean;
    bContains$: boolean;
    bDateTime$: boolean;
    bIsDate$: boolean;
    bIsDateTime$: boolean;
    bIsTime$: boolean;
    currentFilterImageEl: any;
    arFilterMainButtons$: any[];
    arFilterSecondaryButtons$: any[];
    selectionMode: string;
    singleSelectionMode: boolean;
    multiSelectionMode: boolean;
    rowID: any;
    response: any;
    compositeKeys: any;
    parameters: any;
    allowEditingInModal: boolean;
    defaultView: any;
    referenceListStr: any;
    bUseSeparateViewForEdit: any;
    editView: any;
    settingsSvgIcon$: string;
    isInitialized: boolean;
    constructor(angularPConnect: AngularPConnectService, utils: Utils, dataPageService: DatapageService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    checkAndUpdate(): void;
    updateSelf(): void;
    initializeDefaultPageInstructions(): void;
    getResultsText(): string;
    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;
    filterSortGroupBy(): void;
    _headerSortClick(event: any, columnData: any): void;
    _showUnGroupBy(columnData: any): boolean;
    _groupBy(event: any, columnData: any): void;
    _unGroupBy(event: any, columnData: any): void;
    checkGroupByColumn(field: any, add: any): void;
    _getGroupName(fieldName: any): any;
    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;
    getDisplayColumns(fields?: never[]): any[];
    _getIconStyle(level: any): string;
    onStateChange(): void;
    getRowValue(inRowData: Object, inColKey: string): any;
    generateRowsData(): void;
    formatRowsData(data: any): any;
    addRecord(): void;
    editRecord(data: any, index: any): void;
    deleteRecord(index: any): void;
    buildElementsForTable(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SimpleTableManualComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SimpleTableManualComponent, "app-simple-table-manual", never, { "pConn$": { "alias": "pConn$"; "required": false; }; "formGroup$": { "alias": "formGroup$"; "required": false; }; }, {}, never, never, true, never>;
}
export {};
