import { type BuiltinPlugin, BuiltinPluginName } from '@rspack/binding';
import { RspackBuiltinPlugin } from '../builtin-plugin/base';
import type { Compiler } from '../Compiler';
import type { ShareScope } from './SharePlugin';
export type ConsumeSharedPluginOptions = {
    consumes: Consumes;
    shareScope?: ShareScope;
    enhanced?: boolean;
};
export type Consumes = (ConsumesItem | ConsumesObject)[] | ConsumesObject;
export type ConsumesItem = string;
export type ConsumesObject = {
    [k: string]: ConsumesConfig | ConsumesItem;
};
export type ConsumesConfig = {
    eager?: boolean;
    import?: false | ConsumesItem;
    packageName?: string;
    requiredVersion?: false | string;
    shareKey?: string;
    shareScope?: ShareScope;
    singleton?: boolean;
    strictVersion?: boolean;
};
export declare class ConsumeSharedPlugin extends RspackBuiltinPlugin {
    name: BuiltinPluginName;
    _options: {
        consumes: [string, {
            import: string | undefined;
            shareScope: ShareScope;
            shareKey: string;
            requiredVersion: string | false | undefined;
            strictVersion: boolean;
            packageName: string | undefined;
            singleton: boolean;
            eager: boolean;
        }][];
        enhanced: boolean;
    };
    constructor(options: ConsumeSharedPluginOptions);
    raw(compiler: Compiler): BuiltinPlugin;
}
