import { SyntheticEventTarget } from '../../esl-utils/dom/events/target';
import type { BaseProvider, ProviderType } from './esl-media-provider';
import type { ESLMedia } from './esl-media';
/**
 * ESLMediaProviderRegistry class to store media API providers
 * @author Yuliya Adamskaya, Natallia Harshunova
 */
export declare class ESLMediaProviderRegistry extends SyntheticEventTarget {
    protected providersMap: Map<string, ProviderType>;
    static get instance(): ESLMediaProviderRegistry;
    /** List of registered providers */
    get providers(): ProviderType[];
    /** Register provider */
    register(provider: ProviderType): void;
    /** Check that provider is registered for passed name */
    has(name: string): boolean;
    /** Find provider by name */
    findByName(name: string): ProviderType | null;
    /** Create provider instance for passed ESLMedia instance */
    createFor(media: ESLMedia): BaseProvider | null;
    /** Create provider instance for passed ESLMedia instance via provider name */
    private createByType;
    /** Create provider instance for passed ESLMedia instance via url */
    private createBySrc;
    /** Create provider instance for passed configuration */
    private static _create;
}
