import { AppService } from '../app/app.service';
import { DefaultDataProps } from '../position/display.interface';
import { AppTokenPositionBalance, ContractPositionBalance } from '../position/position-balance.interface';
import { PositionFetcherTemplateRegistry } from '../position/position-fetcher.template-registry';
import { PositionPresenterRegistry } from '../position/position-presenter.registry';
import { Network } from '../types';
import { TokenBalanceResponse } from './balance-fetcher.interface';
declare type Balances = (AppTokenPositionBalance | ContractPositionBalance)[];
export declare class BalancePresentationService {
    private readonly positionPresenterRegistry;
    private readonly positionFetcherTemplateRegistry;
    private readonly appService;
    constructor(positionPresenterRegistry: PositionPresenterRegistry, positionFetcherTemplateRegistry: PositionFetcherTemplateRegistry, appService: AppService);
    private groupBalancesByPositionGroup;
    presentTemplates({ appId, network, balances, dataProps, }: {
        appId: string;
        balances: Balances;
        network: Network;
        dataProps?: DefaultDataProps;
    }): Promise<TokenBalanceResponse>;
    present({ appId, balances }: {
        appId: string;
        balances: Balances;
    }): Promise<TokenBalanceResponse>;
    private getBalanceProductGroups;
    balanceDataProps({ appId, network, address }: {
        appId: string;
        network: Network;
        address: string;
    }): Promise<DefaultDataProps | undefined>;
    private groupBalances;
    private presentBalances;
}
export {};
