// Generated by dts-bundle-generator v8.1.2

import { EventEmitter } from 'eventemitter3';

declare enum AudioRushSyncState {
	Idle = 0,
	Accelerating = 1,
	Ramping = 2,
	Draining = 3,
	Crossfading = 4,
	Bypass = 5,
	FineUp = 6
}
export declare class IRTCAudioRushSyncExtension extends EventEmitter<EventDict> {
	constructor(config: Partial<IRTCBurstExtensionConfig>);
	
	play: () => void;
	
	reset: () => void;
	
	getLatencyMs: () => Promise<number>;
	
	isSupported: () => Promise<boolean>;
	
	resume: () => Promise<void>;
	
	destroy: () => void;
}
export declare enum EventTypes {
	onState = "onState",
	onOverload = "onOverload",
	onError = "onError",
	onUnsupported = "onUnsupported"
}
/* tslint:disable */
/* eslint-disable */
export interface AudioRushSyncOptions {
	sampleRate: number;
	channelCount: number;
	initialStretch?: number;
	wsolaBaseFrameSizeAt441?: number;
	wsolaSearchSampleRate?: number;
	faderRampDurationSeconds?: number;
	minFineUpFrameSize?: number;
	crossfadeMs?: number;
}
export interface EventDict {
	[EventTypes.onState]: (state: BurstState) => void;
	[EventTypes.onOverload]: (e: {
		elapsedTime: number;
	}) => void;
	[EventTypes.onError]: (e: {
		message: string;
	}) => void;
	[EventTypes.onUnsupported]: (e: {
		message: string;
	}) => void;
}
export interface IRTCBurstExtensionConfig extends Partial<Omit<BurstOptions, "sampleRate" | "channelCount">> {
	
	url?: string;
	
	initialStretch?: number;
	
	wsolaBaseFrameSizeAt441?: number;
	
	wsolaSearchSampleRate?: number;
	
	faderRampDurationSeconds?: number;
	
	minFineUpFrameSize?: number;
	
	crossfadeMs?: number;
}

export {
	AudioRushSyncState as BurstState,
	IRTCAudioRushSyncExtension as default,
};

export {};
