import { ComponentSpec } from '@memberjunction/interactive-component-types';
import { ComponentCompiler } from '../compiler/index.js';
import { ComponentRegistry } from '../registry/index.js';
import { RuntimeContext } from '../types/index.js';
import { LoadOptions, LoadResult, HierarchyResult, ComponentManagerConfig } from './types.js';
export declare class ComponentManager {
    private compiler;
    private registry;
    private runtimeContext;
    private config;
    private fetchCache;
    private registryNotifications;
    private loadingPromises;
    private componentEngine;
    private graphQLClient;
    constructor(compiler: ComponentCompiler, registry: ComponentRegistry, runtimeContext: RuntimeContext, config?: ComponentManagerConfig);
    loadComponent(spec: ComponentSpec, options?: LoadOptions): Promise<LoadResult>;
    private doLoadComponent;
    loadHierarchy(rootSpec: ComponentSpec, options?: LoadOptions): Promise<HierarchyResult>;
    private loadComponentRecursive;
    private loadDependenciesBatched;
    private resolveDependencies;
    private needsFetch;
    private fetchComponentSpec;
    private applyResolutionMode;
    private compileComponent;
    private notifyRegistryUsageIfNeeded;
    private initializeGraphQLClient;
    private isCacheValid;
    private calculateHash;
    private getComponentKey;
    clearCache(): void;
    getCacheStats(): {
        fetchCacheSize: number;
        notificationsCount: number;
        loadingCount: number;
    };
    private log;
}
//# sourceMappingURL=component-manager.d.ts.map