import { IgcInputBaseComponent } from '../input/input-base.js'; import type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js'; import { MaskParser } from './mask-parser.js'; export type MaskSelection = { start: number; end: number; }; export declare abstract class IgcMaskInputBaseComponent extends IgcInputBaseComponent { protected readonly _parser: MaskParser; protected _maskSelection: MaskSelection; protected _compositionStart: number; protected _focused: boolean; protected _maskedValue: string; protected get _inputSelection(): MaskSelection; /** Indicates whether the current mask value is empty. */ protected get _isEmptyMask(): boolean; /** * Makes the control a readonly field. * * @attr readonly * @default false */ readOnly: boolean; /** * The masked pattern of the component. * * @attr * @default 'CCCCCCCCCC' */ set mask(value: string); get mask(): string; /** * The prompt symbol to use for unfilled parts of the mask pattern. * * @attr * @default '_' */ set prompt(value: string); get prompt(): string; protected _handleInput({ inputType, isComposing, }: InputEvent): Promise; protected _setMaskSelection(): void; protected _handleCompositionStart(): void; protected _handleCompositionEnd({ data }: CompositionEvent): void; protected _handleClick(): void; protected abstract _updateSetRangeTextValue(): void; protected abstract _updateInput(text: string, range: MaskSelection): void; /** Sets the text selection range of the control */ setSelectionRange(start?: number, end?: number, direction?: SelectionRangeDirection): void; /** Replaces the selected text in the control and re-applies the mask */ setRangeText(replacement: string, start?: number, end?: number, selectMode?: RangeTextSelectMode): void; }