import BigNumber from '../../dependencies/src/bignumber.js-9.0.0/bignumber';
export interface CosmosNodeInfo {
    protocol_version: {
        p2p: string;
        block: string;
        app: string;
    };
    id: string;
    listen_addr: string;
    network: string;
    version: string;
    channels: string;
    moniker: string;
    other: {
        tx_index: string;
        rpc_address: string;
    };
}
export interface CosmosAccount {
    type: string;
    value: CosmosAccountValue;
}
export interface CosmosAccountValue {
    account_number: string;
    address: string;
    coins: CosmosAccountCoin[];
    sequence: string;
    public_key?: string;
}
export interface CosmosAccountCoin {
    denom: string;
    amount: string;
}
export interface CosmosDelegation {
    delegator_address: string;
    validator_address: string;
    shares: string;
    balance: string;
}
export interface CosmosUnbondingDelegation {
    delegator_address: string;
    validator_address: string;
    entries: {
        creation_height: string;
        completion_time: string;
        initial_balance: string;
        balance: string;
    }[];
}
export interface CosmosValidator {
    operator_address: string;
    consensus_pubkey: string;
    jailed: boolean;
    status: number;
    tokens: string;
    delegator_shares: string;
    description: CosmosValidatorDescription;
    unbonding_height: string;
    unbonding_time: string;
    commission: CosmosValidatorCommission;
    min_self_delegation: string;
}
export interface CosmosValidatorDescription {
    moniker: string;
    identity: string;
    website: string;
    details: string;
}
export interface CosmosValidatorCommission {
    commission_rates: CosmosValidatorCommissionRate;
    update_time: string;
}
export interface CosmosValidatorCommissionRate {
    rate: string;
    max_rate: string;
    max_change_rate: string;
}
export interface CosmosBroadcastSignedTransactionResponse {
    txhash: string;
    height: number;
}
export interface CosmosRewardDetails {
    validator_address: string;
    reward: {
        denom: string;
        amount: number;
    }[];
}
export declare class CosmosNodeClient {
    readonly baseURL: string;
    useCORSProxy: boolean;
    constructor(baseURL: string, useCORSProxy?: boolean);
    fetchBalance(address: string, totalBalance?: boolean): Promise<BigNumber>;
    fetchNodeInfo(): Promise<CosmosNodeInfo>;
    broadcastSignedTransaction(transaction: string): Promise<string>;
    fetchAccount(address: string): Promise<CosmosAccount>;
    fetchDelegations(address: string, filterEmpty?: boolean): Promise<CosmosDelegation[]>;
    fetchTotalDelegatedAmount(address: string): Promise<BigNumber>;
    fetchValidator(address: string): Promise<CosmosValidator>;
    fetchValidators(): Promise<CosmosValidator[]>;
    fetchSelfDelegation(validatorAddress: string): Promise<CosmosDelegation>;
    fetchUnbondingDelegations(delegatorAddress: string): Promise<CosmosUnbondingDelegation[]>;
    fetchTotalUnbondingAmount(address: string): Promise<BigNumber>;
    fetchRewardDetails(delegatorAddress: string): Promise<CosmosRewardDetails[]>;
    fetchTotalReward(delegatorAddress: string): Promise<BigNumber>;
    fetchRewardForDelegation(delegatorAddress: string, validatorAddress: string): Promise<BigNumber>;
    withdrawAllDelegationRewards(delegatorAddress: string, chainID: string, accountNumber: string, sequence: string, gas: BigNumber, fee: BigNumber, memo: string, simulate?: boolean): Promise<string>;
    withdrawDelegationRewards(delegatorAddress: string, validatorAdress: string, chainID: string, accountNumber: string, sequence: string, gas: BigNumber, fee: BigNumber, memo: string, simulate?: boolean): Promise<string>;
    private url;
}
