/// <reference types="node" />
export declare type SrcOptions = {
    projectRoot: string;
};
export declare class ResFile {
    origin: string;
    constructor(origin: string);
}
export declare function src(matcher: string, options: SrcOptions): Promise<ResFile[]>;
export declare type PluginContext = {
    projectRoot: string;
    outputDir: string;
    buildConfig: {
        command: "build" | "publish";
    };
    createFile: (relativePath: string, content: Buffer) => void;
};
export declare type Plugin = {
    onStart?: (param: PluginContext) => void | Promise<void>;
    onFile: (file: ResFile) => Promise<ResFile | null>;
    onFileLater?: (file: ResFile) => Promise<ResFile | null>;
    onFinish: (param: PluginContext) => void | Promise<void>;
};
export declare function init(__projectRoot: string, __buildConfig: {
    command: "build" | "publish";
}): void;
export declare function compile(projectRoot: string): void;
export declare function createPlugin(p: Plugin, outputDir: string): void;
