import Gtk from "gi://Gtk"; import type { InputPurpose, Justification } from "../../../enums/gtk3-index"; import { WrapMode } from "../../../enums/gtk3-index"; import type { GjsContext } from "../../../reconciler/gjs-renderer"; import type { HostContext } from "../../../reconciler/host-context"; import { BaseElement, type GjsElement } from "../../gjs-element"; import { ElementLifecycleController } from "../../utils/element-extenders/element-lifecycle-controller"; import type { SyntheticEvent } from "../../utils/element-extenders/event-handlers"; import { EventHandlers } from "../../utils/element-extenders/event-handlers"; import type { DiffedProps } from "../../utils/element-extenders/map-properties"; import { PropertyMapper } from "../../utils/element-extenders/map-properties"; import type { AlignmentProps } from "../../utils/property-maps-factories/create-alignment-prop-mapper"; import type { ChildPropertiesProps } from "../../utils/property-maps-factories/create-child-props-mapper"; import type { ExpandProps } from "../../utils/property-maps-factories/create-expand-prop-mapper"; import type { MarginProps } from "../../utils/property-maps-factories/create-margin-prop-mapper"; import type { SizeRequestProps } from "../../utils/property-maps-factories/create-size-request-prop-mapper"; import type { StyleProps } from "../../utils/property-maps-factories/create-style-prop-mapper"; type TextAreaPadding = number | [number] | [number, number] | [number, number, number] | [number, number, number, number]; type TextAreaPropsMixin = ChildPropertiesProps & SizeRequestProps & AlignmentProps & MarginProps & ExpandProps & StyleProps; export type TextAreaEvent

= {}> = SyntheticEvent; export interface TextAreaProps extends TextAreaPropsMixin { value?: string; acceptTabs?: boolean; padding?: TextAreaPadding; disabled?: boolean; indent?: number; type?: InputPurpose; justification?: Justification; monospace?: boolean; wrapMode?: WrapMode; onSelectChange?: (event: TextAreaEvent<{ selectedText: string; selectionStartIndex: number; selectionEndIndex: number; }>) => void; onChange?: (event: TextAreaEvent<{ text: string; cursorPosition: number; }>) => void; onKeyPress?: (event: TextAreaEvent) => void; onKeyRelease?: (event: TextAreaEvent) => void; } export declare class TextAreaElement extends BaseElement implements GjsElement<"TEXT_AREA", Gtk.TextView> { static getContext(currentContext: HostContext): HostContext; readonly kind = "TEXT_AREA"; protected textBuffer: Gtk.TextBuffer; protected widget: Gtk.TextView; protected parent: GjsElement | null; readonly lifecycle: ElementLifecycleController; protected readonly handlers: null; protected readonly viewHandlers: EventHandlers; protected readonly bufferHandlers: EventHandlers; protected readonly propsMapper: PropertyMapper; protected previousSelection: { start: number; end: number; text: string; }; constructor(props: DiffedProps); protected getSelectionEventData(): { selectedText: string; selectionStartIndex: number; selectionEndIndex: number; }; protected applyPadding(padding: number | number[]): void; getCursorPosition(): number; setCursorPosition(position: number): void; updateProps(props: DiffedProps): void; appendChild(): void; insertBefore(): void; remove(parent: GjsElement): void; render(): void; notifyWillMountTo(parent: GjsElement): boolean; notifyMounted(): void; notifyChildWillUnmount(): void; show(): void; hide(): void; getWidget(): Gtk.TextView; getParentElement(): GjsElement | null; } export {};