import { CardElement, StylableCardElementContainer, SerializationContext, Container, ContainerStyleProperty } from "./card-elements"; import { HorizontalAlignment, VerticalAlignment } from "./enums"; import { TextStyleDefinition } from "./host-config"; import { BoolProperty, CustomProperty, EnumProperty, PropertyBag, SerializableObject } from "./serialization"; import { SizeAndUnit, PaddingDefinition } from "./shared"; export declare class TableColumnDefinition extends SerializableObject { static readonly horizontalCellContentAlignmentProperty: EnumProperty; static readonly verticalCellContentAlignmentProperty: EnumProperty; static readonly widthProperty: CustomProperty; horizontalCellContentAlignment?: HorizontalAlignment; verticalCellContentAlignment?: VerticalAlignment; width: SizeAndUnit; getSchemaKey(): string; computedWidth: SizeAndUnit; } export declare abstract class StylableContainer extends StylableCardElementContainer { private _items; private parseItem; protected abstract getCollectionPropertyName(): string; protected abstract createItemInstance(typeName: string): T | undefined; protected internalAddItem(item: T): void; protected internalRemoveItem(item: T): boolean; protected internalIndexOf(item: T): number; protected internalParse(source: any, context: SerializationContext): void; protected internalToJSON(target: PropertyBag, context: SerializationContext): void; removeItem(item: T): boolean; getItemCount(): number; getItemAt(index: number): T; getFirstVisibleRenderedItem(): T | undefined; getLastVisibleRenderedItem(): T | undefined; } export type CellType = "data" | "header"; export declare class TableCell extends Container { private _columnIndex; private _cellType; protected getHasBorder(): boolean; protected applyBorder(): void; protected getDefaultPadding(): PaddingDefinition; protected internalRender(): HTMLElement | undefined; protected shouldSerialize(_context: SerializationContext): boolean; getJsonTypeName(): string; getEffectiveTextStyleDefinition(): TextStyleDefinition; getEffectiveHorizontalAlignment(): HorizontalAlignment; getEffectiveVerticalContentAlignment(): VerticalAlignment; get columnIndex(): number; get cellType(): CellType; get parentRow(): TableRow; get isStandalone(): boolean; } export declare class TableRow extends StylableContainer { static readonly styleProperty: ContainerStyleProperty; static readonly horizontalCellContentAlignmentProperty: EnumProperty; static readonly verticalCellContentAlignmentProperty: EnumProperty; horizontalCellContentAlignment?: HorizontalAlignment; verticalCellContentAlignment?: VerticalAlignment; protected getDefaultPadding(): PaddingDefinition; protected applyBackground(): void; protected getCollectionPropertyName(): string; protected createItemInstance(typeName: string): TableCell | undefined; protected internalRender(): HTMLElement | undefined; protected shouldSerialize(_context: SerializationContext): boolean; addCell(cell: TableCell): void; removeCellAt(columnIndex: number): boolean; indexOf(cardElement: CardElement): number; ensureHasEnoughCells(cellCount: number): void; getJsonTypeName(): string; getIsFirstRow(): boolean; get parentTable(): Table; get isStandalone(): boolean; } export declare class Table extends StylableContainer { private static readonly _columnsProperty; static readonly firstRowAsHeadersProperty: BoolProperty; static readonly showGridLinesProperty: BoolProperty; static readonly gridStyleProperty: ContainerStyleProperty; static readonly horizontalCellContentAlignmentProperty: EnumProperty; static readonly verticalCellContentAlignmentProperty: EnumProperty; private _columns; firstRowAsHeaders: boolean; showGridLines: boolean; get gridStyle(): string | undefined; set gridStyle(value: string | undefined); horizontalCellContentAlignment?: HorizontalAlignment; verticalCellContentAlignment?: VerticalAlignment; private ensureRowsHaveEnoughCells; private removeCellsFromColumn; protected getCollectionPropertyName(): string; protected createItemInstance(typeName: string): TableRow | undefined; protected internalParse(source: PropertyBag, context: SerializationContext): void; protected internalRender(): HTMLElement | undefined; addColumn(column: TableColumnDefinition): void; removeColumn(column: TableColumnDefinition): void; getColumnCount(): number; getColumnAt(index: number): TableColumnDefinition; addRow(row: TableRow): void; indexOf(cardElement: CardElement): number; getJsonTypeName(): string; }