import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { MetaType } from '../../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { GetDisplayPropsParams, GetTokenBalancesParams, GetTokenDefinitionsParams } from '../../../position/template/contract-position.template.types';
import { SushiswapBentobox, SushiswapBentoboxContractFactory } from '../contracts';
import { SushiswapBentoboxVaultTokensResolver } from './sushiswap-bentobox.vault-tokens-resolver';
export declare type SushiswapBentoboxVaultDefinition = {
    address: string;
    underlyingTokenAddress: string;
};
export declare abstract class SushiswapBentoboxVaultContractPositionFetcher extends ContractPositionTemplatePositionFetcher<SushiswapBentobox> {
    protected readonly appToolkit: IAppToolkit;
    private readonly contractFactory;
    private readonly vaultTokenResolver;
    abstract subgraphUrl: string;
    abstract bentoboxAddress: string;
    constructor(appToolkit: IAppToolkit, contractFactory: SushiswapBentoboxContractFactory, vaultTokenResolver: SushiswapBentoboxVaultTokensResolver);
    getDefinitions(): Promise<SushiswapBentoboxVaultDefinition[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<SushiswapBentobox, SushiswapBentoboxVaultDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getContract(address: string): SushiswapBentobox;
    getLabel({ contractPosition }: GetDisplayPropsParams<SushiswapBentobox>): Promise<string>;
    getTokenBalancesPerPosition({ address, contract, contractPosition, }: GetTokenBalancesParams<SushiswapBentobox>): Promise<BigNumberish[]>;
}
