import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { DefaultDataProps } from '../../../position/display.interface';
import { MetaType } from '../../../position/position.interface';
import { ContractPositionTemplatePositionFetcher } from '../../../position/template/contract-position.template.position-fetcher';
import { DefaultContractPositionDefinition, GetDisplayPropsParams, GetTokenBalancesParams, GetTokenDefinitionsParams } from '../../../position/template/contract-position.template.types';
import { AbracadabraContractFactory, AbracadabraCauldron } from '../contracts';
interface AbracadabraCauldronContractPositionDefinition extends DefaultContractPositionDefinition {
    type: 'REGULAR' | 'CONVEX' | 'GLP';
}
export declare abstract class AbracadabraCauldronContractPositionFetcher extends ContractPositionTemplatePositionFetcher<AbracadabraCauldron, DefaultDataProps, AbracadabraCauldronContractPositionDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: AbracadabraContractFactory;
    cauldrons: string[];
    convexCauldrons: string[];
    glpCauldrons: string[];
    constructor(appToolkit: IAppToolkit, contractFactory: AbracadabraContractFactory);
    getContract(address: string): AbracadabraCauldron;
    getDefinitions(): Promise<AbracadabraCauldronContractPositionDefinition[]>;
    getTokenDefinitions(params: GetTokenDefinitionsParams<AbracadabraCauldron, AbracadabraCauldronContractPositionDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    private getRegularTokenDefinitions;
    private getConvexTokenDefinitions;
    private getGlpTokenDefinitions;
    getLabel({ contractPosition }: GetDisplayPropsParams<AbracadabraCauldron>): Promise<string>;
    getTokenBalancesPerPosition({ address, contractPosition, contract, multicall, }: GetTokenBalancesParams<AbracadabraCauldron>): Promise<(number | import("ethers").BigNumber)[]>;
}
export {};
