/**
 * Class that enables interaction with the Orchestrate API
 */
import * as types from './types';
import { IHeaders } from './types';
export declare class OrchestrateClient {
    private client;
    /**
     * Creates a new OrchestrateClient instance
     *
     * @param host - URL and port of the Orchestrate API
     */
    constructor(host: string);
    /**
     * Fetch a transaction by UUID
     *
     * @param txUUID transaction UUID
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    getTransaction(txUUID: string, authToken?: string, headers?: IHeaders): Promise<types.ITransaction>;
    /**
     * Search for transactions
     *
     * @param searchRequest transaction search request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    searchTransactions(searchRequest: types.ISearchTransactionRequest, authToken?: string, headers?: IHeaders): Promise<types.ITransaction[]>;
    /**
     * Deploy contract request
     *
     * @param deployRequest deploy contract request data
     * @param idempotencyKey Optional transaction unique identifier
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    deployContract(deployRequest: types.IDeployContractRequest, idempotencyKey?: string, authToken?: string, headers?: IHeaders): Promise<types.ITransaction>;
    /**
     * Send contract transaction request
     *
     * @param sendRequest transaction request data
     * @param idempotencyKey Optional transaction unique identifier
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    sendTransaction(sendRequest: types.ISendTransactionRequest, idempotencyKey?: string, authToken?: string, headers?: IHeaders): Promise<types.ITransaction>;
    /**
     * Send raw transaction request
     *
     * @param sendRawRequest raw transaction request data
     * @param idempotencyKey Optional transaction unique identifier
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    sendRawTransaction(sendRawRequest: types.ISendRawRequest, idempotencyKey?: string, authToken?: string, headers?: IHeaders): Promise<types.ITransaction>;
    /**
     * Send transfer transaction request
     *
     * @param transferRequest transfer transaction request data
     * @param idempotencyKey Optional transaction unique identifier
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    transfer(transferRequest: types.ITransferRequest, idempotencyKey?: string, authToken?: string, headers?: IHeaders): Promise<types.ITransaction>;
    /**
     * Fetch list of registered chains
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    searchChains(authToken?: string, headers?: IHeaders): Promise<types.IChain[]>;
    /**
     * Register a new chain
     * @param chainRequest register chain request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    registerChain(chainRequest: types.IRegisterChainRequest, authToken?: string, headers?: IHeaders): Promise<types.IChain>;
    /**
     * Update a registered chain
     * @param chainUUID uuid of registered chain
     * @param chainRequest register chain request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    updateChain(chainUUID: string, chainRequest: types.IUpdateChainRequest, authToken?: string, headers?: IHeaders): Promise<types.IChain>;
    /**
     * Delete a registered chain
     * @param chainUUID uuid of registered chain
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    deleteChain(chainUUID: string, authToken?: string, headers?: IHeaders): Promise<void>;
    /**
     * Fetch list of registered faucets
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    searchFaucets(authToken?: string, headers?: IHeaders): Promise<types.IFaucet[]>;
    /**
     * Register a faucet account
     * @param faucetRequest register faucet request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    registerFaucet(faucetRequest: types.IRegisterFaucetRequest, authToken?: string, headers?: IHeaders): Promise<types.IFaucet>;
    /**
     * Fetch a list of registered contract names
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    getContractsCatalog(authToken?: string, headers?: IHeaders): Promise<string[]>;
    /**
     * Gets all the tags of a contract by name
     *
     * @param name - Contract name
     * @param authToken - authorization token
     * @param headers HTTP request headers.
     * @returns the tags of the contract
     */
    getContractTags(name: string, authToken?: string, headers?: IHeaders): Promise<string[]>;
    /**
     * Fetch a contract by name and tag
     *
     * @param name - Contract name
     * @param tag - Contract tag
     * @param authToken - authorization token
     * @param headers HTTP request headers.
     * @returns the contract details
     */
    getContract(name: string, tag?: string, authToken?: string, headers?: IHeaders): Promise<types.IContract>;
    /**
     * Register a new contract
     * @param contractRequest register contract request payload
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    registerContract(contractRequest: types.IRegisterContractRequest, authToken?: string, headers?: IHeaders): Promise<types.IContract>;
    /**
     * Search for accounts
     *
     * @param searchRequest accounts search filters
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    searchAccounts(searchRequest?: types.ISearchAccountsRequest, authToken?: string, headers?: IHeaders): Promise<types.IAccount[]>;
    /**
     * Fetch an account by address
     *
     * @param address account's Ethereum address
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    getAccount(address: string, authToken?: string, headers?: IHeaders): Promise<types.IAccount>;
    /**
     * Creates a new account
     *
     * @param request account creation request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    createAccount(request?: types.ICreateAccountRequest, authToken?: string, headers?: IHeaders): Promise<types.IAccount>;
    /**
     * Imports an account
     *
     * @param request account import request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    importAccount(request: types.IImportAccountRequest, authToken?: string, headers?: IHeaders): Promise<types.IAccount>;
    /**
     * Signs a message using a registered Ethereum account
     *
     * @param address account's Ethereum address
     * @param request sign message request
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    signMessage(address: string, request: types.ISignMessageRequest, authToken?: string, headers?: IHeaders): Promise<string>;
    /**
     * Updates an account's information
     *
     * @param address account's Ethereum address
     * @param request update request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    updateAccount(address: string, request: types.IUpdateAccountRequest, authToken?: string, headers?: IHeaders): Promise<types.IAccount>;
    /**
     * Signs a typed data message using a registered Ethereum account
     *
     * @param address account's Ethereum address
     * @param request sign typed data request
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    signTypedData(address: string, request: types.ISignTypedDataRequest, authToken?: string, headers?: IHeaders): Promise<string>;
    /**
     * Verifies the signature of a message
     *
     * @param request update request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    verifyMessage(request: types.IVerifyMessageRequest, authToken?: string, headers?: IHeaders): Promise<void>;
    /**
     * Verifies the signature of a typed data message
     *
     * @param request update request data
     * @param authToken Bearer token. Required when multi-tenancy is enabled
     * @param headers HTTP request headers.
     */
    verifyTypedDataSignature(request: types.IVerifyTypedDataSignatureRequest, authToken?: string, headers?: IHeaders): Promise<void>;
    private _postWithIdempotencyKey;
}
