/** * Joins the truthy class-name values with single spaces, skipping the rest. * * @internal */ export declare function cx(...values: Array): string; /** The attribute bag {@link skdxPart} returns, spread onto a part's root element. */ export interface SkdxPartAttributes { className: string; 'data-part': string; 'data-skdx-component'?: string | undefined; } /** * Builds the class and `data-*` hooks for one part of one component; spread after the consumer's `{...props}` so the merged `className` wins instead of being silently deleted. * * @param component - Family name in kebab-case, e.g. `'button'`, `'tree-select'`. Becomes the `skdx-` class stem and, on the root, `data-skdx-component`. * @param part - Part name from the family's `styling.cssParts`, or `'root'`. * @param className - The consumer's `className`, merged in. Pass `props.className`. * @param inheritedComponent - A `data-skdx-component` already on the incoming props, which wins. * * @example * ```tsx * skdxPart('button', 'root', 'product-save'); * // => { className: 'skdx-button product-save', 'data-part': 'root', 'data-skdx-component': 'button' } * * skdxPart('button', 'icon'); * // => { className: 'skdx-button__icon', 'data-part': 'icon' } * ``` */ export declare function skdxPart(component: string, part: string, className?: string, inheritedComponent?: string): SkdxPartAttributes;