import type { Column, Fixed, Type, Align, VerticalAlign, CellType, Render, FormatterMethod, OverflowTooltipPlacement, SpanInfo, SelectorCellValueType, LineClampType, RenderType } from './types';
import Context from './Context';
import BaseCell from './BaseCell';
import { Rule, Rules } from './Validator';
export default class Cell extends BaseCell {
    formatter?: FormatterMethod;
    formatterFooter?: FormatterMethod;
    hoverIconName?: string;
    operation: boolean;
    align: Align;
    verticalAlign: VerticalAlign;
    fixed?: Fixed;
    type: Type | '';
    editorType: string;
    editorProps: any;
    cellType: CellType;
    level: number;
    colspan: number;
    rowspan: number;
    mergeRow: boolean;
    mergeCol: boolean;
    relationRowKeys: string[];
    relationColKeys: string[];
    key: string;
    column: Column;
    rowIndex: number;
    colIndex: number;
    rowKey: string;
    row: any;
    value: any;
    render: Render;
    renderFooter: Render;
    style: any;
    domDataset: any;
    rules: Rules | Rule;
    message: string;
    text: string;
    displayText: string;
    visibleWidth: number;
    visibleHeight: number;
    isHasChanged: boolean;
    drawX: number;
    drawY: number;
    drawCellBgColor: string;
    drawCellSkyBgColor: string;
    drawTextColor: string;
    drawTextFont: string;
    drawTextX: number;
    drawTextY: number;
    drawTextWidth: number;
    drawTextHeight: number;
    drawTreeImageX: number;
    drawTreeImageY: number;
    drawTreeImageWidth: number;
    drawTreeImageHeight: number;
    drawTreeImageName: string;
    drawTreeImageSource?: HTMLImageElement;
    drawSelectionImageX: number;
    drawSelectionImageY: number;
    drawSelectionImageWidth: number;
    drawSelectionImageHeight: number;
    drawSelectionImageName: string;
    drawSelectionImageSource?: HTMLImageElement;
    drawHoverImageX: number;
    drawHoverImageY: number;
    drawHoverImageWidth: number;
    drawHoverImageHeight: number;
    drawHoverImageName: string;
    drawHoverImageSource?: HTMLImageElement;
    autoRowHeight: boolean;
    calculatedHeight: number;
    ellipsis: boolean;
    rowExpand: boolean;
    rowHasChildren: boolean;
    overflowTooltipShow: boolean;
    selectorCellValueType: SelectorCellValueType;
    overflowTooltipMaxWidth: number;
    overflowTooltipPlacement: OverflowTooltipPlacement;
    maxLineClamp: LineClampType;
    renderType: RenderType;
    renderFooterType: RenderType;
    constructor(ctx: Context, rowIndex: number, colIndex: number, x: number, y: number, width: number, height: number, column: Column, row: any, cellType?: CellType, isUpdate?: boolean);
    setWidthHeight(width: number, height: number): void;
    getValidationMessage(): string;
    update(): void;
    updateSpan(): void;
    updateSpanInfo(): void;
    updateType(): void;
    updateEditor(): void;
    updateRender(): void;
    validate(): void;
    /**
     * 更新样式
     */
    updateStyle(): void;
    private updateTree;
    private drawTreeLine;
    private updateContainer;
    private updateSelection;
    private updateHoverIcon;
    /**
     * 获取自动高度
     * @returns
     */
    getAutoHeight(): number;
    getSpanInfo(): SpanInfo;
    /**
     * 获取显示文本
     * @returns
     */
    getDisplayText(): string;
    /**
     * 获取文本
     * @returns
     */
    getText(): any;
    getValue(): any;
    setValue(value: any): void;
    /**
     * 获取样式
     */
    getOverlayerViewsStyle(): {
        position: string;
        overflow: string;
        left: string;
        top: string;
        width: string;
        height: string;
        pointerEvents: string;
        userSelect: string;
    };
    drawContainer(): void;
    private drawAutofillPiont;
    draw(): void;
    /**
     * 根据列的索引获取列的宽度
     * @param {Number} colIndex
     */
    private getWidthByColIndexColSpan;
    private drawText;
    private drawImage;
    private drawSelector;
    private drawErrorTip;
    private drawBorder;
}
