import { Address } from "./commonTypes";
/**
 * Methods for querying information about an Avatar.
 * Use it by:
 *
 * let avatarService = new AvatarService(avatarAddress);
 *
 */
export declare class AvatarService {
    isUController: boolean;
    private avatarAddress;
    private avatar;
    private controllerAddress;
    private controller;
    private nativeReputationAddress;
    private nativeReputation;
    private nativeTokenAddress;
    private nativeToken;
    constructor(avatarAddress: Address);
    /**
     * Returns promise of the Avatar TruffleContract
     */
    getAvatar(): Promise<any>;
    /**
     * Returns promise of the address of the controller
     */
    getControllerAddress(): Promise<string>;
    /**
     * Returns promise of a TruffleContract for the controller.  Could be
     * either UController or Controller.  You can know which one
     * by checking the AvatarService instance property `isUController`.
     */
    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 TruffleContract.
     */
    getNativeReputation(): Promise<any>;
    /**
     * Returns promise of the address of the avatar's native token.
     */
    getNativeTokenAddress(): Promise<string>;
    /**
     * Returns promise of the avatar's native token TruffleContract.
     * Assumes the token is a `DAOToken`.
     */
    getNativeToken(): Promise<any>;
}
