import { ApiPromise } from "@polkadot/api";
import { UniquesCollectionMediaElement, UniquesItemMediaElement } from "./uniques/media";
export { UniquesCollectionMediaElement, UniquesItemMediaElement } from "./uniques/media";
export declare type Config = {
    defaultApi?: ApiPromise;
    defaultProviders: Map<string, Provider>;
};
/**
 * Abstract away the access to a parachain
 */
interface Provider {
    wssURL: string;
}
export declare let config: Config;
export declare function registerDefaultApi(api: ApiPromise): void;
export declare function registerDefaultProviders(providers: Map<string, Provider>): void;
export declare function registerElements(): void;
interface CustomEventMap {
    "api-changed": CustomEvent<{
        api: ApiPromise | undefined;
    }>;
    "attribute-changed": CustomEvent<{
        name: string;
        oldValue: any;
        newValue: any;
    }>;
}
interface WindowCustomEventMap {
    "default-api-changed": CustomEvent<{
        api: ApiPromise | undefined;
    }>;
}
declare global {
    interface HTMLElement {
        addEventListener<K extends keyof CustomEventMap>(type: K, listener: (this: Document, ev: CustomEventMap[K]) => void): void;
    }
    interface HTMLElementTagNameMap {
        'es-uniques-collection-media': UniquesCollectionMediaElement;
        'es-uniques-item-media': UniquesItemMediaElement;
    }
    interface Window {
        __ESTAMINET_CONFIG__: Config;
        addEventListener<K extends keyof WindowCustomEventMap>(type: K, listener: (this: Document, ev: WindowCustomEventMap[K]) => void): void;
    }
}
