import { StyleDefaults } from './data_styles';
import { ContainerRenderer } from './container';
import { ChildRenderers, Renderer } from './renderer';
import { Cell, Field, RecordCell, RecordField, RecordOrRepeatedRecordCell, SortableField } from '../data_tree';
declare class FlattenedColumnField {
    readonly flattenedField: RecordField;
    readonly field: Field;
    readonly name: string;
    constructor(flattenedField: RecordField, field: Field, name: string);
    isFlattenedColumnField(): this is FlattenedColumnField;
    getChildRenderer(childRenderers: ChildRenderers): Renderer;
    getValue(row: RecordCell): Cell;
}
type NonDimension = SortableField & {
    flattenedField?: FlattenedColumnField;
};
export declare class HTMLTableRenderer extends ContainerRenderer {
    protected childrenStyleDefaults: StyleDefaults;
    render(table: Cell): Promise<HTMLElement>;
    calculatePivotDimensions(table: RecordOrRepeatedRecordCell, userSpecifiedDimensions?: Array<string>): {
        dimensions: SortableField[];
        nonDimensions: NonDimension[];
    };
    generatePivotedCells(table: RecordOrRepeatedRecordCell, shouldTranspose: boolean, userSpecifiedDimensions?: Array<string>): Promise<Map<string, Map<string, HTMLTableCellElement>>>;
    generateNoValueCell(field: Field, shouldTranspose: boolean): HTMLTableCellElement;
    createCellAndRender(childRenderer: Renderer, value: Cell, shouldTranspose: boolean): Promise<HTMLTableCellElement>;
    createEmptyHeaderCell(): HTMLTableCellElement;
    createHeaderCell(field: Field, shouldTranspose: boolean, override?: {
        name?: string;
        childRenderer?: Renderer;
    }): HTMLTableCellElement;
    createCell(childRenderer: Renderer, shouldTranspose: boolean): HTMLTableCellElement;
    renderChild(value: Cell): Promise<HTMLElement>;
}
export {};
