import type { CustomPluginOptions, EmittedFile, LoadResult, MinimalPluginContext, ModuleInfo, PartialResolvedId, PluginContext, PluginContextMeta, ResolvedId, RollupError, RollupLog, SourceDescription } from "rollup";
import { Server } from ".";
import { Plugin } from "../plugin";
import type * as postcss from "postcss";
import { ResolvedConfig } from "../config";
import { ModuleMap } from "./moduleMap";
export declare class PluginContainer {
    config: ResolvedConfig;
    moduleMap?: ModuleMap | undefined;
    addWatcher?: Server["addWatchFile"] | undefined;
    private readonly plugins;
    /**
     * rollup插件上下文
     */
    minimalPluginContext: MinimalPluginContext;
    isClonsed: boolean;
    private inputOptions?;
    /**
     * resolveId缓存，避免重复多次的解析
     */
    resolveIdCache: Map<string, PartialResolvedId>;
    constructor(config: ResolvedConfig, moduleMap?: ModuleMap | undefined, addWatcher?: Server["addWatchFile"] | undefined);
    initOptions(): Promise<void>;
    start(): Promise<void>;
    getModuleInfo(id: string): ModuleInfo | null;
    resolveId(id: string, importer?: string, options?: {
        skips?: Set<Plugin>;
        scan?: boolean;
        isEntry?: boolean;
        custom?: CustomPluginOptions;
    }): Promise<PartialResolvedId | null>;
    load(id: string): Promise<LoadResult | null>;
    close(): Promise<void>;
    transform(code: string, id: string, inMap?: SourceDescription["map"]): Promise<SourceDescription | null>;
    private updateModuleInfo;
}
export declare class RollupPluginContext implements Omit<PluginContext, "cache" | "emitAsset" | "emitChunk" | "getAssetFileName" | "getChunkFileName" | "isExternal" | "moduleIds" | "resolveId" | "load" | "debug" | "info" | "parse" | "fs"> {
    private container;
    plugin?: Plugin | undefined;
    watchFiles: Set<string>;
    meta: PluginContextMeta;
    _activeId?: string;
    _activeCode?: string;
    _scan?: boolean;
    _skipsPlugins?: Set<Plugin>;
    _addedImports?: Set<string>;
    constructor(container: PluginContainer, plugin?: Plugin | undefined);
    resolve(source: string, importer?: string | undefined, options?: {
        custom?: CustomPluginOptions | undefined;
        isEntry?: boolean | undefined;
        skipSelf?: boolean | undefined;
    } | undefined): Promise<ResolvedId | null>;
    getModuleIds(): IterableIterator<string>;
    getModuleInfo(moduleId: string): ModuleInfo | null;
    addWatchFile(id: string): void;
    getWatchFiles(): string[];
    transformError(e: string | RollupLog, position?: number | {
        column: number;
        line: number;
    }): RollupError & postcss.CssSyntaxError;
    error(err: string | RollupError, pos?: number | {
        column: number;
        line: number;
    } | undefined): never;
    warn(log: RollupLog | string | (() => RollupLog | string)): void;
    emitFile(emittedFile: EmittedFile): string;
    getFileName(fileReferenceId: string): string;
    setAssetSource(assetReferenceId: string, source: string | Uint8Array): void;
    private warnTip;
}
