import { BaseToken } from '../../position/token.interface';
import { Network } from '../../types/network.interface';
export declare type BaseTokenPrice = BaseToken & {
    name: string;
    hide: boolean;
    canExchange: boolean;
    verified: boolean;
    dailyVolume: number | null;
};
export declare type Filters = {
    exchangeable?: boolean;
    hidden?: boolean;
};
export declare type LoggingTags = {
    appId?: string;
    network?: Network;
};
export declare type GetAll = (opts: {
    network: Network;
}) => Promise<BaseTokenPrice[]>;
export declare type GetOne = (opts: Parameters<GetAll>[0] & {
    address: string;
}) => Promise<BaseTokenPrice | null>;
export declare type GetMany = (opts: (Parameters<GetAll>[0] & {
    address: string;
})[]) => Promise<(BaseTokenPrice | null)[]>;
export interface PriceSelector {
    getAll: GetAll;
    getOne: GetOne;
    getMany: GetMany;
}
export declare type CreatePriceSelectorOptions = {
    filters?: Filters;
    tags?: LoggingTags;
};
export interface PriceSelectorFactory {
    create: (opts: CreatePriceSelectorOptions) => PriceSelector;
}
