import { type Readable } from 'svelte/store'; import type { BodyRow } from './bodyRows.js'; import type { DataColumn, DisplayColumn, FlatColumn } from './columns.js'; import { TableComponent } from './tableComponent.js'; import type { DataLabel, DisplayLabel } from './types/Label.js'; import type { AnyPlugins } from './types/TablePlugin.js'; import type { RenderConfig } from 'svelte-render/createRender'; export type BodyCellInit = { id: string; row: BodyRow; }; export type BodyCellAttributes = { role: 'cell'; }; export declare abstract class BodyCell extends TableComponent { abstract column: FlatColumn; row: BodyRow; constructor({ id, row }: BodyCellInit); abstract render(): RenderConfig; attrs(): Readable>; abstract clone(): BodyCell; rowColId(): string; dataRowColId(): string | undefined; isData(): this is DataBodyCell; isDisplay(): this is DisplayBodyCell; } export type DataBodyCellInit = Omit, 'id'> & { column: DataColumn; label?: DataLabel; value: Value; }; export type DataBodyCellAttributes = BodyCellAttributes; export declare class DataBodyCell extends BodyCell { __data: boolean; column: DataColumn; label?: DataLabel; value: Value; constructor({ row, column, label, value }: DataBodyCellInit); render(): RenderConfig; clone(): DataBodyCell; } export type DisplayBodyCellInit = Omit, 'id'> & { column: DisplayColumn; label: DisplayLabel; }; export declare class DisplayBodyCell extends BodyCell { __display: boolean; column: DisplayColumn; label: DisplayLabel; constructor({ row, column, label }: DisplayBodyCellInit); render(): RenderConfig; clone(): DisplayBodyCell; }