declare const _default: {
    readonly definitions: {
        readonly Provides: {
            readonly description: "Modules that should be provided as shared modules to the share scope. When provided, property name is used to match modules, otherwise this is automatically inferred from share key.";
            readonly anyOf: readonly [{
                readonly type: "array";
                readonly items: {
                    readonly description: "Modules that should be provided as shared modules to the share scope.";
                    readonly anyOf: readonly [{
                        readonly $ref: "#/definitions/ProvidesItem";
                    }, {
                        readonly $ref: "#/definitions/ProvidesObject";
                    }];
                };
            }, {
                readonly $ref: "#/definitions/ProvidesObject";
            }];
        };
        readonly ProvidesConfig: {
            readonly description: "Advanced configuration for modules that should be provided as shared modules to the share scope.";
            readonly type: "object";
            readonly additionalProperties: false;
            readonly properties: {
                readonly eager: {
                    readonly description: "Include the provided module directly instead behind an async request. This allows to use this shared module in initial load too. All possible shared modules need to be eager too.";
                    readonly type: "boolean";
                };
                readonly shareKey: {
                    readonly description: "Key in the share scope under which the shared modules should be stored.";
                    readonly type: "string";
                    readonly minLength: 1;
                };
                readonly request: {
                    readonly description: "Import request to match on";
                    readonly type: "string";
                    readonly minLength: 1;
                };
                readonly shareScope: {
                    readonly description: "Share scope name.";
                    readonly anyOf: readonly [{
                        readonly type: "string";
                        readonly minLength: 1;
                    }, {
                        readonly type: "array";
                        readonly items: {
                            readonly type: "string";
                            readonly minLength: 1;
                        };
                    }];
                };
                readonly requiredVersion: {
                    readonly description: "Version requirement from module in share scope.";
                    readonly anyOf: readonly [{
                        readonly description: "No version requirement check.";
                        readonly enum: readonly [false];
                    }, {
                        readonly description: "Version as string. Can be prefixed with '^' or '~' for minimum matches. Each part of the version should be separated by a dot '.'.";
                        readonly type: "string";
                    }];
                };
                readonly strictVersion: {
                    readonly description: "Do not accept shared module if version is not valid (defaults to yes, if local fallback module is available and shared module is not a singleton, otherwise no, has no effect if there is no required version specified).";
                    readonly type: "boolean";
                };
                readonly singleton: {
                    readonly description: "Allow only a single version of the shared module in share scope (disabled by default).";
                    readonly type: "boolean";
                };
                readonly layer: {
                    readonly description: "Layer in which the shared module should be placed.";
                    readonly type: "string";
                    readonly minLength: 1;
                };
                readonly issuerLayer: {
                    readonly description: "Layer of the issuer.";
                    readonly type: "string";
                    readonly minLength: 1;
                };
                readonly version: {
                    readonly description: "Version of the provided module. Will replace lower matching versions, but not higher.";
                    readonly anyOf: readonly [{
                        readonly description: "Don't provide a version.";
                        readonly enum: readonly [false];
                    }, {
                        readonly description: "Version as string. Each part of the version should be separated by a dot '.'.";
                        readonly type: "string";
                    }];
                };
                readonly exclude: {
                    readonly description: "Filter for the shared module.";
                    readonly $ref: "#/definitions/IncludeExcludeOptions";
                };
                readonly include: {
                    readonly description: "Options for including only certain versions or requests of the provided module. Cannot be used with 'exclude'.";
                    readonly $ref: "#/definitions/IncludeExcludeOptions";
                };
                readonly allowNodeModulesSuffixMatch: {
                    readonly description: "Enable reconstructed lookup for node_modules paths for this share item";
                    readonly type: "boolean";
                };
            };
        };
        readonly ProvidesItem: {
            readonly description: "Request to a module that should be provided as shared module to the share scope (will be resolved when relative).";
            readonly type: "string";
            readonly minLength: 1;
        };
        readonly ProvidesObject: {
            readonly description: "Modules that should be provided as shared modules to the share scope. Property names are used as share keys.";
            readonly type: "object";
            readonly additionalProperties: {
                readonly description: "Modules that should be provided as shared modules to the share scope.";
                readonly anyOf: readonly [{
                    readonly $ref: "#/definitions/ProvidesConfig";
                }, {
                    readonly $ref: "#/definitions/ProvidesItem";
                }];
            };
        };
        readonly ProvidesList: {
            readonly type: "array";
            readonly description: "A list of module requests to be provided to the shared scope.";
            readonly items: {
                readonly type: "string";
            };
        };
        readonly IncludeExcludeOptions: {
            readonly type: "object";
            readonly properties: {
                readonly request: {
                    readonly anyOf: readonly [{
                        readonly type: "string";
                        readonly description: "Request string to match exactly.";
                    }, {
                        readonly instanceof: "RegExp";
                        readonly description: "Regular expression to match the request path.";
                    }];
                };
                readonly version: {
                    readonly type: "string";
                    readonly description: "Semantic versioning range to match against the module's version.";
                };
                readonly fallbackVersion: {
                    readonly type: "string";
                    readonly description: "Optional specific version string to check against the version range instead of reading package.json.";
                };
            };
            readonly additionalProperties: false;
            readonly anyOf: readonly [{
                readonly required: readonly ["request"];
            }, {
                readonly required: readonly ["version"];
            }];
        };
    };
    readonly title: "ProvideSharedPluginOptions";
    readonly type: "object";
    readonly additionalProperties: false;
    readonly properties: {
        readonly provides: {
            readonly $ref: "#/definitions/Provides";
        };
        readonly shareScope: {
            readonly description: "Share scope name used for all provided modules (defaults to 'default').";
            readonly anyOf: readonly [{
                readonly type: "string";
                readonly minLength: 1;
            }, {
                readonly type: "array";
                readonly items: {
                    readonly type: "string";
                    readonly minLength: 1;
                };
            }];
        };
        readonly experiments: {
            readonly description: "Experimental features configuration";
            readonly type: "object";
            readonly additionalProperties: false;
            readonly properties: {
                readonly allowNodeModulesSuffixMatch: {
                    readonly description: "Enable reconstructed lookup for node_modules paths";
                    readonly type: "boolean";
                };
            };
        };
    };
    readonly required: readonly ["provides"];
};
export default _default;
