/**
* @license
* Copyright 2023 Nuraly, Laabidi Aymen
* SPDX-License-Identifier: MIT
*/
import { LitElement, PropertyValueMap } from 'lit';
import { IHeader, SelectionMode, Sizes, SortAttribute } from './table.types.js';
import { TableHost } from './interfaces/index.js';
declare const HyTable_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement;
/**
* Advanced table component with sorting, filtering, pagination, selection, and fixed columns.
*
* @example
* ```html
*
*
*
*
*
*
*
* ```
*
* @fires onPaginate - Fired when pagination changes
* @fires nr-select - Fired when row selection changes
* @fires onSearch - Fired when search/filter is applied
* @fires onSort - Fired when sorting is applied
*/
export declare class HyTable extends HyTable_base implements TableHost {
static useShadowDom: boolean;
static styles: import("lit").CSSResult;
headers: IHeader[];
rows: any[];
size: Sizes;
withFilter: boolean;
expandable: string | undefined;
expansionRenderer: ((row: any, index: number) => any) | undefined;
selectionMode: SelectionMode | undefined;
fixedHeader: boolean;
scrollConfig: {
x?: number | string;
y?: number | string;
} | undefined;
loading: boolean;
emptyText: string;
emptyIcon: string | undefined;
serverSide: boolean;
totalCount: number;
clickable: boolean;
pageSize: number;
itemPerPage: number[];
selectedItemPerPage: number;
displayedRows: any[];
selectedItems: boolean[];
currentPage: number;
rowsCopy: any[];
activeSearch: boolean;
sortAttribute: SortAttribute;
expand: boolean[];
showFilterInput: boolean;
filterValue: string;
columnFilters: Map;
activeFilterColumn: string | null;
globalCheck?: HTMLElement;
requiredComponents: string[];
private selectionController;
private paginationController;
private sortController;
private filterController;
connectedCallback(): void;
updated(_changedProperties: PropertyValueMap | Map): void;
willUpdate(_changedProperties: PropertyValueMap): void;
/**
* Initialize or reset pagination state
*/
private _initPagination;
/**
* Handle items per page change event
*/
_handleItemPerPage(itemPerPageEvent: CustomEvent): void;
/**
* Handle page navigation event
*/
_handleUpdatePage(updatePageEvent: CustomEvent): void;
/**
* Handle check all rows event
*/
_handleCheckAll(checkAllEvent: CustomEvent): void;
/**
* Handle check single row event
*/
_handleCheckOne(checkOneEvent: CustomEvent): void;
/**
* Handle select single row event (radio button mode)
*/
_handleSelectOne(selectOneEvent: CustomEvent): void;
/**
* Handle cancel selection action
*/
_handleCancelSelection(): void;
/**
* Handle search/filter input
*/
_handleSearch(searchEvent: CustomEvent): void;
/**
* Handle column sort order change
*/
_handleSortOrder(sortOrderEvent: CustomEvent): void;
/**
* Toggle expanded content for a row
*/
private _showExpandedContent;
/**
* Toggle filter input visibility
*/
private _toggleFilterInput;
/**
* Handle filter input change
*/
private _handleFilterInputChange;
/**
* Render the table component with all templates
*/
render(): import("lit-html").TemplateResult<1>;
}
export {};
//# sourceMappingURL=table.component.d.ts.map