import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '../../../position/display.interface';
import { ContractPositionBalance } from '../../../position/position-balance.interface';
import { GetTokenDefinitionsParams, UnderlyingTokenDefinition, GetDisplayPropsParams } from '../../../position/template/contract-position.template.types';
import { CustomContractPositionTemplatePositionFetcher } from '../../../position/template/custom-contract-position.template.position-fetcher';
import { HalofiContractFactory, HalofiAbiV001 } from '../contracts';
import { HalofiGameBalancesApiSource } from './halofi.game.balances.api-source';
import { HalofiGameGamesApiSource } from './halofi.game.games.api-source';
export declare type HalofiGameDefinition = {
    address: string;
    stakedTokenAddress: string;
    rewardTokenAddresses: string[];
    strategyProvider: string;
    contractVersion: string;
    gameName: string;
};
export declare abstract class HalofiGameContractPositionFetcher extends CustomContractPositionTemplatePositionFetcher<HalofiAbiV001, DefaultDataProps, HalofiGameDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: HalofiContractFactory;
    protected readonly gamesApiSource: HalofiGameGamesApiSource;
    protected readonly balancesApiSource: HalofiGameBalancesApiSource;
    constructor(appToolkit: IAppToolkit, contractFactory: HalofiContractFactory, gamesApiSource: HalofiGameGamesApiSource, balancesApiSource: HalofiGameBalancesApiSource);
    getContract(address: string): HalofiAbiV001;
    getDefinitions(): Promise<HalofiGameDefinition[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<HalofiAbiV001, HalofiGameDefinition>): Promise<UnderlyingTokenDefinition[] | null>;
    getLabel({ definition }: GetDisplayPropsParams<HalofiAbiV001, DefaultDataProps, HalofiGameDefinition>): Promise<string>;
    getTokenBalancesPerPosition(): void;
    getBalances(address: string): Promise<ContractPositionBalance<DefaultDataProps>[]>;
}
