UNPKG

@vue-ui-kit/ant

Version:

Vue3 UI Kit based on Ant Design

4,094 lines 133 kB
import { AdjustOverflow } from 'ant-design-vue/es/tooltip';
import { AlignType } from 'ant-design-vue/es/vc-trigger/interface';
import { AllowedComponentProps } from 'vue';
import { App } from 'vue';
import { BuildInPlacements } from 'ant-design-vue/es/vc-trigger/interface';
import { ButtonProps } from 'ant-design-vue/lib/button';
import { ColProps } from 'ant-design-vue/lib/grid/Col';
import { ColumnsType } from 'ant-design-vue/es/table';
import { ColumnType } from 'ant-design-vue/es/vc-table/interface';
import { ColumnType as ColumnType_2 } from 'ant-design-vue/es/table';
import { ComponentCustomProps } from 'vue';
import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { ComputedRef } from 'vue';
import { CreateComponentPublicInstanceWithMixins } from 'vue';
import { CSSProperties } from 'vue';
import { CustomSlotsType } from 'ant-design-vue/es/_util/type';
import { ExpandedRowRender } from 'ant-design-vue/es/vc-table/interface';
import { ExtractPropTypes } from 'vue';
import { FilterValue } from 'ant-design-vue/es/table/interface';
import { FormProps } from 'ant-design-vue/lib/form/Form';
import { GetComponentProps } from 'ant-design-vue/es/vc-table/interface';
import { GetPopupContainer } from 'ant-design-vue/es/table/interface';
import { GetRowKey } from 'ant-design-vue/es/vc-table/interface';
import { GlobalComponents } from 'vue';
import { GlobalDirectives } from 'vue';
import { JSX } from 'vue/jsx-runtime';
import { Key } from 'ant-design-vue/es/vc-table/interface';
import { LiteralUnion } from 'ant-design-vue/es/_util/type';
import { PanelRender } from 'ant-design-vue/es/vc-table/interface';
import { PresetColorType } from 'ant-design-vue/es/_util/colors';
import { PropType } from 'vue';
import { PublicProps } from 'vue';
import { Ref } from 'vue';
import { RenderExpandIcon } from 'ant-design-vue/es/vc-table/interface';
import { RenderExpandIconProps } from 'ant-design-vue/es/vc-table/interface';
import { RowClassName } from 'ant-design-vue/es/vc-table/interface';
import { Rule as Rule_2 } from 'ant-design-vue/lib/form';
import { ShallowUnwrapRef } from 'vue';
import { SizeType } from 'ant-design-vue/es/button';
import { SorterResult } from 'ant-design-vue/es/table/interface';
import { SortOrder } from 'ant-design-vue/es/table/interface';
import { SpinSize } from 'ant-design-vue/es/spin/Spin';
import { TableColumnGroupType } from 'ant-design-vue';
import { TableColumnType } from 'ant-design-vue';
import { TableComponents } from 'ant-design-vue/es/vc-table/interface';
import { TableCurrentDataSource } from 'ant-design-vue/es/table/interface';
import { TableLayout } from 'ant-design-vue/es/vc-table/interface';
import { TableLocale } from 'ant-design-vue/es/table/interface';
import { TablePaginationConfig } from 'ant-design-vue';
import { TableProps } from 'ant-design-vue';
import { TableRowSelection } from 'ant-design-vue/es/table/interface';
import { TableSticky } from 'ant-design-vue/es/vc-table/interface';
import { TooltipPlacement } from 'ant-design-vue/es/tooltip';
import { TooltipProps } from 'ant-design-vue';
import { TransformCellText } from 'ant-design-vue/es/vc-table/interface';
import { TriggerType } from 'ant-design-vue/es/tooltip/abstractTooltipProps';
import { UnwrapRefSimple } from '@vue/reactivity';
import { VNode } from 'vue';
import { VNodeProps } from 'vue';
import { WatchHandle } from 'vue';
import { WatchOptions } from 'vue';
import { WatchSource } from 'vue';

declare type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_2<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_3<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_4<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_5<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_6<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_7<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_8<T> = {
    [K in keyof T]: T[K];
} & {};

declare type __VLS_PrettifyLocal_9<T> = {
    [K in keyof T]: T[K];
} & {};

export declare const addFormatter: (formatter: Record<string, (a: CellFuncArg, ...args: any[]) => any>) => void;

export declare const addRender: (name: string, { renderItemContent, renderDefault, renderReadonly, renderEdit }: RenderWorkshop) => void;

export declare interface AjaxConfig<F extends Recordable = Recordable> {
    query: (Q: {
        page?: IPage;
        form: Partial<F>;
    }) => Promise<Recordable>;
    multiDelete?: HandlerMultiDel;
}

declare type Align = 'left' | 'center' | 'right';

/**
 * 宽/高先按「视口内从元素左上角到右/下边缘」计算。
 *
 * 宽度会再与**直接父元素**布局框取较小值,避免嵌套在侧栏 + flex 列等窄容器里仍按整屏宽度赋值,
 * 从而撑出页面级横向滚动条。
 *
 * 高度不做 parent 截断:autoBoxSize 的语义就是「一直撑到视口底」。若对 parent 取 min,
 * 遇到「父容器没有明确高度、靠子元素内容撑开」的常见布局(外层未写死高度,p-grid 根节点
 * 自身决定可视高度),会形成循环依赖(子依赖父、父又靠子撑开),导致高度被截成极小值,
 * 反映到 PGrid 上就是表体下方出现大面积空白。
 */
export declare function applyViewportRestSize(el: HTMLElement, offset: AutoViewportBoxOffset): void;

declare type AutofillOptions = {
    enable: boolean;
    xArr: number[];
    yArr: number[];
};

export declare interface AutoViewportBoxController {
    attach: () => void;
    /** 暂停尺寸监听,保留当前写入的宽高,用于 keep-alive 停用场景 */
    detach: () => void;
    update: () => void;
    destroy: () => void;
}

export declare interface AutoViewportBoxControllerOptions {
    /** 每次尺寸写回后回调(例如触发内部表格 resize) */
    onLayout?: () => void;
}

export declare interface AutoViewportBoxOffset {
    right: number;
    bottom: number;
}

/**
 * 按视口从元素左上角铺满宽高(与 storybook 中 v-rest / v-height / v-width 同源思路),
 * 用于外层未声明高度、需由根节点自行占满可视区域的场景。
 */
export declare type AutoViewportBoxOffsetInput = number | string | {
    right?: number;
    bottom?: number;
} | undefined;

declare class BaseCell {
    ctx: Context;
    x: number;
    y: number;
    width: number;
    height: number;
    visibleWidth: number;
    visibleHeight: number;
    fixed?: Fixed;
    cellType: CellType;
    drawX: number;
    drawY: number;
    cellImages: Map<string, CellImage>;
    constructor(ctx: Context, x: number, y: number, width: number, height: number, cellType: CellType, fixed?: Fixed);
    isHorizontalVisible(): boolean;
    isVerticalVisible(): boolean;
    getDrawX(): number;
    getDrawY(): number;
    getLeftFixedX(): number;
    isInside(x: number, y: number): boolean;
    /**
     * 判断是否在可见区域,合并单元格用
     * @param x
     * @param y
     * @returns
     */
    isInsideVisible(x: number, y: number): boolean;
    setImage(key: string, image: CellImage): void;
    getImages(): Map<string, CellImage>;
    getImage(key: string): CellImage | undefined;
    isImageInside(key: string, e: MouseEvent): boolean;
    getImageClickDirection(key: string, e: MouseEvent): "up-left" | "up-right" | "down-left" | "down-right" | null;
}

declare type BeforeAutofillDataMethod = (changeList: BeforeChangeItem[], xArr: number[], yArr: number[]) => BeforeChangeItem[] | Promise<BeforeChangeItem[]>;

declare type BeforeBodyContextMenuMethod = (params: ContextMenuItemParams) => MenuItem[] | Promise<MenuItem[]>;

declare type BeforeCellValueChangeMethod = (changeList: BeforeValueChangeItem[]) => BeforeValueChangeItem[] | Promise<BeforeValueChangeItem[]>;

declare type BeforeChangeItem = {
    rowKey: string;
    key: string;
    value: any;
    oldValue: any;
    row: any;
};

declare type BeforeCopyMethod = (params: BeforeCopyParams) => BeforeCopyParams | undefined;

declare type BeforeCopyParams = {
    focusCell?: Cell;
    data: any;
    xArr: number[];
    yArr: number[];
};

declare type BeforeDragRowMethod = (params: BeforeDragRowParams) => boolean | Promise<boolean>;

declare type BeforeDragRowParams = {
    source: Cell;
    target: Cell;
    position: TreeUtilPosition;
};

declare type BeforeHeaderContextMenuMethod = (params: ContextMenuItemParams) => MenuItem[] | Promise<MenuItem[]>;

declare type BeforePasteDataMethod = (changeList: BeforeChangeItem[], xArr: number[], yArr: number[], textArr: string[][]) => BeforeChangeItem[] | Promise<BeforeChangeItem[]>;

declare type BeforeSetAutofillMethod = (params: BeforeSetAutofillParams) => BeforeSetAutofillParams | undefined;

declare type BeforeSetAutofillParams = {
    focusCell?: Cell;
    xArr: number[];
    yArr: number[];
};

declare type BeforeSetSelectorMethod = (params: BeforeSetSelectorParams) => BeforeSetSelectorParams | undefined;

declare type BeforeSetSelectorParams = {
    focusCell?: Cell;
    xArr: number[];
    yArr: number[];
};

declare type BeforeValueChangeItem = {
    rowKey: string;
    key: string;
    value: any;
    oldValue?: any;
    row?: any;
    errorTip?: boolean;
};

declare type BodyOptions = {
    x: number;
    y: number;
    width: number;
    height: number;
    visibleHeight: number;
    visibleWidth: number;
    headIndex: number;
    tailIndex: number;
    visibleRows: any[];
    renderRows: Row[];
    data: any[];
};

export declare type BorderConfigValue = boolean | BorderStyle;

export declare type BorderStyle = 'default' | 'outer' | 'inner' | 'none';

export declare interface CanvasColumnProps<T extends Recordable = Recordable> extends Omit<Column, 'children' | 'formatter' | 'key'> {
    key?: string;
    field?: string;
    children?: CanvasColumnProps<T>[];
    formatter?: string | [string, ...Array<any>] | ((arg: PartialByKeys<CellFuncArg<T>, 'cellValue'>) => any);
    slots?: {
        default?: ({ row, column, rowIndex, }: {
            row: T;
            column: CanvasColumnProps<T>;
            rowIndex: number;
        }) => any;
        edit?: ({ row, column, rowIndex, }: {
            row: T;
            column: CanvasColumnProps<T>;
            rowIndex: number;
        }) => any;
        title?: ({ column }: {
            column: CanvasColumnProps<T>;
        }) => any;
    };
    cellRender?: CellRender;
    editRender?: CellRender;
}

export declare interface CanvasTableProps<T extends Recordable = Recordable, B extends Recordable = Recordable> {
    columns: CanvasColumnProps<T>[];
    data: T[];
    config?: ConfigType;
    footerData?: B[];
    loading?: boolean;
}

declare class Cell extends BaseCell {
    parentRowKey: string;
    parentRowKeys: string[];
    formatter?: FormatterMethod;
    formatterFinderValue?: FinderFormatterMethod;
    formatterFinderFooterValue?: FinderFormatterMethod;
    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;
    autoRowHeight: boolean;
    calculatedHeight: number;
    ellipsis: boolean;
    rowExpand: boolean;
    rowHasChildren: boolean;
    overflowTooltipShow: boolean;
    selectorCellValueType: SelectorCellValueType;
    overflowTooltipMaxWidth: number;
    overflowTooltipPlacement: OverflowTooltipPlacement;
    maxLineClamp: LineClampType;
    precision?: number;
    min?: number;
    max?: number;
    maxlength?: number;
    mixedRender?: boolean;
    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;
    isInsideVisible(x: number, y: number): boolean;
    private updateTree;
    private updateDragImage;
    private drawTreeLine;
    private updateContainer;
    private updateSelection;
    private updateHoverIcon;
    /**
     * 获取自动高度
     * @returns
     */
    getAutoHeight(): number;
    getSpanInfo(): SpanInfo;
    /**
     * 获取显示文本
     * @returns
     */
    getDisplayText(text?: string): string;
    /**
     * 获取文本
     * @returns
     */
    getText(): any;
    getFinderText(): string;
    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;
    drawHorizontalBorder(): void;
    private drawAutofillPiont;
    draw(): void;
    /**
     * 根据列的索引获取列的宽度
     * @param {Number} colIndex
     */
    private getWidthByColIndexColSpan;
    private drawText;
    private drawImage;
    private drawSelector;
    private drawErrorTip;
    private drawBorder;
}

declare type CellEditorMethod = (params: CellParams) => EditorOptions | void;

export declare interface CellFuncArg<D extends Recordable = Recordable> {
    row: D;
    column?: ColumnProps<D>;
    rowIndex: number;
    cellValue: any;
}

declare class CellHeader extends BaseCell {
    align: Align;
    hideHeaderSelection: boolean;
    verticalAlign: VerticalAlign;
    fixed?: Fixed;
    minWidth?: number;
    maxWidth?: number;
    formatterFinderHeaderValue?: FinderHeaderFormatterMethod;
    widthFillDisable: boolean;
    type: Type | '';
    operation: boolean;
    editorType: string;
    level: number;
    text: string;
    hide: boolean;
    displayText: string;
    colspan: number;
    rowspan: number;
    row: any;
    key: string;
    required: boolean;
    readonly: boolean;
    ellipsis: boolean;
    overflowTooltipShow: boolean;
    children: Column[];
    column: Column;
    colIndex: number;
    rowKey: string;
    rules?: Rules | Rule;
    hasChildren: boolean;
    render: Render;
    style: Partial<CSSStyleDeclaration>;
    drawX: number;
    drawY: number;
    sortIconName: string;
    sortAscIconName: string;
    sortDescIconName: string;
    visibleWidth: number;
    visibleHeight: number;
    maxLineClampHeader: LineClampType;
    domDataset: any;
    textOffsetRight: number;
    textOffsetLeft: number;
    textInfo: TextInfo | undefined;
    drawTextX: number;
    drawTextY: number;
    drawTextWidth: number;
    drawTextHeight: number;
    drawCellBgColor: string;
    drawTextColor: string;
    drawTextFont: string;
    drawSelectionImageX: number;
    drawSelectionImageY: number;
    drawSelectionImageWidth: number;
    drawSelectionImageHeight: number;
    drawSelectionImageName: string;
    drawSelectionImageSource?: HTMLImageElement;
    drawSortImageX: number;
    drawSortImageY: number;
    drawSortImageWidth: number;
    drawSortImageHeight: number;
    drawSortImageName: string;
    drawSortImageSource?: HTMLImageElement;
    renderHeaderType: RenderType;
    constructor(ctx: Context, colIndex: number, x: number, y: number, width: number, height: number, column: Column);
    /**
     * 是否可见,覆盖基类方法,表头是跟y滚动条没有关系的所以不需要加滚动参数
     * @returns
     */
    isVerticalVisible(): boolean;
    /**
     * 更新样式
     */
    updateStyle(): void;
    updateContainer(): void;
    private updateOffset;
    update(): void;
    draw(): void;
    drawImages(): void;
    getFinderText(): string;
    private drawEdge;
    private drawColumnDivider;
    private drawHorizontalDivider;
    private drawText;
    private drawRequired;
    private drawBg;
    private updateSelection;
    private updateSortIcon;
    getText(): string;
    /**
     * 获取样式
     */
    getOverlayerViewsStyle(): {
        position: string;
        overflow: string;
        left: string;
        top: string;
        width: string;
        height: string;
        pointerEvents: string;
        userSelect: string;
    };
}

declare type CellHeaderParams = {
    colIndex: number;
    column: Column;
};

declare type CellHeaderStyleMethod = (params: CellHeaderParams) => CellStyleOptions | void;

declare type CellHoverIconMethod = (params: CellParams) => string | void;

declare class CellImage {
    source?: HTMLImageElement;
    name: string;
    x: number;
    y: number;
    width: number;
    height: number;
    visible: boolean;
    constructor(name: string, x: number, y: number, width: number, height: number, source?: HTMLImageElement);
    drawWrapper(ctx: Context, options: RectOptions): void;
    setVisible(visible: boolean): void;
    isInside(mouseX: number, mouseY: number): boolean;
}

declare type CellParams = {
    row: any;
    rowIndex: number;
    colIndex: number;
    column: Column;
    value: any;
};

declare type CellReadonlyMethod = (params: CellParams) => boolean | void;

export declare interface CellRender {
    name: string;
    props?: Recordable;
    attrs?: Recordable;
    children?: Recordable[];
}

declare type CellRenderMethod = (params: CellParams) => string | void;

declare type CellRulesMethod = (params: CellParams) => Rules | void;

declare type CellStyleMethod = (params: CellStyleParams) => CellStyleOptions | void;

declare type CellStyleOptions = {
    color?: string;
    backgroundColor?: string;
    font?: string;
};

declare type CellStyleParams = CellParams & {
    isHasChanged?: boolean;
};

declare type CellType = 'header' | 'body' | 'footer';

declare type CellTypeMethod = (params: CellParams) => Type | void;

declare type ChangeItem = {
    value: any;
    key: string;
    rowKey: string;
    row: any;
    oldValue?: any;
};

export declare const cleanCol: (col: ColumnProps) => TableColumnType | TableColumnGroupType<Recordable>;

declare interface Column {
    key: string;
    title: string;
    type?: Type;
    operation?: boolean;
    editorType?: string;
    editorProps?: any;
    hoverIconName?: string;
    placeholder?: string;
    width?: number;
    minWidth?: number;
    maxWidth?: number;
    widthFillDisable?: boolean;
    headerAlign?: Align;
    headerVerticalAlign?: VerticalAlign;
    hideHeaderSelection?: boolean;
    align?: Align;
    verticalAlign?: VerticalAlign;
    fixed?: Fixed;
    level?: number;
    text?: string;
    colspan?: number;
    rowspan?: number;
    sort?: number;
    sortBy?: SortByType;
    sortIconType?: 'up-down' | 'left-right' | 'loop';
    sortIconName?: string;
    sortAscIconName?: string;
    sortDescIconName?: string;
    parentKey?: string;
    hide?: boolean | Function;
    render?: Function | string;
    renderFooter?: Function | string;
    renderHeader?: Function | string;
    renderType?: RenderType;
    renderHeaderType?: RenderType;
    renderFooterType?: RenderType;
    formatter?: FormatterMethod;
    formatterFinderValue?: FinderFormatterMethod;
    formatterFinderHeaderValue?: FinderHeaderFormatterMethod;
    formatterFinderFooterValue?: FinderFormatterMethod;
    formatterFooter?: FormatterMethod;
    autoRowHeight?: boolean;
    overflowTooltipShow?: boolean;
    overflowTooltipHeaderShow?: boolean;
    overflowTooltipMaxWidth?: number;
    overflowTooltipPlacement?: OverflowTooltipPlacement;
    required?: boolean;
    readonly?: boolean | CellReadonlyMethod;
    children?: Column[];
    column?: Column;
    rules?: Rules | Rule;
    options?: any;
    dragRow?: boolean;
    dragDisabled?: boolean;
    hideDisabled?: boolean;
    fixedDisabled?: boolean;
    selectorCellValueType?: SelectorCellValueType;
    formatterSelectorValue?: FormatterMethod;
    maxLineClamp?: LineClampType;
    maxLineClampHeader?: LineClampType;
    precision?: number;
    min?: number;
    max?: number;
    maxlength?: number;
    mixedRender?: boolean;
    canValueChange?: (changeItem: BeforeValueChangeItem) => Promise<boolean> | boolean;
    valueChange?: (changeItem: BeforeValueChangeItem) => void;
}

export declare interface ColumnProps<D extends Recordable = Recordable> extends Omit<TableColumnType, 'slots'> {
    field?: string;
    children?: ColumnProps<D>[];
    formatter?: string | [string, ...Array<any>] | ((arg: PartialByKeys<CellFuncArg<D>, 'cellValue'>) => any);
    slots?: {
        default?: ({ row, column, rowIndex }: PartialByKeys<CellFuncArg<D>, 'cellValue'>) => any;
        title?: ({ column }: {
            column: ColumnProps<D>;
        }) => any;
    };
    cellRender?: CellRender;
}

declare class Config {
    private _config;
    /** CSS 类名前缀 */
    CSS_PREFIX: string;
    /** 图标集合 */
    ICONS: IconType[];
    /** 行的唯一标识:字段名,或返回唯一标识的方法 */
    ROW_KEY: string | RowKeyMethod;
    /** 禁用编辑,优先等级最高 */
    DISABLED: boolean;
    /** 表头字体 */
    HEADER_FONT: string;
    /** 单元格字体 */
    BODY_FONT: string;
    /** 边框 */
    BORDER: BorderConfigValue;
    /** 斑马纹 */
    STRIPE: boolean;
    /** 斑马纹颜色 */
    STRIPE_COLOR: string;
    /** 区域边框颜色 */
    BORDER_COLOR: string;
    /** 固定列阴影靠近边界的颜色 */
    FIXED_COLUMN_SHADOW_COLOR: string;
    /** 固定列阴影渐隐末端的颜色 */
    FIXED_COLUMN_SHADOW_FADE_COLOR: string;
    /** 固定列阴影宽度 */
    FIXED_COLUMN_SHADOW_WIDTH: number;
    /** 高度,为 0 表示自适应 */
    HEIGHT: number;
    /** 占位文本颜色 */
    PLACEHOLDER_COLOR: string;
    /** 空数据 body 高度 */
    EMPTY_BODY_HEIGHT: number;
    /** 自定义空样式 */
    EMPTY_CUSTOM_STYLE: Partial<CSSStyleDeclaration>;
    /** 空数据文本 */
    EMPTY_TEXT: string;
    /** 加载文本 */
    LOADING_TEXT: string;
    /** 最大高度,为 0 表示自适应高度根据 HEIGHT	 */
    MAX_HEIGHT: number;
    /** 区域边框圆角 */
    BORDER_RADIUS: number;
    /** 启用偏移高度内部计算表格高度 */
    ENABLE_OFFSET_HEIGHT: boolean;
    /** 偏移高度 */
    OFFSET_HEIGHT: number;
    /** 表头高度 */
    HEADER_HEIGHT: number;
    /** 启用头部固定,需要外面实现覆盖层,或者所有表头都要是元素 */
    ENABLE_HEADER_STICKY: boolean;
    /** 表头背景色 */
    HEADER_BG_COLOR: string;
    /** body 背景色 */
    BODY_BG_COLOR: string;
    /** 表头文本颜色 */
    HEADER_TEXT_COLOR: string;
    /** 必填*颜色 */
    REQUIRED_COLOR: string;
    /** body文本颜色 */
    BODY_TEXT_COLOR: string;
    /** footer文本颜色 */
    FOOTER_TEXT_COLOR: string;
    /** 加载 svg 图标 */
    LOADING_ICON_SVG: string;
    /** 加载 svg 图标颜色 */
    LOADING_ICON_COLOR: string;
    /** 树形展开svg 图标 */
    EXPAND_ICON_SVG: string;
    /** 树形收缩svg 图标 */
    SHRINK_ICON_SVG: string;
    /** 展开图标颜色 */
    EXPAND_ICON_COLOR: string;
    /** 收缩图标颜色 */
    SHRINK_ICON_COLOR: string;
    /** 错误提示颜色 */
    ERROR_TIP_ICON_COLOR: string;
    /** 错误提示图标大小 */
    ERROR_TIP_ICON_SIZE: number;
    /** 所有列对齐方式 */
    COLUMNS_ALIGN: Align;
    /** 所有列垂直对齐方式 */
    COLUMNS_VERTICAL_ALIGN: VerticalAlign;
    /** 是否开启懒加载	 */
    EXPAND_LAZY: boolean;
    /** 默认展开全部	 */
    DEFAULT_EXPAND_ALL: boolean;
    /** 表格 body 部分的宽度 */
    CELL_WIDTH: number;
    /** body 单元格默认行高 */
    CELL_HEIGHT: number;
    /** 表格 body 部分的 padding */
    CELL_PADDING: number;
    /** hover编辑图标大小 */
    CELL_HOVER_ICON_SIZE: number;
    /** hover编辑图标背景色 */
    CELL_HOVER_ICON_BG_COLOR: string;
    /** hover编辑图标边框颜色 */
    CELL_HOVER_ICON_BORDER_COLOR: string;
    /** 滚动条轨道尺寸 */
    SCROLLER_TRACK_SIZE: number;
    /** 滚动条模式,outer 为外部预留区域,inner 为覆盖在内容上 */
    scrollbarMode: ScrollbarMode_2;
    /** 内部滚动条悬停后显示延迟 */
    SCROLLBAR_SHOW_DELAY: number;
    /** 滚动条滑块尺寸 */
    SCROLLER_SIZE: number;
    /** 滚动条滑块颜色 */
    SCROLLER_COLOR: string;
    /** 轨道颜色 */
    SCROLLER_TRACK_COLOR: string;
    /** 滚动条滑块聚焦时的颜色 */
    SCROLLER_FOCUS_COLOR: string;
    /** 选中区域边框颜色 */
    SELECT_BORDER_COLOR: string;
    /** 选中区域背景颜色 */
    SELECT_AREA_COLOR: string;
    /** 当前焦点单元格所在行、列的背景色 */
    SELECT_ROW_COL_BG_COLOR: string;
    /** 填充点的边框颜色 */
    AUTOFILL_POINT_BORDER_COLOR: string;
    /** 可编辑背景色 */
    EDIT_BG_COLOR: string;
    /** 选择 key,合并时用 */
    CHECKBOX_KEY: string;
    /** 选择框颜色 */
    CHECKBOX_COLOR: string;
    /** 查找结果当前行颜色 */
    FINDER_CELL_BG_COLOR: string;
    /** 启用查找 */
    ENABLE_FINDER: boolean;
    /** 选择框大小 */
    CHECKBOX_SIZE: number;
    /** 选择框禁用图标 */
    CHECKBOX_DISABLED_SVG: string;
    /** 选择框禁用图标颜色 */
    CHECKBOX_DISABLED_COLOR: string;
    /** 选择框选中图标 */
    CHECKBOX_CHECK_SVG: string;
    /** 选择框未中图标 */
    CHECKBOX_UNCHECK_SVG: string;
    /** 选择框未中图标颜色 */
    CHECKBOX_UNCHECK_COLOR: string;
    /** 选择框半选中图标 */
    CHECKBOX_INDETERMINATE_SVG: string;
    /** 选择框选中禁用图标 */
    CHECKBOX_CHECK_DISABLED_SVG: string;
    /** 选择框选中禁用图标颜色 */
    CHECKBOX_CHECK_DISABLED_COLOR: string;
    /** 编辑图标 */
    ICON_EDIT_SVG: string;
    /** 编辑图标颜色 */
    ICON_EDIT_COLOR: string;
    /** 选择图标 */
    ICON_SELECT_SVG: string;
    /** 选择图标颜色 */
    ICON_SELECT_COLOR: string;
    /** 启用严格排序,即不支持多列排序 */
    SORT_STRICTLY: boolean;
    /** 排序升序图标 */
    SORT_ASC_ICON_SVG: string;
    /** 排序降序图标 */
    SORT_DESC_ICON_SVG: string;
    /** 排序默认图标 */
    SORTABLE_ICON_SVG: string;
    /** 排序图标颜色 */
    SORT_ICON_COLOR: string;
    /** 单元格只读背景色 */
    READONLY_COLOR: string;
    /** 单元格只读文本颜色 */
    READONLY_TEXT_COLOR: string;
    /**启用单元格只读触发校验 */
    ENABLE_READONLY_VALIDATE: boolean;
    /** 单元格错误提示文本颜色 */
    ERROR_TIP_COLOR: string;
    /** 合计底部背景色 */
    FOOTER_BG_COLOR: string;
    /** 合计底部固定 */
    FOOTER_FIXED: boolean;
    /** 合计底部位置 */
    FOOTER_POSITION: FooterPosition;
    /** 单元格底部高度 */
    CELL_FOOTER_HEIGHT: number;
    /** 启用选择器 */
    ENABLE_SELECTOR: boolean;
    /** 树形选择模式 */
    TREE_SELECT_MODE: TreeSelectMode;
    /** 树形子项key名称 */
    TREE_CHILDREN_KEY: string;
    /** 树形缩进宽度 */
    TREE_INDENT: number;
    /** 树形图标大小 */
    TREE_ICON_SIZE: number;
    /**树形划线 */
    TREE_LINE: boolean;
    /** 树形划线颜色 */
    TREE_LINE_COLOR: string;
    /** 启用单点击立马编辑 */
    ENABLE_EDIT_SINGLE_CLICK: boolean;
    /** 启用点击选择器编辑 */
    ENABLE_EDIT_CLICK_SELECTOR: boolean;
    /** 选择器X最小范围 */
    SELECTOR_AREA_MIN_X: number;
    /** 选择器X最大范围colMax - offset */
    SELECTOR_AREA_MAX_X_OFFSET: number;
    /** 选择器X最大范围,0默认最大colMax */
    SELECTOR_AREA_MAX_X: number;
    /** 选择器Y最小范围 */
    SELECTOR_AREA_MIN_Y: number;
    /** 选择器Y最大范围,0默认rowMax */
    SELECTOR_AREA_MAX_Y: number;
    /** 选择器Y最大范围,0默认rowMax */
    SELECTOR_AREA_MAX_Y_OFFSET: number;
    /** 选择器值类型,value,displayText,区别displayText受format影响 */
    SELECTOR_CELL_VALUE_TYPE: SelectorCellValueType;
    /** 启用自动主题 */
    ENABLE_AUTO_THEME: boolean;
    /** 启用选择器-选择器单选 */
    ENABLE_SELECTOR_SINGLE: boolean;
    /** 启用选择器-批量跨列选择 */
    ENABLE_SELECTOR_SPAN_COL: boolean;
    /** 启用选择器-批量跨行选择 */
    ENABLE_SELECTOR_SPAN_ROW: boolean;
    /** 启用选择器-批量选中列 */
    ENABLE_SELECTOR_ALL_ROWS: boolean;
    /** 启用选择器-批量选中行 */
    ENABLE_SELECTOR_ALL_COLS: boolean;
    /** 启用合并格子数据关联 */
    ENABLE_MERGE_CELL_LINK: boolean;
    /** 启用填充器 */
    ENABLE_AUTOFILL: boolean;
    /** 启用选择器-批量跨列选择 */
    ENABLE_AUTOFILL_SPAN_COL: boolean;
    /** 启用选择器-批量跨行选择 */
    ENABLE_AUTOFILL_SPAN_ROW: boolean;
    /** 启用body右键菜单 */
    ENABLE_CONTEXT_MENU: boolean;
    /** 启用表头右键菜单 */
    ENABLE_HEADER_CONTEXT_MENU: boolean;
    /** 启用文字选中复制 */
    ENABLE_TEXT_SELECTION: boolean;
    /** 启用复制 */
    ENABLE_COPY: boolean;
    /** 启用粘贴 */
    ENABLE_PASTER: boolean;
    /** 启用调整行高 */
    ENABLE_RESIZE_ROW: boolean;
    /** 启用列宽可调整 */
    ENABLE_RESIZE_COLUMN: boolean;
    /** 可调整列宽时的表头静态列分割线颜色 */
    RESIZE_COLUMN_DIVIDER_COLOR: string | undefined;
    /** 行调整线颜色 */
    RESIZE_ROW_LINE_COLOR: string;
    /** 列调整线颜色 */
    RESIZE_COLUMN_LINE_COLOR: string;
    /** 启用列调整文本 */
    ENABLE_RESIZE_COLUMN_TEXT: boolean;
    /** 列调整线颜色 */
    RESIZE_COLUMN_TEXT_COLOR: string;
    /** 列调整线文本背景色 */
    RESIZE_COLUMN_TEXT_BG_COLOR: string;
    /** 最小调整行高 */
    RESIZE_ROW_MIN_HEIGHT: number;
    /** 列宽最小值 */
    RESIZE_COLUMN_MIN_WIDTH: number;
    /** 拖拽提示背景色 */
    DRAG_TIP_BG_COLOR: string;
    /** 拖拽提示线颜色 */
    DRAG_TIP_LINE_COLOR: string;
    /** 拖拽提示文本颜色 */
    /** 启用键盘 */
    ENABLE_KEYBOARD: boolean;
    /** 启用历史 */
    ENABLE_HISTORY: boolean;
    ENABLE_VALIDATOR_IMMEDIATE: boolean;
    /** 历史栈数量 */
    HISTORY_NUM: number;
    /** 启用悬浮高亮 */
    HIGHLIGHT_HOVER_ROW: boolean;
    /** 悬浮颜色 */
    HIGHLIGHT_HOVER_ROW_COLOR: string;
    /** 高亮选中当前行 */
    HIGHLIGHT_SELECTED_ROW: boolean;
    /** 高亮当前行颜色 */
    HIGHLIGHT_SELECTED_ROW_COLOR: string;
    /** 提示背景颜色 */
    TOOLTIP_BG_COLOR: string;
    /** 提示文本颜色 */
    TOOLTIP_TEXT_COLOR: string;
    /** 提示层级 */
    TOOLTIP_ZINDEX: number;
    /** 自定义提示样式 */
    TOOLTIP_CUSTOM_STYLE: Partial<CSSStyleDeclaration>;
    /** 自定义右键菜单 */
    CONTEXT_MENU: MenuItem[];
    CUSTOM_BODY_CONTEXT_MENU: MenuItem[];
    HEADER_CONTEXT_MENU: MenuItem[];
    CUSTOM_HEADER_CONTEXT_MENU: MenuItem[];
    /** 格子多行文本行高,isAutoRowHeight才会生效 */
    CELL_LINE_HEIGHT: number;
    /** 全局自动行高 */
    AUTO_ROW_HEIGHT: boolean;
    /** 启用拖拽表头 */
    ENABLE_DRAG_COLUMN: boolean;
    /** 启用拖拽行 */
    ENABLE_DRAG_ROW: boolean;
    /** 启用拖拽行跨级,针对tree数据结构 */
    ENABLE_DRAG_ROW_CROSS_LEVEL: boolean;
    /** 启用拖拽行自定义 */
    ENABLE_DRAG_ROW_CUSTOM: boolean;
    /** 拖拽提示线颜色 */
    DRAG_ROW_TIP_LINE_COLOR: string;
    /** 拖拽行图标 */
    DRAG_ROW_ICON_SVG: string;
    /** 拖拽行图标大小 */
    DRAG_ROW_ICON_SIZE: number;
    /** 拖拽行图标颜色 */
    DRAG_ROW_ICON_COLOR: string;
    /** header 格子样式 */
    HEADER_CELL_STYLE_METHOD?: CellHeaderStyleMethod;
    /** body 格子样式 */
    BODY_CELL_STYLE_METHOD?: CellStyleMethod;
    /** footer 格子样式 */
    FOOTER_CELL_STYLE_METHOD?: CellStyleMethod;
    /** 自定义只读 */
    BODY_CELL_READONLY_METHOD?: CellReadonlyMethod;
    /** 格式化方法更改(formatter优先等级比较高) */
    BODY_CELL_FORMATTER_METHOD?: FormatterMethod;
    /** 自定义校验规则 */
    BODY_CELL_RULES_METHOD?: CellRulesMethod;
    /** 自定义只读 */
    BODY_CELL_TYPE_METHOD?: CellTypeMethod;
    /** 自定义编辑器类型 */
    BODY_CELL_EDITOR_METHOD?: CellEditorMethod;
    /** 自定义只读 */
    BODY_CELL_RENDER_METHOD?: CellRenderMethod;
    /** 自定义只读 */
    BODY_CELL_HOVER_ICON_METHOD?: CellHoverIconMethod;
    /** 自定义跨列/行渲染 */
    SPAN_METHOD?: SpanMethod;
    /** 自定义选择禁用 */
    SELECTABLE_METHOD?: SelectableMethod;
    /** 自定义选择禁用 */
    EXPAND_LAZY_METHOD?: ExpandLazyMethod;
    /** 数值改变前回调 */
    BEFORE_VALUE_CHANGE_METHOD?: BeforeCellValueChangeMethod;
    /** 粘贴前回调 */
    BEFORE_PASTE_DATA_METHOD?: BeforePasteDataMethod;
    /** 数值填充前回调 */
    BEFORE_AUTOFILL_DATA_METHOD?: BeforeAutofillDataMethod;
    /** 设置选择器前回调 */
    BEFORE_SET_SELECTOR_METHOD?: BeforeSetSelectorMethod;
    /** 设置填充器前回调 */
    BEFORE_SET_AUTOFILL_METHOD?: BeforeSetAutofillMethod;
    /** 自定义表头右键菜单 */
    BEFORE_HEADER_CONTEXT_MENU_METHOD?: BeforeHeaderContextMenuMethod;
    /** 自定义BODY右键菜单 */
    BEFORE_BODY_CONTEXT_MENU_METHOD?: BeforeBodyContextMenuMethod;
    /** 数据复制前回调 */
    BEFORE_COPY_METHOD?: BeforeCopyMethod;
    BEFORE_DRAG_ROW_METHOD?: BeforeDragRowMethod;
    constructor(config: Partial<Config>);
    /** 初始化 */
    init(config: ConfigType): void;
    /** 同步css 样式变量 */
    updateCssVar(): void;
}

declare type ConfigColorNameType = 'LOADING_ICON_COLOR' | 'EXPAND_ICON_COLOR' | 'SHRINK_ICON_COLOR' | 'CHECKBOX_COLOR' | 'SORT_ICON_COLOR' | 'ICON_EDIT_COLOR' | 'ICON_SELECT_COLOR' | 'CHECKBOX_DISABLED_COLOR' | 'CHECKBOX_UNCHECK_COLOR';

declare type ConfigType = Partial<Config>;

declare type ConfigTypeName = 'LOADING_ICON_SVG' | 'EXPAND_ICON_SVG' | 'SHRINK_ICON_SVG' | 'CHECKBOX_UNCHECK_SVG' | 'CHECKBOX_CHECK_SVG' | 'CHECKBOX_DISABLED_SVG' | 'ICON_EDIT_SVG' | 'ICON_SELECT_SVG' | 'CHECKBOX_CHECK_DISABLED_SVG' | 'CHECKBOX_INDETERMINATE_SVG' | 'SORT_ASC_ICON_SVG' | 'SORT_DESC_ICON_SVG' | 'SORTABLE_ICON_SVG' | 'DRAG_ROW_ICON_SVG';

declare type containerElementOptions = {
    containerElement: HTMLDivElement;
    stageElement: HTMLDivElement;
    canvasElement: HTMLCanvasElement;
    overlayerElement: HTMLDivElement;
    editorElement: HTMLDivElement;
    emptyElement?: HTMLDivElement;
    contextMenuElement?: HTMLDivElement;
    loadingElement?: HTMLDivElement;
};

declare class Context {
    private eventBus;
    private eventBrowser;
    private eventTable;
    locale: Locale;
    containerElement: HTMLDivElement;
    stageElement: HTMLDivElement;
    canvasElement: HTMLCanvasElement;
    overlayerElement: HTMLDivElement;
    editorElement: HTMLDivElement;
    emptyElement?: HTMLDivElement;
    contextMenuElement?: HTMLDivElement;
    loadingElement?: HTMLDivElement;
    stageWidth: number;
    stageHeight: number;
    paint: Paint;
    icons: Icons;
    domSelectionStr: string;
    textSelectionStr: string;
    textSelecting: boolean;
    isMouseoverTargetContainer: boolean;
    mousedown: boolean;
    isEmpty: boolean;
    rowResizing: boolean;
    columnResizing: boolean;
    scrollerMove: boolean;
    scrollerFocus: boolean;
    autofillMove: boolean;
    selectorMove: boolean;
    disableHoverIconClick: boolean;
    selectColsIng: boolean;
    selectRowsIng: boolean;
    dragHeaderIng: boolean;
    dragRowIng: boolean;
    finding: boolean;
    contextMenuIng: boolean;
    editing: boolean;
    loading: boolean;
    onlyMergeCell: boolean;
    selectOnlyOne: boolean;
    hasSelection: boolean;
    hasTree: boolean;
    scrollY: number;
    scrollX: number;
    fixedLeftWidth: number;
    fixedRightWidth: number;
    lastCenterColIndex: number;
    maxColIndex: number;
    maxRowIndex: number;
    hoverRow?: Row;
    clickCell?: Cell;
    focusCell?: Cell;
    currentCell?: Cell;
    hoverCell?: Cell;
    clickCellHeader?: CellHeader;
    focusCellHeader?: CellHeader;
    hoverCellHeader?: CellHeader;
    mouseX: number;
    mouseY: number;
    body: BodyOptions;
    footer: FooterOptions;
    header: HeaderOptions;
    selector: SelectorOptions;
    autofill: AutofillOptions;
    finderBar: FinderResult;
    database: Database;
    history: History_2;
    config: Config;
    constructor(containerOptions: containerElementOptions, options: EVirtTableOptions);
    setConfig(config: Config): void;
    setItemValueByEditor(rowKey: string, key: string, value: any, history?: boolean, reDraw?: boolean, checkReadonly?: boolean): void;
    batchSetItemValueByEditor(_list: ChangeItem[], history?: boolean, checkReadonly?: boolean): void;
    setFocusCell(cell: Cell): void;
    clearSelector(): void;
    clearSelectorCopy(): void;
    clearAutofill(): void;
    /**
     * 获取选中的数据
     * @returns
     */
    getSelectedData(): {
        xArr: number[];
        yArr: number[];
        text: string;
        value: any[][];
    };
    setScroll(x: number, y: number): void;
    setScrollX(x: number): void;
    setScrollY(y: number): void;
    startAdjustPosition(e: MouseEvent): void;
    stopAdjustPosition(): void;
    isTarget(e: Event): boolean;
    getOffset(e: MouseEvent): {
        offsetX: number;
        offsetY: number;
    };
    hasEvent(event: string): boolean;
    on(event: string, callback: EventCallback): void;
    once(event: string, callback: EventCallback): void;
    off(event: string, callback: EventCallback): void;
    emit(event: string, ...args: any[]): void;
    destroy(): void;
}

declare type ContextMenuItemParams = {
    list: MenuItem[];
    cell: CellHeader | Cell;
    hide: () => void;
};

export declare function createAutoViewportBoxController(getEl: () => HTMLElement | null | undefined, getOffset: () => AutoViewportBoxOffset, options?: AutoViewportBoxControllerOptions): AutoViewportBoxController;

declare type CustomHeader = {
    fixedData?: Record<string, Fixed | ''>;
    sortData?: Record<string, number>;
    hideData?: Record<string, boolean>;
    resizableData?: Record<string, number>;
};

declare class Database {
    private ctx;
    private data;
    private columns;
    private footerData;
    private rowKeyMap;
    private colIndexKeyMap;
    private headerMap;
    private rowIndexRowKeyMap;
    private rowKeyRowIndexMap;
    private checkboxKeyMap;
    private selectionMap;
    private expandMap;
    private originalDataMap;
    private changedDataMap;
    private validationErrorMap;
    private itemRowKeyMap;
    private bufferData;
    private customHeader;
    overlayerAutoHeightMap: Map<string, number>;
    private maxRowHeightCellMap;
    private bufferCheckState;
    private sumHeight;
    private filterMethod;
    private positions;
    private sortState;
    constructor(ctx: Context, options: EVirtTableOptions);
    init(isClear?: boolean): void;
    /**
     * 清除缓存数据
     */
    clearBufferData(): void;
    /**
     * 解析行唯一标识,统一转为 string
     */
    private resolveRowKey;
    /**
     * 初始化数据
     * @param dataList
     * @param level
     */
    private initData;
    /**
     *
     * @param rowKey 设置Row高度
     * @param height
     */
    setRowHeight(rowIndex: number, height: number): void;
    setBatchRowHeight(rowIndexHeightList: {
        rowIndex: number;
        height: number;
    }[]): void;
    setBatchCalculatedRowHeight(rowIndexHeightList: {
        rowIndex: number;
        height: number;
    }[]): boolean;
    /**
     * 获取所有行数据(平铺)
     * @returns 获取转化平铺数据
     */
    getAllRowsData(): any[];
    private generateColumns;
    getColumns(): Column[];
    setColumns(columns: Column[]): void;
    setData(data: any[]): void;
    getOriginalData(): any[];
    /**
     * 统一转化数据,给画body使用,包括过滤树状等,统一入口
     * @returns
     */
    getData(): {
        data: any[];
        sumHeight: number;
        positions: Position[];
    };
    setFooterData(data: any[]): void;
    getFooterData(): any[];
    /**
     * 设置过滤方法
     */
    setFilterMethod(filterMethod: FilterMethod): void;
    /**
     * 清空过滤方法
     */
    clearFilterMethod(): void;
    /**
     * 获取排序状态
     */
    getSortState(key: string): SortStateMapItem;
    /**
     * 设置排序状态
     */
    setSortState(key: string, direction: 'asc' | 'desc' | 'none'): void;
    /**
     * 清除所有排序状态
     */
    clearSort(): void;
    /**
     * 递归排序方法,支持树形数据
     * @param data 要排序的数据
     * @param sortedEntries 排序条目,按时间戳排序
     * @returns 排序后的数据
     */
    private sortDataRecursive;
    /**
     * 对数组进行单列排序
     * @param data 要排序的数据
     * @param key 排序的列键
     * @param direction 排序方向
     * @param sortBy 排序类型
     * @returns 排序后的数据
     */
    private applySingleColumnSort;
    /**
     * 根据rowKey,控制指定展开行
     * @param rowKey
     * @param expand
     */
    expandItem(rowKey: string, expand?: boolean): void;
    setExpandRowKeys(rowKeys: any[], expand?: boolean): void;
    getExpandRowKeys(): string[];
    expandAll(expand: boolean): void;
    expandLoading(rowKey: string, loading?: boolean): void;
    setExpandChildren(rowKey: string, children: any[]): void;
    getIsExpandLoading(rowKey: string): any;
    getIsExpandLazy(rowKey: string): any;
    /**
     * 根据rowKey获取是否展开
     * @param rowKey
     * @returns
     */
    getIsExpand(rowKey: string): any;
    /**
     * 根据rowKey获取行数据
     * @param rowKey
     * @returns
     */
    getRowForRowKey(rowKey: string): any;
    getRowForRowIndex(rowIndex: number): any;
    /**
     * 根据rowIndex获取rowKey
     * @param rowKey
     * @returns
     */
    getRowKeyForRowIndex(rowIndex: number): string;
    getRowKeyByItem(item: any): any;
    getRowIndexForRowKey(rowKey: string): number | undefined;
    /**
     * 根据rowIndex和colIndex获取单元格数据
     * @param rowIndex
     * @param colIndex
     * @returns
     */
    getItemValueForRowIndexAndColIndex(rowIndex: number, colIndex: number): {
        rowKey: string;
        key: string;
        value: any;
    } | null;
    /**
     * 根据rowKey和key获取单元格数据
     * @param rowKey
     * @param key
     * @returns
     */
    getItemValue(rowKey: string, key: string): any;
    /**
     * 批量设置数据
     * @param list
     * @param history
     * @returns
     */
    batchSetItemValue(_list: ChangeItem[], history?: boolean, checkReadonly?: boolean, historyAcion?: HistoryAction): Promise<void>;
    /**
     *设置单一数据
     * @param rowKey
     * @param key
     * @param value
     * @param history 是否添加历史记录
     * @param reDraw 是否刷新重绘
     * @param isEditor 是否是编辑器
     * @param checkReadonly 是否检查只读
     * @returns
     */
    setItemValue(rowKey: string, key: string, _value: any, history?: boolean, reDraw?: boolean, isEditor?: boolean, checkReadonly?: boolean): Promise<{
        oldValue?: undefined;
        newValue?: undefined;
    } | {
        oldValue: any;
        newValue: any;
    }>;
    /**
     * 根据rowKey 获取行数据
     * @param rowKey
     * @returns
     */
    getRowDataItemForRowKey(rowKey: string): any;
    /**
     *
     * @param rowKey 设置选中状态ByCheckboxKey,用于合并Checkbox单元格时声明唯一key
     * @param check
     */
    private setRowSelectionByCheckboxKey;
    /**
     * 根据rowKey 取反选中
     * @param rowKey
     */
    toggleRowSelection(rowKey: string, cellType?: string): void;
    toggleTreeSelection(rowKey: string): void;
    private selectTreeSelectionRecursive;
    private clearTreeSelectionRecursive;
    private updateParentTreeSelection;
    /**
     * 根据rowKey 设置选中状态
     * @param rowKey
     */
    setRowSelection(rowKey: string, check: boolean, draw?: boolean): void;
    setRowSelectionByParent(rowKey: string, check: boolean): void;
    getSelectionRows(): any[];
    /**
     * 根据rowKey 获取选中状态
     * @param rowKey
     */
    getRowSelection(rowKey: string): boolean;
    getTreeSelectionState(rowKey: string): {
        checked: boolean;
        indeterminate: boolean;
    };
    getTreeChildren(rowKey: string): string[];
    getTreeParent(rowKey: string): string | null;
    /**
     * 根据rowKey 获取选中状态
     * @param rowKey
     */
    getRowSelectable(rowKey: string): any;
    /**
     * 全选
     * @param rowKey
     */
    toggleAllSelection(): void;
    /**
     * 清除选中
     * @param rowKey
     */
    clearSelection(ignoreReserve?: boolean): void;
    /**
     * 获取选中状态,表头用
     * @param rowKey
     */
    getCheckedState(): {
        check: boolean;
        indeterminate: boolean;
        selectable: boolean;
    };
    /**
     * 更新列索引
     * @param list 表头末级列表
     */
    updateColIndexKeyMap(list?: CellHeader[]): void;
    getColumnByColIndex(colIndex: number): Column | undefined;
    getColumnByKey(key: string): CellHeader | undefined;
    getColIndexForKey(key: string): number | undefined;
    getColHeaderByIndex(colIndex: number): CellHeader | undefined;
    /**
     * 获取以改变数据
     */
    getChangedData(): {
        rowKey: string;
        colKey: string;
        row: any;
        originalValue: any;
        value: any;
    }[];
    getChangedRows(): any[];
    /**
     * 获取改变值是否已经改变
     * @param rowKey
     * @param key
     * @returns
     */
    isHasChangedData(rowKey: string, key: string): boolean;
    getPositionForRowIndex(rowIndex: number): Position;
    setHeader(key: string, cellHeader: CellHeader): boolean;
    getReadonly(rowKey: string, key: string): any;
    clearValidate(): void;
    hasValidationError(): boolean;
    getValidator(rowKey: string, key: string): Promise<unknown>;
    getHeightByRowIndexRowSpan(rowIndex: number, rowSpan: number): number;
    getSpanInfo(cell: Cell): SpanInfo;
    setValidationErrorByRowKey(rowKey: string, key: string, message: string): void;
    setValidationError(rowKey: string, key: string, errors: ValidateResult): void;
    clearValidationError(rowKey: string, key: string): void;
    getValidationError(rowKey: string, key: string): ValidateResult;
    getVirtualBodyCell(rowIndex: number, colIndex: number, isUpdate?: boolean): Cell | undefined;
    getVirtualBodyCellByKey(rowKey: string, key: string): Cell | undefined;
    hasMergeCell(xArr: number[], yArr: number[]): boolean;
    /**
     * 计算树形数据的最大深度
     * @param data 树形数据
     * @param currentDepth 当前深度
     * @returns 最大深度
     */
    private calculateMaxTreeDepth;
    setOverlayerAutoHeightMap(map: Map<string, number>): void;
    getOverlayerAutoHeightMap(): Map<string, number>;
    getOverlayerAutoHeight(rowIndex: number, colIndex: number): number;
    setCustomHeader(customHeader: CustomHeader, ignoreEmit?: boolean): void;
    resetCustomHeader(): void;
    getCustomHeader(): CustomHeader;
    setCustomHeaderResizableData(key: string, width: number): void;
    setCustomHeaderHideData(keys: string[], hide: boolean): void;
    setCustomHeaderFixedData(keys: string[], fixed: Fixed | ''): void;
    clearCustomHeaderInvalidValues(columns: Column[]): CustomHeader;
    setMaxRowHeightItem(rowKey: string, key: string, height: number): void;
    getMaxRowHeightItem(rowKey: string): RowMaxHeightData | undefined;
    clearChangeData(): void;
}

declare const _default: {
    install(app: App): void;
    addFormatter: (formatter: Record<string, (a: CellFuncArg, ...args: any[]) => any>) => void;
    addRender: (name: string, { renderItemContent, renderDefault, renderReadonly, renderEdit }: RenderWorkshop) => void;
    setup: typeof setup;
};
export default _default;

declare const _default_2: {
    numberErrorTip: string;
    emptyText: string;
    loadingText: string;
    copy: string;
    cut: string;
    paste: string;
    clearSelected: string;
    fixedLeft: string;
    fixedRight: string;
    fixedNone: string;
    hide: string;
    visible: string;
    resetHeader: string;
    invalidNumber: string;
    mergeCellNoFill: string;
    mergeCellNoCopy: string;
    mergeCellNoPaste: string;
    numberTruncated: string;
    batchSetItemValueError: string;
    numberMin: string;
    numberMax: string;
    stringMaxlength: string;
};

declare type DefaultFactory<T> = (() => T) | T

export declare const defaultItemResponsive: Responsive;

export declare const defaultLabelCol: Responsive;

declare type DefaultType<T> = T extends NativeType ? T : DefaultFactory<T>

declare type DrawTextOptions = {
    font?: string;
    color?: string;
    align?: Align;
    padding?: number;
    verticalAlign?: VerticalAlign;
    autoRowHeight?: boolean;
    lineHeight?: number;
    maxLineClamp?: LineClampType;
    offsetLeft?: number;
    offsetRight?: number;
    textCallback?: (textInfo: TextInfo) => void;
    layoutCallback?: (layout: TextLayout) => void;
    cacheTextKey?: string;
};

declare type EditorOptions = {
    type: string;
    props: any;
};

declare type EventCallback = (...args: any[]) => void;

declare type EventCallback_2 = (...args: any[]) => void;

declare class EVirtTable {
    static locale: LangConfig;
    private options;
    private scroller;
    private header;
    private body;
    private footer;
    private selector;
    private autofill;
    private tooltip;
    private editor;
    private empty;
    private overlayer;
    private contextMenu;
    private loading;
    private finderBar;
    private textSelector;
    private animationFrameId;
    ctx: Context;
    static useLocale(langConfig: LangConfig): void;
    constructor(target: HTMLDivElement, options: EVirtTableOptions);
    private createContainer;
    private doDraw;
    private updateStageBorder;
    draw(ignoreOverlayer?: boolean): void;
    loadConfig(_config: ConfigType): void;
    loadColumns(columns: Column[]): void;
    loadData(data: any[]): void;
    loadFooterData(data: any[]): void;
    setCustomHeader(customHeader: CustomHeader, ignoreEmit?: boolean): void;
    getCustomHeader(): {
        columns: Column[];
        customHeader: CustomHeader;
    };
    showColumns(keys: string[], show?: boolean): void;
    fixedColumns(keys: string[], fixed: Fixed | ''): void;
    setLoading(loading: boolean): void;
    on(event: string, callback: EventCallback_2): void;
    emit(event: string, ...args: any[]): void;
    off(event: string, callback: EventCallback_2): void;
    filterMethod(func: FilterMethod): void;
    editCell(rowIndex: number, colIndex: number): void;
    setItemValue(rowKey: string, key: string, value: any, history?: boolean, reDraw?: boolean, isEditor?: boolean, checkReadonly?: boolean): void;
    batchSetItemValue(list: ChangeItem[], history?: boolean, checkReadonly?: boolean): void;
    setItemValueByEditor(rowKey: string, key: string, value: any, history?: boolean, reDraw?: boolean, checkReadonly?: boolean): void;
    clearEditableData(value?: null): ChangeItem[];
    clearEditor(): void;
    doLayout(): void;
    getChangedData(): {
        rowKey: string;
        colKey: string;
        row: any;
        originalValue: any;
        value: any;
    }[];
    getChangedRows(): any[];
    setCurrentRowByRowIndex(rowIndex: number): void;
    setCurrentRow(rowKey: string): void;
    getCurrentRow(): RowParams | undefined;
    clearValidate(): void;
    validateFields(ValidateFields: ValidateField[], scrollError?: boolean): Promise<unknown>;
    validate(scrollError?: boolean): Promise<unknown>;
    setValidations(errors: ValidateItemError[]): void;
    getValidations(): Promise<unknown>;
    hasValidationError(): boolean;
    scrollTo(x: number, y: number): void;
    scrollXTo(x: number): void;
    scrollToColkey(key: string): void;
    scrollToRowkey(key: string): void;
    scrollToColIndex(colIndex: number): void;
    scrollToRowIndex(rowIndex: number): void;
    scrollYTo(y: number): void;
    setExpandRowKeys(keys: any[], expand?: boolean): void;
    getExpandRowKeys(): string[];
    clearSelection(): void;
    toggleRowSelection(row: any): void;
    setSelectionByRows(rows: any[], selected?: boolean): void;
    setSelectionByRowKeys(keys: string[], selected?: boolean): void;
    toggleAllSelection(): void;
    toggleRowExpand(rowKey: string, expand: boolean): void;
    toggleExpandAll(expand: boolean): void;
    getSelectionRows(): any[];
    getPositionForRowIndex(rowIndex: number): Position;
    getCellValue(rowKey: string, key: string): any;
    getCellValueByIndex(rowIndex: number, colIndex: number): {
        rowKey: string;
        key: string;
        value: any;
    } | null;
    clearSort(): void;
    contextMenuHide(): void;
    getUtils(): {
        mergeColCell: typeof mergeColCell;
        mergeRowCell: typeof mergeRowCell;
        getSpanArrByRow: typeof getSpanArrByRow;
        getSpanObjByColumn: typeof getSpanObjByColumn;
    };
    getColumnByKey(key: string): Column | undefined;
    clearChangeData(): void;
    getReadonly(rowKey: string, key: string): any;
    useLocale(langConfig: LangConfig): void;
    /**
     * 销毁
     */
    destroy(): void;
}

declare type EVirtTableOptions = {
    data: Record<string, any>[];
    footerData?: Record<string, any>[];
    columns: Column[];
    config?: ConfigType;
    overlayerElement?: HTMLDivElement;
    editorElement?: HTMLDivElement;
    emptyElement?: HTMLDivElement;
    contextMenuElement?: HTMLDivElement;
    loadingElement?: HTMLDivElement;
};

declare type ExpandLazyMethod = (params: CellParams) => Promise<any[]>;

declare type FilterMethod = (rows: any[]) => any[];

declare type FinderCellParams = CellParams & {
    displayText: string;
};

declare type FinderFormatterMethod = (params: FinderCellParams) => string | void;

declare type FinderHeaderFormatterMethod = (params: FinderHeaderParams) => string | void;

declare type FinderHeaderParams = CellHeaderParams & {
    rowIndex: number;
    value: string;
    displayText: string;
};

declare interface FinderResult {
    type: CellType;
    rowIndex: number;
    colIndex: number;
    text: string;
    colKey?: string;
}

declare type Fixed = 'left' | 'right' | '';

declare type FooterOptions = {
    x: number;
    y: number;
    width: number;
    height: number;
    visibleHeight: number;
    visibleWidth: number;
    renderRows: Row[];
};

declare type FooterPosition = 'top' | 'bottom';

export declare type FormatterFunc = (c: CellFuncArg, ...args: any[]) => any;

declare type FormatterMethod = (params: CellParams) => string | void;

export declare const get24rest: (exist: number[]) => number;

export declare const getButtonResponsive: (itemResponsive: number | Responsive[]) => any;

declare function getSpanArrByRow(list: any, key: string, relationRowKeys?: string[]): number[];

declare function getSpanObjByColumn(row: any, columns: any): any;

export declare function getTooltipRenderer(): UIKitConfig['renderTooltip'];

export declare function getUIKitConfig(): UIKitConfig;

export declare interface GroupMenuItem<F extends Recordable = Recordable> {
    content: string;
    icon?: string;
    code: string;
    visibleMethod?: ({ data, index }: {
        data: Partial<F>;
        index: number;
    }) => boolean;
}

export declare type GroupMenuItemHandler<F extends Recordable = Recordable> = ({ index, data, code, }: {
    index: number;
    code: string;
    data: Partial<F & {
        __index: number;
    }>;
}) => void;

export declare type HandlerMultiDel = (ids: Array<string | number>) => any;

declare type HeaderOptions = {
    x: number;
    y: number;
    width: number;
    height: number;
    visibleHeight: number;
    visibleWidth: number;
    visibleLeafColumns: Column[];
    leafCellHeaders: CellHeader[];
    renderLeafCellHeaders: CellHeader[];
    renderCellHeaders: CellHeader[];
    fixedLeftCellHeaders: [];
    fixedRightCellHeaders: [];
    renderCenterCellHeaders: [];
    allCellHeaders: CellHeader[];
};

/**
 * 数据历史堆栈
 */
declare class History_2 {
    private ctx;
    private history;
    private historyIndex;
    constructor(ctx: Context);
    private init;
    pushState(changeList: HistoryItem): void;
    backState(): void;
    forwardState(): void;
    clear(): void;
}

declare type HistoryAction = 'back' | 'forward' | 'none';

declare type HistoryItem = {
    changeList: HistoryItemData[];
    scrollY: number;
    scrollX: number;
    type: 'single' | 'multiple';
};

declare type HistoryItemData = {
    oldValue: any;
    newValue: any;
    key: string;
    rowKey: string;
};

declare class Icons {
    private ctx;
    private list;
    icons: Map<string, HTMLImageElement>;
    constructor(ctx: Context);
    init(): Promise<void>;
    private createImageFromSVG;
    get(name: string): HTMLImageElement | undefined;
    getSvg(name: string): SvgIcon | undefined;
}

declare interface IconType {
    name: string;
    svg: string;
    color: string;
    isBlob?: boolean;
}

export declare interface ItemFuncArg<F extends Recordable = Recordable> {
    data: F;
    field?: string;
}

export declare interface ItemRender {
    name: string;
    defaultValue?: any;
    props?: Recordable;
    attrs?: Recordable;
    options?: IOption[];
    children?: Recordable[];
    events?: {
        [key: string]: (...args: any[]) => any;
    };
}

export declare const labelColDict: Record<number, Responsive>;

declare type LangConfig = typeof _default_2;

declare type LineClampType = number | 'auto';

declare type LineOptions = {
    lineCap?: CanvasLineCap;
    lineDash?: number[];
    lineDashOffset?: number;
    lineJoin?: CanvasLineJoin;
    borderWidth?: number;
    borderColor?: string | CanvasGradient | CanvasPattern;
    fillColor?: string | CanvasGradient | CanvasPattern;
};

declare class Locale {
    private langConfig?;
    use(langConfig: LangConfig): void;
    getText(key: string, params?: Record<string, any>): string;
}

declare type MenuItem = {
    label?: string;
    value: string | MenuItemEvent;
    event?: Function;
    icon?: string;
    divider?: boolean;
    disabled?: boolean;
    children?: MenuItem[];
    key?: string;
};

declare type MenuItemEvent = 'copy' | 'paste' | 'cut' | 'clearSelected' | 'fixedLeft' | 'fixedRight' | 'fixedNone' | 'hide' | 'resetHeader' | 'visible';

declare function mergeColCell(params: SpanParams, mergeColKeys?: string[]): {
    rowspan: number;
    colspan: any;
    relationColKeys: string[];
    mergeCol: boolean;
} | undefined;

declare function mergeRowCell(params: SpanParams, mergeRowkey: string, relationRowKeys?: string[]): {
    rowspan: number;
    colspan: number;
    relationRowKeys: string[];
    mergeRow: boolean;
};

declare type NativeType = string | boolean | number | null | undefined | Function

declare type OverflowTooltipPlacement = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end';

export declare interface PageConfig {
    pageSizes?: number[];
    pageSize?: number;
    showSizeChanger?: boolean;
    showQuickJumper?: boolean;
}

declare class Paint {
    private ctx;
    private textCacheMap;
    constructor(target: HTMLCanvasElement);
    getCtx(): CanvasRenderingContext2D;
    clearTextCache(): void;
    scale(dpr: number): void;
    save(): void;
    restore(): void;
    translate(x: number, y: number): void;
    setCursor(cursor?: string): void;
    clear(x?: number, y?: number, width?: number, height?: number): void;
    /**
     * 在 Canvas 上绘制单侧阴影
     * @param {number} x - 矩形的 x 坐标
     * @param {number} y - 矩形的 y 坐标
     * @param {number} width - 矩形的宽度
     * @param {number} height - 矩形的高度
     * @param {string} side - 阴影的位置('left', 'right', 'top', 'bottom')
     * @param {number} shadowWidth - 阴影的宽度
     * @param {string} color - 阴影的颜色
     */
    drawShadow(x: number, y: number, width: number, height: number, options: ShodowOptions): void;
    drawLine(points: number[], options: LineOptions): void;
    drawImage(img: CanvasImageSource, x: number, y: number, width: number, height: number): void;
    drawRect(x: number, y: number, width: number, height: number, { borderWidth, borderColor, fillColor, radius }?: RectOptions): void;
    /**
     * 画文本
     * @param text
     * @param x
     * @param y
     * @param width
     * @param height
     * @param options
     * @returns 是否溢出
     */
    drawText(text: string | undefined, x: number, y: number, width: number, height: number, options?: DrawTextOptions): boolean;
    private buildTextLayout;
    private wrapTextToLines;
    private buildEllipsisLine;
    private buildLineSegments;
    /**
     * 将文本按宽度换行
     * @param text
     * @param maxWidth
     * @returns
     */
    private wrapText;
    /**
     * 计算文本自适应高度
     * @param text
     * @param width
     * @param options
     * @returns 计算出的高度
     */
    calculateTextHeight(text: string | undefined, width: number, options?: DrawTextOptions): number;
    handleEllipsis(text: string, width: number, padding?: number, font?: string): {
        _text: string;
        ellipsis: boolean;
    };
}

/** 解析与 v-rest 一致的偏移:数字/字符串同时作用于 right+bottom;对象可单独指定 */
export declare function parseAutoViewportBoxOffset(value: AutoViewportBoxOffsetInput): AutoViewportBoxOffset;

export declare interface PBlockProps<F extends Recordable = Recordable> {
    name?: string;
    getFormSetting: (data: Partial<F>) => PFormProps<Partial<F>>;
    source: Partial<F>;
}

export declare interface PButtonProps extends Omit<ButtonProps, 'type'> {
    content?: string | (() => any);
    icon?: string;
    /** 与 `a-button` 一致,便于模板类型检查 */
    type?: ButtonProps['type'];
}

export declare const PCanvasGrid: <D extends Recordable = Recordable, F extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_5<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_5<Pick<Partial<{}> & Omit<{
        readonly onPick?: ((data: {
            row: D;
            field: string;
        }) => any) | undefined;
        readonly onToolbarButtonClick?: ((data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }) => any) | undefined;
        readonly onToolbarToolClick?: ((data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }) => any) | undefined;
        readonly onResetQuery?: (() => any) | undefined;
        readonly onSortChange?: ((value: Map<string, {
            direction: "asc" | "desc" | "none";
            timestamp: number;
        }>) => any) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onPick" | "onToolbarButtonClick" | "onToolbarToolClick" | "onResetQuery" | "onSortChange"> & PCanvasGridProps<D, F> & any> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    commitProxy: {
    query: (this: any, ...args: any[]) => any;
    reload: () => void;
    reloadPage: () => Promise<D[]>;
    passQuery: (params: Partial<F>, lazy?: boolean) => any;
    forcePassQuery: (params: Partial<F>, lazy?: boolean) => any;
    };
    $canvasTable: ComputedRef<PCanvasTableInstance<D> | undefined>;
    selectedRowKeys: ComputedRef<(string | number)[]>;
    setBtnLoading: (code: string, value: boolean) => void;
    selectedRecords: ComputedRef<D[]>;
    clearSelection: () => void;
    $form: ComputedRef<Recordable<any> | undefined>;
    getFormData: () => Partial<F>;
    setLoadings: (value: boolean | Record<string, boolean>) => void;
    resizeTable: () => void;
    }>): void;
    attrs: any;
    slots: any;
    emit: {
        (event: "toolbarButtonClick", data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }): void;
        (event: "toolbarToolClick", data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }): void;
        (event: "pick", data: {
            row: D;
            field: string;
        }): void;
        (event: "resetQuery"): void;
        (event: "sortChange", value: Map<string, {
            direction: "asc" | "desc" | "none";
            timestamp: number;
        }>): void;
    };
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare interface PCanvasGridProps<D extends Recordable = Recordable, F extends Recordable = Recordable> {
    staticConfig?: {
        selectable?: boolean;
        showCount?: boolean;
        tree?: boolean;
    };
    manualFetch?: boolean;
    formConfig?: PGridFormConfig<F>;
    columns: CanvasColumnProps<D>[];
    toolbarConfig?: ToolbarConfig;
    pageConfig?: PageConfig;
    proxyConfig?: ProxyConfig<D, F>;
    config?: ConfigType;
    /**
     * 表格边框样式,映射 e-virt-table `BORDER`。
     * - `true` / `'default'`:完整单元格边框
     * - `'outer'`:仅外边框
     * - `'inner'` / `false`:仅内部横线
     * - `'none'`:无边框
     * 显式传入时优先于 `config.BORDER`。
     */
    border?: BorderConfigValue;
    /**
     * 滚动条模式,映射 e-virt-table `scrollbarMode`。
     * - `'outer'`:外部预留滚动条轨道(默认)
     * - `'inner'`:覆盖在内容上,悬停表格内部后显示
     * 显式传入时优先于 `config.scrollbarMode`。
     */
    scrollbarMode?: ScrollbarMode;
    /**
     * 内部滚动条(`scrollbarMode: 'inner'`)悬停后显示延迟(ms),映射 `SCROLLBAR_SHOW_DELAY`。
     * 显式传入时优先于 `config.SCROLLBAR_SHOW_DELAY`。
     */
    scrollbarShowDelay?: number;
    lazyReset?: boolean;
    /**
     * 适应展示区到页面顶部的高度,通常和容器最上的y值有关(正比)
     */
    fitHeight?: number;
    /**
     * 开启后组件根节点按视口从其左上角铺满宽高,与 PGrid 的 autoBoxSize 行为一致。
     * 外层未声明固定高度、需组件自身占满可视区域时使用。
     */
    autoBoxSize?: boolean;
    /**
     * `autoBoxSize` 时距视口右侧/底部的预留像素;数字或 `"12px"` 同时作用于两侧;对象可分别指定 `right` / `bottom`。
     * 未传时使用 `setUIKitConfig({ grid: { autoBoxSizeOffset } })` 的全局值。
     */
    autoBoxSizeOffset?: number | string | {
        right?: number;
        bottom?: number;
    };
}

export declare const PCanvasTable: <T extends Recordable = Recordable, B extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_4<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_4<Pick<Partial<{}> & Omit<{
        readonly onChange?: ((value: any[]) => any) | undefined;
        readonly onSelectionChange?: ((value: T[]) => any) | undefined;
        readonly onSortChange?: ((value: Map<string, {
            direction: "asc" | "desc" | "none";
            timestamp: number;
        }>) => any) | undefined;
        readonly onReady?: ((value: EVirtTable) => any) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onChange" | "onSelectionChange" | "onSortChange" | "onReady"> & CanvasTableProps<T, B> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    readonly $table: EVirtTable | null;
    selectedRecords: ComputedRef<UnwrapRefSimple<T>[]>;
    clearSelection: () => void;
    reloadData: () => void;
    }>): void;
    attrs: any;
    slots: Partial<Record<string, (_: {
        cell: Cell | CellHeader;
        parentRowKey: string;
        parentRowKeys: string[];
        formatter?: FormatterMethod;
        formatterFinderValue?: FinderFormatterMethod;
        formatterFinderFooterValue?: FinderFormatterMethod;
        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;
        autoRowHeight: boolean;
        calculatedHeight: number;
        ellipsis: boolean;
        rowExpand: boolean;
        rowHasChildren: boolean;
        overflowTooltipShow: boolean;
        selectorCellValueType: SelectorCellValueType;
        overflowTooltipMaxWidth: number;
        overflowTooltipPlacement: OverflowTooltipPlacement;
        maxLineClamp: LineClampType;
        precision?: number;
        min?: number;
        max?: number;
        maxlength?: number;
        mixedRender?: boolean;
        renderType: RenderType;
        renderFooterType: RenderType;
        ctx: Context;
        x: number;
        y: number;
        width: number;
        height: number;
        cellImages: Map<string, CellImage>;
    } | {
        cell: Cell | CellHeader;
        align: Align;
        hideHeaderSelection: boolean;
        verticalAlign: VerticalAlign;
        fixed?: Fixed;
        minWidth?: number;
        maxWidth?: number;
        formatterFinderHeaderValue?: FinderHeaderFormatterMethod;
        widthFillDisable: boolean;
        type: Type | "";
        operation: boolean;
        editorType: string;
        level: number;
        text: string;
        hide: boolean;
        displayText: string;
        colspan: number;
        rowspan: number;
        row: any;
        key: string;
        required: boolean;
        readonly: boolean;
        ellipsis: boolean;
        overflowTooltipShow: boolean;
        children: Column[];
        column: Column;
        colIndex: number;
        rowKey: string;
        rules?: Rules | Rule;
        hasChildren: boolean;
        render: Render;
        style: Partial<CSSStyleDeclaration>;
        drawX: number;
        drawY: number;
        sortIconName: string;
        sortAscIconName: string;
        sortDescIconName: string;
        visibleWidth: number;
        visibleHeight: number;
        maxLineClampHeader: LineClampType;
        domDataset: any;
        textOffsetRight: number;
        textOffsetLeft: number;
        textInfo: TextInfo | undefined;
        drawTextX: number;
        drawTextY: number;
        drawTextWidth: number;
        drawTextHeight: number;
        drawCellBgColor: string;
        drawTextColor: string;
        drawTextFont: string;
        drawSelectionImageX: number;
        drawSelectionImageY: number;
        drawSelectionImageWidth: number;
        drawSelectionImageHeight: number;
        drawSelectionImageName: string;
        drawSelectionImageSource?: HTMLImageElement;
        drawSortImageX: number;
        drawSortImageY: number;
        drawSortImageWidth: number;
        drawSortImageHeight: number;
        drawSortImageName: string;
        drawSortImageSource?: HTMLImageElement;
        renderHeaderType: RenderType;
        ctx: Context;
        x: number;
        y: number;
        width: number;
        height: number;
        cellType: CellType;
        cellImages: Map<string, CellImage>;
    }) => any>> & {
        empty?(_: {}): any;
    };
    emit: {
        (e: "change", value: any[]): void;
        (e: "selectionChange", value: T[]): void;
        (e: "sortChange", value: Map<string, {
            direction: "asc" | "desc" | "none";
            timestamp: number;
        }>): void;
        (e: "ready", value: EVirtTable): void;
    };
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare interface PCanvasTableInstance<T extends Recordable = Recordable> {
    $table: InstanceType<typeof EVirtTable>;
    selectedRecords: T[];
    clearSelection: () => void;
    setLoading: (value: boolean) => void;
}

export declare const PDescription: <D extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_9<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_9<Pick<Partial<{}> & Omit<{} & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, never> & PDescriptionProps<D> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {}>): void;
    attrs: any;
    slots: {
        title?(_: {}): any;
        extra?(_: {}): any;
    };
    emit: {};
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare interface PDescriptionItemProps<D extends Recordable = Recordable> {
    field?: string;
    label?: string;
    span?: number;
    labelStyle?: Recordable;
    contentStyle?: Recordable;
    /** 只读展示渲染器,派发到 renderStore.renderDefault */
    readonlyRender?: ItemRender;
    slots?: {
        label?: () => any;
        default?: ({ data, field }: {
            data: D;
            field?: string;
        }) => any;
    };
}

export declare interface PDescriptionProps<D extends Recordable = Recordable> {
    /** 数据源 */
    data: D;
    items: PDescriptionItemProps<D>[];
    /** 透传 a-descriptions */
    title?: string;
    extra?: string;
    bordered?: boolean;
    size?: 'default' | 'small' | 'middle';
    column?: number | Partial<Record<'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number>>;
    layout?: 'horizontal' | 'vertical';
    colon?: boolean;
    labelStyle?: Recordable;
    contentStyle?: Recordable;
    /** 缺省占位,row[field] 为空时展示 */
    emptyText?: string;
}

export declare const PForm: <F extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
        readonly onReset?: ((...args: any[]) => any) | undefined;
        readonly onApply?: ((...args: any[]) => any) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onReset" | "onApply"> & (PFormProps<F> & {
        data: F;
    }) & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    reset: () => void;
    $form: ComputedRef<any>;
    }>): void;
    attrs: any;
    slots: {};
    emit: (event: "reset" | "apply", ...args: any[]) => void;
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare type PFormatter = Record<string, FormatterFunc>;

export declare interface PFormBlockInstance {
    $form: Recordable;
}

export declare const PFormGroup: <F extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_6<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_6<Pick<Partial<{}> & Omit<{
        readonly "onUpdate:modelValue"?: ((value: Partial<F & {
            __index: number;
        }>[]) => any) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onUpdate:modelValue"> & ({
        modelValue?: Partial<F & {
            __index: number;
        }>[];
    } & PFormGroupProps<F>) & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    collapse: () => void;
    expand: () => void;
    activeKey: ComputedRef<number>;
    setActiveKey: (key: number) => void;
    removeItem: (idx: number) => void;
    validateAll: () => Promise<PromiseSettledResult<any>[]>;
    validate: (__index: number, ignoreTabError?: boolean) => Promise<void>;
    validateFields: (__index: number, fields: string[], ignoreTabError?: boolean) => Promise<void>;
    }>): void;
    attrs: any;
    slots: Readonly<{
        [key: string]: any;
        rightExtra?: () => any;
    }> & {
        [key: string]: any;
        rightExtra?: () => any;
    };
    emit: (evt: "update:modelValue", value: Partial<F & {
        __index: number;
    }>[]) => void;
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare interface PFormGroupInstance {
    activeKey: number;
    setActiveKey: (activeKey: number) => void;
    /** 按数组下标删除一项,并清理校验缓存 / 激活态 */
    removeItem: (index: number) => void;
    validateAll: () => Promise<void>;
    validate: (index: number, ignoreTabError?: boolean) => Promise<void>;
    validateFields: (index: number, fields: string[], ignoreTabError?: boolean) => Promise<void>;
    collapse: () => void;
    expand: () => void;
}

export declare interface PFormGroupProps<F extends Recordable = Recordable> {
    name?: string;
    getFormSetting: (data: Partial<F>) => PFormProps<Partial<F>>;
    title?: string;
    tabLabel?: string;
    /**
     * 获取完整标签页标签
     * @param data 数据
     * @param idx 实际索引
     * @returns 标签页标签
     */
    getTabLabel?: (data: Partial<F>, idx: number) => string;
    editAble?: boolean;
    showAdd?: boolean;
    collapsible?: boolean;
    /** 是否默认折叠 */
    defaultCollapsed?: boolean;
    lazyErrorMark?: boolean;
    forceRender?: boolean;
    keepSerial?: boolean;
    loading?: boolean;
    itemMenus?: Array<GroupMenuItem<F>>;
    createItem?: ({ list }: {
        list?: Partial<F>[];
    }) => Promise<Partial<F>>;
    max?: number;
    menuHandler?: GroupMenuItemHandler<F>;
}

export declare interface PFormInstance {
    reset: () => void;
    $form: Recordable;
}

export declare interface PFormItemProps<F extends Recordable = Recordable> {
    field?: string;
    title?: string;
    span?: number;
    colon?: boolean;
    labelCol?: ColProps;
    wrapperCol?: ColProps;
    forceRequired?: boolean;
    align?: 'left' | 'right' | 'center';
    col?: ColProps;
    rule?: Rule_2[];
    itemRender?: ItemRender;
    tooltipConfig?: TooltipConfig;
    slots?: {
        title?: () => any;
        default?: ({ data, field }: ItemFuncArg<F>, passTrigger?: (cusFields?: string | string[]) => void, passDelayTrigger?: (cusFields?: string | string[], time?: number) => void) => any;
        defaultValue?: any;
    };
}

export declare interface PFormProps<F extends Recordable = Recordable> extends FormProps {
    name?: string;
    items: PFormItemProps<F>[];
    customReset?: () => void;
}

export declare const PGrid: <D extends Recordable = Recordable, F extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_3<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_3<Pick<Partial<{}> & Omit<{
        readonly onPick?: ((data: {
            row: D;
            field: string;
        }) => any) | undefined;
        readonly onToolbarButtonClick?: ((data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }) => any) | undefined;
        readonly onToolbarToolClick?: ((data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }) => any) | undefined;
        readonly onResetQuery?: (() => any) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onPick" | "onToolbarButtonClick" | "onToolbarToolClick" | "onResetQuery"> & PGridProps<D, F> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    commitProxy: {
    query: (this: any, ...args: any[]) => any;
    reload: () => void;
    reloadPage: () => Promise<D[]>;
    passQuery: (params: Partial<F>, lazy?: boolean) => any;
    forcePassQuery: (params: Partial<F>, lazy?: boolean) => any;
    };
    $table: ComputedRef<CreateComponentPublicInstanceWithMixins<Readonly<ExtractPropTypes<    {
    prefixCls: {
    type: PropType<string>;
    default: string;
    };
    columns: {
    type: PropType<ColumnsType<any>>;
    default: ColumnsType<any>;
    };
    rowKey: {
    type: PropType<string | GetRowKey<any>>;
    default: string | GetRowKey<any>;
    };
    tableLayout: {
    type: PropType<TableLayout>;
    default: TableLayout;
    };
    rowClassName: {
    type: PropType<string | RowClassName<any>>;
    default: string | RowClassName<any>;
    };
    title: {
    type: PropType<PanelRender<any>>;
    default: PanelRender<any>;
    };
    footer: {
    type: PropType<PanelRender<any>>;
    default: PanelRender<any>;
    };
    id: {
    type: PropType<string>;
    default: string;
    };
    showHeader: {
    type: BooleanConstructor;
    default: boolean;
    };
    components: {
    type: PropType<TableComponents<any>>;
    default: TableComponents<any>;
    };
    customRow: {
    type: PropType<GetComponentProps<any>>;
    default: GetComponentProps<any>;
    };
    customHeaderRow: {
    type: PropType<GetComponentProps<ColumnType<any>[]>>;
    default: GetComponentProps<ColumnType<any>[]>;
    };
    direction: {
    type: PropType<"rtl" | "ltr">;
    default: "rtl" | "ltr";
    };
    expandFixed: {
    type: PropType<boolean | "left" | "right">;
    default: boolean | "left" | "right";
    };
    expandColumnWidth: NumberConstructor;
    expandedRowKeys: {
    type: PropType<Key[]>;
    default: Key[];
    };
    defaultExpandedRowKeys: {
    type: PropType<Key[]>;
    default: Key[];
    };
    expandedRowRender: {
    type: PropType<ExpandedRowRender<any>>;
    default: ExpandedRowRender<any>;
    };
    expandRowByClick: {
    type: BooleanConstructor;
    default: boolean;
    };
    expandIcon: {
    type: PropType<RenderExpandIcon<any>>;
    default: RenderExpandIcon<any>;
    };
    onExpand: {
    type: PropType<(expanded: boolean, record: any) => void>;
    default: (expanded: boolean, record: any) => void;
    };
    onExpandedRowsChange: {
    type: PropType<(expandedKeys: Key[]) => void>;
    default: (expandedKeys: Key[]) => void;
    };
    'onUpdate:expandedRowKeys': {
    type: PropType<(expandedKeys: Key[]) => void>;
    default: (expandedKeys: Key[]) => void;
    };
    defaultExpandAllRows: {
    type: BooleanConstructor;
    default: boolean;
    };
    indentSize: NumberConstructor;
    expandIconColumnIndex: NumberConstructor;
    showExpandColumn: {
    type: BooleanConstructor;
    default: boolean;
    };
    expandedRowClassName: {
    type: PropType<RowClassName<any>>;
    default: RowClassName<any>;
    };
    childrenColumnName: {
    type: PropType<string>;
    default: string;
    };
    rowExpandable: {
    type: PropType<(record: any) => boolean>;
    default: (record: any) => boolean;
    };
    sticky: {
    type: PropType<boolean | TableSticky>;
    default: boolean | TableSticky;
    };
    dropdownPrefixCls: StringConstructor;
    dataSource: {
    type: PropType<any[]>;
    default: any[];
    };
    pagination: {
    type: PropType<false | TablePaginationConfig>;
    default: false | TablePaginationConfig;
    };
    loading: {
    type: PropType<boolean | Partial<ExtractPropTypes<    {
    prefixCls: StringConstructor;
    spinning: {
    type: BooleanConstructor;
    default: any;
    };
    size: PropType<SpinSize>;
    wrapperClassName: StringConstructor;
    tip: VueTypeValidableDef<any>;
    delay: NumberConstructor;
    indicator: VueTypeValidableDef<any>;
    }>>>;
    default: boolean | Partial<ExtractPropTypes<    {
    prefixCls: StringConstructor;
    spinning: {
    type: BooleanConstructor;
    default: any;
    };
    size: PropType<SpinSize>;
    wrapperClassName: StringConstructor;
    tip: VueTypeValidableDef<any>;
    delay: NumberConstructor;
    indicator: VueTypeValidableDef<any>;
    }>>;
    };
    size: {
    type: PropType<SizeType>;
    default: SizeType;
    };
    bordered: {
    type: BooleanConstructor;
    default: boolean;
    };
    locale: {
    type: PropType<TableLocale>;
    default: TableLocale;
    };
    onChange: {
    type: PropType<(pagination: TablePaginationConfig, filters: Record<string, FilterValue>, sorter: SorterResult<any> | SorterResult<any>[], extra: TableCurrentDataSource<any>) => void>;
    default: (pagination: TablePaginationConfig, filters: Record<string, FilterValue>, sorter: SorterResult<any> | SorterResult<any>[], extra: TableCurrentDataSource<any>) => void;
    };
    onResizeColumn: {
    type: PropType<(w: number, col: ColumnType_2<any>) => void>;
    default: (w: number, col: ColumnType_2<any>) => void;
    };
    rowSelection: {
    type: PropType<TableRowSelection<any>>;
    default: TableRowSelection<any>;
    };
    getPopupContainer: {
    type: PropType<GetPopupContainer>;
    default: GetPopupContainer;
    };
    scroll: {
    type: PropType<    {
    x?: string | number | true;
    y?: string | number;
    } & {
    scrollToFirstRowOnChange?: boolean;
    }>;
    default: {
    x?: string | number | true;
    y?: string | number;
    } & {
    scrollToFirstRowOnChange?: boolean;
    };
    };
    sortDirections: {
    type: PropType<SortOrder[]>;
    default: SortOrder[];
    };
    showSorterTooltip: {
    type: PropType<boolean | Partial<ExtractPropTypes<    {
    title: VueTypeValidableDef<any>;
    trigger: PropType<TriggerType | TriggerType[]>;
    open: {
    type: BooleanConstructor;
    default: any;
    };
    visible: {
    type: BooleanConstructor;
    default: any;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayInnerStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
    type: BooleanConstructor;
    default: any;
    };
    arrow: {
    type: PropType<boolean | {
    pointAtCenter?: boolean;
    }>;
    default: boolean | {
    pointAtCenter?: boolean;
    };
    };
    autoAdjustOverflow: {
    type: PropType<boolean | AdjustOverflow>;
    default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
    type: BooleanConstructor;
    default: any;
    };
    align: {
    type: PropType<AlignType>;
    default: AlignType;
    };
    builtinPlacements: {
    type: PropType<BuildInPlacements>;
    default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    "onUpdate:visible": PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    "onUpdate:open": PropType<(vis: boolean) => void>;
    }>>>;
    default: boolean | Partial<ExtractPropTypes<    {
    title: VueTypeValidableDef<any>;
    trigger: PropType<TriggerType | TriggerType[]>;
    open: {
    type: BooleanConstructor;
    default: any;
    };
    visible: {
    type: BooleanConstructor;
    default: any;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayInnerStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
    type: BooleanConstructor;
    default: any;
    };
    arrow: {
    type: PropType<boolean | {
    pointAtCenter?: boolean;
    }>;
    default: boolean | {
    pointAtCenter?: boolean;
    };
    };
    autoAdjustOverflow: {
    type: PropType<boolean | AdjustOverflow>;
    default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
    type: BooleanConstructor;
    default: any;
    };
    align: {
    type: PropType<AlignType>;
    default: AlignType;
    };
    builtinPlacements: {
    type: PropType<BuildInPlacements>;
    default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    "onUpdate:visible": PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    "onUpdate:open": PropType<(vis: boolean) => void>;
    }>>;
    };
    transformCellText: {
    type: PropType<TransformCellText<any>>;
    default: TransformCellText<any>;
    };
    }>> & Readonly<{}>, () => JSX.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
    scroll: {
    x?: string | number | true;
    y?: string | number;
    } & {
    scrollToFirstRowOnChange?: boolean;
    };
    size: SizeType;
    footer: PanelRender<any>;
    title: PanelRender<any>;
    onChange: (pagination: TablePaginationConfig, filters: Record<string, FilterValue>, sorter: SorterResult<any> | SorterResult<any>[], extra: TableCurrentDataSource<any>) => void;
    components: TableComponents<any>;
    direction: "rtl" | "ltr";
    tableLayout: TableLayout;
    columns: ColumnsType<any>;
    sticky: boolean | TableSticky;
    prefixCls: string;
    id: string;
    getPopupContainer: GetPopupContainer;
    rowClassName: string | RowClassName<any>;
    locale: TableLocale;
    expandIcon: RenderExpandIcon<any>;
    loading: boolean | Partial<ExtractPropTypes<    {
    prefixCls: StringConstructor;
    spinning: {
    type: BooleanConstructor;
    default: any;
    };
    size: PropType<SpinSize>;
    wrapperClassName: StringConstructor;
    tip: VueTypeValidableDef<any>;
    delay: NumberConstructor;
    indicator: VueTypeValidableDef<any>;
    }>>;
    bordered: boolean;
    onExpand: (expanded: boolean, record: any) => void;
    pagination: false | TablePaginationConfig;
    dataSource: any[];
    rowKey: string | GetRowKey<any>;
    expandedRowKeys: Key[];
    defaultExpandedRowKeys: Key[];
    expandedRowRender: ExpandedRowRender<any>;
    expandRowByClick: boolean;
    onExpandedRowsChange: (expandedKeys: Key[]) => void;
    defaultExpandAllRows: boolean;
    showExpandColumn: boolean;
    expandedRowClassName: RowClassName<any>;
    childrenColumnName: string;
    rowExpandable: (record: any) => boolean;
    transformCellText: TransformCellText<any>;
    onResizeColumn: (w: number, col: ColumnType_2<any>) => void;
    customHeaderRow: GetComponentProps<ColumnType<any>[]>;
    customRow: GetComponentProps<any>;
    expandFixed: boolean | "left" | "right";
    showHeader: boolean;
    'onUpdate:expandedRowKeys': (expandedKeys: Key[]) => void;
    sortDirections: SortOrder[];
    showSorterTooltip: boolean | Partial<ExtractPropTypes<    {
    title: VueTypeValidableDef<any>;
    trigger: PropType<TriggerType | TriggerType[]>;
    open: {
    type: BooleanConstructor;
    default: any;
    };
    visible: {
    type: BooleanConstructor;
    default: any;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayInnerStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
    type: BooleanConstructor;
    default: any;
    };
    arrow: {
    type: PropType<boolean | {
    pointAtCenter?: boolean;
    }>;
    default: boolean | {
    pointAtCenter?: boolean;
    };
    };
    autoAdjustOverflow: {
    type: PropType<boolean | AdjustOverflow>;
    default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
    type: BooleanConstructor;
    default: any;
    };
    align: {
    type: PropType<AlignType>;
    default: AlignType;
    };
    builtinPlacements: {
    type: PropType<BuildInPlacements>;
    default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    "onUpdate:visible": PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    "onUpdate:open": PropType<(vis: boolean) => void>;
    }>>;
    rowSelection: TableRowSelection<any>;
    }, true, {}, CustomSlotsType<    {
    emptyText?: any;
    expandIcon?: RenderExpandIconProps<any>;
    title?: any;
    footer?: any;
    summary?: any;
    expandedRowRender?: any;
    expandColumnTitle?: any;
    bodyCell?: (props: {
    text: any;
    value: any;
    record: Record<string, any>;
    index: number;
    column: ColumnType_2<any>;
    }) => void;
    headerCell?: (props: {
    title: any;
    column: ColumnType_2<any>;
    }) => void;
    customFilterIcon?: any;
    customFilterDropdown?: any;
    default: any;
    }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
    P: {};
    B: {};
    D: {};
    C: {};
    M: {};
    Defaults: {};
    }, Readonly<ExtractPropTypes<    {
    prefixCls: {
    type: PropType<string>;
    default: string;
    };
    columns: {
    type: PropType<ColumnsType<any>>;
    default: ColumnsType<any>;
    };
    rowKey: {
    type: PropType<string | GetRowKey<any>>;
    default: string | GetRowKey<any>;
    };
    tableLayout: {
    type: PropType<TableLayout>;
    default: TableLayout;
    };
    rowClassName: {
    type: PropType<string | RowClassName<any>>;
    default: string | RowClassName<any>;
    };
    title: {
    type: PropType<PanelRender<any>>;
    default: PanelRender<any>;
    };
    footer: {
    type: PropType<PanelRender<any>>;
    default: PanelRender<any>;
    };
    id: {
    type: PropType<string>;
    default: string;
    };
    showHeader: {
    type: BooleanConstructor;
    default: boolean;
    };
    components: {
    type: PropType<TableComponents<any>>;
    default: TableComponents<any>;
    };
    customRow: {
    type: PropType<GetComponentProps<any>>;
    default: GetComponentProps<any>;
    };
    customHeaderRow: {
    type: PropType<GetComponentProps<ColumnType<any>[]>>;
    default: GetComponentProps<ColumnType<any>[]>;
    };
    direction: {
    type: PropType<"rtl" | "ltr">;
    default: "rtl" | "ltr";
    };
    expandFixed: {
    type: PropType<boolean | "left" | "right">;
    default: boolean | "left" | "right";
    };
    expandColumnWidth: NumberConstructor;
    expandedRowKeys: {
    type: PropType<Key[]>;
    default: Key[];
    };
    defaultExpandedRowKeys: {
    type: PropType<Key[]>;
    default: Key[];
    };
    expandedRowRender: {
    type: PropType<ExpandedRowRender<any>>;
    default: ExpandedRowRender<any>;
    };
    expandRowByClick: {
    type: BooleanConstructor;
    default: boolean;
    };
    expandIcon: {
    type: PropType<RenderExpandIcon<any>>;
    default: RenderExpandIcon<any>;
    };
    onExpand: {
    type: PropType<(expanded: boolean, record: any) => void>;
    default: (expanded: boolean, record: any) => void;
    };
    onExpandedRowsChange: {
    type: PropType<(expandedKeys: Key[]) => void>;
    default: (expandedKeys: Key[]) => void;
    };
    'onUpdate:expandedRowKeys': {
    type: PropType<(expandedKeys: Key[]) => void>;
    default: (expandedKeys: Key[]) => void;
    };
    defaultExpandAllRows: {
    type: BooleanConstructor;
    default: boolean;
    };
    indentSize: NumberConstructor;
    expandIconColumnIndex: NumberConstructor;
    showExpandColumn: {
    type: BooleanConstructor;
    default: boolean;
    };
    expandedRowClassName: {
    type: PropType<RowClassName<any>>;
    default: RowClassName<any>;
    };
    childrenColumnName: {
    type: PropType<string>;
    default: string;
    };
    rowExpandable: {
    type: PropType<(record: any) => boolean>;
    default: (record: any) => boolean;
    };
    sticky: {
    type: PropType<boolean | TableSticky>;
    default: boolean | TableSticky;
    };
    dropdownPrefixCls: StringConstructor;
    dataSource: {
    type: PropType<any[]>;
    default: any[];
    };
    pagination: {
    type: PropType<false | TablePaginationConfig>;
    default: false | TablePaginationConfig;
    };
    loading: {
    type: PropType<boolean | Partial<ExtractPropTypes<    {
    prefixCls: StringConstructor;
    spinning: {
    type: BooleanConstructor;
    default: any;
    };
    size: PropType<SpinSize>;
    wrapperClassName: StringConstructor;
    tip: VueTypeValidableDef<any>;
    delay: NumberConstructor;
    indicator: VueTypeValidableDef<any>;
    }>>>;
    default: boolean | Partial<ExtractPropTypes<    {
    prefixCls: StringConstructor;
    spinning: {
    type: BooleanConstructor;
    default: any;
    };
    size: PropType<SpinSize>;
    wrapperClassName: StringConstructor;
    tip: VueTypeValidableDef<any>;
    delay: NumberConstructor;
    indicator: VueTypeValidableDef<any>;
    }>>;
    };
    size: {
    type: PropType<SizeType>;
    default: SizeType;
    };
    bordered: {
    type: BooleanConstructor;
    default: boolean;
    };
    locale: {
    type: PropType<TableLocale>;
    default: TableLocale;
    };
    onChange: {
    type: PropType<(pagination: TablePaginationConfig, filters: Record<string, FilterValue>, sorter: SorterResult<any> | SorterResult<any>[], extra: TableCurrentDataSource<any>) => void>;
    default: (pagination: TablePaginationConfig, filters: Record<string, FilterValue>, sorter: SorterResult<any> | SorterResult<any>[], extra: TableCurrentDataSource<any>) => void;
    };
    onResizeColumn: {
    type: PropType<(w: number, col: ColumnType_2<any>) => void>;
    default: (w: number, col: ColumnType_2<any>) => void;
    };
    rowSelection: {
    type: PropType<TableRowSelection<any>>;
    default: TableRowSelection<any>;
    };
    getPopupContainer: {
    type: PropType<GetPopupContainer>;
    default: GetPopupContainer;
    };
    scroll: {
    type: PropType<    {
    x?: string | number | true;
    y?: string | number;
    } & {
    scrollToFirstRowOnChange?: boolean;
    }>;
    default: {
    x?: string | number | true;
    y?: string | number;
    } & {
    scrollToFirstRowOnChange?: boolean;
    };
    };
    sortDirections: {
    type: PropType<SortOrder[]>;
    default: SortOrder[];
    };
    showSorterTooltip: {
    type: PropType<boolean | Partial<ExtractPropTypes<    {
    title: VueTypeValidableDef<any>;
    trigger: PropType<TriggerType | TriggerType[]>;
    open: {
    type: BooleanConstructor;
    default: any;
    };
    visible: {
    type: BooleanConstructor;
    default: any;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayInnerStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
    type: BooleanConstructor;
    default: any;
    };
    arrow: {
    type: PropType<boolean | {
    pointAtCenter?: boolean;
    }>;
    default: boolean | {
    pointAtCenter?: boolean;
    };
    };
    autoAdjustOverflow: {
    type: PropType<boolean | AdjustOverflow>;
    default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
    type: BooleanConstructor;
    default: any;
    };
    align: {
    type: PropType<AlignType>;
    default: AlignType;
    };
    builtinPlacements: {
    type: PropType<BuildInPlacements>;
    default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    "onUpdate:visible": PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    "onUpdate:open": PropType<(vis: boolean) => void>;
    }>>>;
    default: boolean | Partial<ExtractPropTypes<    {
    title: VueTypeValidableDef<any>;
    trigger: PropType<TriggerType | TriggerType[]>;
    open: {
    type: BooleanConstructor;
    default: any;
    };
    visible: {
    type: BooleanConstructor;
    default: any;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayInnerStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
    type: BooleanConstructor;
    default: any;
    };
    arrow: {
    type: PropType<boolean | {
    pointAtCenter?: boolean;
    }>;
    default: boolean | {
    pointAtCenter?: boolean;
    };
    };
    autoAdjustOverflow: {
    type: PropType<boolean | AdjustOverflow>;
    default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
    type: BooleanConstructor;
    default: any;
    };
    align: {
    type: PropType<AlignType>;
    default: AlignType;
    };
    builtinPlacements: {
    type: PropType<BuildInPlacements>;
    default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    "onUpdate:visible": PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    "onUpdate:open": PropType<(vis: boolean) => void>;
    }>>;
    };
    transformCellText: {
    type: PropType<TransformCellText<any>>;
    default: TransformCellText<any>;
    };
    }>> & Readonly<{}>, () => JSX.Element, {}, {}, {}, {
    scroll: {
    x?: string | number | true;
    y?: string | number;
    } & {
    scrollToFirstRowOnChange?: boolean;
    };
    size: SizeType;
    footer: PanelRender<any>;
    title: PanelRender<any>;
    onChange: (pagination: TablePaginationConfig, filters: Record<string, FilterValue>, sorter: SorterResult<any> | SorterResult<any>[], extra: TableCurrentDataSource<any>) => void;
    components: TableComponents<any>;
    direction: "rtl" | "ltr";
    tableLayout: TableLayout;
    columns: ColumnsType<any>;
    sticky: boolean | TableSticky;
    prefixCls: string;
    id: string;
    getPopupContainer: GetPopupContainer;
    rowClassName: string | RowClassName<any>;
    locale: TableLocale;
    expandIcon: RenderExpandIcon<any>;
    loading: boolean | Partial<ExtractPropTypes<    {
    prefixCls: StringConstructor;
    spinning: {
    type: BooleanConstructor;
    default: any;
    };
    size: PropType<SpinSize>;
    wrapperClassName: StringConstructor;
    tip: VueTypeValidableDef<any>;
    delay: NumberConstructor;
    indicator: VueTypeValidableDef<any>;
    }>>;
    bordered: boolean;
    onExpand: (expanded: boolean, record: any) => void;
    pagination: false | TablePaginationConfig;
    dataSource: any[];
    rowKey: string | GetRowKey<any>;
    expandedRowKeys: Key[];
    defaultExpandedRowKeys: Key[];
    expandedRowRender: ExpandedRowRender<any>;
    expandRowByClick: boolean;
    onExpandedRowsChange: (expandedKeys: Key[]) => void;
    defaultExpandAllRows: boolean;
    showExpandColumn: boolean;
    expandedRowClassName: RowClassName<any>;
    childrenColumnName: string;
    rowExpandable: (record: any) => boolean;
    transformCellText: TransformCellText<any>;
    onResizeColumn: (w: number, col: ColumnType_2<any>) => void;
    customHeaderRow: GetComponentProps<ColumnType<any>[]>;
    customRow: GetComponentProps<any>;
    expandFixed: boolean | "left" | "right";
    showHeader: boolean;
    'onUpdate:expandedRowKeys': (expandedKeys: Key[]) => void;
    sortDirections: SortOrder[];
    showSorterTooltip: boolean | Partial<ExtractPropTypes<    {
    title: VueTypeValidableDef<any>;
    trigger: PropType<TriggerType | TriggerType[]>;
    open: {
    type: BooleanConstructor;
    default: any;
    };
    visible: {
    type: BooleanConstructor;
    default: any;
    };
    placement: PropType<TooltipPlacement>;
    color: PropType<LiteralUnion<PresetColorType>>;
    transitionName: StringConstructor;
    overlayStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayInnerStyle: {
    type: PropType<CSSProperties>;
    default: CSSProperties;
    };
    overlayClassName: StringConstructor;
    openClassName: StringConstructor;
    prefixCls: StringConstructor;
    mouseEnterDelay: NumberConstructor;
    mouseLeaveDelay: NumberConstructor;
    getPopupContainer: PropType<(triggerNode: HTMLElement) => HTMLElement>;
    arrowPointAtCenter: {
    type: BooleanConstructor;
    default: any;
    };
    arrow: {
    type: PropType<boolean | {
    pointAtCenter?: boolean;
    }>;
    default: boolean | {
    pointAtCenter?: boolean;
    };
    };
    autoAdjustOverflow: {
    type: PropType<boolean | AdjustOverflow>;
    default: boolean | AdjustOverflow;
    };
    destroyTooltipOnHide: {
    type: BooleanConstructor;
    default: any;
    };
    align: {
    type: PropType<AlignType>;
    default: AlignType;
    };
    builtinPlacements: {
    type: PropType<BuildInPlacements>;
    default: BuildInPlacements;
    };
    children: ArrayConstructor;
    onVisibleChange: PropType<(vis: boolean) => void>;
    "onUpdate:visible": PropType<(vis: boolean) => void>;
    onOpenChange: PropType<(vis: boolean) => void>;
    "onUpdate:open": PropType<(vis: boolean) => void>;
    }>>;
    rowSelection: TableRowSelection<any>;
    }> | undefined>;
    selectedRowKeys: ComputedRef<(string | number)[]>;
    setBtnLoading: (code: string, value: boolean) => void;
    selectedRecords: ComputedRef<D[]>;
    $form: ComputedRef<Recordable<any> | undefined>;
    getFormData: () => Partial<F>;
    setLoadings: (value: boolean | Record<string, boolean>) => void;
    resizeTable: () => void;
    }>): void;
    attrs: any;
    slots: {};
    emit: {
        (event: "toolbarButtonClick", data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }): void;
        (event: "toolbarToolClick", data: {
            data: D[];
            code: string;
            selectedKeys: Array<string | number>;
            records: D[];
        }): void;
        (event: "pick", data: {
            row: D;
            field: string;
        }): void;
        (event: "resetQuery"): void;
    };
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare type PGridFormConfig<F extends Recordable = Recordable> = Omit<PFormProps<F>, 'items'> & {
    /** 查询表单项;传入后自动追加查询、重置按钮,并优先于 items */
    searchItems?: PFormItemProps<F>[];
    /** 兼容旧用法,按原配置渲染,不自动追加按钮 */
    items?: PFormItemProps<F>[];
};

export declare interface PGridInstance<D extends Recordable = Recordable, F extends Recordable = Recordable> {
    commitProxy: {
        query: () => Promise<D[]>;
        reload: () => Promise<D[]>;
        reloadPage: () => Promise<D[]>;
        passQuery: (query: Partial<F>, lazy?: boolean) => Promise<void | D[]>;
        forcePassQuery: (query: Partial<F>, lazy?: boolean) => Promise<void | D[]>;
    };
    selectedRowKeys: string[] | number[];
    selectedRecords: D[];
    $table: Recordable;
    $form: Recordable;
    getFormData: () => Partial<F>;
    setLoadings: (value: boolean) => void;
    setBtnLoading: (code: string, status: boolean) => void;
    resizeTable: () => void;
}

export declare type PGridProps<D extends Recordable = Recordable, F extends Recordable = Recordable> = {
    selectConfig?: SelectConfig<D>;
    rowKey?: string;
    striped?: boolean;
    manualFetch?: boolean;
    align?: 'left' | 'right' | 'center';
    formConfig?: PGridFormConfig<F>;
    columns?: ColumnProps<D>[];
    toolbarConfig?: ToolbarConfig;
    pageConfig?: PageConfig;
    proxyConfig?: ProxyConfig<D, F>;
    tableConfig?: TableProps<D>;
    scrollMode?: 'outer' | 'inner';
    /**
     * 为 true 时根容器按视口从左上角铺满(与 v-rest 同源),用于外层未声明高度、靠内部撑开的布局。
     * 偏移见 `autoBoxSizeOffset`。
     */
    autoBoxSize?: boolean;
    /**
     * `autoBoxSize` 时距视口右侧/底部的预留像素;数字或 `"12px"` 同时作用于两侧;对象可分别指定 `right` / `bottom`。
     * 未传时使用 `setUIKitConfig({ grid: { autoBoxSizeOffset } })` 的全局值。
     */
    autoBoxSizeOffset?: number | string | {
        right?: number;
        bottom?: number;
    };
    lazyReset?: boolean;
    /**
     * 表格纵向滚动区额外预留像素:在 `tableWrapper` 高度内扣减表头、底栏后,再从 body 可滚动高度中减去本值,避免末行与滚动条贴边或被裁切。可通过 `setUIKitConfig({ grid: { fitHeight } })` 或组件 `fitHeight` 按项目微调;库内全局默认见 `config`。
     */
    fitHeight?: number;
    /**
     * 适应展示区到页面顶部的canvas渲染高度 通常比table的小
     */
    fitCanvasHeight?: number;
    /**
     * 虚拟列表 Y区计算高度
     */
    renderY?: number;
    /**
     * 适应「外层高度由内容撑开」的布局(典型如弹窗 `PromisePicker`)。
     *
     * 开启后:
     * - 根容器/表体宿主不再 `flex:1` 强行撑满(避免父无固定高度时塌陷到 0);
     * - `a-table` 的纵向 `scroll.y` 作为「最多滚动到多少」的上限,由 `renderY` 显式指定;
     *   若不传 `renderY`,使用基于视口的默认值。内容少时不会出现行区域下方的大片空白。
     */
    fitContent?: boolean;
};

export declare const PGroupBlock: <F extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_7<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_7<Pick<Partial<{}> & Omit<{} & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, never> & PBlockProps<F> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    $form: ComputedRef<Recordable<any> | undefined>;
    }>): void;
    attrs: any;
    slots: {};
    emit: {};
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

declare type Position = {
    height: number;
    top: number;
    bottom: number;
    calculatedHeight: number;
};

export declare const PromisePicker: <D extends Recordable = Recordable, F extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_8<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_8<Pick<Partial<{}> & Omit<{} & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, never> & PromisePickerProps<D, F> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    pick: () => Promise<D[] | {
    row: D;
    field?: string;
    }>;
    pickMultiple: () => Promise<D[] | {
    row: D;
    field?: string;
    }>;
    grid: Ref<PGridInstance<D, Recordable<any>> | undefined, PGridInstance<D, Recordable<any>> | undefined>;
    hide: () => void;
    }>): void;
    attrs: any;
    slots: {};
    emit: {};
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare interface PromisePickerInstance<D extends Recordable = Recordable> {
    pick: () => Promise<{
        row: D;
        field?: string;
    }>;
    pickMultiple: () => Promise<D[]>;
    grid: PGridInstance<D>;
    hide: () => void;
}

export declare interface PromisePickerProps<D extends Recordable = Recordable, F extends Recordable = Recordable> {
    gridSetting: PGridProps<D, F>;
    title?: string;
    width?: string | number;
    multipleAllowEmpty?: boolean;
    bodyStyle?: Recordable;
    beforePick?: (rowOrRows: D | Array<D>) => Promise<void>;
}

declare interface PropOptions<T = any, D = T> {
    type?: PropType<T> | true | null
    required?: boolean
    default?: D | ((props: Record<string, unknown>) => D) | null | undefined
    validator?(value: unknown): boolean
}

export declare interface ProxyConfig<D extends Recordable = Recordable, F extends Recordable = Recordable> {
    response?: ResponsePathConfig<D>;
    ajax: AjaxConfig<F>;
}

export declare const PSearchForm: <F extends Recordable = Recordable>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_2<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal_2<Pick<Partial<{}> & Omit<{
        readonly onSearch?: ((data: F) => any) | undefined;
        readonly onReset?: (() => any) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onReset" | "onSearch"> & PSearchFormProps<F> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<    {
    reset: () => void | undefined;
    $form: ComputedRef<Recordable<any> | undefined>;
    }>): void;
    attrs: any;
    slots: {};
    emit: ((evt: "search", data: F) => void) & ((evt: "reset") => void);
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};

export declare interface PSearchFormProps<F extends Recordable = Recordable> extends Omit<PFormProps<F>, 'items'> {
    data: F;
    items: PFormItemProps<F>[];
    loading?: boolean;
    /** 是否通过 PForm 的原有 reset 流程重置 data,默认 true */
    autoReset?: boolean;
    /** 是否自动追加查询、重置操作项,默认 true */
    showActions?: boolean;
}

declare type RectOptions = {
    borderWidth?: number;
    borderColor?: string;
    fillColor?: string;
    radius?: number | [number, number, number, number];
};

declare type Render = Function | string | undefined;

export declare interface RenderFormParams<F extends Recordable = Recordable> {
    data: F;
    field?: string;
}

export declare interface RenderOptions {
    /**
     * 渲染器名称
     */
    name?: string;
    /**
     * 目标组件渲染的参数
     */
    props?: {
        [key: string]: any;
    };
    /**
     * 目标组件渲染的属性
     */
    attrs?: {
        [key: string]: any;
    };
    /**
     * 目标组件渲染的事件
     */
    events?: {
        [key: string]: (...args: any[]) => any;
    };
    /**
     * 多目标渲染
     */
    children?: any[];
    /**
     * 选项
     */
    options?: IOption[];
    /**
     * 默认值
     */
    defaultValue?: any;
    /**
     * 校验触发器
     * @param cusFields field或者field数组
     */
    handleTrigger?: (cusFields?: string | string[]) => void;
    /**
     * 延迟校验触发器
     * @param cusFields field或者field数组
     * @param time 延迟时间
     */
    handleDelayTrigger?: (cusFields?: string | string[], time?: number) => void;
}

export declare interface RenderReadonlyParams<D extends Recordable = Recordable> {
    data: D;
    field?: string;
    title?: string;
}

export declare interface RenderTableParams<D extends Recordable = Recordable> {
    data?: D[];
    row: D;
    rowIndex?: number;
    field?: string;
    title?: string;
}

declare type RenderType = 'default' | 'both';

declare interface RenderWorkshop {
    renderItemContent?: (options: RenderOptions, params: RenderFormParams, defaultHandler: Recordable) => any;
    renderDefault?: (options: RenderOptions, params: RenderTableParams, defaultHandler: Recordable) => any;
    renderReadonly?: (options: RenderOptions, params: RenderReadonlyParams, defaultHandler: Recordable) => any;
    renderEdit?: (model: Ref<any>, options: RenderOptions, params: RenderTableParams, emit?: (e: 'blur', value: any) => void) => any;
}

export declare function resetUIKitConfig(): void;

export declare interface ResponsePathConfig<D extends Recordable = Recordable> {
    list?: string | ((res: Recordable) => D[]);
    result?: string | ((res: Recordable) => D[]);
    total?: string | ((res: Recordable) => D[]);
    message?: string | ((res: Recordable) => string | {
        status: string;
        content: string;
        icon?: string;
    });
}

export declare interface Responsive {
    xxs?: number;
    xs?: number;
    sm?: number;
    md?: number;
    lg?: number;
    xl?: number;
    xxl?: number;
}

declare class Row {
    private ctx;
    x: number;
    y: number;
    width: number;
    height: number;
    cells: Cell[];
    fixedCells: Cell[];
    noFixedCells: Cell[];
    calculatedHeightCells: Cell[];
    rowIndex: number;
    rowKey: string;
    rowType: RowType;
    data: any;
    calculatedHeight: number;
    constructor(ctx: Context, rowIndex: number, x: number | undefined, y: number | undefined, width: number | undefined, height: number | undefined, data: any, rowType?: RowType);
    update(): void;
    updateCalculatedHeight(): number;
    drawCenter(): void;
    drawFixed(): void;
    drawContainer(): void;
    drawFixedContainer(): void;
    drawHorizontalBorder(): void;
    drawFixedHorizontalBorder(): void;
}

/** 自定义行唯一标识,需返回稳定的字符串 */
declare type RowKeyMethod = (row: any) => string;

declare type RowMaxHeightData = {
    key: string;
    height: number;
};

declare type RowParams = {
    row: any;
    rowIndex: number;
    rowKey: string;
};

declare type RowType = CellType;

declare type Rule = {
    required?: boolean;
    pattern?: RegExp;
    validator?: RuleValidator;
    message?: string;
};

declare type RuleParam = {
    field: string;
    fieldValue: string;
    value: string;
    column: Column;
    colIndex: number;
    rowIndex: number;
    row: any;
    key: string;
    rowKey: string;
} & Rule;

declare type Rules = Rule[];

declare type RuleValidator = (rule: Rule, value: any, callback: (message?: string) => void) => void;

/** 与 e-virt-table `scrollbarMode` 对齐:`outer` 外部预留,`inner` 内部悬停显示 */
export declare type ScrollbarMode = 'outer' | 'inner';

declare type ScrollbarMode_2 = 'outer' | 'inner';

declare type SelectableMethod = (params: SelectableParams) => boolean | void;

declare type SelectableParams = {
    row: any;
    rowIndex: number;
};

export declare interface SelectConfig<D extends Recordable = Recordable> {
    multiple?: boolean;
    showCount?: boolean;
    getCheckboxProps?: (record: D) => {
        disabled?: boolean;
    };
}

declare type SelectorCellValueType = 'displayText' | 'value';

declare type SelectorOptions = {
    enable: boolean;
    xArr: number[];
    yArr: number[];
    xArrCopy: number[];
    yArrCopy: number[];
};

export declare function setUIKitConfig(config: Partial<UIKitConfig>): void;

export declare function setup(config?: Partial<UIKitConfig>): void;

declare type ShodowOptions = {
    side: 'left' | 'right' | 'top' | 'bottom';
    shadowWidth: number;
    colorStart: string;
    colorEnd: string;
    fillColor?: string | CanvasGradient | CanvasPattern;
};

declare type SortByType = 'number' | 'string' | 'date' | 'api' | ((a: any, b: any) => number);

declare type SortDirection = 'asc' | 'desc' | 'none';

declare type SortStateMapItem = {
    direction: SortDirection;
    timestamp: number;
};

declare type SpanInfo = {
    xArr: number[];
    yArr: number[];
    rowspan: number;
    colspan: number;
    height: number;
    width: number;
    offsetTop: number;
    offsetLeft: number;
    dataList: ChangeItem[];
};

declare type SpanMethod = (params: SpanParams) => SpanType | void;

declare type SpanParams = CellParams & {
    visibleLeafColumns: Column[];
    headIndex: number;
    headPosition: Position;
    visibleRows: any[];
    rows: any[];
};

declare type SpanType = {
    rowspan: number;
    colspan: number;
    relationRowKeys?: string[];
    relationColKeys?: string[];
    mergeRow?: boolean;
    mergeCol?: boolean;
};

declare interface SvgIcon extends IconType {
    configName?: ConfigTypeName;
    configColorName?: ConfigColorNameType;
}

declare type TextGlyph = {
    char: string;
    index: number;
    line: number;
    x: number;
    y: number;
    width: number;
    height: number;
};

declare type TextInfo = {
    x: number;
    y: number;
    width: number;
    height: number;
    left: number;
    right: number;
    top: number;
    bottom: number;
};

declare type TextLayout = {
    text: string;
    chars: string[];
    glyphs: TextGlyph[];
    lines: TextLayoutLine[];
    box: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    contentBox: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    contentY: number;
    lineHeight: number;
    font: string;
    color: string;
    align: Align;
    ellipsis: boolean;
};

declare type TextLayoutLine = {
    items: TextLineItem[];
    text: string;
    caretIndex: number;
    lineIndex: number;
    drawX: number;
    drawY: number;
    width: number;
    segments: TextLineSegment[];
};

declare type TextLineItem = {
    char: string;
    sourceIndex: number;
    ellipsis?: boolean;
};

declare type TextLineSegment = {
    char: string;
    itemIndex: number;
    sourceIndex: number;
    x: number;
    width: number;
};

export declare interface ToolbarButtonProps extends PButtonProps {
    code?: string;
    dropdowns?: ToolbarButtonProps[];
}

export declare interface ToolbarConfig {
    buttons?: Array<ToolbarButtonProps>;
    tools?: Array<ToolbarToolProps>;
    disabled?: boolean;
}

export declare interface ToolbarToolProps extends PButtonProps {
    code: string;
}

export declare interface TooltipConfig extends TooltipProps {
    title: TooltipProps['title'] | (() => any);
}

declare type TreeSelectMode = 'auto' | 'cautious' | 'strictly';

declare type TreeUtilPosition = 'none' | 'before' | 'after' | 'inside';

declare type Type = 'index' | 'selection' | 'index-selection' | 'tree' | 'selection-tree' | 'tree-selection' | 'number';

export declare interface UIKitConfig {
    form?: {
        labelCol?: any;
        wrapperCol?: any;
    };
    grid?: {
        align?: 'left' | 'right' | 'center';
        lazyReset?: boolean;
        fitHeight?: number;
        fitCanvasHeight?: number;
        striped?: boolean;
        /** `PGrid` / `PCanvasGrid` 分页是否显示「跳至」;`pageConfig.showQuickJumper` 优先 */
        showQuickJumper?: boolean;
        /** `PGrid` 开启 `autoBoxSize` 且未传 `autoBoxSizeOffset` 时的视口边距,与 props 类型一致 */
        autoBoxSizeOffset?: AutoViewportBoxOffsetInput;
    };
    canvasTable?: ConfigType;
    /**
     * 自定义 tooltip 渲染函数,替换全局所有 a-tooltip。
     * @param defaultSlot 原 tooltip 触发元素(图标等)
     * @param content tooltip 内容,字符串或返回 VNode 的函数
     */
    renderTooltip?: (defaultSlot: () => VNode, content: string | (() => VNode)) => VNode;
    /**
     * 自定义图标:按 `icon` 名字渲染;返回值为真时优先于 `@ant-design/icons-vue` 同名组件。
     */
    icon?: {
        render?: (name: string) => unknown;
        /**
         * CollapseCard / PFormGroup 折叠箭头:
         * - `string`:单图标,靠旋转区分(默认收起 0° / 展开 -90°)
         * - `[collapsed, expanded]`:双图标切换,不旋转
         */
        collapseExpandIcon?: string | [collapsed: string, expanded: string];
    };
}

declare type ValidateField = {
    key: string;
    rowKey: string;
};

declare type ValidateItemError = {
    rowKey: string;
    rowIndex?: number;
    key: string;
    message: string;
};

declare type ValidateResult = RuleParam[];

declare type ValidatorFunction<T> = (value: T) => boolean

declare type VerticalAlign = 'top' | 'middle' | 'bottom';

declare interface VueTypeBaseDef<
T = unknown,
D = DefaultType<T>,
U = T extends NativeType ? T : () => T
> extends PropOptions<T> {
    _vueTypes_name: string
    readonly def: (
    def?: D,
    ) => this & {
        default: U
    }
    readonly isRequired: this & { required: true }
}

declare interface VueTypeValidableDef<T = unknown> extends VueTypeBaseDef<T> {
    readonly validate: (
    fn: ValidatorFunction<T | unknown>,
    ) => this & { validator: ValidatorFunction<T | unknown> }
}

export declare function watchPreviousDeep<T extends object>(source: WatchSource<T>, cb: (value: T, oldValue: T, onCleanup: () => void) => void, options?: WatchOptions): WatchHandle;

export { }