import type { HeftConfiguration, IHeftTaskPlugin, IHeftTaskSession } from '@rushstack/heft';
import type { BuildContext } from 'esbuild';
import { type FilterdBuildOptions } from './common/config.js';
import { type IProjectEmitter } from './common/write.js';
export declare const PLUGIN_NAME = "esbuild";
export default class ESBuildPlugin implements IHeftTaskPlugin {
    private rootDir;
    static readonly PLUGIN_NAME = "esbuild";
    readonly PLUGIN_NAME = "esbuild";
    apply(session: IHeftTaskSession, configuration: HeftConfiguration, userInput: any): void;
    private _initOptions;
    private _esbuild;
    private getEsbuild;
    private _contexts?;
    getContext(session: IHeftTaskSession, configuration: HeftConfiguration, userInput: object): Promise<IContext[]>;
    _getContext(session: IHeftTaskSession, configuration: HeftConfiguration, userInput: object): Promise<IContext[]>;
}
interface IContext {
    readonly context: BuildContext<FilterdBuildOptions>;
    readonly options: Readonly<FilterdBuildOptions>;
    readonly emitter: IProjectEmitter;
}
export {};
//# sourceMappingURL=plugin.d.ts.map