export type ClassValue = string | number | undefined | null;
export type ClassProps = Record<string, ClassValue>;
export type ThemeDataAttributes = Record<`data-${string}`, string | undefined>;
export type ThemeProps = {
    className: string;
} & ThemeDataAttributes;
/**
 * Reflect Astryx visual props as `data-*` attributes.
 *
 * Keys are kebab-cased (`listStyle` → `data-list-style`) and values are the
 * literal prop values, including numeric values (`level: 1` → `data-level="1"`).
 * Nullish values are omitted.
 */
export declare function themeDataAttributes(props?: ClassProps): ThemeDataAttributes;
/**
 * Build the props object components should spread onto the same element that
 * receives the stable Astryx class name.
 *
 * This emits the stable astryx class plus the data-attribute reflection
 * surface. For example:
 *
 * ```ts
 * themeProps('button', { variant: 'primary', size: 'sm' })
 * // → { className: 'astryx-button primary sm', data-variant: 'primary', data-size: 'sm' }
 * ```
 */
export declare function themeProps(component: string, props?: ClassProps): ThemeProps;
//# sourceMappingURL=themeProps.d.ts.map