import type { ReactNode } from 'react';
import { type FieldFrameProps, type FieldFrameRenderProps, type FieldFrameMessageProps } from './FieldFrame';
export type WidgetFieldProps = Omit<FieldFrameProps, 'label'> & {
    /** Optional id applied to the control element. */
    id?: string;
    /** Field label displayed above the control. */
    label: string | ReactNode;
    /** Render-prop child allowing access to the generated control id. */
    children: (props: FieldFrameRenderProps) => ReactNode;
};
/**
 * Backwards-compatible wrapper around FieldFrame. Maintains the historic WidgetField
 * API while delegating all layout and messaging behaviour to the shared frame.
 */
export declare function WidgetField(props: WidgetFieldProps): import("react/jsx-runtime").JSX.Element;
export type WidgetFieldMessageProps = FieldFrameMessageProps;
/**
 * Utility helper for widgets that render their own control container (e.g. boolean toggle)
 * but still need consistent spacing for error/hint copy.
 */
export declare function WidgetFieldMessage(props: WidgetFieldMessageProps): import("react/jsx-runtime").JSX.Element;
