import { OperatingSystem, IProcessEnvironment } from "../../../../base/common/platform.js";
import { ThemeIcon } from "../../../../base/common/themables.js";
import { IShellLaunchConfig, ITerminalProfile, TerminalIcon, type IExtensionTerminalProfile } from "../../../../platform/terminal/common/terminal.js";
import { IShellLaunchConfigResolveOptions, type IRegisterContributedProfileArgs, type ITerminalProfileProvider } from "@codingame/monaco-vscode-7bbc9e7d-eeae-55fc-8bf9-dc2f66e0dc73-common/vscode/vs/workbench/contrib/terminal/common/terminal";
import { Event } from "../../../../base/common/event.js";
import { IDisposable } from "../../../../base/common/lifecycle.js";
export declare const ITerminalProfileResolverService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<ITerminalProfileResolverService>;
export interface ITerminalProfileResolverService {
    readonly _serviceBrand: undefined;
    readonly defaultProfileName: string | undefined;
    resolveIcon(shellLaunchConfig: IShellLaunchConfig, os: OperatingSystem): void;
    resolveShellLaunchConfig(shellLaunchConfig: IShellLaunchConfig, options: IShellLaunchConfigResolveOptions): Promise<void>;
    getDefaultProfile(options: IShellLaunchConfigResolveOptions): Promise<ITerminalProfile>;
    getDefaultShell(options: IShellLaunchConfigResolveOptions): Promise<string>;
    getDefaultShellArgs(options: IShellLaunchConfigResolveOptions): Promise<string | string[]>;
    getDefaultIcon(): TerminalIcon & ThemeIcon;
    getEnvironment(remoteAuthority: string | undefined): Promise<IProcessEnvironment>;
}
export declare const ITerminalProfileService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<ITerminalProfileService>;
export interface ITerminalProfileService {
    readonly _serviceBrand: undefined;
    readonly availableProfiles: ITerminalProfile[];
    readonly contributedProfiles: IExtensionTerminalProfile[];
    readonly profilesReady: Promise<void>;
    getPlatformKey(): Promise<string>;
    refreshAvailableProfiles(): void;
    getDefaultProfileName(): string | undefined;
    getDefaultProfile(os?: OperatingSystem): ITerminalProfile | undefined;
    onDidChangeAvailableProfiles: Event<ITerminalProfile[]>;
    getContributedDefaultProfile(shellLaunchConfig: IShellLaunchConfig): Promise<IExtensionTerminalProfile | undefined>;
    registerContributedProfile(args: IRegisterContributedProfileArgs): Promise<void>;
    getContributedProfileProvider(extensionIdentifier: string, id: string): ITerminalProfileProvider | undefined;
    registerTerminalProfileProvider(extensionIdentifier: string, id: string, profileProvider: ITerminalProfileProvider): IDisposable;
}
