import type { MenuNavListItem } from "./_internal/menu-nav-list/MenuNavList.types";
/**
 * Traducciones del componente MenuComponent.
 * Todas las propiedades son opcionales para permitir traducciones parciales.
 */
export type MenuComponentTranslations = {
    /** Etiqueta del botón de menú hamburguesa en la barra inferior móvil */
    menuLabel?: string;
    /** Aria-label del botón para cerrar el sidebar en móvil */
    closeSidebarAriaLabel?: string;
    /** Aria-label de la barra de navegación inferior en móvil */
    mobileNavAriaLabel?: string;
    /** Texto alternativo del logo del comercio (se interpola con el nombre) */
    logoAlt?: string;
    /** Texto mostrado cuando nombre del comercio, usuario o título de ayuda no están definidos */
    notDefinedLabel?: string;
    /** Aria-label del botón para subir el contenido del menú (scroll arriba) */
    scrollUpAriaLabel?: string;
    /** Aria-label del botón para bajar el contenido del menú (scroll abajo) */
    scrollDownAriaLabel?: string;
};
export interface MenuComponentProps {
    commerceInfo: {
        logo: string;
        name: string;
    };
    userInfo: {
        avatar: string;
        name: string;
        role: string;
    };
    /**
     * Botón de ayuda al pie del sidebar. Si se omite, o si `title` / `redirect` están vacíos
     * tras quitar espacios, no se renderiza la sección (útil con controles tipo objeto en Storybook).
     */
    helpButton?: {
        title: string;
        redirect: string;
    };
    menuItems: {
        items: MenuNavListItem[];
        /**
         * Ruta actual (p. ej. location.pathname). La librería calcula la key seleccionada
         * comparando con los href de los ítems. Preferido frente a selectedKey.
         */
        selectedPath?: string;
        /** Key del ítem seleccionado. Si se pasa selectedPath, se ignora y se deriva internamente. */
        selectedKey?: string;
        /**
         * Se invoca al seleccionar un ítem. En móvil, si `source === 'bottomBar'` la app no debe abrir
         * el menú lateral (solo el botón hamburguesa debe abrirlo) para evitar parpadeos.
         */
        onSelect?: (key: string, href?: string, source?: "sidebar" | "bottomBar") => void;
    };
    isOpenSidebar?: boolean;
    onOpenSidebarChange?: (open: boolean) => void;
    /**
     * Key del grupo de items que se mostrarán en la barra inferior móvil.
     * Se muestran hasta 4 items del grupo + botón hamburguesa.
     * Si no se proporciona, no se muestra la barra inferior en móvil.
     */
    mobileBottomBarGroupKey?: string;
    /**
     * Si es true, muestra siempre el botón que abre el menú lateral en la barra inferior móvil,
     * aunque no haya items de overview o el menú esté malformado.
     * @default true
     */
    showNativeMenu?: boolean;
    /**
     * Traducciones i18n del componente.
     * Si no se proporciona, usa traducciones por defecto en español.
     */
    translations?: MenuComponentTranslations;
}
//# sourceMappingURL=Menu.types.d.ts.map