import type { ConvertedDependencies } from './convert-dependencies.js';
import type { XStatsModule } from '../../../xpack.types.js';
export interface ModuleObject {
    id: string;
    name: string;
    applicationID: string;
    requires: string[];
    file: string;
}
interface ModulePartTwoParams {
    readonly name: string | undefined;
    readonly modules: XStatsModule[] | undefined;
    readonly modulesObj: Record<string, ModuleObject>;
    readonly convertedDeps: ConvertedDependencies;
}
export interface Overrides {
    id: string;
    name: string;
    version: string;
    location: string;
    applicationID: string;
}
interface ModulePartTwoReturn {
    overrides: Record<string, unknown>;
}
/**
 * TODO: needs full rewrite Analyzing shared dependencies and module overrides
 *
 * 1. Shared Module Analysis
 *
 * - Processes provide-module types (modules that are shared with other applications) //
 *   TODO: this is wrong and doesn't apply to Rspack - need to fix
 * - Handles consume-shared-module types (modules that are consumed from the shared scope)
 *   // TODO: this is wrong and doesn't apply to Rspack
 *
 *   - Need to fix
 * - Builds dependency graphs between modules
 *
 * 2. Version Management
 *
 * - Tracks specific versions of shared dependencies
 * - Handles version resolution for shared modules Creates override configurations for
 *   specific package versions
 *
 * @param name: Name of the federated app
 * @param modules: Modules from the build stats
 * @param modulesObj: Processed module objects
 * @param convertedDeps: Converted dependencies
 * @returns Overrides: Record<string, unknown>
 */
export declare function modulePartTwo(params: ModulePartTwoParams): ModulePartTwoReturn;
export {};
//# sourceMappingURL=module-part-two.d.ts.map