/*---------------------------------------------------------------------------------------------
 *  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 '@sussudio/base/common/lifecycle.mjs';
import { IAccessibilityService } from '../../accessibility/common/accessibility.mjs';
import { IConfigurationService } from '../../configuration/common/configuration.mjs';
import { Event } from '@sussudio/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();
}
