import type { ICellHeaderPaths, IDimensionInfo, RectProps } from './common';
import type { CellLocation, FieldData, FieldDef } from './table-engine';
import type { Placement } from './table-engine';
export interface DropDownMenuHighlightInfo {
    col?: number;
    row?: number;
    field?: string | IDimensionInfo[];
    menuKey?: string;
}
type Icon = {
    width?: number;
    height?: number;
    svg?: string;
};
export type MenuListItem = string | {
    text?: string;
    type?: 'title' | 'item' | 'split';
    menuKey?: string;
    icon?: Icon;
    selectedIcon?: Icon;
    stateIcon?: Icon;
    children?: MenuListItem[];
};
export type PivotInfo = {
    value: string;
    dimensionKey: string;
    isPivotCorner: boolean;
    customInfo?: any;
};
export type MenuInstanceInfo = {
    type: MenuInstanceType;
    content: HTMLElement | MenuListItem[];
    position?: {
        x: number;
        y: number;
    };
    referencePosition?: {
        rect: RectProps;
        placement?: Placement;
    };
    pivotInfo?: PivotInfo;
};
export type MenuInstanceType = 'dropdown-menu' | 'context-menu' | 'container';
export type DropDownMenuOptions = {
    content: HTMLElement | MenuListItem[];
    position?: {
        x: number;
        y: number;
    };
    referencePosition?: {
        rect: RectProps;
        placement?: Placement;
    };
};
export type DropDownMenuEventArgs = {
    col: number;
    row: number;
    menuKey: string;
    text: string;
    highlight: boolean;
} & DropDownMenuEventInfo;
export type DropDownMenuEventInfo = {
    field?: FieldDef;
    value?: FieldData;
    dataValue?: FieldData;
    subIndex?: number;
    dimensionKey?: string | number;
    isPivotCorner?: boolean;
    customInfo?: any;
    cellHeaderPaths?: ICellHeaderPaths;
    cellLocation: CellLocation;
    event: Event;
};
export {};
