import * as coreClient from "@azure/core-client";
import { CompilerOptionalParams, Contract, GenerateACIOptionalParams, GenerateACIResponse, CompileContractOptionalParams, CompileContractResponse, SophiaCallResultInput, DecodeCallResultOptionalParams, DecodeCallResultResponse, BytecodeCallResultInput, DecodeCallResultBytecodeOptionalParams, DecodeCallResultBytecodeResponse, FunctionCallInput, EncodeCalldataOptionalParams, EncodeCalldataResponse, DecodeCalldataBytecode, DecodeCalldataBytecodeOptionalParams, DecodeCalldataBytecodeResponse, DecodeCalldataSource, DecodeCalldataSourceOptionalParams, DecodeCalldataSourceResponse, ByteCodeInput, GetFateAssemblerCodeOptionalParams, GetFateAssemblerCodeResponse, ValidateByteCodeInput, ValidateByteCodeOptionalParams, GetCompilerVersionOptionalParams, GetCompilerVersionResponse, VersionOptionalParams, VersionResponse, ApiVersionOptionalParams, ApiVersionResponse, ApiOptionalParams, ApiResponse } from "./models/index.js";
export declare class Compiler extends coreClient.ServiceClient {
    readonly $host: string;
    /**
     * Initializes a new instance of the Compiler class.
     * @param $host server parameter
     * @param options The parameter options
     */
    constructor($host: string, options?: CompilerOptionalParams);
    /**
     * Generate an Aeternity Contract Interface (ACI) for contract
     * @param body contract code
     * @param options The options parameters.
     */
    generateACI(body: Contract, options?: GenerateACIOptionalParams): Promise<GenerateACIResponse>;
    /**
     * Compile a sophia contract from source and return byte code and ACI
     * @param body contract code
     * @param options The options parameters.
     */
    compileContract(body: Contract, options?: CompileContractOptionalParams): Promise<CompileContractResponse>;
    /**
     * Decode the result of contract call
     * @param body Binary data in Sophia ABI format
     * @param options The options parameters.
     */
    decodeCallResult(body: SophiaCallResultInput, options?: DecodeCallResultOptionalParams): Promise<DecodeCallResultResponse>;
    /**
     * Decode the result of contract call from Bytecode
     * @param body Call result + compiled contract
     * @param options The options parameters.
     */
    decodeCallResultBytecode(body: BytecodeCallResultInput, options?: DecodeCallResultBytecodeOptionalParams): Promise<DecodeCallResultBytecodeResponse>;
    /**
     * Encode Sophia function call according to sophia ABI.
     * @param body Sophia function call - contract code + function name + arguments
     * @param options The options parameters.
     */
    encodeCalldata(body: FunctionCallInput, options?: EncodeCalldataOptionalParams): Promise<EncodeCalldataResponse>;
    /**
     * Identify function name and arguments in Calldata for a compiled contract
     * @param body Calldata + compiled contract
     * @param options The options parameters.
     */
    decodeCalldataBytecode(body: DecodeCalldataBytecode, options?: DecodeCalldataBytecodeOptionalParams): Promise<DecodeCalldataBytecodeResponse>;
    /**
     * Identify function name and arguments in Calldata for a (partial) contract
     * @param body Calldata + contract (stub) code
     * @param options The options parameters.
     */
    decodeCalldataSource(body: DecodeCalldataSource, options?: DecodeCalldataSourceOptionalParams): Promise<DecodeCalldataSourceResponse>;
    /**
     * Get FATE assembler code from bytecode
     * @param body contract byte array
     * @param options The options parameters.
     */
    getFateAssemblerCode(body: ByteCodeInput, options?: GetFateAssemblerCodeOptionalParams): Promise<GetFateAssemblerCodeResponse>;
    /**
     * Verify that an encoded byte array is the result of compiling a given contract
     * @param body contract byte array and source code
     * @param options The options parameters.
     */
    validateByteCode(body: ValidateByteCodeInput, options?: ValidateByteCodeOptionalParams): Promise<void>;
    /**
     * Extract compiler version from bytecode
     * @param body contract byte array
     * @param options The options parameters.
     */
    getCompilerVersion(body: ByteCodeInput, options?: GetCompilerVersionOptionalParams): Promise<GetCompilerVersionResponse>;
    /**
     * Get the version of the underlying Sophia compiler version
     * @param options The options parameters.
     */
    version(options?: VersionOptionalParams): Promise<VersionResponse>;
    /**
     * Get the version of the API
     * @param options The options parameters.
     */
    apiVersion(options?: ApiVersionOptionalParams): Promise<ApiVersionResponse>;
    /**
     * Get the Api description
     * @param options The options parameters.
     */
    api(options?: ApiOptionalParams): Promise<ApiResponse>;
}
