/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { PropType } from 'vue';
import { LocalizationService } from '@progress/kendo-vue-intl';
import { MenuItemModel, MenuSelectEvent } from '@progress/kendo-vue-layout';
import { Offset } from '@progress/kendo-vue-popup';
import { GridContextMenuItemNames } from './enums';
/**
 * Represents the `GridContextMenuOptions`.
 */
export interface GridContextMenuOptions {
    /**
     * The contextmenu settings for the head of the data table.
     */
    head?: boolean | (GridContextMenuItemNames | MenuItemModel)[];
    /**
     * The contextmenu settings for the body of the data table.
     */
    body?: boolean | (GridContextMenuItemNames | MenuItemModel)[];
}
/**
 * Represents the `GridCellBaseOptions` object that are passed to the handler.
 */
export interface GridCellBaseOptions {
    /**
     * The data item associated with the cell.
     */
    dataItem?: any;
    /**
     * The field name of the column associated with the cell.
     */
    field?: string;
}
/**
 * @hidden
 */
export interface GridContextMenuItem extends MenuItemModel {
    name?: string;
    options?: string;
    items?: GridContextMenuItem[];
}
/**
 * @hidden
 */
export interface GridContextMenuProps {
    show: boolean;
    offset: Offset;
    onClose: () => void;
    onSelect: (e: {
        event: MenuSelectEvent;
        dataItem?: any;
        field?: string;
    }) => void;
    dataItem?: any;
    field?: string;
    items?: (GridContextMenuItemNames | GridContextMenuItem)[];
}
/**
 * @hidden
 */
export declare const contextMenuItemsMap: Record<string, GridContextMenuItem>;
/**
 * @hidden
 */
export declare const getDefaultHeadContextMenuItems: (options: {
    pdf?: boolean;
    sortable?: boolean;
    selectable?: boolean;
    editable?: boolean;
    reorderable?: boolean;
    clipboard?: boolean;
}) => GridContextMenuItemNames[];
/**
 * @hidden
 */
export declare const getDefaultBodyContextMenuItems: (options: {
    pdf?: boolean;
    sortable?: boolean;
    selectable?: boolean;
    editable?: boolean;
    rowReorderable?: boolean;
    clipboard?: boolean;
    pinnable?: boolean;
}) => GridContextMenuItemNames[];
/**
 * @hidden
 */
export declare const GridContextMenu: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    show: {
        type: BooleanConstructor;
        default: boolean;
    };
    offset: {
        type: PropType<Offset>;
        default: () => {
            left: number;
            top: number;
        };
    };
    dataItem: {
        type: ObjectConstructor;
        default: any;
    };
    field: {
        type: StringConstructor;
        default: any;
    };
    items: {
        type: PropType<(GridContextMenuItemNames | GridContextMenuItem)[]>;
        default: any;
    };
}>, {}, {}, {}, {
    localizeItem(item: GridContextMenuItem, ls: LocalizationService): GridContextMenuItem;
    menuItems(): GridContextMenuItem[] | undefined;
    handleSelect(event: MenuSelectEvent): void;
    handleClose(): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("select" | "close")[], "select" | "close", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    show: {
        type: BooleanConstructor;
        default: boolean;
    };
    offset: {
        type: PropType<Offset>;
        default: () => {
            left: number;
            top: number;
        };
    };
    dataItem: {
        type: ObjectConstructor;
        default: any;
    };
    field: {
        type: StringConstructor;
        default: any;
    };
    items: {
        type: PropType<(GridContextMenuItemNames | GridContextMenuItem)[]>;
        default: any;
    };
}>> & Readonly<{
    onSelect?: (...args: any[]) => any;
    onClose?: (...args: any[]) => any;
}>, {
    field: string;
    dataItem: Record<string, any>;
    items: (GridContextMenuItemNames | GridContextMenuItem)[];
    offset: Offset;
    show: boolean;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
