import { type GroupingField, SubmitValue } from '@oinone/kunlun-engine';
import { CallChaining } from '@oinone/kunlun-shared';
import { type ActiveEditorContext, type OioTableInstance, type RenderCellContext, type RowContext, type TableEditorCloseTrigger, type TableEditorMode, type TableEditorTrigger } from '@oinone/kunlun-vue-ui';
import { ConfirmType, PopconfirmPlacement } from '@oinone/kunlun-vue-ui-antd';
import { type ActiveRecordsWidgetProps } from '@oinone/kunlun-vue-widget';
import { type VNode } from 'vue';
import { BaseDataWidget } from '../common';
import type { 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 | undefined;
    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;
    /**
     * 当前视图使用分组结构展示
     * 启动了分组并且有分组字段
     *
     * @see {@link BaseElementListViewWidget}
     */
    protected enabledGroupView: boolean | undefined;
    /**
     * 表格配置 -> 启用分组
     * @see {@link BaseElementListViewWidget}
     */
    protected tableEnableGrouping: boolean;
    /**
     * 分组字段
     * @see {@link BaseElementListViewWidget}
     */
    protected groupList: GroupingField[] | undefined;
    /**
     * 当前字段是否启动的分组
     */
    get enableGrouping(): boolean;
    get invisible(): 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;
    get editorAutofocus(): NonNullable<boolean | undefined>;
    protected get editRender(): Record<string, unknown> | undefined;
    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>;
    onAutofocus(params: {
        cell: HTMLElement;
    }): void;
    /**
     * 修改分组配置
     *  @see {@link BaseElementListViewWidget}
     */
    onGroupChange: (list: GroupingField[]) => void;
    protected tableExpandTreeFieldColumn: string | undefined;
    protected tableGroupTitleEmptyStyle: string | undefined;
    protected get treeNode(): boolean | undefined;
    protected getColumnWidgets(): BaseTableColumnWidget[];
    protected renderGroupTitleEmptyStyle(context: RowContext): VNode[] | string;
    protected dynamicRenderDefaultSlot(context: RowContext): ((context: RowContext) => VNode[] | string) | undefined;
    renderDefaultSlot?(context: RowContext): VNode[] | string;
    renderEditSlot?(context: RowContext): VNode[] | string;
    renderContentSlot?(context: RowContext): VNode[] | string;
    renderHeaderSlot?(context: RowContext): VNode[] | string;
    renderGroupTitleSlot?(context: RowContext): VNode[] | string;
    /**
     * @deprecated invalid prop in the table column
     */
    get readonly(): boolean;
}
