import * as React from 'react';
export type FieldState = 'default' | 'success' | 'destructive';
interface FieldContextValue {
    id: string;
    descriptionId: string;
    errorId: string;
    state: FieldState;
    disabled?: boolean;
    required?: boolean;
    layout: 'stacked' | 'inline';
}
/** Optional context hook for components that can work standalone. */
declare function useFieldContextOptional(): FieldContextValue | null;
/** Hook to get field control props from context for custom form controls. */
declare function useFieldControlProps(): {
    id?: undefined;
    'aria-invalid'?: undefined;
    'aria-describedby'?: undefined;
    'aria-required'?: undefined;
    disabled?: undefined;
    required?: undefined;
    state?: undefined;
} | {
    id: string;
    'aria-invalid': boolean | undefined;
    'aria-describedby': string | undefined;
    'aria-required': boolean | undefined;
    disabled: boolean | undefined;
    required: boolean | undefined;
    state: FieldState;
};
export interface FieldProps extends React.HTMLAttributes<HTMLDivElement> {
    layout?: 'stacked' | 'inline';
    state?: FieldState;
    disabled?: boolean;
    required?: boolean;
    children: React.ReactNode;
}
declare function FieldRoot({ layout, state, disabled, required, className, children, ...props }: FieldProps): import("react/jsx-runtime").JSX.Element;
declare namespace FieldRoot {
    var displayName: string;
}
export interface FieldTopProps extends React.HTMLAttributes<HTMLDivElement> {
}
declare function FieldTop({ className, children, ...props }: FieldTopProps): import("react/jsx-runtime").JSX.Element;
declare namespace FieldTop {
    var displayName: string;
}
export interface FieldTopRightProps extends React.HTMLAttributes<HTMLSpanElement> {
}
declare function FieldTopRight({ className, children, ...props }: FieldTopRightProps): import("react/jsx-runtime").JSX.Element;
declare namespace FieldTopRight {
    var displayName: string;
}
export interface FieldLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
    required?: boolean;
    labelIcon?: React.ReactNode;
}
declare function FieldLabel({ className, required, labelIcon, children, ...props }: FieldLabelProps): import("react/jsx-runtime").JSX.Element;
declare namespace FieldLabel {
    var displayName: string;
}
export interface FieldControlRenderProps {
    id: string;
    'aria-invalid'?: true;
    'aria-describedby'?: string;
    'aria-required'?: true;
    disabled?: boolean;
    required?: boolean;
    state?: FieldState;
}
export interface FieldControlProps {
    children: (props: FieldControlRenderProps) => React.ReactNode;
}
declare function FieldControl({ children }: FieldControlProps): React.ReactNode;
declare namespace FieldControl {
    var displayName: string;
}
export interface FieldBottomProps extends React.HTMLAttributes<HTMLDivElement> {
}
declare function FieldBottom({ className, children, ...props }: FieldBottomProps): import("react/jsx-runtime").JSX.Element;
declare namespace FieldBottom {
    var displayName: string;
}
export interface FieldBottomRightProps extends React.HTMLAttributes<HTMLSpanElement> {
}
declare function FieldBottomRight({ className, children, ...props }: FieldBottomRightProps): import("react/jsx-runtime").JSX.Element;
declare namespace FieldBottomRight {
    var displayName: string;
}
export interface FieldDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
}
declare function FieldDescription({ className, children, ...props }: FieldDescriptionProps): import("react/jsx-runtime").JSX.Element;
declare namespace FieldDescription {
    var displayName: string;
}
export interface FieldErrorProps extends React.HTMLAttributes<HTMLSpanElement> {
    children?: React.ReactNode;
}
declare function FieldError({ className, children, ...props }: FieldErrorProps): import("react/jsx-runtime").JSX.Element | null;
declare namespace FieldError {
    var displayName: string;
}
declare const Field: typeof FieldRoot & {
    Root: typeof FieldRoot;
    Top: typeof FieldTop;
    Label: typeof FieldLabel;
    TopRight: typeof FieldTopRight;
    Control: typeof FieldControl;
    Bottom: typeof FieldBottom;
    Description: typeof FieldDescription;
    BottomRight: typeof FieldBottomRight;
    Error: typeof FieldError;
};
export { Field, FieldBottom, FieldBottomRight, FieldControl, FieldDescription, FieldError, FieldLabel, FieldTop, FieldTopRight, useFieldContextOptional, useFieldControlProps, };
