/// <reference types="react" />
import type { BaseControlProps, BaseControlVisualLabelProps } from './types';
import type { WordPressComponentProps } from '../ui/context';
export { useBaseControlProps } from './hooks';
/**
 * `BaseControl` is a component used to generate labels and help text for components handling user inputs.
 *
 * ```jsx
 * import { BaseControl, useBaseControlProps } from '@wordpress/components';
 *
 * // Render a `BaseControl` for a textarea input
 * const MyCustomTextareaControl = ({ children, ...baseProps }) => (
 * 	// `useBaseControlProps` is a convenience hook to get the props for the `BaseControl`
 * 	// and the inner control itself. Namely, it takes care of generating a unique `id`,
 * 	// properly associating it with the `label` and `help` elements.
 * 	const { baseControlProps, controlProps } = useBaseControlProps( baseProps );
 *
 * 	return (
 * 		<BaseControl { ...baseControlProps } __nextHasNoMarginBottom={ true }>
 * 			<textarea { ...controlProps }>
 * 			  { children }
 * 			</textarea>
 * 		</BaseControl>
 * 	);
 * );
 * ```
 */
export declare const BaseControl: {
    ({ __nextHasNoMarginBottom, id, label, hideLabelFromVision, help, className, children, }: BaseControlProps): JSX.Element;
    VisualLabel: ({ className, children, ...props }: WordPressComponentProps<BaseControlVisualLabelProps, 'span'>) => JSX.Element;
};
/**
 * `BaseControl.VisualLabel` is used to render a purely visual label inside a `BaseControl` component.
 *
 * It should only be used in cases where the children being rendered inside `BaseControl` are already accessibly labeled,
 * e.g., a button, but we want an additional visual label for that section equivalent to the labels `BaseControl` would
 * otherwise use if the `label` prop was passed.
 *
 * @example
 * import { BaseControl } from '@wordpress/components';
 *
 * const MyBaseControl = () => (
 * 	<BaseControl help="This button is already accessibly labeled.">
 * 		<BaseControl.VisualLabel>Author</BaseControl.VisualLabel>
 * 		<Button>Select an author</Button>
 * 	</BaseControl>
 * );
 */
export declare const VisualLabel: ({ className, children, ...props }: WordPressComponentProps<BaseControlVisualLabelProps, 'span'>) => JSX.Element;
export default BaseControl;
//# sourceMappingURL=index.d.ts.map