///
///
import { NetworkIdType, PortfolioElement, PortfolioElementLabel, PortfolioElementTypeType, SourceRef, TokenPriceMap } from '@sonarwatch/portfolio-core';
import { PublicKey } from '@solana/web3.js';
import { Params } from './Params';
import { TokenYieldMap } from '../../TokenYieldMap';
export declare abstract class ElementBuilder {
readonly type: PortfolioElementTypeType;
readonly label: PortfolioElementLabel;
name?: string;
readonly platformId?: string;
tags?: string[];
sourceRefs?: SourceRef[];
ref?: string | PublicKey;
link?: string;
netApy?: number;
protected constructor(params: Params);
addTag(tag: string): void;
setName(name: string): void;
setNetApy(netApy?: number): void;
abstract tokenAddresses(): string[];
abstract get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap, tokenYields: TokenYieldMap): PortfolioElement | null;
}