import { ServiceIdentifier } from '../../instantiation/common/instantiation.js';
import { IDisposable } from '../../../base/common/lifecycle.js';
import { Event } from '../../../base/common/event.js';
import { AccessibilitySignal, IAccessbilitySignalOptions, Sound } from './accessibilitySignalService.js';

declare const IAccessibilitySignalService: ServiceIdentifier<IAccessibilitySignalService>;
interface IAccessibilitySignalService {
    readonly _serviceBrand: undefined;
    playSignal(signal: AccessibilitySignal, options?: IAccessbilitySignalOptions): Promise<void>;
    playSignals(signals: (AccessibilitySignal | {
        signal: AccessibilitySignal;
        source: string;
    })[]): Promise<void>;
    isSoundEnabled(signal: AccessibilitySignal): boolean;
    isAnnouncementEnabled(signal: AccessibilitySignal): boolean;
    onSoundEnabledChanged(signal: AccessibilitySignal): Event<void>;
    onAnnouncementEnabledChanged(signal: AccessibilitySignal): Event<void>;
    playSound(signal: Sound, allowManyInParallel?: boolean): Promise<void>;
    playSignalLoop(signal: AccessibilitySignal, milliseconds: number): IDisposable;
}

export { IAccessibilitySignalService };
