import { TPulsoTokens } from '@raiadrogasil/pulso-design-tokens';
import { IconName } from '@raiadrogasil/pulso-icons';

declare const getIconSize: {
    tiny: string;
    'extra-small': string;
    small: string;
    medium: string;
};

/**
 * Tipo que representa as cores disponíveis para ícones.
 * Extrai todas as chaves de TPulsoTokens que começam com "color" e mapeia seus valores correspondentes.
 */
type TIconColors = {
    [K in keyof TPulsoTokens as K extends `color${string}` ? K : never]: TPulsoTokens[K];
};
/**
 * Interface que define as propriedades do componente Icon.
 */
type TIconProps = Pick<React.ComponentProps<'i'>, 'aria-hidden'> & {
    symbol?: IconName;
    size?: keyof typeof getIconSize;
    color?: keyof TIconColors;
};

export { type TIconProps as T, type TIconColors as a, getIconSize as g };
