import { SubmitValue } from '@oinone/kunlun-engine';
import { CallChaining } from '@oinone/kunlun-shared';
import { ActiveEditorContext, OioTableInstance, RenderCellContext, RowContext, TableEditorCloseTrigger, TableEditorMode, TableEditorTrigger } from '@oinone/kunlun-vue-ui';
import { ConfirmType, PopconfirmPlacement } from '@oinone/kunlun-vue-ui-antd';
import { ActiveRecordsWidgetProps } from '@oinone/kunlun-vue-widget';
import { VNode } from 'vue';
import { BaseDataWidget } from '../common';
import { FieldWidgetComponentFunction } from '../types';
export declare abstract class BaseTableColumnWidget<Value = unknown, Props extends ActiveRecordsWidgetProps = ActiveRecordsWidgetProps> extends BaseDataWidget<Props> {
    private tableInstance;
    getTableInstance(): OioTableInstance | undefined;
    private setTableInstance;
    protected getFieldWidgetComponent: FieldWidgetComponentFunction | undefined;
    protected submitCallChaining: CallChaining<SubmitValue> | undefined;
    protected validatorCallChaining: CallChaining<boolean> | undefined;
    protected tableForceEditable: boolean | undefined;
    initialize(props: any): this;
    getValue(context: RowContext): Value | null | undefined;
    setValue(context: RowContext, val: Value | null | undefined): void;
    compute(context: RowContext): Value | null | undefined;
    get columnType(): string;
    get width(): string | number | undefined;
    get minWidth(): string | number | undefined;
    get label(): string;
    get align(): string;
    get required(): boolean;
    get headerAlign(): string;
    get footerAlign(): string;
    get fixed(): string | boolean | undefined;
    className(context: RenderCellContext): string | string[] | undefined;
    headerClassName(context: RenderCellContext): string | string[] | undefined;
    footerClassName(context: RenderCellContext): string | string[] | undefined;
    get resizable(): boolean | undefined;
    protected tableSortable: boolean | undefined;
    get sortable(): boolean;
    get invisible(): boolean;
    /**
     * @deprecated invalid prop in the table column
     */
    get readonly(): boolean;
    protected get clientInvisible(): boolean;
    protected invisibleContent(context: RowContext): boolean;
    protected existExpandRow: boolean | undefined;
    protected tableEditable: boolean | undefined;
    /**
     * <h3>可编辑</h3>
     */
    get editable(): boolean;
    /**
     * <h3>单元格可编辑</h3>
     * <ul>当且仅当以下条件成立时, 该方法有效
     *   <li>{@link BaseTableColumnWidget#editable} = true</li>
     *   <li>{@link BaseTableColumnWidget#editorMode} = {@link TableEditorMode#cell}</li>
     * </ul>
     * @param context 行上下文
     */
    cellEditable(context: RowContext): boolean;
    editorTrigger: TableEditorTrigger | undefined;
    editorMode: TableEditorMode | undefined;
    editorCloseTrigger: TableEditorCloseTrigger | undefined;
    protected currentEditorContext: ActiveEditorContext | undefined;
    protected tableRowEditorClosedBefore: ((context: RowContext | undefined) => Promise<boolean>) | undefined;
    protected tableRowEditorClosed: ((context: RowContext | undefined) => Promise<boolean>) | undefined;
    protected rowEditorClosedByEnter(context: RowContext | undefined): Promise<boolean>;
    protected rowEditorClosedByCancel(context: RowContext | undefined): Promise<boolean>;
    protected editorEnableConfirm(context: RowContext): boolean;
    protected editorConfirmType(context: RowContext): ConfirmType | undefined;
    protected editorConfirm(context: RowContext): string | undefined;
    protected editorCondition(context: RowContext): Promise<boolean | undefined>;
    protected editorConfirmText(context: RowContext): string | undefined;
    protected editorConfirmPosition(context: RowContext): PopconfirmPlacement;
    protected editorEnterText(context: RowContext): string | undefined;
    protected editorCancelText(context: RowContext): string | undefined;
    editorValidateConfirm(context: RowContext): Promise<boolean>;
    private tableExpandTreeFieldColumn;
    protected get treeNode(): boolean | undefined;
    renderDefaultSlot?(context: RowContext): VNode[] | string;
    renderEditSlot?(context: RowContext): VNode[] | string;
    renderContentSlot?(context: RowContext): VNode[] | string;
    renderHeaderSlot?(context: RowContext): VNode[] | string;
}
