import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import type { DefaultAppTokenDataProps, GetAddressesParams, GetDataPropsParams, GetDefinitionsParams, GetUnderlyingTokensParams } from '../../../position/template/app-token.template.types';
import { KlimaContractFactory, KlimaSKlima } from '../contracts';
export declare const API_BASE_URL = "https://www.klimadao.finance/api";
export declare const EPOCH_INTERVAL = 11520;
export declare const FALLBACK_BLOCK_RATE = 2.3;
export declare type SKlimaTokenDefinition = {
    address: string;
    underlyingAddress: string;
    reserve: number;
    apy: number;
};
export declare class PolygonKlimaSKlimaTokenFetcher extends AppTokenTemplatePositionFetcher<KlimaSKlima, DefaultAppTokenDataProps, SKlimaTokenDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: KlimaContractFactory;
    groupLabel: string;
    constructor(appToolkit: IAppToolkit, contractFactory: KlimaContractFactory);
    getContract(address: string): KlimaSKlima;
    getAddresses({ definitions }: GetAddressesParams<SKlimaTokenDefinition>): Promise<string[]>;
    getUnderlyingTokenDefinitions({ definition }: GetUnderlyingTokensParams<KlimaSKlima, SKlimaTokenDefinition>): Promise<{
        address: string;
        network: import("../../../types").Network;
    }[]>;
    getPricePerShare(): Promise<number[]>;
    getLiquidity({ definition, appToken: { tokens }, }: GetDataPropsParams<KlimaSKlima, DefaultAppTokenDataProps, SKlimaTokenDefinition>): Promise<number>;
    getReserves({ definition }: GetDataPropsParams<KlimaSKlima, DefaultAppTokenDataProps, SKlimaTokenDefinition>): Promise<number[]>;
    getApy({ definition }: GetDataPropsParams<KlimaSKlima, DefaultAppTokenDataProps, SKlimaTokenDefinition>): Promise<number>;
    getDefinitions({ multicall }: GetDefinitionsParams): Promise<{
        address: string;
        underlyingAddress: string;
        reserve: number;
        apy: number;
    }[]>;
    private getBlockRate;
}
