import { EventEmitter, ElementRef, Renderer2, SimpleChanges } from '@angular/core';
import { MatSort } from '@angular/material/sort';
import { DataService } from '../../services/data.service';
import { ChangeService } from '../../services/change.service';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export declare class NxtDatatable {
    private renderer;
    private dataService;
    private changeService;
    data: any[];
    tableFilterData: any[];
    columns: Array<any>;
    withCheckBox: boolean;
    searchBar: boolean;
    tableSaveButton: boolean;
    stickyColumn: boolean;
    tableWidth: string;
    actionColumHeader: string;
    actionButton: boolean;
    title: any;
    isButtons: boolean;
    buttonArray: any;
    tableId: any;
    isEditRow: boolean;
    isDeleteRow: boolean;
    addInlineRecord: boolean;
    searchConfigs: any;
    direction: 'rtl' | 'ltr';
    pagination: any;
    actionButtonArray: any;
    multipleFilter: any;
    isPagination: any;
    isNosIndicator: any;
    isEditable: any;
    from: any;
    question: any;
    rowTextSize: any;
    rowTextColor: any;
    apiMeta: string;
    summaryRows: any;
    summaryColumns: any;
    isLoading: any;
    tableConfig: any;
    tableParams: any;
    listViews: any[];
    mode: 'view' | 'edit' | 'print';
    tableRowClick: EventEmitter<any>;
    onEditData: EventEmitter<any>;
    saveButtonData: EventEmitter<any>;
    onDeleteData: EventEmitter<any>;
    buttonEmit: EventEmitter<any>;
    hyperLinkEmit: EventEmitter<any>;
    sideNavEmit: EventEmitter<{
        data: any;
        col: any;
        config: any;
    }>;
    actionButtonEmit: EventEmitter<any>;
    columnSelected: EventEmitter<{
        column: string;
        data: any[];
    }>;
    removeColumn: EventEmitter<{
        column: string;
        data: any[];
    }>;
    valueChange: EventEmitter<any>;
    selectedValues: EventEmitter<any[]>;
    fileEmit: EventEmitter<any>;
    NxtTableParamsEmit: EventEmitter<any>;
    NxtTableFilterEmit: EventEmitter<any>;
    NxtTableEmit: EventEmitter<any>;
    sort: MatSort;
    tableContainer: ElementRef<HTMLElement>;
    selection: any;
    stickyCondition: number;
    searchFilter: boolean;
    filterArray: Array<any>;
    selectedFilter: any;
    renderColumns: string;
    pageSizeOptions: Array<any>;
    dataSource: any;
    totalCount: number;
    searchBoxValue: any;
    prevSearch: any;
    activeColumn: string | null;
    isScrolled: boolean;
    isShadowHidden: boolean;
    currentSortColumn: string;
    currentSortDirection: 'asc' | 'desc' | 'none';
    originalData: any;
    hoveredColumn: string | null;
    searchText: any;
    multipleFilterArray: any;
    tableFilterArray: any;
    filterDataArray: any;
    isResized: boolean;
    sFilterData: any;
    headerLabels: Array<any>;
    displayedColumns: Array<any>;
    filterColumns: Array<any>;
    currentFilterColumns: Array<any>;
    sortColumns: Array<any>;
    currentSortColumns: Array<any>;
    hyperLinkColumns: Array<string>;
    editColumn: Array<any>;
    dateColumns: Array<any>;
    timeColumns: Array<any>;
    objectColumns: Array<any>;
    fileColumns: Array<any>;
    booleanColumns: Array<any>;
    inlineElement: any;
    pageSize: any;
    pageIndex: any;
    totalRecords: number;
    configPagination: boolean;
    deleteData: any;
    deleteModal: boolean;
    dropdownActionButton: any;
    currentOpenIndex: number | null;
    clickListener: any;
    selectedColumn: string | null;
    subscription: Subscription;
    deleteIndex: number;
    showPopover: boolean;
    summaryValues: {
        [label: string]: number;
    };
    isSummaryColumn: boolean;
    isSummaryStartColumn: any[];
    isSummaryEndColumn: any[];
    filterBoxData: any;
    filterTableNos: any;
    selectedView: any;
    isDropdownOpen: boolean;
    currentViewFilter: any;
    currentHeaderLabels: any[];
    currentDisplayedColumns: any[];
    isFullTableSummaryRow: boolean;
    constructor(renderer: Renderer2, dataService: DataService, changeService: ChangeService);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    computeSummaryColumns(): void;
    computeSummaryValues(from?: any): void;
    onSummaryInputChange(): void;
    sortData(column: string, sortingState?: any | undefined, currentState?: any | undefined, from?: any): void;
    onScroll(tableContainer: HTMLElement): void;
    onDocumentClick(event: any): void;
    filter(datas: any): void;
    pageParams(event: any, from?: any): void;
    applyFilter(event: any, from?: any): void;
    /** SKS15FEB25 Whether the number of selected elements matches the total number of rows. */
    isAllSelected(): boolean;
    /** SKS15FEB25 Selects all rows if they are not all selected; otherwise clear selection. */
    masterToggle(): void;
    isSomeSelected(): boolean;
    separateRowSelect(data: any, element: any): void;
    tableClick(data: any): void;
    getNestedValue(obj: any, path: string): any;
    filterRetain(filterkey: any, from?: any): void;
    removeDuplicates(objects: any): any[];
    deleteRecord(data: any, index: number): void;
    deleteRecordData(): void;
    saveButton(): void;
    onEdit(data: any): void;
    commonButtonClick(button: any): void;
    getValue(element: any, column: string): any;
    onClickHyperlink(column: any, element: any, isHyperLink: any): void;
    checkHyperlinkCheck(col: any): boolean;
    addTableRecord(element: any, from?: any): void;
    isConditionMet(element: any, conditions: any): boolean;
    isDateColumn(column: string): boolean;
    isTimeColumn(column: string): boolean;
    onSearch(event: any, from?: any): void;
    emptySearch(event: any): void;
    onSideNavInfoClick(data: any, col: any): void;
    onColumnClick(column: string): void;
    closefilter(from?: any): void;
    isSelected(event: any): boolean;
    checkedData(event: any, from?: any): void;
    private addClickOutsideListener;
    private removeClickListener;
    toggleDropdown(index: number): void;
    actionButtonClicked(event: any, data: any): void;
    removeCol(column: string): void;
    emitTableDataValue(updatedTableData: any): void;
    updateEdit(index: number, value: any, element: any, column: any): void;
    updateValue(element: any, column: string, value: any): any;
    expenseAttachment(event: any): void;
    listViewEmit(event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NxtDatatable, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NxtDatatable, "nxt-datatable", never, { "data": { "alias": "data"; "required": false; }; "tableFilterData": { "alias": "tableFilterData"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "withCheckBox": { "alias": "withCheckBox"; "required": false; }; "searchBar": { "alias": "searchBar"; "required": false; }; "tableSaveButton": { "alias": "tableSaveButton"; "required": false; }; "stickyColumn": { "alias": "stickyColumn"; "required": false; }; "tableWidth": { "alias": "tableWidth"; "required": false; }; "actionColumHeader": { "alias": "actionColumHeader"; "required": false; }; "actionButton": { "alias": "actionButton"; "required": false; }; "title": { "alias": "title"; "required": false; }; "isButtons": { "alias": "isButtons"; "required": false; }; "buttonArray": { "alias": "buttonArray"; "required": false; }; "tableId": { "alias": "tableId"; "required": false; }; "isEditRow": { "alias": "isEditRow"; "required": false; }; "isDeleteRow": { "alias": "isDeleteRow"; "required": false; }; "addInlineRecord": { "alias": "addInlineRecord"; "required": false; }; "searchConfigs": { "alias": "searchConfigs"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "pagination": { "alias": "pagination"; "required": false; }; "actionButtonArray": { "alias": "actionButtonArray"; "required": false; }; "multipleFilter": { "alias": "multipleFilter"; "required": false; }; "isPagination": { "alias": "isPagination"; "required": false; }; "isNosIndicator": { "alias": "isNosIndicator"; "required": false; }; "isEditable": { "alias": "isEditable"; "required": false; }; "from": { "alias": "from"; "required": false; }; "question": { "alias": "question"; "required": false; }; "rowTextSize": { "alias": "rowTextSize"; "required": false; }; "rowTextColor": { "alias": "rowTextColor"; "required": false; }; "apiMeta": { "alias": "apiMeta"; "required": false; }; "summaryRows": { "alias": "summaryRows"; "required": false; }; "summaryColumns": { "alias": "summaryColumns"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "tableConfig": { "alias": "tableConfig"; "required": false; }; "tableParams": { "alias": "tableParams"; "required": false; }; "listViews": { "alias": "listViews"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, { "tableRowClick": "tableRowClick"; "onEditData": "onEditData"; "saveButtonData": "saveButtonData"; "onDeleteData": "onDeleteData"; "buttonEmit": "buttonEmit"; "hyperLinkEmit": "hyperLinkEmit"; "sideNavEmit": "sideNavEmit"; "actionButtonEmit": "actionButtonEmit"; "columnSelected": "columnSelected"; "removeColumn": "removeColumn"; "valueChange": "valueChange"; "selectedValues": "selectedValues"; "fileEmit": "fileEmit"; "NxtTableParamsEmit": "NxtTableParamsEmit"; "NxtTableFilterEmit": "NxtTableFilterEmit"; "NxtTableEmit": "NxtTableEmit"; }, never, never, true, never>;
}
