import { GemElement, TemplateResult } from '@mantou/gem/lib/element'; import './compartment'; import './button'; import './options'; export declare type Menu = MenuItem[] | TemplateResult; export interface MenuItem { /**`---` is separator */ text: string | TemplateResult; description?: string | TemplateResult; tag?: string | TemplateResult; tagIcon?: string | DocumentFragment | Element; disabled?: boolean; danger?: boolean; selected?: boolean; handle?: () => void | Promise; menu?: Menu; } declare type MenuStore = { width?: string; maxHeight?: string; activeElement?: HTMLElement | null; openLeft?: boolean; maskClosable?: boolean; menuStack: { searchable?: boolean; openTop?: boolean; menu: Menu; x: number; y: number; header?: TemplateResult; }[]; }; declare type OpenMenuOptions = { /**auto calc `x`/`y` via `activeElement` */ activeElement?: HTMLElement | null; /**only work `activeElement`, only support first menu */ openLeft?: boolean; maskClosable?: boolean; /**only work nothing `activeElement` */ x?: number; /**only work nothing `activeElement` */ y?: number; /**work on all menu */ width?: string; /**only support first menu */ maxHeight?: string; /**only support first menu */ searchable?: boolean; /**only support first menu */ header?: TemplateResult; }; export declare const menuStore: import("@mantou/gem/lib/store").Store; /** * @customElement dy-menu */ export declare class DuoyunMenuElement extends GemElement { #private; static instance?: DuoyunMenuElement; static open(menu: Menu, options?: OpenMenuOptions): Promise; static confirm(text: string | TemplateResult, options: OpenMenuOptions & { danger?: boolean; okText?: string | TemplateResult; }): Promise; static close(): void; constructor(); mounted: () => () => void; render: () => TemplateResult; } export declare const ContextMenu: typeof DuoyunMenuElement; export {}; //# sourceMappingURL=menu.d.ts.map