import { Injector } from '@opensumi/di';
import { LabelService } from '@opensumi/ide-core-browser/lib/services';
import { DebugSessionOptions, IDebugModelManager, IDebugSessionManager } from '@opensumi/ide-debug';
import { BreakpointManager } from '@opensumi/ide-debug/lib/browser/breakpoint';
import { DebugPreferences } from '@opensumi/ide-debug/lib/browser/debug-preferences';
import { DebugSession } from '@opensumi/ide-debug/lib/browser/debug-session';
import { DebugSessionConnection } from '@opensumi/ide-debug/lib/browser/debug-session-connection';
import { DebugSessionFactory } from '@opensumi/ide-debug/lib/browser/debug-session-contribution';
import { WorkbenchEditorService } from '@opensumi/ide-editor';
import { IFileServiceClient } from '@opensumi/ide-file-service';
import { OutputChannel } from '@opensumi/ide-output/lib/browser/output.channel';
import { OutputService } from '@opensumi/ide-output/lib/browser/output.service';
import { IMessageService } from '@opensumi/ide-overlay';
import { ITerminalApiService, TerminalOptions } from '@opensumi/ide-terminal-next';
import { DebugProtocol } from '@opensumi/vscode-debugprotocol';
import { ExtensionConnection } from '../../../../common/vscode';
export declare class ExtensionDebugSession extends DebugSession {
    readonly id: string;
    readonly options: DebugSessionOptions;
    protected readonly connection: DebugSessionConnection;
    protected readonly terminalService: ITerminalApiService;
    protected readonly editorService: WorkbenchEditorService;
    protected readonly breakpointManager: BreakpointManager;
    protected readonly modelManager: IDebugModelManager;
    protected readonly labelService: LabelService;
    protected readonly messageService: IMessageService;
    protected readonly fileSystem: IFileServiceClient;
    protected readonly sessionManager: IDebugSessionManager;
    protected readonly terminalOptionsExt: any;
    constructor(id: string, options: DebugSessionOptions, connection: DebugSessionConnection, terminalService: ITerminalApiService, editorService: WorkbenchEditorService, breakpointManager: BreakpointManager, modelManager: IDebugModelManager, labelService: LabelService, messageService: IMessageService, fileSystem: IFileServiceClient, sessionManager: IDebugSessionManager, terminalOptionsExt: any);
    protected doRunInTerminal(terminalOptions: TerminalOptions): Promise<DebugProtocol.RunInTerminalResponse['body']>;
}
export declare class ExtensionDebugSessionFactory implements DebugSessionFactory {
    protected readonly editorManager: WorkbenchEditorService;
    protected readonly breakpoints: BreakpointManager;
    protected readonly modelManager: IDebugModelManager;
    protected readonly terminalService: ITerminalApiService;
    protected readonly labelService: LabelService;
    protected readonly messageService: IMessageService;
    protected readonly debugPreferences: DebugPreferences;
    protected readonly connectionFactory: (sessionId: string) => Promise<ExtensionConnection>;
    protected readonly fileSystem: IFileServiceClient;
    protected readonly terminalOptionsExt: any;
    protected readonly debugPreference: DebugPreferences;
    protected readonly outputService: OutputService;
    protected readonly injector: Injector;
    protected readonly sessionManager: IDebugSessionManager;
    constructor(editorManager: WorkbenchEditorService, breakpoints: BreakpointManager, modelManager: IDebugModelManager, terminalService: ITerminalApiService, labelService: LabelService, messageService: IMessageService, debugPreferences: DebugPreferences, connectionFactory: (sessionId: string) => Promise<ExtensionConnection>, fileSystem: IFileServiceClient, terminalOptionsExt: any, debugPreference: DebugPreferences, outputService: OutputService, injector: Injector, sessionManager: IDebugSessionManager);
    get(sessionId: string, options: DebugSessionOptions): DebugSession;
    protected getTraceOutputChannel(): OutputChannel | undefined;
}
//# sourceMappingURL=extension-debug-session-factory.d.ts.map