import type { ComponentProps, ReactNode } from 'react';
import type { GDSComponentProps } from '@graphprotocol/gds-css';
import { type AddonValue } from './base/Addon.tsx';
import { type FieldProps } from './base/Field.tsx';
import { type RenderProp } from './base/Render.tsx';
import type { InputMeta } from './Input.meta.ts';
export type InputState = {
    inputProps: ComponentProps<'input'>;
    decoratedInput: ReactNode;
};
export interface InputProps extends Omit<ComponentProps<'input'>, 'children' | 'onChange' | 'size' | 'step'>, GDSComponentProps<typeof InputMeta> {
    /** @default 'text' */
    type?: 'text' | 'number' | 'email' | 'password' | 'search' | 'tel' | 'url' | undefined;
    label?: FieldProps['label'] | undefined;
    description?: FieldProps['description'] | undefined;
    placeholder?: string | undefined;
    name?: string | undefined;
    value?: string | undefined;
    defaultValue?: string | undefined;
    onChange?: ((value: string) => void) | undefined;
    maxLength?: number | undefined;
    /** @default false */
    disabled?: boolean | undefined;
    /** @default false */
    readOnly?: boolean | undefined;
    autoComplete?: 'one-time-code' | (string & {}) | undefined;
    status?: FieldProps['status'] | undefined;
    message?: FieldProps['message'] | undefined;
    addon?: AddonValue | undefined;
    unit?: ReactNode | undefined;
    action?: ReactNode | undefined;
    renderInput?: RenderProp<InputState> | undefined;
}
export declare function Input({ type, size, label, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, description, placeholder, name, value: controlledValue, defaultValue, onChange, min, max, maxLength, disabled, readOnly, status, message, addon, unit, action, className, renderInput, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Input.d.ts.map