import { ComponentPropsWithoutRef, ReactNode } from 'react';
import { ExperimentalLabelProps } from './Label';
type FieldStatus = 'info' | 'warning' | 'error' | 'success';
type FieldProps = {
    id: string;
    'aria-label'?: string;
    'aria-labelledby'?: string;
    'aria-describedby'?: string;
    'aria-invalid'?: boolean;
    'aria-errormessage'?: string;
};
export interface ExperimentalBaseFieldProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {
    fieldId?: string;
    label?: ExperimentalLabelProps['children'] | {
        text: ExperimentalLabelProps['children'];
        icon?: ExperimentalLabelProps['icon'];
    };
    description?: ReactNode;
    placeholder?: string;
    currentLength?: number;
    maxLength?: number;
    /** @default "info" */
    status?: FieldStatus;
    message?: ReactNode;
    children: (renderProps: {
        fieldProps: FieldProps;
        status: FieldStatus;
    }) => ReactNode;
}
export declare const ExperimentalBaseField: import('react').ForwardRefExoticComponent<ExperimentalBaseFieldProps & import('react').RefAttributes<HTMLDivElement>>;
interface ExperimentalBaseFieldBoxProps extends ComponentPropsWithoutRef<'div'> {
    /** @default false */
    hoverStyles?: boolean;
    /** @default false */
    focusStyles?: boolean;
    /**
     * If `true`, the content of the box will not participate in the computation of any ancestor's width.
     * This is useful when it contains form controls like `input` and `textarea`, which have a default but useless intrinsic width.
     * @default false
     */
    ignoreContentWidth?: boolean;
}
export declare const ExperimentalBaseFieldBox: import('react').ForwardRefExoticComponent<ExperimentalBaseFieldBoxProps & import('react').RefAttributes<HTMLDivElement>>;
export {};
//# sourceMappingURL=BaseField.d.ts.map