import { ICreateSample, ISample } from './interface'; export default class SampleManager { context: AudioContext; basePath: string; extension: string; private samplesMap; private isLoading; constructor(context: AudioContext, basePath: string, extension: string); /** * Loads all samples that are currently present. Returns a promise. * @param {(value: number) => void} onProgress * @returns {Promise} */ loadAllSamples(onProgress?: (value: number) => void): Promise; /** * Loads a list of samples, returns a promise. * @param {ISample[]} samples * @param {(value: number) => void} onProgress * @returns {Promise} */ loadSamples(samples: ISample[], onProgress?: (value: number) => void): Promise; /** * Loads a list of samples by their names. Returned promise will be rejected if one or more * samples can not be found (nothing will be loaded). * @param {string[]} names * @param {(value: number) => void} onProgress * @returns {Promise} */ loadSamplesByName(names: string[], onProgress?: (value: number) => void): Promise; /** * Gets the list of the current samples. * @returns {ISample[]} */ getAllSamples(): ISample[]; /** * Adds a sample to the manager. Throws an error when a sample with the same name already exists. * @param {ICreateSample} createSample */ addSample(createSample: ICreateSample): void; /** * Adds multiple samples to the manager. Throws an error when a sample with the same name already exists. * @param {ICreateSample[]} samples */ addSamples(samples: ICreateSample[]): void; /** * Creates and adds samples from a list of names. * @param {string[]} names */ addSamplesFromNames(names: string[]): void; /** * Retrieves a sample by supplying a name. * @param {string} name * @returns {ISample} */ getSampleByName(name: string): ISample; }