import { Slot as RadixSlot } from 'radix-ui';
import { HTMLAttributes, PropsWithChildren, ReactNode, Ref } from 'react';
export declare const Slottable: typeof RadixSlot.Slottable;
export type SlotProps = PropsWithChildren<HTMLAttributes<HTMLElement>> & {
    ref?: Ref<HTMLElement>;
};
export declare const Slot: ({ ref, ...props }: SlotProps) => import("react/jsx-runtime").JSX.Element;
/**
 * When using Radix `Slot` component, it will consider its first child to merge its props with.
 * In some cases, you might need to wrap the top child with additional markup without breaking this behaviour.
 */
export declare const wrapPolymorphicSlot: (asChild: boolean | undefined, children: ReactNode, callback: (children: ReactNode) => ReactNode) => ReactNode;
