import { FFIResult, BuildOptions, CleanOptions, TestOptions, DecodedModuleBytes, DecodedScriptBytes, ModuleInfo } from './types';
type ModuleName = string;
export declare class MoveBuilder {
    private readonly packagePath;
    private buildOptions;
    /**
     * Create a MoveBuilder.
     * @param packagePath - Full path to package directory.
     * @param buildOptions - Move package build options.
     */
    constructor(packagePath: string, buildOptions: BuildOptions);
    /**
     * Create raw build configuration.
     * @returns Raw build configuration.
     */
    private makeRawBuildConfig;
    private getPackageName;
    private readFiles;
    /**
     * Execute move compiler to generate new move package.
     * @param packageName - Name of the package.
     * @param moveVersion - Version of the move (default is 'main').
     * @param minitia - Boolean flag for minitia (default is false).
     * @returns If success, return "ok", else throw an error.
     */
    new(packageName: string, moveVersion?: string, minitia?: boolean): Promise<FFIResult>;
    /**
     * Execute move compiler to clean move package.
     * @param options - Options for cleaning the package.
     * @returns If success, return "ok", else throw an error.
     */
    clean(options?: CleanOptions): Promise<FFIResult>;
    /**
     * Execute move compiler to generate move bytecode.
     * @returns If success, return "ok", else throw an error.
     */
    build(): Promise<FFIResult>;
    /**
     * Return compiled Move module bytecode.
     * @returns The module bytecode.
     */
    getAll(): Promise<Record<ModuleName, Buffer>>;
    /**
     * Return compiled Move module bytecode.
     * @param moduleName - The module name to retrieve.
     * @returns The module bytecode.
     */
    get(moduleName: string): Promise<Buffer>;
    /**
     * Return compiled Move module source map.
     * @returns The module source map.
     */
    getAllSourceMaps(): Promise<Record<ModuleName, Buffer>>;
    /**
     * Return compiled Move module source map.
     * @param moduleName - The module name to retrieve.
     * @returns The module source map.
     */
    getSourceMap(moduleName: string): Promise<Buffer>;
    /**
     * Execute move compiler to unittest.
     * @param options - Move package test options.
     * @returns If success, return "ok", else throw an error.
     */
    test(options?: TestOptions): Promise<FFIResult>;
    /**
     * Decode module bytes to move module.
     * @param moduleBytes - Move module bytes.
     * @returns If success, return buffer, else throw an error.
     */
    static decodeModuleBytes(moduleBytes: Buffer): Promise<DecodedModuleBytes>;
    /**
     * Decode script bytes to move function.
     * @param scriptBytes - Move script bytes.
     * @returns If success, return buffer, else throw an error.
     */
    static decodeScriptBytes(scriptBytes: Buffer): Promise<DecodedScriptBytes>;
    /**
     * Read module info from bytes.
     * @param compiledBinary - Move compiled bytes.
     * @returns If success, return buffer, else throw an error.
     */
    static readModuleInfo(compiledBinary: Buffer): Promise<ModuleInfo>;
}
export {};
