/// 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