import { WidgetAnnotation } from "../Annotations/AnnotationTypes";
export type CaretEdge = 'auto' | 'left' | 'right';
export declare class CombFieldAppearance {
    input: HTMLInputElement;
    combsCount: number;
    private combWidth;
    private container?;
    constructor(input: HTMLInputElement, combsCount: number, combWidth: number, container?: HTMLElement | undefined);
    private _createControls;
}
/**
 * CombField behavior and appearance.
 *
 * */
export declare class CombFieldBehavior {
    input: HTMLInputElement;
    combsCount: number;
    private styleReferenceElement;
    private onInputTabCallback?;
    private onInputChangedCallback?;
    private onInputBlurCallback?;
    private annotation?;
    static selectionBgColor: string;
    static selectionFgColor: string;
    private _combInputs;
    private _combInputsSelection;
    private _combInputsContainer;
    private _textAlign;
    private _focusedCombIndex;
    combInitColor: string;
    combInitBackgroundColor: string;
    private _readOnly;
    private _orientation?;
    private _alternativeText?;
    constructor(input: HTMLInputElement, combsCount: number, styleReferenceElement: HTMLElement, onInputTabCallback?: Function | undefined, onInputChangedCallback?: Function | undefined, onInputBlurCallback?: Function | undefined, annotation?: WidgetAnnotation | undefined);
    initialize(): void;
    set readOnly(readOnly: boolean);
    get readOnly(): boolean;
    get borderStyleReferenceElem(): HTMLElement;
    get borderWidth(): number;
    /**
     * This method is used by GcAnnotationResizer class.
     ***/
    updateCombsLayout(fieldWidth?: number): void;
    getSelectedText(): string;
    updateFromInputValue(): void;
    set textAlign(val: 'left' | 'center' | 'right' | undefined);
    get textAlign(): 'left' | 'center' | 'right' | undefined;
    getSelectionStart(input: HTMLInputElement): number;
    setSelectionStart(input: HTMLInputElement, pos: number): void;
    private _findCombWithValue;
    private _focusComb;
    private _extendCombSelections;
    private _createControls;
    /**
 * Sets values for each comb input, supporting multi-byte characters (emoji, CJK, etc.)
 * @param value - Input string to distribute across combs
 */
    private _setCombValues;
    private _clearSelectedCombsWithShift;
    private _updateUnderlyingInputValue;
    private _selectAllCombs;
    private _deselectAllCombs;
    private _onFocus;
    private _onBlur;
    private _shiftCombValueIfNeeded;
    private _insertCharWithShift;
    private _repaintCombSelections;
}
