import React, { ReactNode } from 'react';
import { TextInputProps } from './TextInput';
import { SelectInputProps } from './SelectInput';
import { SearchInputProps } from './SearchInput';
import { FileInputProps } from './FileInput';
import { NumberInputProps } from './NumberInput';
import { CheckboxInputProps } from './CheckboxInput';
import { TextAreaInputProps } from './TextAreaInput';
import { ColorInputProps } from './ColorInput';
import { MultiSelectProps } from './MultiSelect';
import { RichTextEditorProps } from '../RichTextEditor';
export type CommonInputProps = {
    label?: ReactNode;
    error?: boolean;
    message?: ReactNode;
    description?: string;
    indent?: boolean;
    autoFocus?: boolean;
};
export type InputProps = CommonInputProps & (({
    type: 'text';
} & TextInputProps) | ({
    type: 'textarea';
} & TextAreaInputProps) | ({
    type: 'search';
} & SearchInputProps) | ({
    type: 'select';
} & SelectInputProps) | ({
    type: 'multi-select';
} & MultiSelectProps) | ({
    type: 'number';
} & NumberInputProps) | ({
    type: 'color';
} & ColorInputProps) | ({
    type: 'file';
} & FileInputProps) | ({
    type: 'checkbox';
} & CheckboxInputProps) | ({
    type: 'password';
} & TextInputProps) | ({
    type: 'rich-text';
} & RichTextEditorProps));
export declare function Input(props: InputProps): React.JSX.Element;
export type LabelAndErrorWrapperProps = {
    label?: ReactNode;
    error?: boolean;
    message?: ReactNode;
    description?: ReactNode;
    indent?: boolean;
    children: ReactNode;
};
