import { EventEmitter, OnChanges, SimpleChanges, TemplateRef, OnInit } from '@angular/core';
import { Subject } from 'rxjs';
import { TableActions, TableLayout } from '../models';
import * as i0 from "@angular/core";
export declare class TableComponent<T extends object> implements OnChanges, OnInit {
    dataSource: import("@angular/core").InputSignal<T[]>;
    localStorageKey: import("@angular/core").InputSignalWithTransform<string, string>;
    tableLayout: import("@angular/core").InputSignal<TableLayout>;
    firstPageOnInit: import("@angular/core").InputSignal<boolean>;
    pageSizeOptions: import("@angular/core").InputSignal<number[]>;
    isLoading: import("@angular/core").InputSignal<boolean>;
    totalCount: import("@angular/core").InputSignal<number | undefined>;
    serverPagination: import("@angular/core").InputSignal<boolean>;
    stripedRows: import("@angular/core").InputSignal<boolean>;
    expandable: import("@angular/core").InputSignal<boolean>;
    expanded: import("@angular/core").InputSignal<boolean>;
    showFilter: import("@angular/core").InputSignal<boolean>;
    showPaginator: import("@angular/core").InputSignal<boolean>;
    quickPageJump: import("@angular/core").InputSignal<boolean>;
    popupOffset: import("@angular/core").InputSignal<number>;
    tableTitle: import("@angular/core").InputSignal<string | undefined>;
    variant: import("@angular/core").InputSignal<"outlined" | "raised">;
    setsFirstPage$: import("@angular/core").InputSignal<Subject<void> | undefined>;
    expandIndex: import("@angular/core").ModelSignal<number | null>;
    noRecordsTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    footerTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    popupTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    expandTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    bodyTemplate: import("@angular/core").Signal<TemplateRef<any>>;
    headerTemplate: import("@angular/core").Signal<TemplateRef<any>>;
    isInitLoad: import("@angular/core").WritableSignal<boolean>;
    filteredData: import("@angular/core").WritableSignal<T[]>;
    sortedData: import("@angular/core").WritableSignal<T[]>;
    private destroyRef;
    private tableIntl;
    private tableUtilityService;
    private tableStorageService;
    noRecordsText: import("@angular/core").WritableSignal<string>;
    columnCount: import("@angular/core").WritableSignal<number>;
    pageSize: import("@angular/core").Signal<number>;
    currentPage: import("@angular/core").Signal<number>;
    searchText: import("@angular/core").Signal<string>;
    private sortColumn;
    private sortDirection;
    totalItems: import("@angular/core").Signal<number>;
    expandedRowIndex: number | null;
    arrayFromSize: import("@angular/core").Signal<unknown[]>;
    arrayFromCols: import("@angular/core").Signal<unknown[]>;
    expandColumnSpan: import("@angular/core").Signal<number>;
    hoveredRow: import("@angular/core").WritableSignal<T | null>;
    popupPosition: import("@angular/core").WritableSignal<{
        top: number;
        left: number;
        right: number;
    }>;
    private isMobile;
    private hidePopupTimeout;
    private isPopupReady;
    tableActions: import("@angular/core").OutputEmitterRef<TableActions>;
    selectRowAction: EventEmitter<T>;
    tableActionsEffect: import("@angular/core").EffectRef;
    loadingEffect: import("@angular/core").EffectRef;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    onResize(): void;
    toggleRow(row: T, index?: number): void;
    private filterData;
    private sortData;
    private paginateData;
    private loadServerData;
    private watchInitLoad;
    private emitTableActions;
    private toggleSort;
    onRowHover(event: MouseEvent, row: T): void;
    onRowLeave(): void;
    onPopupHover(): void;
    onPopupLeave(): void;
    onExpandHover(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "fu-table", never, { "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "localStorageKey": { "alias": "localStorageKey"; "required": false; "isSignal": true; }; "tableLayout": { "alias": "tableLayout"; "required": false; "isSignal": true; }; "firstPageOnInit": { "alias": "firstPageOnInit"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "totalCount": { "alias": "totalCount"; "required": false; "isSignal": true; }; "serverPagination": { "alias": "serverPagination"; "required": false; "isSignal": true; }; "stripedRows": { "alias": "stripedRows"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "showFilter": { "alias": "showFilter"; "required": false; "isSignal": true; }; "showPaginator": { "alias": "showPaginator"; "required": false; "isSignal": true; }; "quickPageJump": { "alias": "quickPageJump"; "required": false; "isSignal": true; }; "popupOffset": { "alias": "popupOffset"; "required": false; "isSignal": true; }; "tableTitle": { "alias": "tableTitle"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "setsFirstPage$": { "alias": "setsFirstPage$"; "required": false; "isSignal": true; }; "expandIndex": { "alias": "expandIndex"; "required": false; "isSignal": true; }; }, { "expandIndex": "expandIndexChange"; "tableActions": "tableActions"; "selectRowAction": "selectRowAction"; }, ["noRecordsTemplate", "footerTemplate", "popupTemplate", "expandTemplate", "bodyTemplate", "headerTemplate"], never, true, never>;
}
