import { ComponentProps, ReactNode } from 'react';
import { ExperimentalLabelProps } from './Label';
import { OptionValue } from './shared';
import { ComponentCSSPropType } from './tailwind';
type FieldStatus = 'info' | 'warning' | 'error' | 'success';
type FieldProps = {
    'aria-label'?: string;
    'aria-labelledby'?: string;
    'aria-describedby'?: string;
    'aria-invalid'?: boolean;
    'aria-errormessage'?: string;
};
export interface ExperimentalBaseFieldProps extends Omit<ComponentProps<'div'>, 'children'> {
    /** @default "medium" */
    size?: ComponentCSSPropType<'field', 'size', 'medium'>;
    label?: ExperimentalLabelProps['children'] | {
        text: ExperimentalLabelProps['children'];
        icon?: ExperimentalLabelProps['icon'];
    };
    description?: ReactNode;
    placeholder?: string;
    value: string | {
        optionValue: OptionValue;
    };
    maxLength?: number;
    disabled: boolean | 'read-only';
    /** @default "info" */
    status?: FieldStatus;
    message?: ReactNode;
    children: (renderProps: {
        fieldProps: FieldProps;
        status: FieldStatus;
    }) => ReactNode;
}
export declare const ExperimentalBaseField: import('react').ForwardRefExoticComponent<Omit<ExperimentalBaseFieldProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
export declare const ExperimentalBaseFieldBox: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
export {};
//# sourceMappingURL=BaseField.d.ts.map