import { ExecutorContext } from '@nx/devkit';
import type { Configuration } from '@rspack/core';
import { NormalizedRspackExecutorSchema } from '../executors/rspack/schema';
export declare const nxRspackComposablePlugin = "nxRspackComposablePlugin";
export declare function isNxRspackComposablePlugin(a: unknown): a is AsyncNxComposableRspackPlugin;
export interface NxRspackExecutionContext {
    options: NormalizedRspackExecutorSchema;
    context: ExecutorContext;
    configuration?: string;
}
export interface NxComposableRspackPlugin {
    (config: Configuration, ctx: NxRspackExecutionContext): Configuration;
}
export interface AsyncNxComposableRspackPlugin {
    (config: Configuration, ctx: NxRspackExecutionContext): Configuration | Promise<Configuration>;
}
/**
 * @deprecated Will be removed in Nx v24. Use `NxAppRspackPlugin` from
 * `@nx/rspack/app-plugin` (or `NxReactRspackPlugin` from
 * `@nx/rspack/react-plugin`) in a standard rspack config and run
 * `nx g @nx/rspack:convert-to-inferred`. See
 * https://nx.dev/docs/guides/tasks--caching/convert-to-inferred for details.
 */
export declare function composePlugins(...plugins: (NxComposableRspackPlugin | AsyncNxComposableRspackPlugin | Promise<NxComposableRspackPlugin | AsyncNxComposableRspackPlugin>)[]): ((config: Configuration, ctx: NxRspackExecutionContext) => Promise<Configuration>) & {
    nxRspackComposablePlugin: boolean;
};
/**
 * @deprecated Will be removed in Nx v24. Use `NxAppRspackPlugin` from
 * `@nx/rspack/app-plugin` (or `NxReactRspackPlugin` from
 * `@nx/rspack/react-plugin`) in a standard rspack config and run
 * `nx g @nx/rspack:convert-to-inferred`. See
 * https://nx.dev/docs/guides/tasks--caching/convert-to-inferred for details.
 */
export declare function composePluginsSync(...plugins: NxComposableRspackPlugin[]): ((config: Configuration, ctx: NxRspackExecutionContext) => Configuration) & {
    nxRspackComposablePlugin: boolean;
};
