import { IRPCProtocol } from '@opensumi/ide-connection';
import { ILogger } from '@opensumi/ide-core-browser';
import { LabelService } from '@opensumi/ide-core-browser/lib/services';
import { DebugConfiguration, DebuggerDescription, IDebugModelManager } from '@opensumi/ide-debug';
import { BreakpointManager } from '@opensumi/ide-debug/lib/browser/breakpoint';
import { DebugConfigurationManager } from '@opensumi/ide-debug/lib/browser/debug-configuration-manager';
import { DebugPreferences } from '@opensumi/ide-debug/lib/browser/debug-preferences';
import { DebugSessionManager } from '@opensumi/ide-debug/lib/browser/debug-session-manager';
import { DebugConsoleModelService } from '@opensumi/ide-debug/lib/browser/view/console/debug-console-tree.model.service';
import { IDebugService } from '@opensumi/ide-debug/lib/common/debug-service';
import { WorkbenchEditorService } from '@opensumi/ide-editor';
import { IFileServiceClient } from '@opensumi/ide-file-service';
import { OutputService } from '@opensumi/ide-output/lib/browser/output.service';
import { IMessageService } from '@opensumi/ide-overlay';
import { ITerminalApiService } from '@opensumi/ide-terminal-next';
import { DebugProtocol } from '@opensumi/vscode-debugprotocol';
import { IInterProcessConnectionService, IMainThreadDebug, IStartDebuggingOptions } from '../../../common/vscode';
import { Breakpoint, WorkspaceFolder } from '../../../common/vscode/models';
import { IActivationEventService } from '../../types';
import { ExtensionDebugSessionContributionRegistry } from './debug';
import { ExtensionDebugService } from './debug/extension-debug-service';
export declare class MainThreadDebug implements IMainThreadDebug {
    private rpcProtocol;
    private mainThreadConnection;
    private readonly toDispose;
    private readonly listenerDispose;
    private proxy;
    protected readonly sessionManager: DebugSessionManager;
    protected readonly labelService: LabelService;
    protected readonly breakpointManager: BreakpointManager;
    protected readonly modelManager: IDebugModelManager;
    protected readonly debugConfigurationManager: DebugConfigurationManager;
    protected readonly debugPreferences: DebugPreferences;
    protected readonly editorService: WorkbenchEditorService;
    protected readonly messageService: IMessageService;
    protected readonly fileService: IFileServiceClient;
    protected readonly adapterContributionRegister: ExtensionDebugService;
    protected readonly activationEventService: IActivationEventService;
    protected readonly sessionContributionRegistry: ExtensionDebugSessionContributionRegistry;
    protected readonly logger: ILogger;
    protected readonly terminalService: ITerminalApiService;
    protected readonly debugConsoleModelService: DebugConsoleModelService;
    protected readonly outputService: OutputService;
    protected readonly debugService: IDebugService;
    private readonly injector;
    constructor(rpcProtocol: IRPCProtocol, mainThreadConnection: IInterProcessConnectionService);
    dispose(): void;
    private listen;
    private registerDebugContributions;
    $appendToDebugConsole(value: string): Promise<void>;
    $appendLineToDebugConsole(value: string): Promise<void>;
    $unregisterDebuggerContribution(description: DebuggerDescription): Promise<void>;
    $registerDebuggerContribution(description: DebuggerDescription): Promise<void>;
    $addBreakpoints(breakpoints: Breakpoint[]): Promise<void>;
    $removeBreakpoints(breakpoints: Breakpoint[]): Promise<void>;
    $customRequest(sessionId: string, command: string, args?: any): Promise<DebugProtocol.Response>;
    $getDebugProtocolBreakpoint(sessionId: string, breakpoinId: string): Promise<DebugProtocol.Breakpoint | undefined>;
    $startDebugging(folder: WorkspaceFolder | undefined, nameOrConfiguration: string | DebugConfiguration, options: IStartDebuggingOptions): Promise<boolean>;
    $stopDebugging(sessionId: string | undefined): Promise<void>;
    private toCustomApiBreakpoints;
}
//# sourceMappingURL=main.thread.debug.d.ts.map