/** * Utilitários para validação de propriedades de elementos customizados. * * Inclui tipos auxiliares e função para validar valores permitidos em props. */ export type TExtractProp = T[keyof T] extends infer U ? U : never; export type TValidProperty = TExtractProp<{ [K in keyof E]: E[K] extends T ? K : never; }>; export declare const BR_DENSITY_VALUES: readonly ["small", "medium", "large"]; export type BrDensityValue = (typeof BR_DENSITY_VALUES)[number]; export declare const isValidPropValue: (value: unknown, acceptedValues: readonly T[]) => value is T; export declare const normalizePropValue: (value: unknown, acceptedValues: readonly T[], fallbackValue: T, warning?: { component: string; property: string; }) => T; /** * Resolve um valor enumerado para uso interno sem alterar a prop recebida. * Valores nulos/indefinidos podem ser preservados para props opcionais. */ export declare const resolveAllowedPropValue: (host: Element, propertyName: string, value: unknown, acceptedValues: readonly T[], fallbackValue: T, options?: { allowNull?: boolean; allowUndefined?: boolean; }) => T | null | undefined; /** Resolve a densidade compartilhada para uso interno do componente. */ export declare const resolveDensity: (host: Element, value: unknown, options?: { allowNull?: boolean; allowUndefined?: boolean; propertyName?: string; }) => BrDensityValue | null | undefined; /** * Resolve uma prop numérica mantendo a entrada original e evitando valores * fora do contrato na renderização. * * Números finitos fora do intervalo são limitados ao extremo correspondente. * Valores que não podem ser convertidos para um número finito usam o fallback. * Valores nulos/indefinidos podem ser preservados para props opcionais. */ export declare const resolveNumberPropValue: (host: Element, propertyName: string, value: unknown, min: number, max: number, fallbackValue: number, options?: { allowNull?: boolean; allowUndefined?: boolean; }) => number | null | undefined; /** Resolve uma prop numérica que precisa ser um inteiro dentro de um intervalo. */ export declare const resolveIntegerPropValue: (host: Element, propertyName: string, value: unknown, min: number, max: number, fallbackValue: number, options?: { allowNull?: boolean; allowUndefined?: boolean; }) => number | null | undefined; /** Resolve uma prop numérica que precisa ser finita e estritamente positiva. */ export declare const resolvePositiveNumberPropValue: (host: Element, propertyName: string, value: unknown, max: number, fallbackValue: number, options?: { allowNull?: boolean; allowUndefined?: boolean; }) => number | null | undefined; /** * Valida se uma propriedade do elemento possui um valor permitido. * * Quando o valor atual não estiver na lista de aceitos, aplica `fallbackValue` * e registra um aviso no console para auxiliar o desenvolvimento. * * @param ACCEPTED_VALUES Lista de valores válidos. * @param fallbackValue Valor de fallback aplicado em caso de valor inválido. * @param element Referência do elemento que contém a propriedade. * @param propertyName Nome da propriedade a validar. */ export declare const validatePropValue: (ACCEPTED_VALUES: Readonly, fallbackValue: T, element: E, propertyName: TValidProperty) => void;