///
import { ConfigurationService } from '@difizen/mana-app';
import { Disposable, DisposableCollection, Emitter } from '@difizen/mana-app';
import type { ITerminalOptions } from 'xterm';
import { Terminal } from 'xterm';
import { FitAddon } from 'xterm-addon-fit';
import type { CursorStyle, TerminalRendererType } from './configuration.js';
import type { TerminalConnection } from './connection.js';
import { TerminalManager } from './manager.js';
import type { TerminalMessage, TerminalViewOption } from './protocol.js';
import 'xterm/css/xterm.css';
import { BaseStatefulView } from './stateful-view.js';
import { TerminalThemeService } from './theme-service.js';
export declare const TerminalComponent: import("react").ForwardRefExoticComponent>;
export declare class LibroTerminalView extends BaseStatefulView {
protected term: Terminal;
view: import("react").ForwardRefExoticComponent>;
protected options: TerminalViewOption;
protected termOpened: boolean;
protected initialData: string;
protected fitAddon: FitAddon;
protected readonly config: ConfigurationService;
protected readonly themeService: TerminalThemeService;
protected readonly terminalManager: TerminalManager;
protected readonly toDisposeOnConnect: DisposableCollection;
protected readonly onDidOpenEmitter: Emitter;
readonly onDidOpen: import("@difizen/mana-app").Event;
protected readonly onDidOpenFailureEmitter: Emitter;
protected readonly onSizeChangedEmitter: Emitter<{
cols: number;
rows: number;
}>;
protected readonly onDataEmitter: Emitter;
protected readonly onKeyEmitter: Emitter<{
key: string;
domEvent: KeyboardEvent;
}>;
protected readonly onDidCloseEmitter: Emitter;
protected readonly onTitleChangeEmitter: Emitter;
protected connection?: TerminalConnection;
protected restoreObj?: object;
protected _isReady: boolean;
protected onReadyEmitter: Emitter;
constructor(options: TerminalViewOption, // 这里是 server需要的配置
config: ConfigurationService, themeService: TerminalThemeService, terminalManager: TerminalManager);
afterRestore(): void;
initConnection(): Promise;
storeState(): object;
restoreState(oldState: object): void;
dispose(): void;
protected createConnection: () => Promise;
/**
* Handle a message from the terminal session.
*/
protected onMessage: (msg: TerminalMessage) => void;
protected initOnceAfterConnected(dispose: Disposable): void;
protected initialCommand: () => void;
protected initialTitle(): void;
protected createTerm: () => void;
protected get enableCopy(): boolean;
protected get enablePaste(): boolean;
protected get copyOnSelection(): boolean;
protected customKeyHandler: (event: KeyboardEvent) => boolean;
/**
* Get the cursor style compatible with `xterm`.
* @returns CursorStyle
*/
protected getCursorStyle: () => CursorStyle;
/**
* Returns given renderer type if it is valid and supported or default renderer otherwise.
*
* @param terminalRendererType desired terminal renderer type
*/
protected getTerminalRendererType: (terminalRendererType?: string | TerminalRendererType) => TerminalRendererType;
onViewMount(): void;
onViewUnmount(): void;
/**
* Refresh the terminal session.
*
* #### Notes
* Failure to reconnect to the session should be caught appropriately
*/
refresh: () => Promise;
protected resizeTerminal: () => void;
/**
* Set the size of the terminal in the session.
*/
protected setSessionSize(): void;
onViewResize: () => void;
protected processResize: () => void;
protected open: () => void;
protected hasWebGLContext(): boolean;
/**
* Create a xterm.js terminal
*/
protected createTerminal(options: ITerminalOptions): [Terminal, FitAddon];
protected addRenderer(term: Terminal): void;
readonly onDidOpenFailure: import("@difizen/mana-app").Event;
readonly onSizeChanged: import("@difizen/mana-app").Event<{
cols: number;
rows: number;
}>;
readonly onData: import("@difizen/mana-app").Event;
readonly onKey: import("@difizen/mana-app").Event<{
key: string;
domEvent: KeyboardEvent;
}>;
readonly onDidClose: import("@difizen/mana-app").Event;
readonly onTitleChange: import("@difizen/mana-app").Event;
/**
* Terminal is ready event
*/
get name(): string;
onReady: import("@difizen/mana-app").Event;
/**
* Check if terminal has any text selected.
*/
hasSelection(): boolean;
/**
* Paste text into terminal.
*/
paste(data: string): void;
/**
* Get selected text from terminal.
*/
getSelection(): string | null;
scrollLineUp: () => void;
scrollLineDown: () => void;
scrollToTop: () => void;
scrollToBottom: () => void;
scrollPageUp: () => void;
scrollPageDown: () => void;
resetTerminal: () => void;
writeLine: (data: string) => void;
write: (data: string | Uint8Array) => void;
}
//# sourceMappingURL=view.d.ts.map