import type { ClassNamesArgs } from '../../utils'; import type { ComponentThemeFromName } from '../components'; import type { BaseTheme } from '../components/utils'; type ElementNames = T extends { _element?: any; } ? keyof Required : never; type ModifierNames = T extends { _modifiers?: any; } ? Arrayify | { [key in keyof Required]?: boolean | null | undefined; } | undefined> : never; type Arrayify = T | T[]; export type ClassNameArgs = { _element?: ElementNames> | { [Key in ElementNames>]?: ModifierNames['_element']>[Key]>>; }; _modifiers?: ModifierNames>; }; export type ClassNameFunction = (props?: ClassNameArgs>>, extraClassnames?: ClassNamesArgs) => string; type UnwrapTheme = ThemeType extends (...args: any) => any ? ReturnType : ThemeType; export declare function createComponentClasses({ name, prefix }: { name: NameType; prefix?: string; }): ClassNameFunction; export {};