import { type ComponentProps, type ReactNode } from 'react';
import type { GDSComponentProps } from '@graphprotocol/gds-css';
import { type OptionValue } from '../../utils/index.ts';
import { type LabelProps } from '../Label.tsx';
import { FieldMeta } from './Field.meta.ts';
import { type RenderProp } from './Render.tsx';
export type FieldState = {
    inputProps: {
        placeholder: string;
        name: string | undefined;
        value: string | undefined;
        maxLength: number | undefined;
        disabled: boolean | undefined;
        readOnly: boolean | undefined;
        'aria-readonly': boolean | undefined;
        'aria-label'?: string | undefined;
        'aria-labelledby'?: string | undefined;
        'aria-describedby'?: string | undefined;
        'aria-invalid'?: boolean | undefined;
        'aria-errormessage'?: string | undefined;
        className: string;
    };
};
export interface FieldProps extends Omit<ComponentProps<'div'>, 'children'>, GDSComponentProps<typeof FieldMeta> {
    label: LabelProps['children'] | {
        content: LabelProps['children'];
        addon?: LabelProps['addon'];
    } | undefined;
    description: ReactNode | undefined;
    placeholder: string | undefined;
    name: string | undefined;
    value: string | {
        optionValue: OptionValue;
    };
    maxLength?: number | undefined;
    disabled: boolean | 'read-only';
    /** @default 'info' */
    status?: 'info' | 'warning' | 'error' | 'success' | undefined;
    message?: ReactNode | undefined;
    renderInput: RenderProp<FieldState>;
}
export declare const FieldRoot: {
    ({ ref: passedRef, size, label: passedLabel, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, description: passedDescription, placeholder, name, value, maxLength: passedMaxLength, disabled, status, message, className, style, renderInput, ...props }: FieldProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
export declare const FieldBox: {
    ({ className, children, ...props }: ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
    displayName: string;
};
//# sourceMappingURL=Field.parts.d.ts.map