import { SoundLibrary, IMediaContext, Filter, SoundMap, IMediaInstance } from '@pixi/sound';
import ExportedSounds from '../interface/export/ExportedSounds.cjs';
import NarrationManagerInterface from '../interface/managers/NarrationManagerInterface.cjs';
import SoundOptions, { SoundPlayOptions } from '../interface/SoundOptions.cjs';
import Sound from '../classes/Sound.cjs';
import '../types/SoundFilterMemory.cjs';
import '@drincs/pixi-vn';
import '../types/ChoiceMenuOptionsType.cjs';
import '../classes/ChoiceMenuOption.cjs';
import '../types/LabelIdType.cjs';
import '../types/StorageElementType.cjs';
import '../classes/Label.cjs';
import '../classes/LabelAbstract.cjs';
import '../types/StepLabelType.cjs';
import '../interface/LabelProps.cjs';
import '../types/CloseType.cjs';
import '../types/LabelRunModeType.cjs';
import '../types/InputInfo.cjs';
import '../interface/export/ExportedStep.cjs';
import '../interface/HistoryStep.cjs';
import 'deep-diff';
import 'microdiff';
import '../interface/export/ExportedCanvas.cjs';
import '../types/PauseTickerType.cjs';
import '../interface/canvas/memory/CanvasBaseItemMemory.cjs';
import '../interface/canvas/memory/ContainerMemory.cjs';
import 'pixi.js';
import '../types/ContainerChild.cjs';
import '../classes/canvas/CanvasBaseItem.cjs';
import '../interface/TickerHistory.cjs';
import '../types/TickerIdType.cjs';
import '../interface/TickerArgs.cjs';
import '../interface/TickersSequence.cjs';
import '../types/PauseType.cjs';
import '../types/RepeatType.cjs';
import '../interface/OpenedLabel.cjs';
import '../interface/export/ExportedStorage.cjs';
import '../classes/Dialogue.cjs';
import '../interface/CharacterInterface.cjs';
import '../interface/NarrativeHistory.cjs';
import '../types/HistoryChoiceMenuOption.cjs';

declare class SoundManager extends SoundLibrary {
    private readonly narration;
    constructor(narration: NarrationManagerInterface);
    get context(): IMediaContext;
    get filtersAll(): Filter[];
    set filtersAll(filtersAll: Filter[]);
    get supported(): boolean;
    /**
     * https://github.com/pixijs/sound/blob/main/src/SoundLibrary.ts#L187
     */
    private getOptions;
    add(alias: string, options: SoundOptions | string): Sound;
    /**
     * @deprecated: Use `add(alias: string, options: Options | string | ArrayBuffer | AudioBuffer | HTMLAudioElement | Sound): Sound;` instead.
     */
    add(map: any, globalOptions?: SoundOptions): SoundMap;
    get useLegacy(): boolean;
    set useLegacy(legacy: boolean);
    get disableAutoPause(): boolean;
    set disableAutoPause(autoPause: boolean);
    remove(alias: string): this;
    get volumeAll(): number;
    set volumeAll(volume: number);
    get speedAll(): number;
    set speedAll(speed: number);
    togglePauseAll(): boolean;
    pauseAll(): this;
    resumeAll(): this;
    toggleMuteAll(): boolean;
    muteAll(): this;
    unmuteAll(): this;
    removeAll(): this;
    stopAll(): this;
    exists(alias: string, assert?: boolean): boolean;
    isPlaying(): boolean;
    find(alias: string): Sound;
    play(alias: string, options?: SoundPlayOptions | string): IMediaInstance | Promise<IMediaInstance>;
    stop(alias: string): Sound;
    pause(alias: string): Sound;
    resume(alias: string): Sound;
    volume(alias: string, volume?: number): number;
    speed(alias: string, speed?: number): number;
    duration(alias: string): number;
    close(): this;
    clear(): void;
    exportJson(): string;
    export(): ExportedSounds;
    removeOldSoundAndExport(): ExportedSounds;
    importJson(dataString: string): void;
    import(data: object, lastStepIndex?: number): void;
}

export { SoundManager as default };
