import { Observable } from '@tanbo/stream';
import { Commander, Controller, Keyboard, Selection, Textbus } from '@textbus/core';
import { Caret, CaretPosition, Input } from './types';
import { Parser } from './parser';
import { DomAdapter } from './dom-adapter';
declare class NativeCaret implements Caret {
    onPositionChange: Observable<CaretPosition | null>;
    set nativeRange(range: Range | null);
    get nativeRange(): Range | null;
    get rect(): import('./_utils/uikit').Rect;
    private _nativeRange;
    private subs;
    private positionChangeEvent;
    constructor();
    refresh(): void;
    destroy(): void;
}
export declare class NativeInput extends Input {
    private parser;
    private selection;
    private keyboard;
    private domAdapter;
    private commander;
    private controller;
    caret: NativeCaret;
    composition: boolean;
    onReady: Promise<void>;
    set disabled(b: boolean);
    get disabled(): boolean;
    private _disabled;
    private documentView;
    private nativeSelection;
    private subscription;
    private nativeRange;
    private isSafari;
    private isMac;
    private compositionEndedAt;
    constructor(textbus: Textbus, parser: Parser, selection: Selection, keyboard: Keyboard, domAdapter: DomAdapter, commander: Commander, controller: Controller);
    focus(nativeRange: Range): void;
    blur(): void;
    destroy(): void;
    private handleDefaultActions;
    copyHandler(ev: ClipboardEvent): void;
    pasteHandler(ev: ClipboardEvent): void;
    private paste;
    private handleShortcut;
    private handleInput;
    private syncCompositionText;
}
export {};
