/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { Event } from "../../../base/common/event.mjs";
import { Disposable, IDisposable } from "../../../base/common/lifecycle.mjs";
import { TerminalShellType } from "../common/terminal.mjs";
export interface IWindowsShellHelper extends IDisposable {
    readonly onShellNameChanged: Event<string>;
    readonly onShellTypeChanged: Event<TerminalShellType>;
    getShellType(title: string): TerminalShellType;
    getShellName(): Promise<string>;
}
export declare class WindowsShellHelper extends Disposable implements IWindowsShellHelper {
    private _rootProcessId;
    private _isDisposed;
    private _currentRequest;
    private _shellType;
    get shellType(): TerminalShellType | undefined;
    private _shellTitle;
    get shellTitle(): string;
    private readonly _onShellNameChanged;
    get onShellNameChanged(): Event<string>;
    private readonly _onShellTypeChanged;
    get onShellTypeChanged(): Event<TerminalShellType>;
    constructor(_rootProcessId: number);
    private _startMonitoringShell;
    checkShell(): Promise<void>;
    private traverseTree;
    dispose(): void;
    /**
     * Returns the innermost shell executable running in the terminal
     */
    getShellName(): Promise<string>;
    getShellType(executable: string): TerminalShellType;
}
