import { IWebComponentInstanceContext, IConnectedWebComponent, IWebComponentRegistrationHandler, IWebComponentInstance } from "./InternalWebComponentBootstrapper";
import { WebComponentBundleManifest } from "../../models";
export declare class WebComponentInstanceContext implements IWebComponentInstanceContext {
    private instance;
    getManifest: () => WebComponentBundleManifest;
    constructor(instance: IWebComponentInstance, getManifest: () => WebComponentBundleManifest);
}
export declare class ConnectedWebComponent implements IConnectedWebComponent {
    private webComponentManifest;
    private registrationHandler;
    instanceContexts: Array<WebComponentInstanceContext>;
    constructor(webComponentManifest: WebComponentBundleManifest);
    hasElementRegistrationHandler: () => boolean;
    getManifest: () => WebComponentBundleManifest;
    setRegistrationHandler: (registrationHandler: IWebComponentRegistrationHandler) => void;
    executeElementRegistration: () => void;
    addElementInstanceHandler: (instanceHandler: IWebComponentInstance, htmlElement: HTMLElement) => IWebComponentInstanceContext;
}
export interface IManifestMap {
    [manifestId: string]: ConnectedWebComponent;
}
export interface IProxyOmniaServiceManifestMap {
    [omniaServiceId: string]: IManifestMap;
}
export declare class PrivateBootstrapper {
    private static ProxyHolder;
    static newWebComponentProxy: (webComponentManifest: WebComponentBundleManifest) => ConnectedWebComponent;
    static getWebComponentProxy: (webComponentManifest: WebComponentBundleManifest) => ConnectedWebComponent;
}
