import { Observable } from '@tanbo/stream';
import { Commander, Controller, Keyboard, Scheduler, Selection, Textbus } from '@textbus/core';
import { Parser } from './parser';
import { Caret, CaretLimit, CaretPosition, Input } from './types';
import { DomAdapter } from './dom-adapter';
interface CaretStyle {
    height: string;
    lineHeight: string;
    fontSize: string;
}
declare class ExperimentalCaret implements Caret {
    private domRenderer;
    private scheduler;
    private editorMask;
    onPositionChange: Observable<CaretPosition | null>;
    onStyleChange: Observable<CaretStyle>;
    elementRef: HTMLElement;
    changeFromSelf: boolean;
    getLimit: () => CaretLimit;
    get rect(): DOMRect;
    private timer;
    private caret;
    private set display(value);
    private get display();
    private _display;
    private flashing;
    private subscription;
    private positionChangeEvent;
    private styleChangeEvent;
    private oldRange;
    constructor(domRenderer: DomAdapter, scheduler: Scheduler, editorMask: HTMLElement);
    refresh(): void;
    show(range: Range, restart: boolean): void;
    hide(): void;
    destroy(): void;
    private updateCursorPosition;
    private getScrollContainer;
}
/**
 * Textbus PC 端输入实现
 */
export declare class MagicInput extends Input {
    private domAdapter;
    private parser;
    private keyboard;
    private commander;
    private selection;
    private controller;
    private scheduler;
    private textbus;
    composition: boolean;
    onReady: Promise<void>;
    caret: ExperimentalCaret;
    set disabled(b: boolean);
    get disabled(): boolean;
    private isSafari;
    private isFirefox;
    private isMac;
    private isWindows;
    private _disabled;
    private container;
    private subscription;
    private doc;
    private textarea;
    private isFocus;
    private nativeFocus;
    private ignoreComposition;
    constructor(domAdapter: DomAdapter, parser: Parser, keyboard: Keyboard, commander: Commander, selection: Selection, controller: Controller, scheduler: Scheduler, textbus: Textbus);
    focus(range: Range, restart: boolean): void;
    blur(): void;
    destroy(): void;
    private reInit;
    private init;
    private handleDefaultActions;
    copyHandler(ev: ClipboardEvent): void;
    pasteHandler(ev: ClipboardEvent): void;
    private paste;
    private handleShortcut;
    private handleInput;
    private createEditableFrame;
}
export {};
