import { Point, ValuesType } from '../../../internal-types';
export type Editor = {
    id: string;
    selectedMap: Record<string, SelectType>;
    hasUndo: boolean;
    hasRedo: boolean;
    viewport: Viewport;
    focusTable: FocusTable | null;
    drawRelationship: DrawRelationship | null;
    hoverColumnMap: Record<string, boolean>;
    hoverRelationshipMap: Record<string, boolean>;
    openMap: Record<string, boolean>;
    draggableColumn: DraggableColumn | null;
    draggingColumnMap: Record<string, boolean>;
    sharedMouseTrackerMap: Record<string, SharedMouseTracker>;
};
export type Viewport = {
    width: number;
    height: number;
};
export type FocusTable = {
    tableId: string;
    columnId: string | null;
    focusType: FocusType;
    selectColumnIds: string[];
    prevSelectColumnId: string | null;
    edit: boolean;
};
export type DrawRelationship = {
    relationshipType: number;
    start: (Point & {
        tableId: string;
    }) | null;
    end: Point;
};
export type DraggableColumn = {
    tableId: string;
    columnIds: string[];
};
export type SharedMouseTracker = {
    id: string;
    x: number;
    y: number;
    nickname: string;
    timeoutId: any;
};
export declare const SelectType: {
    readonly table: "table";
    readonly memo: "memo";
};
export type SelectType = ValuesType<typeof SelectType>;
export declare const FocusType: {
    readonly tableName: "tableName";
    readonly tableComment: "tableComment";
    readonly columnName: "columnName";
    readonly columnDataType: "columnDataType";
    readonly columnNotNull: "columnNotNull";
    readonly columnUnique: "columnUnique";
    readonly columnAutoIncrement: "columnAutoIncrement";
    readonly columnDefault: "columnDefault";
    readonly columnComment: "columnComment";
};
export type FocusType = ValuesType<typeof FocusType>;
export declare const MoveKey: {
    ArrowUp: string;
    ArrowRight: string;
    ArrowDown: string;
    ArrowLeft: string;
    Tab: string;
};
export type MoveKey = ValuesType<typeof MoveKey>;
export declare const hasMoveKeys: (value: string) => boolean;
export declare const createEditor: () => Editor;
