import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '../../../position/display.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { GetTokenDefinitionsParams, UnderlyingTokenDefinition, GetDisplayPropsParams, GetTokenBalancesParams } from '../../../position/template/contract-position.template.types';
import { BeanstalkBalanceResolver } from '../common/beanstalk.balance-resolver';
import { Beanstalk, BeanstalkContractFactory } from '../contracts';
export declare type BeanstalkSiloDepositDefinition = {
    address: string;
    underlyingTokenAddresses: string;
    name: string;
};
export declare const SILOS: {
    name: string;
    underlyingTokenAddress: string;
}[];
export declare class EthereumBeanstalkSiloDepositContractPositionFetcher extends ContractPositionTemplatePositionFetcher<Beanstalk, DefaultDataProps, BeanstalkSiloDepositDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: BeanstalkContractFactory;
    protected readonly beanstalkBalanceResolver: BeanstalkBalanceResolver;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: BeanstalkContractFactory, beanstalkBalanceResolver: BeanstalkBalanceResolver);
    getContract(address: string): Beanstalk;
    getDefinitions(): Promise<BeanstalkSiloDepositDefinition[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<Beanstalk, BeanstalkSiloDepositDefinition>): Promise<UnderlyingTokenDefinition[]>;
    getLabel({ definition, }: GetDisplayPropsParams<Beanstalk, DefaultDataProps, BeanstalkSiloDepositDefinition>): Promise<string>;
    getTokenBalancesPerPosition({ address, contractPosition, }: GetTokenBalancesParams<Beanstalk, DefaultDataProps>): Promise<BigNumberish[]>;
}
