import { ServerManifest, ServerManifestByTypeCollection } from "./models/index";
import { ClientManifest, ClientManifestByTypeCollection } from '../../fx-models';
export interface IResetableProvider {
    clearState: () => void;
}
export interface IClientManifestProvider extends IResetableProvider {
    getClientManifests: (currentServiceId: string) => Array<ClientManifest>;
}
export interface IServerManifestProvider extends IResetableProvider {
    getServerManifests: (currentServiceId: string) => Array<ServerManifest>;
}
export declare class StaticClientManifestProviderProxy implements IClientManifestProvider {
    getClientManifests: (currentServiceId: string) => ClientManifest[];
    clearState: () => void;
    constructor(getClientManifestsFunc: (currentServiceId: string) => Array<ClientManifest>, clearStateFunc: () => void);
}
export declare class StaticServerManifestProviderProxy implements IServerManifestProvider {
    getServerManifests: (currentOmniaServiceId: string) => ServerManifest[];
    clearState: () => void;
    constructor(getServerManifestsFunc: (currentOmniaServiceId: string) => Array<ServerManifest>, clearStateFunc: () => void);
}
export declare class ManifestRegistry {
    private static CurrentManifestPath;
    private static ClientManifestProviders;
    private static ServerManifestProviders;
    private static ResetableManifestProviders;
    static registerClientManifestProvider: (provider: IClientManifestProvider) => void;
    static registerServerManifestProvider: (provider: IServerManifestProvider) => void;
    static setCurrentManifestPath: (manifestPath?: string) => void;
    static getCurrentManifestPath: () => string;
    static getClientManifests: (currentServiceId: string) => ClientManifestByTypeCollection;
    static getServerManifests: (currentOmniaServiceId: string) => ServerManifestByTypeCollection;
    static clearState: () => void;
    private static addResetableProvider;
}
