import { INativewindBaseProps } from '../types';
import { type ClassValue } from 'clsx';
/**
* A function that takes in any number of class names and returns a single class name string
* that can be used in a React component's className prop. This function is useful for
* conditionally applying class names, as it will only include the class names that are
* truthy.
*
* @param {...ClassValue} inputs - Any number of class names to be merged
* @returns {string} A single class name string that can be used in a React component's
* className prop
*
* @example
* import { cn } from '@resk/nativewind'
import { StyleSheet } from 'react-native';
*
* const MyComponent = ({ isDisabled }) => {
* return (
*
* My Component
*
* )
* }
*/
export declare function cn(...inputs: ClassValue[]): string;
/**
* Normalizes component props by merging and formatting the className property.
*
* This utility function accepts an object of props that extend the INativewindBaseProps
* interface and returns a new object with all original props, but with the className
* property processed to ensure a consistent format. The className is merged using
* the `cn` function to handle conditional classNames.
*
* @template T - The type extending INativewindBaseProps, defaulting to any.
*
* @param {T} props - The component props including an optional className.
* @param {T} [defaultProps] - An optional object of default props to use if the input props are undefined.
* @returns {Omit & { className: string }} - A new props object with
* a normalized className string.
*
* @example
* const props = { className: "text-lg", disabled: true };
* const normalizedProps = normalizeProps(props);
* // normalizedProps.className will be a string formatted by `cn` function
*/
export declare function normalizeProps({ className, ...props }: T, defaultProps?: T): Omit & {
className: string;
};