import { OrderOptions, ResourcesOptions, ResourceBuildOptions } from "./models/index";
import { ResourceManifest, IClientLoadableManifestProvider } from "./LoadableManifestRegistry";
import { ClientResolvableLoadRule, ResourcesBundleManifest } from '../../fx-models';
export interface ResourcePathsWithBuildOptions {
    paths: Array<String>;
    buildOptions: ResourceBuildOptions;
}
declare class ResourceRegistration {
    description: ResourcesOptions;
    manifestPath: string;
    manifest: ResourceManifest;
    orderOptions: OrderOptions;
    loadRules: Array<ClientResolvableLoadRule>;
    extendApiRules: Array<ClientResolvableLoadRule>;
    buildOptions: ResourceBuildOptions;
    constructor(description: ResourcesOptions, manifestPath: string, manifest: ResourceManifest);
}
export declare class ResourceRegistry implements IClientLoadableManifestProvider {
    private static ResourceRegistrations;
    static registerResource: (manifest: ResourceManifest, resourceDescription: ResourcesOptions) => void;
    static addOrdering: (manifest: ResourceManifest, orderOption: OrderOptions) => void;
    static addBuildOptions: (manifest: ResourceManifest, buildOptions: ResourceBuildOptions) => void;
    static newCombinedRules: (manifest: ResourceManifest, rules: Array<ClientResolvableLoadRule>) => void;
    static addExtendApiRules: (manifest: ResourceManifest, rules: Array<ClientResolvableLoadRule>) => void;
    static getRegisteredResourceBundles: (pathJoiner: (path1: any, path2: any) => string[]) => {
        [key: string]: ResourcePathsWithBuildOptions;
    };
    static getResourceRegistrations: () => {
        [key: string]: ResourceRegistration[];
    };
    getClientLoadableManifests: (currentServiceId: string) => Array<ResourcesBundleManifest>;
    clearState: () => void;
    private static ensureCorrectManifest;
}
export {};
