import { OnApplicationBootstrap } from '@nestjs/common';
import { DiscoveryService } from '@nestjs/core';
import { CacheOnIntervalService } from '../cache/cache-on-interval.service';
import { Network } from '../types/network.interface';
import { ContractType } from './contract.interface';
import { DefaultDataProps } from './display.interface';
import { PositionFetcher } from './position-fetcher.interface';
import { PositionFetcherTemplateRegistry } from './position-fetcher.template-registry';
import { AbstractPosition } from './position.interface';
export declare const buildAppPositionsCacheKey: (opts: {
    type: ContractType;
    network: Network;
    appId: string;
    groupId: string;
}) => string;
export declare class PositionFetcherRegistry implements OnApplicationBootstrap {
    private readonly discoveryService;
    private readonly cacheOnIntervalService;
    private readonly positionFetcherTemplateRegistry;
    private registry;
    constructor(discoveryService: DiscoveryService, cacheOnIntervalService: CacheOnIntervalService, positionFetcherTemplateRegistry: PositionFetcherTemplateRegistry);
    onApplicationBootstrap(): void;
    private registerTemplates;
    private registerPositionFetchers;
    private setToRegistry;
    private getOptions;
    private getIsExcludedFromTvl;
    getRegisteredTokenGroups(): {
        network: Network;
        appId: string;
        groupId: string;
    }[];
    get<T extends AbstractPosition<V>, V = DefaultDataProps>({ type, network, appId, groupId, }: {
        type: ContractType;
        network: Network;
        appId: string;
        groupId: string;
    }): PositionFetcher<T, V>;
    getGroupIdsForApp({ type, network, appId }: {
        type: ContractType;
        network: Network;
        appId: string;
    }): string[];
    getTvlEnabledGroupsIds({ network, appId }: {
        network: Network;
        appId: string;
    }): [{
        type: ContractType.APP_TOKEN;
        groupIds: string[];
    }, {
        type: ContractType.POSITION;
        groupIds: string[];
    }];
}
