/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { IAccessibilityService } from "../../accessibility/common/accessibility.mjs";
import { IConfigurationService } from "../../configuration/common/configuration.mjs";
import { Event } from "../../../base/common/event.mjs";
export declare const IAudioCueService: import("../../instantiation/common/instantiation.mjs").ServiceIdentifier<IAudioCueService>;
export interface IAudioCueService {
    readonly _serviceBrand: undefined;
    playAudioCue(cue: AudioCue, allowManyInParallel?: boolean): Promise<void>;
    playAudioCues(cues: AudioCue[]): Promise<void>;
    isEnabled(cue: AudioCue): boolean;
    onEnabledChanged(cue: AudioCue): Event<void>;
    playSound(cue: Sound, allowManyInParallel?: boolean): Promise<void>;
}
export declare class AudioCueService extends Disposable implements IAudioCueService {
    private readonly configurationService;
    private readonly accessibilityService;
    readonly _serviceBrand: undefined;
    private readonly screenReaderAttached;
    constructor(configurationService: IConfigurationService, accessibilityService: IAccessibilityService);
    playAudioCue(cue: AudioCue, allowManyInParallel?: boolean): Promise<void>;
    playAudioCues(cues: AudioCue[]): Promise<void>;
    private getVolumeInPercent;
    private playingSounds;
    playSound(sound: Sound, allowManyInParallel?: boolean): Promise<void>;
    private readonly obsoleteAudioCuesEnabled;
    private readonly isEnabledCache;
    isEnabled(cue: AudioCue): boolean;
    onEnabledChanged(cue: AudioCue): Event<void>;
}
/**
 * Corresponds to the audio files in ./media.
*/
export declare class Sound {
    readonly fileName: string;
    private static register;
    static readonly error: Sound;
    static readonly warning: Sound;
    static readonly foldedArea: Sound;
    static readonly break: Sound;
    static readonly quickFixes: Sound;
    static readonly taskCompleted: Sound;
    static readonly taskFailed: Sound;
    static readonly terminalBell: Sound;
    static readonly diffLineInserted: Sound;
    static readonly diffLineDeleted: Sound;
    private constructor();
}
export declare class AudioCue {
    readonly sound: Sound;
    readonly name: string;
    readonly settingsKey: string;
    private static _audioCues;
    private static register;
    static get allAudioCues(): AudioCue[];
    static readonly error: AudioCue;
    static readonly warning: AudioCue;
    static readonly foldedArea: AudioCue;
    static readonly break: AudioCue;
    static readonly inlineSuggestion: AudioCue;
    static readonly terminalQuickFix: AudioCue;
    static readonly onDebugBreak: AudioCue;
    static readonly noInlayHints: AudioCue;
    static readonly taskCompleted: AudioCue;
    static readonly taskFailed: AudioCue;
    static readonly terminalBell: AudioCue;
    static readonly notebookCellCompleted: AudioCue;
    static readonly notebookCellFailed: AudioCue;
    static readonly diffLineInserted: AudioCue;
    static readonly diffLineDeleted: AudioCue;
    private constructor();
}
