import { TerminalServiceExt, TerminalServiceMain, Plugin } from '../common/plugin-api-rpc'; import { RPCProtocol } from '../common/rpc-protocol'; import { Event, Emitter } from '@theia/core/lib/common/event'; import { MultiKeyMap } from '@theia/core/lib/common/collections'; import { Deferred } from '@theia/core/lib/common/promise-util'; import * as theia from '@theia/plugin'; import { SerializableEnvironmentVariableCollection } from '@theia/terminal/lib/common/shell-terminal-protocol'; import { ProvidedTerminalLink } from '../common/plugin-api-rpc-model'; /** * Provides high level terminal plugin api to use in the Theia plugins. * This service allow(with help proxy) create and use terminal emulator. */ export declare class TerminalServiceExtImpl implements TerminalServiceExt { private readonly proxy; private readonly _terminals; private readonly _pseudoTerminals; private static nextProviderId; private readonly terminalLinkProviders; private readonly terminalObservers; private readonly terminalProfileProviders; private readonly onDidCloseTerminalEmitter; readonly onDidCloseTerminal: theia.Event; private readonly onDidOpenTerminalEmitter; readonly onDidOpenTerminal: theia.Event; private readonly onDidChangeActiveTerminalEmitter; readonly onDidChangeActiveTerminal: theia.Event; private readonly onDidChangeTerminalStateEmitter; readonly onDidChangeTerminalState: theia.Event; protected environmentVariableCollections: MultiKeyMap; private shell; private readonly onDidChangeShellEmitter; readonly onDidChangeShell: theia.Event; constructor(rpc: RPCProtocol); get terminals(): TerminalExtImpl[]; get defaultShell(): string; $setShell(shell: string): Promise; createTerminal(plugin: Plugin, nameOrOptions: theia.TerminalOptions | theia.PseudoTerminalOptions | theia.ExtensionTerminalOptions | string | undefined, shellPath?: string, shellArgs?: string[] | string): theia.Terminal; attachPtyToTerminal(terminalId: number, pty: theia.Pseudoterminal): void; protected obtainTerminal(id: string, name: string, options?: theia.TerminalOptions | theia.ExtensionTerminalOptions): TerminalExtImpl; $terminalOnInput(id: string, data: string): void; $terminalOnInteraction(id: string): void; $terminalShellTypeChanged(id: string, shellType: string): void; $terminalSizeChanged(id: string, clos: number, rows: number): void; $terminalCreated(id: string, name: string): void; $terminalNameChanged(id: string, name: string): void; $terminalOpened(id: string, processId: number, terminalId: number, cols: number, rows: number): void; $terminalClosed(id: string, exitStatus: theia.TerminalExitStatus | undefined): void; private activeTerminalId; get activeTerminal(): TerminalExtImpl | undefined; $currentTerminalChanged(id: string | undefined): void; registerTerminalLinkProvider(provider: theia.TerminalLinkProvider): theia.Disposable; registerTerminalProfileProvider(id: string, provider: theia.TerminalProfileProvider): theia.Disposable; /** @stubbed */ registerTerminalQuickFixProvider(id: string, provider: theia.TerminalQuickFixProvider): theia.Disposable; registerTerminalObserver(observer: theia.TerminalObserver): theia.Disposable; $reportOutputMatch(observerId: string, groups: string[]): void; protected isExtensionTerminalOptions(options: theia.TerminalOptions | theia.ExtensionTerminalOptions): options is theia.ExtensionTerminalOptions; $startProfile(profileId: string, cancellationToken: theia.CancellationToken): Promise; $provideTerminalLinks(line: string, terminalId: string, token: theia.CancellationToken): Promise; $handleTerminalLink(link: ProvidedTerminalLink): Promise; getEnvironmentVariableCollection(extensionIdentifier: string, rootUri?: string): theia.GlobalEnvironmentVariableCollection; private syncEnvironmentVariableCollection; private setEnvironmentVariableCollection; $initEnvironmentVariableCollections(collections: [string, string, boolean, SerializableEnvironmentVariableCollection][]): void; } export declare class EnvironmentVariableCollectionImpl implements theia.GlobalEnvironmentVariableCollection { readonly map: Map; private _description?; private _persistent; get description(): string | theia.MarkdownString | undefined; set description(value: string | theia.MarkdownString | undefined); get persistent(): boolean; set persistent(value: boolean); protected readonly onDidChangeCollectionEmitter: Emitter; onDidChangeCollection: Event; constructor(persistent: boolean, serialized?: SerializableEnvironmentVariableCollection); getScoped(scope: theia.EnvironmentVariableScope): theia.EnvironmentVariableCollection; get size(): number; replace(variable: string, value: string, options?: theia.EnvironmentVariableMutatorOptions): void; append(variable: string, value: string, options?: theia.EnvironmentVariableMutatorOptions): void; prepend(variable: string, value: string, options?: theia.EnvironmentVariableMutatorOptions): void; private _setIfDiffers; get(variable: string): theia.EnvironmentVariableMutator | undefined; forEach(callback: (variable: string, mutator: theia.EnvironmentVariableMutator, collection: theia.EnvironmentVariableCollection) => any, thisArg?: any): void; delete(variable: string): void; clear(): void; } export declare class TerminalExtImpl implements theia.Terminal { private readonly proxy; private readonly options; name: string; readonly id: Deferred; exitStatus: theia.TerminalExitStatus | undefined; deferredProcessId: Deferred; get processId(): Thenable; readonly creationOptions: Readonly; state: theia.TerminalState; constructor(proxy: TerminalServiceMain, options: theia.TerminalOptions | theia.ExtensionTerminalOptions); /** @stubbed Terminal Shell Ingration */ shellIntegration: theia.TerminalShellIntegration | undefined; sendText(text: string, shouldExecute?: boolean): void; show(preserveFocus?: boolean): void; hide(): void; dispose(): void; } export declare class PseudoTerminal { private readonly proxy; private readonly pseudoTerminal; constructor(id: string | number, proxy: TerminalServiceMain, pseudoTerminal: theia.Pseudoterminal, waitOnExit?: boolean | string); emitOnClose(): void; emitOnInput(data: string): void; emitOnOpen(cols: number, rows: number): void; emitOnResize(cols: number, rows: number): void; } //# sourceMappingURL=terminal-ext.d.ts.map