import type { Ref, VNode } from 'vue';
import type { RectProps } from '@visactor/vtable/es/ts-types/common';
export interface DynamicRenderEditorParams {
    row: number;
    col: number;
    value: any;
    refValue: Ref<any>;
    record: any;
    table: any;
    onChange: (value: any) => void;
}
export interface DynamicRenderEditorConfig {
    editBefore?: (editorContext?: any) => boolean | Promise<boolean>;
    disablePrompt?: string;
    validateValue?: (params?: ValidateValueParams) => boolean | Promise<boolean>;
    invalidPrompt?: string;
}
export interface ValidateValueParams {
    row: number;
    col: number;
    value?: any;
    oldValue?: any;
    table?: any;
}
export declare class DynamicRenderEditor {
    wrapContainer: HTMLElement;
    tableContainer: HTMLElement | null;
    currentValue: string | null;
    nodeMap?: Map<string | number, Map<string | number, (params: DynamicRenderEditorParams) => any>>;
    currentContext?: any;
    constructor(currentContext?: any);
    registerNode(tableId?: string | number, key?: string | number, getNode?: () => (params: DynamicRenderEditorParams) => any): void;
    getNode(tableId?: string | number, key?: string | number): (params: DynamicRenderEditorParams) => any;
    removeNode(tableId: string | number): void;
    release(tableId?: string | number): void;
    onStart(editorContext: any): Promise<void>;
    createElement(editorContext: any): Promise<boolean>;
    checkToPassAppContext(vnode: VNode, table: any): void;
    getColumnKeyField(column: any): any;
    getValue(): string;
    setValue(value: any): void;
    adjustPosition(rect: RectProps): void;
    validateValue(value?: any, oldValue?: any, editCell?: {
        col: number;
        row: number;
    }, table?: any): Promise<boolean>;
    onEnd(): void;
    isEditorElement(target: HTMLElement): boolean;
    isClickEditorElement(target: HTMLElement): boolean;
}
