import ComponentBase from '../../utils/componentbase/ComponentBase'; export default TextTyping; declare namespace TextTyping { /** * Typing mode identifiers. */ type TypeModeType = 0 | 1 | 2 | 3 | 'left-to-right' | 'right-to-left' | 'middle-to-sides' | 'sides-to-middle'; /** * Callback to set text per character. */ type SetTextCallbackType = (text: string, isLastChar: boolean, insertIndex: number) => string; /** * TextTyping configuration. */ interface IConfig { /** * Typing speed. */ speed?: number, /** * Typing mode. */ typeMode?: TypeModeType, /** * Callback to set text. */ setTextCallback?: SetTextCallbackType, /** * Callback scope for setText. */ setTextCallbackScope?: Object, /** * True to wrap typing. */ wrap?: boolean, /** * Initial text. */ text?: string, /** * Typing start index. */ typingIndex?: number, /** * Elapsed time in ms. */ elapsed?: number | null, } namespace Events { /** * Typing callback. */ type TypingCallbackType = () => void; /** * Typing complete callback. */ type TypingCompleteCallbackType = (typing: TextTyping, txt: string) => void; } } /** * Text typing behavior for a game object. */ declare class TextTyping extends ComponentBase { /** * Create a TextTyping behavior. * @param gameObject - Target game object. * @param config - TextTyping configuration. */ constructor( gameObject: Phaser.GameObjects.GameObject, config?: TextTyping.IConfig ); /** * Start typing content. * @param content - Text content. * @param speed - Typing speed. * @param startIndex - Start index. * @returns This instance. */ start( content: string, speed?: number, startIndex?: number ): this; /** * Start typing content from a line. * @param content - Text content. * @param lineIndex - Line index. * @param speed - Typing speed. * @param offsetIndex - Offset index in line. * @returns This instance. */ startFromLine( content: string, lineIndex?: number, speed?: number, offsetIndex?: number, ): this; /** * Current typing index. */ readonly typingIndex: number; /** * Total text length. */ readonly textLength: number; /** * Append text. * @param content - Text content. * @returns This instance. */ appendText(content: string): this; /** * Stop typing. * @param showAllText - True to show all text. * @returns This instance. */ stop(showAllText?: boolean): this; /** * Pause typing. * @returns This instance. */ pause(): this; /** * Resume typing. * @returns This instance. */ resume(): this; /** * Set typing speed. * @param speed - Typing speed. * @returns This instance. */ setTypeSpeed(speed: number): this; /** * Set typing speed. * @param speed - Typing speed. * @returns This instance. */ setTypingSpeed(speed: number): this; /** * Typing speed. */ speed: number; /** * Set typing mode. * @param mode - Typing mode. * @returns This instance. */ setTypeMode(mode: TextTyping.TypeModeType): this; /** * Typing mode value. */ typeMode: number; /** * True if typing is in progress. */ readonly isTyping: boolean; }