/**
 * Copyright (c) Adaptavist, Inc.
 */
import { GenericProps } from '@/src/utilities';
import { BaseSyntheticEvent, ComponentPropsWithoutRef, ReactNode } from 'react';
export declare type IInputNumberOnChangeArgs = {
    type: 'number' | 'search' | 'button';
    name: string | null;
    value: number | string;
};
export declare type EventType = BaseSyntheticEvent | React.ChangeEvent<HTMLInputElement> | IInputNumberOnChangeArgs;
export declare type IInput = Omit<ComponentPropsWithoutRef<'input'>, 'onChange'> & GenericProps & {
    /**
     * Prop controlling the text in the prefix tab. Default is `an empty string`.
     */
    prefixTabTitle?: React.ReactNode;
    /**
     * Prop controlling the prefix of the input. Default is `an empty string`.
     */
    inputPrefix?: React.ReactNode;
    /**
     * Prop controlling the suffix of the input. Default is `an empty string`.
     */
    inputSuffix?: React.ReactNode;
    /**
     * Prop controlling the icon to display at the end of the input. Default is `an empty string`.
     */
    inputIcon?: React.ReactNode;
    /**
     * Prop controlling if the error state should be displayed. Default is `false`.
     */
    error?: boolean;
    /**
     * The function to run on change of the input. Default is `an empty object`.
     */
    onChange?(this: void, event: EventType): void;
};
export declare type ITextArea = React.TextareaHTMLAttributes<HTMLTextAreaElement> & GenericProps & {
    /**
     * Prop controlling if the error state should be displayed. Default is `false`.
     */
    error?: boolean;
    /**
     * Prop controlling the max number of characters allowed. Default is `undefined`.
     */
    maxLength?: number;
};
export declare type IInputLabel = React.HtmlHTMLAttributes<HTMLLabelElement>;
export declare type IAddons = IInput & GenericProps & {
    /**
     * Prop controlling if the inuput is disabled. Default is `false`.
     */
    disabled?: boolean;
    /**
     * Prop controlling if the error state should be displayed. Default is `false`.
     */
    error?: boolean;
    /**
     * Prop controlling if the prefix tab is present in the input. Default is `false`.
     */
    prefixTabPresent?: boolean;
    /**
     * Prop controlling if the input icon is present in the input. Default is `false`.
     */
    iconPresent?: boolean;
    /**
     * Prop controlling the type of input. Default is `search`.
     */
    type?: 'number' | 'search' | 'button';
};
export declare type IErrorMessageBox = GenericProps & {
    /**
     * Prop controlling the children displayed inside the error message. Default is `an empty object`.
     */
    children?: ReactNode;
};
