import React from 'react';
import type { BaseProps } from '../BaseProps';
import type { InputStatusType } from '../Field/types';
import type { FieldStatusVariantMap } from './index';
/**
 * FieldStatus variant type. Extensible via module augmentation of FieldStatusVariantMap.
 */
export type FieldStatusVariant = keyof FieldStatusVariantMap;
export interface FieldStatusProps extends BaseProps<HTMLDivElement> {
    ref?: React.Ref<HTMLDivElement>;
    /**
     * The type of status to display.
     */
    type: InputStatusType;
    /**
     * The status message to display.
     */
    message: string;
    /**
     * Visual variant of the status message.
     * - 'attached': Overlaps with input above (used in Field)
     * - 'detached': Floats below with spacing (used in Switch, CheckboxInput)
     * @default 'attached'
     */
    variant?: FieldStatusVariant;
}
/**
 * A status message component for form fields.
 *
 * The `detached` variant renders a leading status icon before the message so
 * status is not conveyed by color or position alone (WCAG 1.4.1). The icon is
 * decorative for assistive tech (`aria-hidden`): the message text already names
 * the status in words and is announced through the live region. The `attached`
 * variant keeps its status affordance on the bordered input, so it renders no
 * icon here to avoid a duplicate. The `tooltip` variant renders no message box
 * at all — the input surfaces the status through a tooltip on its on-field
 * icon — so callers skip rendering FieldStatus for it.
 *
 * Screen-reader announcements go through the persistent `useAnnounce` live
 * regions (assertive for errors, polite otherwise) rather than `role`/
 * `aria-live` on the rendered element. Live regions that mount together with
 * their content are not reliably announced by assistive technology, and
 * FieldStatus is almost always conditionally rendered by its callers. The
 * message is announced whenever it appears — including on first mount — and
 * whenever it changes.
 *
 * @example
 * ```
 * <FieldStatus
 *   type="error"
 *   message="This field is required"
 * />
 * <FieldStatus
 *   type="warning"
 *   message="This will be visible to others"
 *   variant="detached"
 * />
 * ```
 */
export declare function FieldStatus({ ref, type, message, id, variant, xstyle, className, style, ...rest }: FieldStatusProps): React.JSX.Element;
export declare namespace FieldStatus {
    var displayName: string;
}
//# sourceMappingURL=FieldStatus.d.ts.map