import { BigNumber } from "bignumber.js";
import { Address } from "./commonTypes";
import { ControllerService } from "./controllerService";
import { DaoTokenWrapper } from "./wrappers/daoToken";
import { ReputationWrapper } from "./wrappers/reputation";
/**
 * Methods for querying information about an Avatar.
 * Use it by:
 *
 * ```javascript
 * const avatarService = new AvatarService(avatarAddress);
 * ```
 *
 */
export declare class AvatarService {
    controllerService: ControllerService;
    private avatarAddress;
    private avatar;
    private nativeReputationAddress;
    private nativeReputation;
    private nativeTokenAddress;
    private nativeToken;
    constructor(avatarAddress: Address);
    /**
     * Returns promise of the Avatar Truffle contract wrapper.
     * Returns undefined if not found.
     */
    getAvatar(): Promise<any>;
    getIsUController(): Promise<boolean>;
    /**
     * Returns promise of the address of the controller
     */
    getControllerAddress(): Promise<string>;
    /**
     * Returns promise of a Truffle contract wrapper for the controller.  Could be
     * either UController or Controller.  You can know which one
     * by called `getIsUController`.
     */
    getController(): Promise<any>;
    /**
     * Returns promise of the address of the avatar's native reputation.
     */
    getNativeReputationAddress(): Promise<string>;
    /**
     * Returns promise of the avatar's native reputation Truffle contract wrapper.
     */
    getNativeReputation(): Promise<ReputationWrapper>;
    /**
     * Returns promise of the address of the avatar's native token.
     */
    getNativeTokenAddress(): Promise<string>;
    /**
     * Returns promise of the avatar's native token Truffle contract wrapper.
     * Assumes the token is a `DAOToken`.
     */
    getNativeToken(): Promise<DaoTokenWrapper>;
    /**
     * Return a current token balance for this avatar, in Wei.
     * If tokenAddress is not supplied, then uses native token.
     */
    getTokenBalance(tokenAddress?: Address): Promise<BigNumber>;
    /**
     * Return the current ETH balance for this avatar, in Wei.
     */
    getEthBalance(): Promise<BigNumber>;
}
