import { ReactElement, ReactNode } from 'react';
import { IconProp, IconDefinition } from '@fortawesome/fontawesome-svg-core';
import { TooltipPosition } from '../../../shared/types/tooltip';
type AnyIconDefinition = IconProp | IconDefinition | {
    icon: IconDefinition['icon'];
    prefix?: string;
};
/**
 * Props para el componente TabContent
 */
export interface CardsWithAsideTabContentProps {
    /** Contenido del tab */
    children?: ReactNode;
    /** ID único del tab */
    id: string;
    /** Icono del tab (puede ser string o icono FontAwesome) */
    icon?: string | AnyIconDefinition;
    /** Tooltip que se muestra al hacer hover sobre el botón del tab */
    tooltip?: string;
    /** Posición del tooltip para este tab específico (sobrescribe la posición global) */
    tooltipPosition?: TooltipPosition;
    /** Componente personalizado a renderizar en lugar del contenido del children */
    Component?: ReactNode;
    /** Contenido del popup. Si se proporciona, el botón del tab abre un popup con este contenido en lugar de mostrar el tab */
    popup?: ReactNode;
    /** Clases CSS adicionales */
    className?: string;
    /** Estilos inline adicionales */
    style?: React.CSSProperties;
    /** Cualquier otra prop adicional */
    [key: string]: unknown;
}
/**
 * Props para el componente CardsWithAside
 */
export interface CardsWithAsideProps {
    /** Array de elementos TabContent que representan los tabs disponibles */
    children: ReactElement<CardsWithAsideTabContentProps>[];
    /** ID del tab activo actualmente. Si es null, no hay tab activo */
    activeCard?: string | null;
    /** Contenido inicial que se muestra cuando no hay tab activo */
    InitialContent?: ReactElement<Record<string, unknown>, string | React.ComponentType<Record<string, unknown>>>;
    /** Clases CSS adicionales para el contenedor principal */
    className?: string;
    /** Si es true, muestra un botón de opciones adicionales en la parte superior */
    moreOptions?: boolean;
    /** Handler que se ejecuta al hacer click en el botón de opciones adicionales */
    onClickMoreOptions?: (e: React.MouseEvent<HTMLButtonElement>) => void;
    /** Contenido del popup. Si se proporciona, el botón de opciones adicionales abre un popup con este contenido en lugar de ejecutar onClickMoreOptions */
    popup?: ReactNode;
    /** Ancho del componente (por defecto: 377px) */
    width?: string | number;
    /** Alto del componente (por defecto: 218px) */
    height?: string | number;
    /** Si es true, muestra los tooltips en los botones de tabs. Por defecto: true */
    showTooltips?: boolean;
    /** Posición global de los tooltips para todos los tabs (puede ser sobrescrita por cada tab). Por defecto: 'right' */
    tooltipPosition?: TooltipPosition;
}
export {};
//# sourceMappingURL=index.d.ts.map