import { ButtonSizeProps } from '@sixbell-telco/sdk/components/button';
import { CheckboxSizeProps } from '@sixbell-telco/sdk/components/forms/checkbox';
import { SelectSizeProps } from '@sixbell-telco/sdk/components/forms/select';
import { IconSizeProps } from '@sixbell-telco/sdk/components/icon';
import { Pagination, PaginationType, PaginatorSizeProps } from '@sixbell-telco/sdk/components/paginator';
import { TextPreset } from '@sixbell-telco/sdk/directives/text';
import { TranslateService } from '@sixbell-telco/sdk/utils/translation';
import { TableActionsSizeProps } from '../table-actions/table-actions.types';
import { TableHeaderCheckboxComponent } from '../table-header-checkbox/table-header-checkbox.component';
import { TableRowCheckboxComponent } from '../table-row-checkbox/table-row-checkbox.component';
import * as i0 from "@angular/core";
export type TableResolvedSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export interface TableSizeTokens {
headerPreset: TextPreset;
bodyPreset: TextPreset;
footerPreset: TextPreset;
selectSize: SelectSizeProps;
paginatorSize: PaginatorSizeProps;
checkboxSize: CheckboxSizeProps;
actionSize: TableActionsSizeProps;
sortableButtonSize: ButtonSizeProps;
sortableIconSize: IconSizeProps;
}
export interface TableFooterLayoutTokens {
wrapper: string[];
divider: string[];
content: string[];
}
export declare function resolveTableSize(size: TableContentSizeProps): TableResolvedSize;
export declare function getTableSizeTokens(size: TableContentSizeProps): TableSizeTokens;
export declare function getTableFooterLayoutTokens(size: TableContentSizeProps): TableFooterLayoutTokens;
export declare function getTableHierarchyTypographyClasses(size: TableResolvedSize): string[];
/** Type definition for pagination display variants */
/**
* @internal
* Generates base table classes with size variants
*/
export declare const tableContent: (props?: ({
size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
/** Possible table size variants */
export type TableContentSizeProps = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined;
/**
* @internal
* Generates table container classes with height variants
*/
export declare const tableContainer: (props?: ({
containerHeight?: "sm" | "md" | "lg" | "xl" | "auto" | "full" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
/** Possible table container height values */
export type TableContainerHeightProps = 'auto' | 'full' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined;
/** Configuration object for table styling variants */
export type TableVariantProps = {
size?: TableContentSizeProps;
containerHeight?: TableContainerHeightProps;
};
/**
* @internal
* Combines table content and container classes
*/
export declare const tableComponent: ({ size, containerHeight }?: TableVariantProps) => string;
/** Pagination configuration structure */
export interface TablePagination extends Pagination {
id: string;
search: string;
}
/**
* A feature-rich data table component with sorting, pagination, and row selection
*
* @remarks
* Integrates with Tailwind CSS for styling and supports responsive layouts.
* Includes built-in pagination controls and checkbox selection functionality.
*
* @example
* ```html
*
*
*
* ```
*/
export declare class TableComponent {
readonly translationService: TranslateService;
/**
* Table size variant
* @defaultValue 'sm'
*/
size: import("@angular/core").InputSignal;
/**
* Table container height preset
* @defaultValue 'auto'
*/
height: import("@angular/core").InputSignal;
/**
* Enable sticky header row
* @defaultValue false
*/
pinRows: import("@angular/core").InputSignal;
/**
* Enable sticky first column
* @defaultValue false
*/
pinColumns: import("@angular/core").InputSignal;
/**
* Apply zebra-striping to rows
* @defaultValue false
*/
zebra: import("@angular/core").InputSignal;
/**
* Show row dividers (borders) between rows
* @defaultValue false
*/
bordered: import("@angular/core").InputSignal;
/**
* Pagination control display variant
* @defaultValue 'default'
*/
paginatorType: import("@angular/core").InputSignal;
/**
* Empty state icon for no data state
* @defaultValue heroDocumentText
*/
noDataIcon: import("@angular/core").InputSignal;
/**
* Empty state icon for no results state
* @defaultValue heroMagnifyingGlass
*/
noResultsIcon: import("@angular/core").InputSignal;
/**
* Array of data items to display
* @defaultValue []
*/
data: import("@angular/core").InputSignal;
/**
* Total number of items across all pages
* @defaultValue 0
*/
totalItems: import("@angular/core").InputSignal;
/**
* Pagination configuration
* @defaultValue { id: 'paginator', currentPage: 1, itemsPerPage: 10, search: '' }
*/
pagination: import("@angular/core").InputSignal;
/**
* Maximum number of pagination buttons to display
* @defaultValue 4
*/
maxSize: import("@angular/core").InputSignal;
/** Event emitted when page changes */
pageChanged: import("@angular/core").OutputEmitterRef;
/** Event emitted when page size changes */
pageSizeChanged: import("@angular/core").OutputEmitterRef;
readonly ENTRIES: readonly [5, 10, 20, 50, 100];
readonly entriesPerPageOptions: import("@angular/core").Signal<{
value: 10 | 5 | 20 | 50 | 100;
text: any;
}[]>;
/**
* Show items per page selector
* @defaultValue true
*/
showItemsPerPage: import("@angular/core").InputSignal;
/**
* Show entries count display
* @defaultValue true
*/
showEntries: import("@angular/core").InputSignal;
/**
* Show pagination controls
* @defaultValue true
*/
showPagination: import("@angular/core").InputSignal;
/**
* Show footer with additional information
* @defaultValue true
*/
showFooter: import("@angular/core").InputSignal;
/**
* Function to determine if any filters are currently active
* This allows the parent component to define what constitutes an "active filter"
*/
hasActiveFiltersCallback: import("@angular/core").InputSignal<(() => boolean) | undefined>;
/**
* Controls whether table headers should overflow with horizontal scrolling (true)
* or wrap text normally (false)
* @defaultValue false
*/
allowHeaderOverflow: import("@angular/core").InputSignal;
/**
* Computed total number of pages for the internal paginator.
* Calculated from totalItems and itemsPerPage.
*/
readonly totalPages: import("@angular/core").Signal;
/**
* Computed boolean indicating if any filters are currently active
*/
readonly hasActiveFilters: import("@angular/core").Signal;
/**
* Computed boolean indicating if we should show "no results" vs "no data"
*/
readonly hasNoResults: import("@angular/core").Signal;
/**
* Computed boolean indicating if we should show "no data" state
*/
readonly hasNoData: import("@angular/core").Signal;
/**
* Computed display range for current page entries
* @example "1-10" of 100 entries
*/
paginationRange: import("@angular/core").Signal;
/**
* Handles page navigation events
* @param page - New page number
*/
handlePageChange(page: number): void;
/**
* Handles page size changes
* @param size - New items per page value
*/
handlePageSizeChange(size: unknown): void;
/**
* @internal
* Computes table element classes based on current configuration
*/
tableClass: import("@angular/core").Signal;
/**
* @internal
* Computes table container classes based on height input
*/
tableContainerClass: import("@angular/core").Signal;
/**
* @internal
* Computes outer container classes based on size
*/
containerClass: import("@angular/core").Signal;
readonly sizeTokens: import("@angular/core").Signal;
readonly footerLayoutTokens: import("@angular/core").Signal;
/**
* @internal
* Computes typography variant for paginator text based on table size
*/
paginatorTextSize: import("@angular/core").Signal;
footerSelectSize: import("@angular/core").Signal;
footerPaginatorSize: import("@angular/core").Signal;
footerWrapperClass: import("@angular/core").Signal;
footerDividerClass: import("@angular/core").Signal;
footerContentClass: import("@angular/core").Signal;
/** @internal Reference to header checkbox component */
header: import("@angular/core").Signal;
/** @internal List of row checkbox components */
rows: import("@angular/core").Signal;
/** @internal Track selected row identifiers */
identifiers: import("@angular/core").WritableSignal>;
/** Event emitted with array of selected item identifiers */
checkedItems: import("@angular/core").OutputEmitterRef;
/** @internal Sync checkbox state with output */
checkEffect: import("@angular/core").EffectRef;
/**
* Toggle all row checkboxes
* @param value - Whether to check or uncheck all rows
*/
handleToggleAll(value: boolean): void;
/**
* Handle individual checkbox toggle
* @param value - Checkbox state
* @param identifier - Unique row identifier
*/
handleToggleCheckbox(value: boolean, identifier: unknown): void;
/** @internal Clear all selections */
private clearList;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}