import { Commands } from '../../../protocol';
import { Deps } from '../../../protocol/typeUtil';
import { ModuleName } from '../../../types/protocol';
import { AppMeta } from '../../../types/commonData';
export interface BlockUtilsBaseOptions {
    execute: Commands<Deps<ModuleName.preview>>;
}
export default abstract class BlockUtilsBase<HOST extends string> {
    private availableBlockHosts;
    protected execute: BlockUtilsBaseOptions['execute'];
    constructor(options: BlockUtilsBaseOptions);
    abstract getAvailableBlockHost(): {
        name: string;
        value: string;
    }[];
    abstract startHTTPServer(devToolsPath: string): Promise<number>;
    chooseHost(): Promise<HOST>;
    checkHost(host: string): void;
    static returnSuccess<T = any>(code: number, data?: T): {
        code: number;
        msg: string;
        data?: T;
    };
    getAppMeta(blockTypeID: string): Promise<AppMeta>;
}
