import { PresentationConfig } from '../../app/app.interface';
import { MetadataItemWithLabel } from '../../balance/balance-fetcher.interface';
import { DefaultDataProps } from '../../position/display.interface';
import { ContractPositionBalance, TokenBalance } from '../../position/position-balance.interface';
import { Network } from '../../types';
export declare abstract class PositionPresenterTemplate<T extends DefaultDataProps = DefaultDataProps> {
    network: Network;
    appId: string;
    positionGroups?: PositionGroup[];
    explorePresentationConfig?: PresentationConfig;
    dataProps(_address: string): Promise<T | undefined>;
    metadataItemsForBalanceGroup(_groupLabel: string, _balances: ReadonlyBalances, _dataProps?: T): MetadataItemWithLabel[];
}
export declare type PositionGroup = {
    label: string;
    groupIds: string[];
};
export declare type ReadonlyBalances = ReadonlyArray<Readonly<Balance>>;
export declare type GroupMeta = MetadataItemWithLabel[];
export declare type Balance = TokenBalance | ContractPositionBalance;
