import type { BigNumber } from 'ethers';
import { type IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import type { GetDataPropsParams, GetTokenPropsParams } from '../../../position/template/app-token.template.types';
import { ExactlyContractFactory, type Market } from '../contracts';
import { ExactlyDefinitionsResolver, type ExactlyMarketDefinition } from './exactly.definitions-resolver';
import { type ExactlyMarketProps, ExactlyTokenFetcher } from './exactly.token-fetcher';
export declare type ExactlyFixedMarketProps = ExactlyMarketProps & {
    maturity: number;
};
export declare abstract class ExactlyFixedPositionFetcher<V extends ExactlyMarketProps = ExactlyMarketProps> extends ExactlyTokenFetcher<V> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: ExactlyContractFactory;
    protected readonly definitionsResolver: ExactlyDefinitionsResolver;
    isDebt: boolean;
    constructor(appToolkit: IAppToolkit, contractFactory: ExactlyContractFactory, definitionsResolver: ExactlyDefinitionsResolver);
    getSupply(params: GetTokenPropsParams<Market, ExactlyMarketProps, ExactlyMarketDefinition>): Promise<BigNumber>;
    abstract getBestRate(_: GetDataPropsParams<Market, ExactlyMarketProps, ExactlyMarketDefinition>): {
        maturity: BigNumber;
        rate: BigNumber;
    };
    getApr(params: GetDataPropsParams<Market, ExactlyMarketProps, ExactlyMarketDefinition>): number;
    getApy(params: GetDataPropsParams<Market, ExactlyMarketProps, ExactlyMarketDefinition>): Promise<number>;
}
