import { ComponentPropsWithoutRef, ReactNode, ElementType, JSX, JSXElementConstructor } from 'react';
import { TooltipProps } from '../Tooltip';
import { AiMarkWithTooltipOrPopoverProps } from '../../types';
type IntrinsicAttributes<E extends keyof JSX.IntrinsicElements | JSXElementConstructor<unknown>> = JSX.LibraryManagedAttributes<E, ComponentPropsWithoutRef<E>>;
type FieldLabelOwnProps<E extends ElementType = ElementType> = AiMarkWithTooltipOrPopoverProps & {
    /** The HTML element to render */
    el?: E;
    /** Unique identifier for the label element */
    id?: string;
    /**
     * Whether the field is required. Shows a red asterisk (*) when true.
     * @default false
     */
    required?: boolean;
    /** Additional information to display in a tooltip */
    moreInfo?: ReactNode;
    /** ID for the sr-only description span, referenced via aria-describedby on the associated input. @internal */
    moreInfoId?: string;
    /**
     * Controls the open state of the more info tooltip.
     * @default false
     * @deprecated The more info tooltip is now triggered by a keyboard-accessible button. This prop has no effect.
     */
    moreInfoOpen?: TooltipProps["open"];
};
/**
 * Props for the FieldLabel component.
 */
export type FieldLabelProps<E extends ElementType = ElementType> = FieldLabelOwnProps<E> & Omit<IntrinsicAttributes<E>, keyof FieldLabelOwnProps>;
export declare const FieldLabel: <E extends ElementType = "label">(props: FieldLabelProps<E> & {
    ref?: React.Ref<any>;
}) => JSX.Element;
export {};
