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>;
}
export declare function composePlugins(...plugins: (NxComposableRspackPlugin | AsyncNxComposableRspackPlugin | Promise<NxComposableRspackPlugin | AsyncNxComposableRspackPlugin>)[]): ((config: Configuration, ctx: NxRspackExecutionContext) => Promise<Configuration>) & {
    nxRspackComposablePlugin: boolean;
};
export declare function composePluginsSync(...plugins: NxComposableRspackPlugin[]): ((config: Configuration, ctx: NxRspackExecutionContext) => Configuration) & {
    nxRspackComposablePlugin: boolean;
};
