import { OnModuleInit } from '@nestjs/common';
import { DiscoveryService } from '@nestjs/core';
import { Erc20 } from '../contract/contracts';
import { Network } from '../types/network.interface';
import { ContractType } from './contract.interface';
import { AppTokenTemplatePositionFetcher } from './template/app-token.template.position-fetcher';
import { ContractPositionTemplatePositionFetcher } from './template/contract-position.template.position-fetcher';
import { CustomContractPositionTemplatePositionFetcher } from './template/custom-contract-position.template.position-fetcher';
declare type Template = AppTokenTemplatePositionFetcher<Erc20> | ContractPositionTemplatePositionFetcher<Erc20> | CustomContractPositionTemplatePositionFetcher<Erc20>;
export declare class PositionFetcherTemplateRegistry implements OnModuleInit {
    private readonly discoveryService;
    private appTokenTemplateRegistry;
    private contractPositionTemplateRegistry;
    private customContractPositionTemplateRegistry;
    constructor(discoveryService: DiscoveryService);
    onModuleInit(): void;
    getTemplateType(template: Template): ContractType.POSITION | ContractType.APP_TOKEN;
    getAppTokenTemplate({ network, appId, groupId }: {
        network: Network;
        appId: string;
        groupId: string;
    }): AppTokenTemplatePositionFetcher<Erc20, import("./template/app-token.template.types").DefaultAppTokenDataProps, import("./template/app-token.template.types").DefaultAppTokenDefinition> | null;
    getAppTokenTemplates({ network, appId }: {
        network: Network;
        appId: string;
    }): AppTokenTemplatePositionFetcher<Erc20, import("./template/app-token.template.types").DefaultAppTokenDataProps, import("./template/app-token.template.types").DefaultAppTokenDefinition>[];
    getContractPositionTemplate({ network, appId, groupId }: {
        network: Network;
        appId: string;
        groupId: string;
    }): ContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition> | null;
    getContractPositionTemplates({ network, appId }: {
        network: Network;
        appId: string;
    }): ContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition>[];
    getCustomContractPositionTemplate({ network, appId, groupId }: {
        network: Network;
        appId: string;
        groupId: string;
    }): CustomContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition> | null;
    getCustomContractPositionTemplates({ network, appId }: {
        network: Network;
        appId: string;
    }): CustomContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition>[];
    getTemplatesForApp(appId: string): (AppTokenTemplatePositionFetcher<Erc20, import("./template/app-token.template.types").DefaultAppTokenDataProps, import("./template/app-token.template.types").DefaultAppTokenDefinition> | ContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition> | CustomContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition>)[];
    getAppHasTemplates(appId: string): boolean;
    getTemplatesForAppOnNetwork(appId: string, network: Network): (AppTokenTemplatePositionFetcher<Erc20, import("./template/app-token.template.types").DefaultAppTokenDataProps, import("./template/app-token.template.types").DefaultAppTokenDefinition> | ContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition> | CustomContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition>)[];
    getAppHasTemplatesOnNetwork(appId: string, network: Network): boolean;
    getAllTemplates(): (AppTokenTemplatePositionFetcher<Erc20, import("./template/app-token.template.types").DefaultAppTokenDataProps, import("./template/app-token.template.types").DefaultAppTokenDefinition> | ContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition> | CustomContractPositionTemplatePositionFetcher<Erc20, import("./display.interface").DefaultDataProps, import("./template/contract-position.template.types").DefaultContractPositionDefinition>)[];
}
export {};
