import { UserAuth } from '@m4l/core';
import { AccountPopoverSlots } from './slots/AccountPopoverEnum';
import { ACCOUNT_KEY_POPOVER } from './constants';
import { Theme } from '@mui/material/styles';
import { ComponentPalletColor, Sizes } from '@m4l/styles';
import { M4LOverridesStyleRules } from '../../@types/augmentations';
export interface RightMenuData {
    /**
     * Esta propiedad hace referencia al título del módulo.
     * Tiene utilidades como:
     * - Definir el nombre en el encabezado del modulo cuando se agrega en la interfaz de la aplicación web.
     * ...
     */
    title: string;
    /**
     * Esta propiedad define el identificador para el tipo de módulo.
     * Tiene utiidades como:
     * - Define a la aplicación web cual de todos los módulos disponibles debe agregar en la interfaz de la aplicación web.
     * - Permite almacenar información del usuario basado en la interacción del módulo tomando en cuenta el identificador.
     */
    module_id?: string;
    /**
     * Esta propiedad define la ubicación del icono representativo del módulo.
     * Tiene utiidades como:
     * - Mostrar el icono representativo en el encabezado del módulo.
     */
    icon_url?: string;
    debug_port?: number;
}
export type AsyncTypes = 'unLoad' | 'loading' | 'loaded';
/**
 * Colección de datos que representa el valor del menú de administrativo propio del usuario.
 * Para obtener el detalle de la información del tipo de dato RightMenuData, se debe validar en la documentación de la librería @m4l/core.
 */
export interface MenuDataProvider {
    value: RightMenuData;
}
export interface AccountPopoverProps {
    /**
     * Procedimiento definido desde la instancia, va a ser activado por alguno de elementos del listado dinámico por medio del evento click.
     */
    itemHandleClick: (item: RightMenuData) => void;
    /**
     * Procedimiento encargado finalizar la sesión del cliente autenticado.
     */
    handleLogOut: VoidFunction;
    /**
     * Procedimiento definido desde la instancia, el cual tiene como propósito permitir visualizar el configurador de apariencia
     */
    settingsHandleOpen: () => void;
    /**
     * Dato que representa la versión actual de la aplicación web.
     */
    version: string;
    /**
     * Es una colección de datos relacionados al cliente autenticado, puede contener datos como: nombre, apellido, módulos activos entre otros.
     */
    userData: UserAuth | null | undefined;
    /**
     *  Opción de apariencia del componente.
     */
    variant?: 'standard';
    /**
     * Opción de color que pinta al componente.
     */
    color?: Extract<ComponentPalletColor, 'default'>;
    /**
     * Opciones de tamaño usado en las configuraciones de css del componente.
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * Test id para pruebas automatizadas.
     */
    dataTestid?: string;
}
export type AccountPopoverOwnerState = Pick<AccountPopoverProps, 'size'>;
export type AccountPopoverSlotsType = keyof typeof AccountPopoverSlots;
export type AccountPopoverStyles = M4LOverridesStyleRules<AccountPopoverSlotsType, typeof ACCOUNT_KEY_POPOVER, Theme>;
//# sourceMappingURL=types.d.ts.map