/// <reference types="node" />
import { JSONObject, ModuleEndpointContext } from '../../types';
import { ModuleConfig } from './types';
import { BaseEndpoint } from '../base_endpoint';
import { EscrowStoreData } from './stores/escrow';
import { SupplyStoreData } from './stores/supply';
import { UserStoreData } from './stores/user';
export declare class TokenEndpoint extends BaseEndpoint {
    private _moduleConfig;
    init(moduleConfig: ModuleConfig): void;
    getBalances(context: ModuleEndpointContext): Promise<{
        balances: JSONObject<UserStoreData & {
            tokenID: Buffer;
        }>[];
    }>;
    getBalance(context: ModuleEndpointContext): Promise<JSONObject<UserStoreData>>;
    getTotalSupply(context: ModuleEndpointContext): Promise<{
        totalSupply: JSONObject<SupplyStoreData & {
            tokenID: string;
        }>[];
    }>;
    getSupportedTokens(context: ModuleEndpointContext): Promise<{
        supportedTokens: string[];
    }>;
    isSupported(context: ModuleEndpointContext): Promise<{
        supported: boolean;
    }>;
    getEscrowedAmounts(context: ModuleEndpointContext): Promise<{
        escrowedAmounts: JSONObject<EscrowStoreData & {
            escrowChainID: Buffer;
            tokenID: Buffer;
        }>[];
    }>;
    getInitializationFees(): {
        userAccount: string;
        escrowAccount: string;
    };
    hasUserAccount(context: ModuleEndpointContext): Promise<{
        exists: boolean;
    }>;
    hasEscrowAccount(context: ModuleEndpointContext): Promise<{
        exists: boolean;
    }>;
}
