import { IAppToolkit } from '../../../app-toolkit/app-toolkit.interface';
import { AppTokenTemplatePositionFetcher } from '../../../position/template/app-token.template.position-fetcher';
import { GetAddressesParams, GetDefinitionsParams, DefaultAppTokenDataProps, GetPriceParams } from '../../../position/template/app-token.template.types';
import { JarvisContractFactory, JarvisSynth } from '../contracts';
declare type JarvisSynthDefinition = {
    address: string;
    poolAddress: string;
};
export declare abstract class JarvisSynthTokenFetcher extends AppTokenTemplatePositionFetcher<JarvisSynth, DefaultAppTokenDataProps, JarvisSynthDefinition> {
    protected readonly appToolkit: IAppToolkit;
    protected readonly contractFactory: JarvisContractFactory;
    abstract poolAddresses: string[];
    constructor(appToolkit: IAppToolkit, contractFactory: JarvisContractFactory);
    getContract(address: string): JarvisSynth;
    getDefinitions({ multicall }: GetDefinitionsParams): Promise<JarvisSynthDefinition[]>;
    getAddresses({ definitions }: GetAddressesParams<JarvisSynthDefinition>): Promise<string[]>;
    getUnderlyingTokenDefinitions(): Promise<never[]>;
    getPricePerShare(): Promise<number[]>;
    getPrice({ definition, multicall, }: GetPriceParams<JarvisSynth, DefaultAppTokenDataProps, JarvisSynthDefinition>): Promise<number>;
}
export {};
