import type { ClassValue } from "clsx";
import type { TransformKey, ItFn, AsCondition, AsConditionFn, VariantsSchema, RestrictedVariantsKey, StrictVariantsSchema, VariantsOf, VariantOptions, VariantFn, VariantGroup, CompoundVariant, KlassOptions, KlassFn, ConditionSchema, RevariantOptions, RevariantFn, RevariantGroup, ReklassOptions, ReklassFn } from "./types";
/**
 *
 * @param options variant options
 * @returns variant function
 *
 * @see {@link https://klass.pages.dev/klass/core.html#variant | variant}
 */
declare const variant: <T extends {
    [type: string]: ClassValue;
}>(options: VariantOptions<T>) => VariantFn<T>;
/**
 *
 * @param options variants options
 * @param config additional config
 * @returns klass function
 *
 * @example
 * klass({
 *  base: "base",
 *  variants: {
 *    color: {
 *      neutral: "color-neutral",
 *      primary: "color-primary"
 *    },
 *    size: {
 *      sm: "size-sm",
 *      md: "size-md",
 *      lg: "size-lg"
 *    }
 *  },
 *  defaultVariants: {
 *    color: "primary",
 *    size: "md"
 *  },
 * });
 *
 * @see {@link https://klass.pages.dev/klass/core.html#klass | klass}
 */
declare const klass: <T extends StrictVariantsSchema>(options: KlassOptions<T>, config?: {
    it?: ItFn;
}) => KlassFn<T>;
/**
 *
 * @param options responsive variant options
 * @param config additional config
 * @returns revariant function
 *
 * @see {@link https://klass.pages.dev/klass/core.html#revariant | revariant}
 */
declare const revariant: <C extends ConditionSchema, T extends {
    [type: string]: ClassValue;
}>(options: RevariantOptions<C, T>, config?: {
    as?: AsCondition;
}) => RevariantFn<C, T>;
/**
 *
 * @param options responsive variants options
 * @param config additional config
 * @returns reklass function
 *
 * @example
 * reklass({
 *  conditions: {
 *    base: "",
 *    sm: "sm:",
 *    md: "md:",
 *    lg: "lg:",
 *    xl: "xl:",
 *    xxl: "2xl:"
 *  },
 *  defaultCondition: "base",
 *  variants: {
 *    m: {
 *      "0": "m-0",
 *      "1": "m-1",
 *      "2": "m-2",
 *      "3": "m-3",
 *      "4": "m-4"
 *    },
 *    p: {
 *      "0": "p-0",
 *      "1": "p-1",
 *      "2": "p-2",
 *      "3": "p-3",
 *      "4": "p-4"
 *    }
 *  }
 * });
 *
 * @see {@link https://klass.pages.dev/klass/core.html#reklass | reklass}
 */
declare const reklass: <C extends ConditionSchema, T extends VariantsSchema>(options: ReklassOptions<C, T>, config?: {
    as?: AsCondition;
    it?: ItFn;
}) => ReklassFn<C, T>;
export type { ClassValue, TransformKey, ItFn, AsCondition, AsConditionFn, VariantsSchema, RestrictedVariantsKey, StrictVariantsSchema, VariantsOf, VariantOptions, VariantFn, VariantGroup, CompoundVariant, KlassOptions, KlassFn, ConditionSchema, RevariantOptions, RevariantFn, RevariantGroup, ReklassOptions, ReklassFn, };
export { variant, klass, revariant, reklass };
