import { StatsExpose, StatsRemote, StatsShared, moduleFederationPlugin } from '@module-federation/sdk';
import type { StatsModule } from '../../../webpack/lib/stats/DefaultStatsFactoryPlugin.d';
import type managerTypes from '@module-federation/managers';
export declare const getExposeName: (exposeKey: string) => string;
export declare function getExposeItem({ exposeKey, name, file, }: {
    exposeKey: string;
    name: string;
    file: {
        import: string[];
    };
}): StatsExpose;
export declare const getShareItem: ({ pkgName, normalizedShareOptions, pkgVersion, hostName, }: {
    pkgName: string;
    hostName?: string;
    normalizedShareOptions: managerTypes.types.NormalizedSharedOptions[string];
    pkgVersion: string;
}) => StatsShared;
declare class ModuleHandler {
    private _options;
    private _bundler;
    private _modules;
    private _containerManager;
    private _remoteManager;
    private _sharedManager;
    constructor(options: moduleFederationPlugin.ModuleFederationPluginOptions, modules: StatsModule[], { bundler }: {
        bundler: 'webpack' | 'rspack';
    });
    get isRspack(): boolean;
    private _handleSharedModule;
    private _handleRemoteModule;
    private _handleContainerModule;
    private _getContainerExposeEntriesFromOptions;
    private _initializeExposesFromOptions;
    collect(): {
        remotes: StatsRemote[];
        exposesMap: {
            [exposeImportValue: string]: StatsExpose;
        };
        sharedMap: {
            [sharedKey: string]: StatsShared;
        };
    };
}
export { ModuleHandler };
