/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { IProcessEnvironment } from '@sussudio/base/common/platform.mjs';
import { IDiagnosticsService } from '../../diagnostics/common/diagnostics.mjs';
import { IDiagnosticsMainService } from '../../diagnostics/electron-main/diagnosticsMainService.mjs';
import { IDialogMainService } from '../../dialogs/electron-main/dialogMainService.mjs';
import { IEnvironmentMainService } from '../../environment/electron-main/environmentMainService.mjs';
import { ICommonIssueService, IssueReporterData, ProcessExplorerData } from '../common/issue.mjs';
import { ILogService } from '../../log/common/log.mjs';
import { INativeHostMainService } from '../../native/electron-main/nativeHostMainService.mjs';
import { IProductService } from '../../product/common/productService.mjs';
import { IProtocolMainService } from '../../protocol/electron-main/protocol.mjs';
import { IStateMainService } from '../../state/electron-main/state.mjs';
export declare const IIssueMainService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IIssueMainService>;
export interface IIssueMainService extends ICommonIssueService {
	stopTracing(): Promise<void>;
}
export declare class IssueMainService implements IIssueMainService {
	private userEnv;
	private readonly environmentMainService;
	private readonly logService;
	private readonly diagnosticsService;
	private readonly diagnosticsMainService;
	private readonly dialogMainService;
	private readonly nativeHostMainService;
	private readonly protocolMainService;
	private readonly productService;
	private readonly stateMainService;
	readonly _serviceBrand: undefined;
	private static readonly DEFAULT_BACKGROUND_COLOR;
	private issueReporterWindow;
	private issueReporterParentWindow;
	private processExplorerWindow;
	private processExplorerParentWindow;
	constructor(
		userEnv: IProcessEnvironment,
		environmentMainService: IEnvironmentMainService,
		logService: ILogService,
		diagnosticsService: IDiagnosticsService,
		diagnosticsMainService: IDiagnosticsMainService,
		dialogMainService: IDialogMainService,
		nativeHostMainService: INativeHostMainService,
		protocolMainService: IProtocolMainService,
		productService: IProductService,
		stateMainService: IStateMainService,
	);
	private registerListeners;
	private safeSend;
	openReporter(data: IssueReporterData): Promise<void>;
	openProcessExplorer(data: ProcessExplorerData): Promise<void>;
	private focusWindow;
	private createBrowserWindow;
	getSystemStatus(): Promise<string>;
	private getWindowPosition;
	private getPerformanceInfo;
	stopTracing(): Promise<void>;
}
