import type { WithNormalizedProps } from "../../global"; export interface TextboxEvent { originalEvent: Event; value: string; } export interface TextboxInput extends Omit { 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 { } declare class Textbox extends Marko.Component { _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;