import { Context2d } from 'jspdf';
import { IElement } from '../../../../interface/Element';
import { IControlContext, IControlHighlight, IControlInitOption, IControlInstance, IGetControlValueOption, IGetControlValueResult, IInitNextControlOption, INextControlContext, IRepaintControlOption, ISetControlExtensionOption, ISetControlProperties, ISetControlValueOption } from '../../../../interface/Control';
import { DrawPdf } from '../../../../core/draw/DrawPdf';

interface IMoveCursorResult {
    newIndex: number;
    newElement: IElement;
}
export declare class Control {
    private draw;
    private options;
    private controlOptions;
    private activeControl;
    constructor(draw: DrawPdf);
    setHighlightList(payload: IControlHighlight[]): void;
    computeHighlightList(): void;
    renderHighlightList(ctx2d: Context2d, pageNo: number): void;
    getDraw(): DrawPdf;
    filterAssistElement(elementList: IElement[]): IElement[];
    getIsRangeCanCaptureEvent(): boolean;
    getIsRangeInPostfix(): boolean;
    getIsRangeWithinControl(): boolean;
    getIsElementListContainFullControl(elementList: IElement[]): boolean;
    getIsDisabledControl(context?: IControlContext): boolean;
    getElementList(): IElement[];
    getActiveControl(): IControlInstance | null;
    initControl(): void;
    destroyControl(): void;
    repaintControl(options?: IRepaintControlOption): void;
    reAwakeControl(): void;
    moveCursor(position: IControlInitOption): IMoveCursorResult;
    removeControl(startIndex: number, context?: IControlContext): number | null;
    removePlaceholder(startIndex: number, context?: IControlContext): void;
    addPlaceholder(startIndex: number, context?: IControlContext): void;
    setValue(data: IElement[]): number;
    keydown(evt: KeyboardEvent): number | null;
    cut(): number;
    getValueById(payload: IGetControlValueOption): IGetControlValueResult;
    setValueById(payload: ISetControlValueOption): void;
    setExtensionById(payload: ISetControlExtensionOption): void;
    setPropertiesById(payload: ISetControlProperties): void;
    getList(): IElement[];
    getPreControlContext(): INextControlContext | null;
    getNextControlContext(): INextControlContext | null;
    initNextControl(option?: IInitNextControlOption): void;
}
export {};
