import IMark from './IMark';
import IMarkedText from './IMarkedText';
export default interface IController {
    link(mt: IMarkedText): void;
    unlink(): void;
    deselect(): void;
    selectNew(begChar: number, endChar: number): void;
    selectMarks(marks: IMark[]): void;
    onMouseUpText(e: Event, charRange: [number, number]): void;
    onMouseUpMark(e: Event, charRange: [number, number], marks: IMark[]): void;
    onMouseUpSelection(e: Event, charRange: [number, number]): void;
    onMouseUpMetaString(e: Event, charRange: [number, number], metaStringText: string): void;
    onMouseUpOther(e: Event): void;
}
export declare abstract class AController implements IController {
    protected markedText: IMarkedText | null;
    link(mt: IMarkedText): void;
    unlink(): void;
    abstract deselect(): void;
    abstract selectNew(begChar: number, endChar: number): void;
    abstract selectMarks(marks: IMark[]): void;
    abstract onMouseUpText(e: Event, charRange: [number, number]): void;
    abstract onMouseUpMark(e: Event, charRange: [number, number], marks: IMark[]): void;
    abstract onMouseUpSelection(e: Event, charRange: [number, number]): void;
    abstract onMouseUpMetaString(e: Event, charRange: [number, number], metaStringText: string): void;
    abstract onMouseUpOther(e: Event): void;
}
