import { AlgoService } from './AlgoService';
import { QueryMnemonic, PathAddress } from '@tatumio/blockchain-connector-common';
import { GeneratePrivateKey } from './dto/GeneratePrivateKey';
import { PathRountNumber } from './dto/PathRoundNumber';
import { PathTransactionId } from './dto/PathTransactionId';
import { AlgoTransaction, BroadcastTx } from '@tatumio/tatum';
import { PathFromTo } from './PathFromTo';
import { Pagination } from './Pagination';
import { Request } from 'express';
export declare abstract class AlgoController {
    protected readonly service: AlgoService;
    protected constructor(service: AlgoService);
    nodeGetIndexer(req: Request, param: {
        key: string;
    }): Promise<any>;
    nodePostIndexer(req: Request, param: {
        key: string;
    }): Promise<any>;
    nodeGetAlgod(req: Request, param: {
        key: string;
    }): Promise<any>;
    nodePostAlgod(req: Request, param: {
        key: string;
    }): Promise<any>;
    generateWallet(query: QueryMnemonic): Promise<{
        address: any;
        secret: any;
    }>;
    generateAddress({ fromPrivateKey }: GeneratePrivateKey): Promise<any>;
    getAccountBalance(param: PathAddress): Promise<number>;
    sendTransaction(body: AlgoTransaction): Promise<{
        txId: string;
        failed?: boolean;
    } | {
        signatureId: string;
    }>;
    broadcast(body: BroadcastTx): Promise<{
        txId: string;
        failed?: boolean;
    }>;
    getInfo(): Promise<number>;
    getBlock({ roundNumber }: PathRountNumber): Promise<{
        genesisHash: any;
        genesisId: any;
        previousBlockHash: any;
        rewards: any;
        round: any;
        seed: any;
        timestamp: any;
        txns: any;
        txn: any;
        txnc: any;
        upgradeState: any;
        upgradeVote: any;
    }>;
    getTransaction({ txid }: PathTransactionId): Promise<{
        closeRewards: any;
        closingAmount: any;
        confirmedRound: any;
        fee: number;
        firstValid: any;
        genesisHash: any;
        genesisId: any;
        id: any;
        intraRoundOffset: any;
        lastValid: any;
        note: any;
        paymentTransaction: any;
        receiverRewards: any;
        roundTime: any;
        sender: any;
        senderRewards: any;
        signature: any;
        txType: any;
    }>;
    getPayTransactions({ from, to }: PathFromTo, { limit, next }: Pagination): Promise<{
        nextToken: any;
        transactions: any;
    }>;
}
