/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
import type { ShellSessionArgs, ShellSessionDependencies } from "../shell-session";
import { ShellSession } from "../shell-session";
import type { ModifyTerminalShellEnv } from "../shell-env-modifier/modify-terminal-shell-env.injectable";
import type { JoinPaths } from "../../../common/path/join-paths.injectable";
import type { GetDirnameOfPath } from "../../../common/path/get-dirname.injectable";
import type { GetBasenameOfPath } from "../../../common/path/get-basename.injectable";
import type { UserPreferencesState } from "../../../features/user-preferences/common/state.injectable";
export interface LocalShellSessionDependencies extends ShellSessionDependencies {
    readonly directoryForBinaries: string;
    readonly state: UserPreferencesState;
    modifyTerminalShellEnv: ModifyTerminalShellEnv;
    joinPaths: JoinPaths;
    getDirnameOfPath: GetDirnameOfPath;
    getBasenameOfPath: GetBasenameOfPath;
}
export declare class LocalShellSession extends ShellSession {
    protected readonly dependencies: LocalShellSessionDependencies;
    ShellType: string;
    constructor(dependencies: LocalShellSessionDependencies, args: ShellSessionArgs);
    protected getPathEntries(): string[];
    protected get cwd(): string | undefined;
    open(): Promise<void>;
    protected getShellArgs(shell: string): Promise<string[]>;
}
