import { WebComponentBundleManifest } from "../../models";
export interface IWebComponentInstance {
}
export interface IManifestMap {
    [manifestId: string]: IConnectedWebComponent;
}
export interface IProxyOmniaServiceManifestMap {
    [omniaServiceId: string]: IManifestMap;
}
export interface IWebComponentRegistrationHandler {
    (webComponentManifest: WebComponentBundleManifest): void;
}
export interface IConnectedWebComponent {
    setRegistrationHandler: (registrationHandler: IWebComponentRegistrationHandler) => void;
    addElementInstanceHandler: (instanceHandler: IWebComponentInstance, htmlElement: HTMLElement) => IWebComponentInstanceContext;
    getManifest: () => WebComponentBundleManifest;
}
export interface IWebComponentInstanceContext {
    getManifest: () => WebComponentBundleManifest;
}
export declare class InternalWebComponentBootstrapper {
    static registerElement: (omniaServiceId: string, manifestId: string, registrationHandler: IWebComponentRegistrationHandler) => void;
    static registerElementInstance(omniaServiceId: string, manifestId: string, instanceHandler: IWebComponentInstance, htmlElement: HTMLElement): IWebComponentInstanceContext;
    private static getProxyForCaller;
}
