import { BigNumberish } from 'ethers';
import 'moment-duration-format';
import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { ContractPositionBalance } from '../../../position/position-balance.interface';
import { MetaType } from '../../../position/position.interface';
import { GetTokenDefinitionsParams, GetDataPropsParams, GetDisplayPropsParams } from '../../../position/template/contract-position.template.types';
import { CustomContractPositionTemplatePositionFetcher } from '../../../position/template/custom-contract-position.template.position-fetcher';
import { KeeperContractFactory, KeeperJobManager } from '../contracts';
declare type KeeperJobDefinition = {
    address: string;
    liquidities: {
        id: string;
        amount: string;
        pendingUnbonds: string;
        withdrawableAfter: string;
        klp: {
            id: string;
        };
    }[];
    credits: {
        id: string;
        amount: string;
        token: {
            id: string;
            name: string;
            symbol: string;
            decimals: string;
        };
    }[];
    owner: string;
};
declare type KeeperJobDataProps = {
    credits: {
        id: string;
        amount: string;
        token: string;
    }[];
    liquidities: {
        id: string;
        amount: string;
        pendingUnbonds: string;
        withdrawableAfter: string;
        token: string;
    }[];
};
export declare abstract class KeeperJobContractPositionFetcher extends CustomContractPositionTemplatePositionFetcher<KeeperJobManager, KeeperJobDataProps, KeeperJobDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: KeeperContractFactory;
    constructor(appToolkit: IAppToolkit, contractFactory: KeeperContractFactory);
    getContract(address: string): KeeperJobManager;
    getDefinitions(): Promise<{
        address: string;
        credits: {
            id: string;
            amount: string;
            token: {
                id: string;
                name: string;
                symbol: string;
                decimals: string;
            };
        }[];
        liquidities: {
            id: string;
            amount: string;
            pendingUnbonds: string;
            withdrawableAfter: string;
            klp: {
                id: string;
            };
        }[];
        owner: string;
    }[]>;
    getTokenDefinitions({ definition }: GetTokenDefinitionsParams<KeeperJobManager, KeeperJobDefinition>): Promise<{
        metaType: MetaType;
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getLabel({ definition, }: GetDisplayPropsParams<KeeperJobManager, KeeperJobDataProps, KeeperJobDefinition>): Promise<string>;
    getDataProps({ definition, }: GetDataPropsParams<KeeperJobManager, KeeperJobDataProps, KeeperJobDefinition>): Promise<KeeperJobDataProps>;
    getTokenBalancesPerPosition(): Promise<BigNumberish[]>;
    getBalances(address: string): Promise<ContractPositionBalance<KeeperJobDataProps>[]>;
}
export {};
