/**
 * THIS IS GENERATED CODE!
 * PLEASE DO NOT MODIFY - ALL YOUR WORK WOULD BE LOST!
 */
export declare const typescriptDeclarationFixConstant = 1;
import { UiEvent } from "./UiEvent";
import { TeamAppsEvent } from "../modules/util/TeamAppsEvent";
import { UiComponentConfig } from "./UiComponentConfig";
import { UiTableColumnConfig } from "./UiTableColumnConfig";
import { UiSelectionFrameConfig } from "./UiSelectionFrameConfig";
import { UiRefreshableTableConfigUpdateConfig } from "./UiRefreshableTableConfigUpdateConfig";
import { UiTableClientRecordConfig } from "./UiTableClientRecordConfig";
import { UiFieldMessageConfig } from "./UiFieldMessageConfig";
import { UiSortDirection } from "./UiSortDirection";
import { UiComponentCommandHandler } from "./UiComponentConfig";
export interface UiTableConfig extends UiComponentConfig {
    _type?: string;
    columns: UiTableColumnConfig[];
    displayAsList?: boolean;
    forceFitWidth?: boolean;
    rowHeight?: number;
    stripedRows?: boolean;
    stripedRowColorEven?: string;
    stripedRowColorOdd?: string;
    hideHeaders?: boolean;
    allowMultiRowSelection?: boolean;
    selectionColor?: string;
    rowBorderWidth?: number;
    rowBorderColor?: string;
    showRowCheckBoxes?: boolean;
    showNumbering?: boolean;
    textSelectionEnabled?: boolean;
    autoHeight?: boolean;
    sortField?: string;
    sortDirection?: UiSortDirection;
    editable?: boolean;
    treeMode?: boolean;
    indentedColumnName?: string;
    indentation?: number;
    selectionFrame?: UiSelectionFrameConfig;
    contextMenuEnabled?: boolean;
    showHeaderRow?: boolean;
    headerRowBorderWidth?: number;
    headerRowBorderColor?: string;
    headerRowHeight?: number;
    headerRowBackgroundColor?: string;
    showFooterRow?: boolean;
    footerRowBorderWidth?: number;
    footerRowBorderColor?: string;
    footerRowHeight?: number;
    footerRowBackgroundColor?: string;
}
export interface UiTableCommandHandler extends UiComponentCommandHandler {
    updateRefreshableConfig(config: UiRefreshableTableConfigUpdateConfig): any;
    clearTable(): any;
    updateData(startIndex: number, recordIds: number[], newRecords: UiTableClientRecordConfig[], totalNumberOfRecords: number): any;
    setSorting(sortField: string, sortDirection: UiSortDirection): any;
    setCellValue(recordId: number, columnPropertyName: string, value: any): any;
    markTableField(recordId: number, columnPropertyName: string, mark: boolean): any;
    clearAllFieldMarkings(): any;
    setRecordBold(recordId: number, bold: boolean): any;
    selectRecords(recordIds: number[], scrollToFirstRecord: boolean): any;
    selectRows(rowIndexes: number[], scrollToFirstRowIndex: boolean): any;
    cancelEditingCell(recordId: number, propertyName: string): any;
    focusCell(recordId: number, columnPropertyName: string): any;
    setSingleCellMessages(recordId: number, columnPropertyName: string, messages: UiFieldMessageConfig[]): any;
    clearAllCellMessages(): any;
    setColumnMessages(columnPropertyName: string, messages: UiFieldMessageConfig[]): any;
    addColumns(column: UiTableColumnConfig[], index: number): any;
    removeColumns(columnName: string[]): any;
    setColumnVisibility(columnPropertyName: string, visible: boolean): any;
    setContextMenuContent(requestId: number, component: unknown): any;
    closeContextMenu(requestId: number): any;
    setHeaderRowField(columnName: string, field: unknown): any;
    setFooterRowField(columnName: string, field: unknown): any;
}
export interface UiTableEventSource {
    onCellClicked: TeamAppsEvent<UiTable_CellClickedEvent>;
    onCellEditingStarted: TeamAppsEvent<UiTable_CellEditingStartedEvent>;
    onCellEditingStopped: TeamAppsEvent<UiTable_CellEditingStoppedEvent>;
    onCellValueChanged: TeamAppsEvent<UiTable_CellValueChangedEvent>;
    onRowsSelected: TeamAppsEvent<UiTable_RowsSelectedEvent>;
    onSortingChanged: TeamAppsEvent<UiTable_SortingChangedEvent>;
    onDisplayedRangeChanged: TeamAppsEvent<UiTable_DisplayedRangeChangedEvent>;
    onContextMenuRequested: TeamAppsEvent<UiTable_ContextMenuRequestedEvent>;
    onFieldOrderChange: TeamAppsEvent<UiTable_FieldOrderChangeEvent>;
    onColumnSizeChange: TeamAppsEvent<UiTable_ColumnSizeChangeEvent>;
}
export interface UiTable_CellClickedEvent extends UiEvent {
    recordId: number;
    columnPropertyName: string;
}
export interface UiTable_CellEditingStartedEvent extends UiEvent {
    recordId: number;
    columnPropertyName: string;
    currentValue: any;
}
export interface UiTable_CellEditingStoppedEvent extends UiEvent {
    recordId: number;
    columnPropertyName: string;
}
export interface UiTable_CellValueChangedEvent extends UiEvent {
    recordId: number;
    columnPropertyName: string;
    value: any;
}
export interface UiTable_RowsSelectedEvent extends UiEvent {
    recordIds: number[];
}
export interface UiTable_SortingChangedEvent extends UiEvent {
    sortField: string;
    sortDirection: UiSortDirection;
}
export interface UiTable_DisplayedRangeChangedEvent extends UiEvent {
    startIndex: number;
    length: number;
}
export interface UiTable_ContextMenuRequestedEvent extends UiEvent {
    requestId: number;
    recordId: number;
}
export interface UiTable_FieldOrderChangeEvent extends UiEvent {
    columnPropertyName: string;
    position: number;
}
export interface UiTable_ColumnSizeChangeEvent extends UiEvent {
    columnPropertyName: string;
    size: number;
}
