import type { ReactNode } from 'react';
import React from 'react';
import type { InputProps as ReakitInputProps } from 'reakit/Input';
import type { SystemComponentProps } from '../../types';
export declare const AbstractInput: React.ForwardRefExoticComponent<AbstractInputProps & React.RefAttributes<HTMLInputElement>>;
export declare type AbstractInputOwnProps = Omit<ReakitInputProps, 'ref' | 'as' | 'onChange'>;
export interface AbstractInputProps extends SystemComponentProps<AbstractInputOwnProps> {
    /** Input Icon */
    icon?: ReactNode;
    /** Input Suffix */
    suffix?: string;
    /** onClear input */
    onClear?: () => void;
    /** Render an optional label */
    labelElement?: ReactNode;
    /** Button elements */
    buttonElements?: ReactNode;
    /** onChange event */
    onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
    /** Tone of voice @default neutral */
    tone?: 'neutral' | 'critical';
}
