import { ActionDslDefinition } from '@oinone/kunlun-dsl';
import { ActiveRecord, ActiveRecords, Pagination, QueryContext, QueryVariables, RuntimeModelField, RuntimeRelationField } from '@oinone/kunlun-engine';
import { Entity } from '@oinone/kunlun-meta';
import { Condition } from '@oinone/kunlun-request';
import { ISort } from '@oinone/kunlun-service';
import { VxeTableDefines } from 'vxe-table';
import { BaseElementListViewWidgetProps, BaseTableColumnWidget, BaseTableWidget } from '../../basic';
import { TableRowClickMode } from './typing';
export interface TableWidgetProps extends BaseElementListViewWidgetProps {
    fixedHeight?: number | string | false;
}
export declare class TableWidget<Props extends TableWidgetProps = TableWidgetProps> extends BaseTableWidget<Props> {
    protected currentRow: ActiveRecord | undefined;
    initialize(props: Props): this;
    protected get cellWidth(): "auto" | undefined;
    protected get cellMinWidth(): string | undefined;
    protected get tableConfig(): Record<string, any>;
    protected get checkbox(): boolean;
    protected get lineHeight(): number | undefined;
    protected get minLineHeight(): number | undefined;
    protected get border(): any;
    protected get stripe(): any;
    protected get isCurrent(): any;
    protected get isHover(): any;
    /**
     * 表格行高是否自适应，默认开启
     */
    protected get autoLineHeight(): boolean;
    protected get enableSequence(): boolean;
    protected get defaultPageSize(): number;
    protected get activeCount(): number | undefined;
    /**
     * @deprecated 使用activeCount
     */
    protected get inlineActiveCount(): number | undefined;
    protected get allowChecked(): string | boolean | undefined;
    protected checkMethod({ row }: {
        row: ActiveRecord;
    }): string | boolean | undefined;
    protected get operatorColumnDirection(): any;
    protected get operatorColumnWidth(): any;
    protected get operatorColumnButtonType(): any;
    onPaginationChange(current: number, pageSize: number): void;
    onSortChange(sortList: ISort[]): void;
    protected resetExpandRowAttr(): void;
    protected get expandAccordion(): boolean;
    /**
     * 单元格合并
     *
     * {@link https://vxetable.cn/v4.6/#/table/api}
     */
    protected get mergeCells(): never[];
    /**
     * 虚拟滚动 横向滚动配置
     *
     * {@link https://vxetable.cn/v4.6/#/table/api}
     */
    protected get scrollX(): {
        gt: number;
    };
    /**
     * 虚拟滚动 纵向滚动配置
     *
     * {@link https://vxetable.cn/v4.6/#/table/api}
     */
    protected get scrollY(): {
        gt: number;
    };
    /**
     * 是否存在展开行
     */
    protected get existingExpandElement(): boolean;
    protected get expandAll(): boolean;
    protected get expandOperationField(): any;
    protected expandRowIndexes: number[];
    protected lazyExistExpandRow: boolean;
    protected get existExpandRow(): boolean;
    protected isResetExpandRowIndexes(): boolean;
    protected resetExpandRowIndexes(init?: boolean): void;
    protected get usingSimpleUserPrefer(): boolean | undefined;
    protected onToggleRowExpand({ expanded, rowIndex }: {
        expanded: any;
        rowIndex: any;
    }): void;
    /**
     * 当列宽拖动发生变化时, 需要将字段对应的宽度保存到用户偏号
     */
    protected onResizableChange({ column }: {
        column: any;
    }): Promise<void>;
    protected get showFooter(): boolean | undefined;
    protected footerMethod({ columns, data }: {
        columns: VxeTableDefines.ColumnInfo[];
        data: ActiveRecord[];
    }): string[] | string[][];
    protected get statisticsLabel(): string;
    protected get skipStatisticsText(): string;
    protected get emptyStatisticsText(): string;
    protected get statisticsFun(): string | undefined;
    protected get refreshRemoteStatistics(): boolean | undefined;
    protected statistics(statisticalValues: unknown[], statistics: string): string;
    protected generatorStatisticsRow(columns: VxeTableDefines.ColumnInfo[], data: ActiveRecord[]): string[];
    protected statisticsBySum(statisticalValues: unknown[]): string;
    protected remoteStatisticsRow: string[] | undefined;
    protected remoteStatistics(columns: VxeTableDefines.ColumnInfo[], fun: string): Promise<void>;
    protected fetchStatisticsResult(columns: VxeTableDefines.ColumnInfo[], fun: string, ...args: unknown[]): Promise<Record<string, unknown> | undefined>;
    protected generatorStatisticsRow0(columns: VxeTableDefines.ColumnInfo[], fn: (statisticsRow: string[], columnWidget: BaseTableColumnWidget, columnStatistics: string | undefined) => void): string[];
    protected get rowClickActionDslDefinition(): ActionDslDefinition | undefined;
    protected get rowDblClickActionDslDefinition(): ActionDslDefinition | undefined;
    protected get allowRowClick(): boolean;
    protected get rowClickMode(): TableRowClickMode[] | undefined;
    protected onCurrentChange(e: any): void;
    protected onRowClick({ column, row }: {
        column: any;
        row: any;
    }): Promise<void>;
    protected onRowDblClick({ column, row }: {
        column: any;
        row: any;
    }): Promise<void>;
    protected clickActionWidget(activeRecords: ActiveRecords, actionName: string): Promise<void>;
    protected internalEnabledTreeConfig: boolean | undefined;
    protected treeRelationField: RuntimeRelationField | undefined;
    protected expandTreeField: RuntimeModelField | undefined;
    protected get expandTreeFieldColumn(): string | undefined;
    protected getEnabledTreeConfig(): boolean | undefined;
    /**
     * 默认展开所有子孙树节点（只会在初始化时被触发一次）
     * @protected
     */
    protected getTreeExpandAll(): boolean;
    /**
     * 是否使用懒加载（启用后只有指定 hasChild 字段的节点才允许被点击）
     * @protected
     */
    protected getTreeLazy(): boolean;
    /**
     * 判断树的节点是否有子节点的字段配置
     * @protected
     */
    protected getTreeHasChildField(): string;
    protected getTreeRelationField(): RuntimeRelationField | undefined;
    protected getExpandTreeField(): RuntimeModelField | undefined;
    protected initTreeConfig(): void;
    protected get enabledTreeConfig(): boolean;
    protected get treeConfig(): {
        transform: boolean;
        rowField: string;
        parentField: string;
        hasChild: string;
        expandAll: boolean;
        lazy: boolean;
        loadMethod: ({ row }: {
            row: any;
        }) => Promise<ActiveRecord[]>;
    } | undefined;
    protected loadTreeNodes(condition?: Condition, currentRow?: ActiveRecord): Promise<ActiveRecord[]>;
    $$loadTreeNodes(condition?: Condition, currentRow?: ActiveRecord): Promise<Entity[]>;
    protected buildTreeTableDataSource(dataList: ActiveRecord[]): void;
    protected queryAllTreeNodeChildren(condition: Condition, pagination: Pagination, sort: ISort[], variables: QueryVariables, context: QueryContext): Promise<ActiveRecord[]>;
    fetchData(condition?: Condition): Promise<ActiveRecord[]>;
    protected mountedProcess(): Promise<void>;
    protected refreshProcess(condition?: Condition): Promise<void>;
    protected refreshTree(): void;
    protected refreshStatistics(): void;
    protected $$beforeCreated(): void;
}
