import { type CSSProperties, type ForwardedRef, type ForwardRefExoticComponent, type HTMLAttributes, type ReactNode, type RefAttributes } from 'react'; import { type ComposableProps, type SlottableProps, type ThemedClassName } from '@dxos/ui-types'; /** * Reconciles className properties from a parent slot. * - `className` is set by the Slot merge mechanism. * - `classNames` is the consumer-facing prop for theming overrides. * Use `composableProps` to reconcile both into a single `className`. */ export declare const composableProps:

({ className, classNames, role, style, ...props }: ComposableProps, { classNames: defaultClassNames, ...defaults }?: ThemedClassName>> | undefined) => { children?: import("react-i18next").ReactI18NextChild | Iterable; role: import("react").AriaRole; style: CSSProperties; className: string; }; /** * Factory for slottable components. * The implementation receives full `HTMLAttributes` so it can destructure `role`, `style`, etc. * Consumers see only `SlottableProps

` — a narrow type exposing `classNames`, `className`, * `children`, `asChild`, and the custom props `P`. * * @example * ```tsx * const MyPanel = slottable( * ({ children, asChild, border, ...props }, forwardedRef) => { * const Comp = asChild ? Slot : Primitive.div; * return ( * * {children} * * ); * }, * ); * ``` */ export declare function slottable(render: (props: SlottableProps

& HTMLAttributes, forwardedRef: ForwardedRef) => ReactNode): ForwardRefExoticComponent & RefAttributes>; /** * Factory for composable (leaf) components. * The implementation receives full `HTMLAttributes` so it can destructure `role`, `style`, etc. * Consumers see only `ComposableProps

` — a narrow type exposing `classNames`, `className`, * `children`, and the custom props `P`. * * For generic components, use `any` for the type parameter inside `composable` and * cast the result to restore the generic signature for consumers. * * @example * ```tsx * const Leaf = composable(({ children, ...props }, forwardedRef) => { * return ( * * ); * }); * ``` */ export declare function composable(render: (props: ComposableProps

& HTMLAttributes, forwardedRef: ForwardedRef) => ReactNode): ForwardRefExoticComponent & RefAttributes>; //# sourceMappingURL=slots.d.ts.map