import React, { ComponentProps, Ref } from "react";
import { EbayChangeEventHandler, EbayEventHandler, EbayFocusEventHandler, EbayKeyboardEventHandler, EbayMouseEventHandler } from "../common/event-utils/types";
import type { Size } from "./types";
export declare const isControlled: (value?: unknown) => boolean;
type TextInputProps = ComponentProps<"input"> & ComponentProps<"textarea">;
export type TextboxEventProps = {
    value: string;
};
export type EbayTextboxProps = {
    fluid?: boolean;
    invalid?: boolean;
    multiline?: boolean;
    defaultValue?: string;
    inputSize?: Size;
    floatingLabel?: string;
    onChange?: EbayChangeEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onInputChange?: EbayChangeEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onFocus?: EbayFocusEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onBlur?: EbayFocusEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onKeyPress?: EbayKeyboardEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onKeyUp?: EbayKeyboardEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onKeyDown?: EbayKeyboardEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onInvalid?: EbayEventHandler<HTMLTextAreaElement & HTMLInputElement, TextboxEventProps>;
    onFloatingLabelInit?: () => void;
    onButtonClick?: EbayKeyboardEventHandler<HTMLInputElement, TextboxEventProps> & EbayMouseEventHandler<HTMLInputElement, TextboxEventProps>;
    forwardedRef?: Ref<HTMLTextAreaElement | HTMLInputElement>;
    opaqueLabel?: boolean;
} & Omit<TextInputProps, "onFocus" | "onBlur" | "onChange" | "onKeyPress" | "onKeyUp" | "onKeyDown" | "onInvalid">;
declare const _default: React.ForwardRefExoticComponent<Omit<EbayTextboxProps, "ref"> & React.RefAttributes<React.FC<EbayTextboxProps>>>;
export default _default;
//# sourceMappingURL=textbox.d.ts.map