import { BigNumberish } from 'ethers';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { ContractPositionBalance } from '../../../position/position-balance.interface';
import { MetaType, Standard } from '../../../position/position.interface';
import { GetTokenDefinitionsParams, GetDisplayPropsParams, GetDataPropsParams } from '../../../position/template/contract-position.template.types';
import { CustomContractPositionTemplatePositionFetcher } from '../../../position/template/custom-contract-position.template.position-fetcher';
import { AtlendisV1ContractFactory } from '../contracts';
import { AtlendisPositionManager } from '../contracts/ethers/AtlendisPositionManager';
export declare const GET_USER_POSITIONS: string;
export declare type GetUserPositionsResponse = {
    positions: {
        id: string;
        pool: {
            id: string;
            parameters: {
                underlyingToken: string;
            };
        };
    }[];
};
export declare const GET_POOLS_QUERY: string;
export declare type GetPoolResponse = {
    pools: {
        id: string;
        identifier: string;
        parameters: {
            underlyingToken: string;
        };
    }[];
};
export declare type AtlendisV1PoolDataProps = {
    assetStandard: Standard;
    label: string;
    id: string;
    positionKey: string;
};
export declare type AtlendisV1PoolDefinition = {
    address: string;
    underlyingTokenAddress: string;
    label: string;
    id: string;
};
export declare abstract class AtlendisV1PoolContractPositionFetcher extends CustomContractPositionTemplatePositionFetcher<AtlendisPositionManager, AtlendisV1PoolDataProps, AtlendisV1PoolDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: AtlendisV1ContractFactory;
    abstract positionManagerAddress: string;
    abstract subgraphUrl: string;
    constructor(appToolkit: IAppToolkit, contractFactory: AtlendisV1ContractFactory);
    getContract(address: string): AtlendisPositionManager;
    getDefinitions(): Promise<AtlendisV1PoolDefinition[]>;
    getTokenDefinitions({ definition, }: GetTokenDefinitionsParams<AtlendisPositionManager, AtlendisV1PoolDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getDataProps({ definition, }: GetDataPropsParams<AtlendisPositionManager, AtlendisV1PoolDataProps, AtlendisV1PoolDefinition>): Promise<{
        assetStandard: Standard;
        id: string;
        label: string;
        positionKey: string;
    }>;
    getLabel({ contractPosition, }: GetDisplayPropsParams<AtlendisPositionManager, AtlendisV1PoolDataProps, AtlendisV1PoolDefinition>): Promise<string>;
    getTokenBalancesPerPosition(): Promise<BigNumberish[]>;
    getBalances(address: string): Promise<ContractPositionBalance<AtlendisV1PoolDataProps>[]>;
}
