import { CeloService } from './CeloService';
import { PathAddress } from './dto/PathAddress';
import { PathHash } from './dto/PathHash';
import { PathXpubI } from './dto/PathXpubI';
import { BroadcastTx, BurnCeloErc20, DeployCeloErc20, MintCeloErc20, TransferCeloOrCeloErc20Token, CeloSmartContractMethodInvocation, SmartContractReadMethodInvocation } from '@tatumio/tatum';
import { PathAddressContractAddressI } from './dto/PathAddressContractAddressI';
import { PathTokenContractAddress } from './dto/PathTokenContractAddress';
import { PathAddressContractAddress } from './dto/PathAddressContractAddress';
import { QueryMnemonic } from './dto/QueryMnemonic';
import { GeneratePrivateKey } from './dto/GeneratePrivateKey';
import { Request } from 'express';
export declare abstract class CeloController {
    protected readonly service: CeloService;
    protected constructor(service: CeloService);
    web3Driver(body: any): Promise<any>;
    createAccount(query: QueryMnemonic): Promise<{
        mnemonic: string;
    } | {
        address: string;
        privateKey: string;
    } | {
        privateKey: string;
        address: string;
    } | {
        address: string;
        secret: string;
    } | {
        address: any;
        secret: any;
    }>;
    generateAddressPrivateKey(body: GeneratePrivateKey): Promise<{
        key: string;
    }>;
    transfer(body: TransferCeloOrCeloErc20Token): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    countTransactions(param: PathAddress): Promise<number>;
    getBalanceErc721(path: PathAddressContractAddress): Promise<{
        data: string;
    }>;
    getOwnerErc721(path: PathTokenContractAddress): Promise<{
        data: string;
    }>;
    getMetadataErc721(path: PathTokenContractAddress): Promise<{
        data: string;
    }>;
    getTokenErc721(path: PathAddressContractAddressI): Promise<{
        data: string;
    }>;
    getTokensByAddress(path: PathAddressContractAddress): Promise<{
        data: string;
    }>;
    transactionErc721(req: Request): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    mintErc721(req: Request): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    mintMultipleErc721(req: Request): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    burnErc721(req: Request): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    deployErc721(req: Request): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    transactionErc20(body: TransferCeloOrCeloErc20Token): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    invokeCeloSmartContractMethod(body: CeloSmartContractMethodInvocation | SmartContractReadMethodInvocation): Promise<{
        data: any;
    } | {
        txId: string;
        failed?: boolean;
    } | {
        signatureId: string;
    }>;
    mintErc20(body: MintCeloErc20): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    burnErc20(body: BurnCeloErc20): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    deployErc20(body: DeployCeloErc20): Promise<import("@tatumio/tatum").TransactionHash | {
        signatureId: string;
    }>;
    getAccountErc20Balance(path: PathAddressContractAddress): Promise<{
        balance: any;
    }>;
    broadcast(body: BroadcastTx): Promise<{
        txId: string;
        failed?: boolean;
    }>;
    getCurrentBlock(): Promise<number>;
    getBlock(path: PathHash): Promise<import("web3-eth").Block>;
    getAccountBalance(path: PathAddress): Promise<{
        celo: string;
        cUsd: string;
        cEur: string;
    }>;
    getRawTransaction(path: PathHash): Promise<import("web3-core").Transaction & import("web3-core").TransactionReceipt>;
    generateAddress(path: PathXpubI): Promise<{
        address: any;
    }>;
}
