import { Observable } from 'rxjs' import { TerminalTabComponent } from './components/terminalTab.component' export abstract class TerminalDecorator { // tslint:disable-next-line no-empty attach (_terminal: TerminalTabComponent): void { } // tslint:disable-next-line no-empty detach (_terminal: TerminalTabComponent): void { } } export interface ResizeEvent { columns: number rows: number } export interface SessionOptions { name?: string command?: string args?: string[] cwd?: string env?: any width?: number height?: number recoveryId?: string recoveredTruePID$?: Observable pauseAfterExit?: boolean } export abstract class SessionPersistenceProvider { abstract id: string abstract displayName: string abstract isAvailable (): boolean abstract async attachSession (recoveryId: any): Promise abstract async startSession (options: SessionOptions): Promise abstract async terminateSession (recoveryId: string): Promise } export interface ITerminalColorScheme { name: string foreground: string background: string cursor: string colors: string[] } export abstract class TerminalColorSchemeProvider { abstract async getSchemes (): Promise } export interface IShell { id: string name?: string command: string args?: string[] env?: any fsBase?: string } export abstract class ShellProvider { abstract async provide (): Promise }