export declare enum ECompileTargetType {
    Mini = "Mini",
    Cube = "Cube"
}
export declare enum ECompileModeType {
    Remote = "Remote",
    Remotex = "Remotex",
    RemotexLite = "RemotexLite",
    Preview = "Preview",
    RemoteBoatman = "RemoteBoatman"
}
export interface IGenerateInjectCodeOptions {
    mode: ECompileModeType;
    target?: ECompileTargetType;
    compilePlugin?: boolean;
}
export interface IGetBoatmanBundleOptions {
    target?: ECompileTargetType;
}
export interface IInjectionPoints {
    htmlTop?: string;
    webTop?: string;
    workerTop?: string;
    pluginWebTop?: string;
    pluginWorkerTop?: string;
}
export interface IUpdateAssetsOptions {
    cacheToday?: boolean;
}
export interface IOnlineAssetsConfig {
    integrity: string;
    url: string;
    integrity_v2: string;
    url_v2: string;
    url_boatman_mini: string;
    integrity_boatman_mini: string;
    url_boatman_cube?: string;
    integrity_boatman_cube: string;
}
export interface IAssetsMap {
    tyroAgent?: string;
    bugmeRRemote?: string;
    bugmeRPreview?: string;
    bugmeWRemote?: string;
    bugmeWPreview?: string;
}
export interface IBuilderDebugClientOptions extends IBuilderDebugConfig {
}
export interface IBuilderDebugConfig {
    assetsQueryUrl: string;
    injectCodeTempPath: string;
    offlineDirectoryPath: string;
    readonlyDirectoryPath: string;
    assetsMapFilename: string;
    boatmanFilename: Record<ECompileTargetType, string>;
}
export interface IBuilderDebugClient {
    /**
     * 检查更新本地 offline 目录下的资源文件
     */
    updateOfflineAssets(options: IUpdateAssetsOptions): Promise<void>;
    /**
     * 生成构建器消费的 InjectCode 注入点对象
     */
    generateInjectCode(options: IGenerateInjectCodeOptions): Promise<IInjectionPoints>;
    /**
     * generateInjectCode 同步方法
     */
    generateInjectCodeSync(options: IGenerateInjectCodeOptions): IInjectionPoints;
    /**
     * 生成构建器消费的 InjectCode JSON 文件，并返回路径
     */
    generateInjectCodePath(options: IGenerateInjectCodeOptions): Promise<string>;
    /**
     * generateInjectCodePath 同步方法
     */
    generateInjectCodePathSync(options: IGenerateInjectCodeOptions): string;
    /**
     * 获取本地 boatman 文件资源路径
     */
    getBoatmanBundlePath(options: IGetBoatmanBundleOptions): Promise<string>;
    /**
     * getBoatmanBundlePath 同步方法
     */
    getBoatmanBundlePathSync(options: IGetBoatmanBundleOptions): string;
}
