/**
 * Tiny in-house implementation of the `class-variance-authority` pattern
 * (a.k.a. `cva` / `tailwind-variants`). We roll our own to avoid a runtime
 * dependency while keeping the API surface compatible with the shadcn /
 * cva ecosystem — anyone familiar with cva can read these calls.
 *
 * @example
 *   const button = cv('inline-flex items-center', {
 *     variants: {
 *       intent: {
 *         primary: 'bg-primary text-white',
 *         secondary: 'bg-secondary text-foreground',
 *       },
 *       size: {
 *         sm: 'px-2 py-1 text-xs',
 *         md: 'px-4 py-2 text-sm',
 *       },
 *     },
 *     defaultVariants: { intent: 'primary', size: 'md' },
 *   })
 *
 *   button({ intent: 'secondary' })           // -> "inline-flex … bg-secondary …"
 *   button({ intent: 'secondary', class: 'shadow' })  // append extras
 */
type ClassValue = string | undefined | false | null;
export type VariantsConfig = Record<string, Record<string, ClassValue>>;
type VariantSelection<V extends VariantsConfig> = {
    [K in keyof V]?: keyof V[K];
};
interface CompoundVariant<V extends VariantsConfig> {
    [key: string]: keyof V[keyof V] | Array<keyof V[keyof V]> | ClassValue;
    class?: ClassValue;
}
export interface CvConfig<V extends VariantsConfig> {
    variants: V;
    defaultVariants?: VariantSelection<V>;
    compoundVariants?: Array<CompoundVariant<V>>;
}
export type VariantProps<F extends (...args: any) => any> = Omit<NonNullable<Parameters<F>[0]>, 'class' | 'className'>;
/**
 * Build a variant-aware class generator.
 *
 * The returned function accepts the variant selection plus an optional
 * `class` / `className` escape hatch and returns the combined Tailwind
 * class string. Compound variants run after the base + per-variant
 * classes, so they take precedence when the Tailwind ordering matters.
 */
export declare function cv<V extends VariantsConfig>(base: ClassValue, config: CvConfig<V>): (props?: VariantSelection<V> & {
    class?: ClassValue;
    className?: ClassValue;
}) => string;
export {};
//# sourceMappingURL=cv.d.ts.map