import { moduleFederationPlugin, sharePlugin } from "@module-federation/sdk";
import { Compiler } from "webpack";

//#region src/lib/sharing/SharePlugin.d.ts
type SharedConfig = moduleFederationPlugin.SharedConfig;
type NormalizedSharedOptions = [string, SharedConfig][];
declare function normalizeSharedOptions(shared: moduleFederationPlugin.Shared): NormalizedSharedOptions;
declare function createConsumeShareOptions(normalizedSharedOptions: NormalizedSharedOptions): {
  [x: string]: {
    import: string | false | undefined;
    shareKey: string;
    shareScope: string | string[] | undefined;
    requiredVersion: string | false | undefined;
    strictVersion: boolean | undefined;
    singleton: boolean | undefined;
    packageName: string | undefined;
    eager: boolean | undefined;
    issuerLayer: string | undefined;
    layer: string | undefined;
    request: string;
    exclude: moduleFederationPlugin.IncludeExcludeOptions | undefined;
    include: moduleFederationPlugin.IncludeExcludeOptions | undefined;
    allowNodeModulesSuffixMatch: boolean | undefined;
    treeShakingMode: any;
  };
}[];
declare function createProvideShareOptions(normalizedSharedOptions: NormalizedSharedOptions): {
  [x: string]: {
    shareKey: string;
    shareScope: string | string[] | undefined;
    version: string | false | undefined;
    eager: boolean | undefined;
    requiredVersion: string | false | undefined;
    strictVersion: boolean | undefined;
    singleton: boolean | undefined;
    layer: string | undefined;
    request: string;
    exclude: moduleFederationPlugin.IncludeExcludeOptions | undefined;
    include: moduleFederationPlugin.IncludeExcludeOptions | undefined;
    allowNodeModulesSuffixMatch: boolean | undefined;
    treeShakingMode: any;
  };
}[];
declare class SharePlugin {
  private _shareScope;
  private _consumes;
  private _provides;
  constructor(options: sharePlugin.SharePluginOptions);
  /**
   * Applies the plugin to the webpack compiler instance
   * @param compiler - The webpack compiler instance
   */
  apply(compiler: Compiler): void;
}
//#endregion
export { NormalizedSharedOptions, createConsumeShareOptions, createProvideShareOptions, SharePlugin as default, normalizeSharedOptions };
//# sourceMappingURL=SharePlugin.d.ts.map