import { Maybe } from '@m4l/core';
import { Sizes } from '@m4l/styles';
import { M4LOverridesStyleRules } from '../../../@types/augmentations';
import { Theme } from '@mui/material';
import { TAGS_FORMATTER_KEY_COMPONENT } from './constants';
import { TagsFormatterSlots } from './slots/TagsFormatterEnum';
/**
 * Props de configuración de un tag
 */
export interface TagConfig {
    key?: number | string;
    label: string;
    backgroundColor: string;
    size?: Extract<Sizes, 'small' | 'medium'>;
    className?: string;
}
/**
 * Props del TagFormatter
 */
export interface TagsFormatterProps {
    tags: Maybe<TagConfig | TagConfig[]>;
    className?: string;
    dataTestId?: string;
    size?: Extract<Sizes, 'small' | 'medium'>;
}
/**
 * Props del renderTag
 */
export interface RenderTagProps {
    tag: TagConfig;
    size?: Extract<Sizes, 'small' | 'medium'>;
    className?: string;
}
/**
 * Owner state del TagFormatter
 */
export interface TagsFormatterOwnerState extends Pick<TagConfig, 'size'> {
    backgroundColor?: string;
}
/**
 * Tipos de slots disponibles para el TagFormatter
 */
export type TagsFormatterSlotsType = keyof typeof TagsFormatterSlots;
/**
 * Estilos aplicables al TagFormatter
 */
export type TagsFormatterStyles = M4LOverridesStyleRules<TagsFormatterSlotsType, typeof TAGS_FORMATTER_KEY_COMPONENT, Theme>;
//# sourceMappingURL=types.d.ts.map