import Phaser from 'phaser';
import { TextBoxConfig } from '../types';
import { Container } from './Container';
import { BaseScene } from "../game";
import { Label } from './Label';
export declare class TextBox<T extends TextBoxConfig = TextBoxConfig> extends Container<T> {
    protected _config?: T;
    label: Label;
    selection: Phaser.GameObjects.Rectangle;
    cursor: Phaser.GameObjects.Text;
    timerEvent?: Phaser.Time.TimerEvent;
    hiddenInput?: HTMLInputElement;
    private static measureCanvas;
    private static measureContext;
    isFocus: boolean;
    charWidths: number[];
    selectionStart?: number;
    selectionEnd?: number;
    isSelecting: boolean;
    maxWidth: number;
    constructor(scene: BaseScene, config: T);
    handleKeyup(event: KeyboardEvent): void;
    getCursorPosition(): number;
    createHiddenInput(): void;
    getTextWidth(text: string): number;
    updateSelectionAfterInput(): void;
    handleOver(): void;
    handleOut(): void;
    handlePointerDown(pointer: Phaser.Input.Pointer): void;
    handlePointerMove(pointer: Phaser.Input.Pointer): void;
    handlePointerUp(): void;
    updateCursorPosition(): void;
    updateSelection(): void;
    handleMoveCursor(): void;
    setDomCursorPosition(): void;
    setNativeCursorPosition(): void;
    getCharacterIndexAtPosition(x: number): number;
    getCharacterWidths(): number[];
    getCharacterXPosition(index: number): number;
    addTimerEvent(): void;
    getLabelWorldPoint(): Phaser.Math.Vector2;
    destroy(fromScene?: boolean): void;
}
//# sourceMappingURL=TextBox.d.ts.map