import type { WithNormalizedProps } from "../../global";
export interface TextboxEvent {
    originalEvent: Event;
    value: string;
}
export interface TextboxInput extends Omit<Marko.HTML.Input, `on${string}`> {
    multiline?: boolean;
    type?: Marko.HTML.Input["type"];
    "input-size"?: "regular" | "large";
    fluid?: boolean;
    "opaque-label"?: boolean;
    "floating-label"?: string;
    "floating-label-static"?: boolean;
    "prefix-icon"?: Marko.AttrTag<{
        renderBody: Marko.Body;
    }>;
    "prefix-text"?: Marko.AttrTag<{
        renderBody: Marko.Body;
    }>;
    "postfix-text"?: Marko.AttrTag<{
        renderBody: Marko.Body;
    }>;
    "postfix-icon"?: Marko.AttrTag<{
        renderBody: Marko.Body;
    }>;
    invalid?: boolean;
    "button-aria-label"?: Marko.HTMLAttributes["aria-label"];
    "on-floating-label-init"?: () => void;
    "on-keydown"?: (event: TextboxEvent) => void;
    "on-keypress"?: (event: TextboxEvent) => void;
    "on-keyup"?: (event: TextboxEvent) => void;
    "on-change"?: (event: TextboxEvent) => void;
    "on-input-change"?: (event: TextboxEvent) => void;
    "on-focus"?: (event: TextboxEvent) => void;
    "on-blur"?: (event: TextboxEvent) => void;
    "on-invalid"?: (event: TextboxEvent) => void;
    "on-button-click"?: (event: TextboxEvent) => void;
    autocorrect?: Marko.HTML.TextArea["autocorrect"];
    cols?: Marko.HTML.TextArea["cols"];
    rows?: Marko.HTML.TextArea["rows"];
}
export interface Input extends WithNormalizedProps<TextboxInput> {
}
declare class Textbox extends Marko.Component<Input> {
    _floatingLabel: any;
    onMount(): void;
    onUpdate(): void;
    focus(): void;
    /** Can be removed after `:has` is fully supported */
    onFocus(e: FocusEvent, el: HTMLInputElement): void;
    /** Can be removed after `:has` is fully supported */
    onBlur(e: FocusEvent, el: HTMLInputElement): void;
    _setupMakeup(): void;
    forwardEvent(eventName: string, originalEvent: Event, el: HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement): void;
}
export default Textbox;
