import React, { type HTMLProps, type ReactElement } from "react";
import { type VibeComponentProps } from "@vibe/shared";
export interface RefableProps extends React.PropsWithChildren & VibeComponentProps> {
children: ReactElement | ReactElement[] | string;
/**
* The wrapper element type to use for React components. Defaults to "span".
*/
wrapperElement?: "span" | "div";
}
/**
* Refable is a utility component that enables ref forwarding to children elements.
*
* For native HTML elements: Clones the child and merges refs and event handlers.
* For React components: Wraps in a span/div and attaches the ref to the wrapper.
*
* This allows Dialog to get a reference to the trigger element for positioning.
*/
export declare const Refable: React.ForwardRefExoticComponent & React.RefAttributes>;