import * as coreClient from "@azure/core-client";
export interface Contract {
    code: string;
    options?: CompileOpts;
}
export interface CompileOpts {
    /** An explicit file system, mapping file names to file content */
    fileSystem?: Record<string, unknown>;
    /** Name of contract source file - only used in error messages */
    srcFile?: string;
}
export interface CompilerError {
    type: string;
    pos: ErrorPos;
    message: string;
    context?: string;
}
export interface ErrorPos {
    file?: string;
    line: number;
    col: number;
}
export interface CompileResult {
    /** Prefixed (cb_) Base64Check encoded byte array */
    bytecode: string;
    aci: Record<string, unknown>[];
    warnings: CompilerError[];
}
export interface SophiaCallResultInput {
    /** (Possibly partial) Sophia contract code/interface */
    source: string;
    options?: CompileOpts;
    /** Name of the called function */
    function: string;
    /** Call result type (ok | revert | error) */
    callResult: string;
    /** Call result value (ABI encoded data or error string) */
    callValue: string;
}
export interface BytecodeCallResultInput {
    /** Compiled contract */
    bytecode: string;
    /** Name of the called function */
    function: string;
    /** Call result type (ok | revert | error) */
    callResult: string;
    /** Call result value (ABI encoded data or error string) */
    callValue: string;
}
export interface DecodedCallresult {
    function: string;
    /** Any object */
    result: Record<string, unknown>;
}
export interface FunctionCallInput {
    /** (Possibly partial) Sophia contract code */
    source: string;
    options?: CompileOpts;
    /** Name of function to call */
    function: string;
    /** Array of function call arguments */
    arguments: string[];
}
export interface Calldata {
    /** Prefixed (cb_) Base64Check encoded byte array */
    calldata: string;
}
export interface DecodeCalldataBytecode {
    /** Calldata to dissect */
    calldata: string;
    /** Compiled contract */
    bytecode: string;
}
export interface DecodedCalldata {
    function: string;
    arguments: Record<string, unknown>[];
}
export interface ErrorModel {
    reason: string;
}
export interface DecodeCalldataSource {
    /** (Possibly partial) Sophia contract code */
    source: string;
    options?: CompileOpts;
    /** Calldata to dissect */
    calldata: string;
    /** Name of the function to call */
    function: string;
}
export interface ByteCodeInput {
    /** Compiled contract */
    bytecode: string;
}
export interface FateAssembler {
    /** Fate assembler code */
    fateAssembler: string;
}
export interface ValidateByteCodeInput {
    /** Compiled contract */
    bytecode: string;
    /** Sophia contract source code */
    source: string;
    options?: CompileOpts;
}
export interface CompilerVersion {
    /** Sophia compiler version */
    version: string;
}
export interface ApiVersion {
    /** API compiler version */
    apiVersion: string;
}
export interface SophiaBinaryData {
    sophiaType: string;
    data: string;
}
export interface SophiaJsonData {
    /** Any object */
    data: Record<string, unknown>;
}
/** Optional parameters. */
export interface GenerateACIOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the generateACI operation. */
export type GenerateACIResponse = Record<string, unknown>[];
/** Optional parameters. */
export interface CompileContractOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the compileContract operation. */
export type CompileContractResponse = CompileResult;
/** Optional parameters. */
export interface DecodeCallResultOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the decodeCallResult operation. */
export type DecodeCallResultResponse = {
    /** The parsed response body. */
    body: any;
};
/** Optional parameters. */
export interface DecodeCallResultBytecodeOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the decodeCallResultBytecode operation. */
export type DecodeCallResultBytecodeResponse = DecodedCallresult;
/** Optional parameters. */
export interface EncodeCalldataOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the encodeCalldata operation. */
export type EncodeCalldataResponse = Calldata;
/** Optional parameters. */
export interface DecodeCalldataBytecodeOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the decodeCalldataBytecode operation. */
export type DecodeCalldataBytecodeResponse = DecodedCalldata;
/** Optional parameters. */
export interface DecodeCalldataSourceOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the decodeCalldataSource operation. */
export type DecodeCalldataSourceResponse = DecodedCalldata;
/** Optional parameters. */
export interface GetFateAssemblerCodeOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the getFateAssemblerCode operation. */
export type GetFateAssemblerCodeResponse = FateAssembler;
/** Optional parameters. */
export interface ValidateByteCodeOptionalParams extends coreClient.OperationOptions {
}
/** Optional parameters. */
export interface GetCompilerVersionOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the getCompilerVersion operation. */
export type GetCompilerVersionResponse = CompilerVersion;
/** Optional parameters. */
export interface VersionOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the version operation. */
export type VersionResponse = CompilerVersion;
/** Optional parameters. */
export interface ApiVersionOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the apiVersion operation. */
export type ApiVersionResponse = ApiVersion;
/** Optional parameters. */
export interface ApiOptionalParams extends coreClient.OperationOptions {
}
/** Contains response data for the api operation. */
export type ApiResponse = Record<string, unknown>;
/** Optional parameters. */
export interface CompilerOptionalParams extends coreClient.ServiceClientOptions {
    /** Overrides client endpoint. */
    endpoint?: string;
}
