import { LitElement } from 'lit'; export interface OkMenuEntry { /** Identificador único de la entrada (clave que se emite en `ok-select`). */ id?: string; /** Texto visible de la entrada. */ label?: string; /** Nombre de un ionicon (o SVG/`data:` ya resuelto) pintado antes del label. */ icon?: string; /** Atajo de teclado mostrado a la derecha en mono (decorativo, p.ej. "⌘S"). */ shortcut?: string; /** Pinta la entrada en color de peligro (borrar, etc.). */ danger?: boolean; /** Deshabilita la entrada (no seleccionable, no abre submenú). */ disabled?: boolean; /** Estado marcado para roles checkbox/radio (dibuja el check a la izquierda). */ checked?: boolean; /** Rol ARIA del item: por defecto `menuitem`. */ role?: 'menuitem' | 'checkbox' | 'radio'; /** Si es `true`, dibuja una línea divisoria en lugar de una entrada. */ divider?: boolean; /** Si está presente (sin `id`/acción), dibuja una etiqueta de sección en mayúsculas. */ section?: string; /** Hijos: si tiene, la entrada abre un submenú en cascada (chevron, hover/teclado). */ children?: OkMenuEntry[]; } /** Lado horizontal/vertical de anclaje del panel respecto al disparador. */ export type OkMenuAnchor = 'br' | 'bl' | 'tr' | 'tl'; /** Ancho mínimo del panel. */ export type OkMenuWidth = 'sm' | 'md' | 'lg'; /** Modo de disparo: click en el trigger, o contextmenu (click derecho) en el área. */ export type OkMenuTrigger = 'click' | 'context'; export declare class OkMenu extends LitElement { static styles: import("lit").CSSResult; /** Entradas del menú (array declarativo). */ items: OkMenuEntry[]; /** Modo de disparo: `click` (sobre el slot) o `context` (click derecho). */ trigger: OkMenuTrigger; /** Lado de anclaje en modo click. */ anchor: OkMenuAnchor; /** Ancho mínimo del panel. */ width: OkMenuWidth; /** Estado abierto/cerrado (reflejado). */ open: boolean; /** Volteo horizontal calculado por computeAnchor (true → alinear a la derecha). */ private flipEnd; /** Volteo vertical calculado por computeAnchor (true → abrir hacia arriba). */ private flipAbove; /** Coordenadas del cursor en modo contextual (relativas al host). */ private ctxX; private ctxY; /** id del submenú abierto (uno por nivel raíz). */ private openSub; private onDocPointer; private onKeydown; private focusableItems; connectedCallback(): void; disconnectedCallback(): void; private onContextMenu; private onTriggerClick; private openMenu; private close; private measureAnchor; private activate; private isResolvedSvg; private renderIcon; private renderEntry; private toggleSub; private onItemKeydown; render(): unknown; } declare global { interface HTMLElementTagNameMap { 'ok-menu': OkMenu; } }