export interface ContextMenuOption {
    id: string;
    label: string;
    icon?: string;
    disabled?: boolean;
    danger?: boolean;
    onClick: () => void;
}
export interface ContextMenuSeparator {
    separator: true;
}
export type ContextMenuItem = ContextMenuOption | ContextMenuSeparator;
export interface ContextMenuProps {
    visible: boolean;
    position: {
        x: number;
        y: number;
    };
    options: ContextMenuItem[];
    onClose: () => void;
}
export declare const contextMenuProps: {
    visible: {
        type: BooleanConstructor;
        default: boolean;
    };
    position: {
        type: () => {
            x: number;
            y: number;
        };
        default: () => {
            x: number;
            y: number;
        };
    };
    options: {
        type: () => ContextMenuItem[];
        default: () => never[];
    };
    onClose: {
        type: FunctionConstructor;
        required: boolean;
    };
};
declare const _default: import("vue").DefineComponent<{
    visible: boolean;
    position: {
        x: number;
        y: number;
    };
    options: ContextMenuItem[];
    onClose: () => void;
}, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
    visible: boolean;
    position: {
        x: number;
        y: number;
    };
    options: ContextMenuItem[];
    onClose: () => void;
}> & Readonly<{}>, {
    visible: boolean;
    position: {
        x: number;
        y: number;
    };
    options: ContextMenuItem[];
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
