import { AppTokenPosition, NonFungibleToken } from '../../position/position.interface';
import { BaseToken } from '../../position/token.interface';
import { Network } from '../../types';
export declare type LoggingTags = {
    network?: Network;
    context?: string;
};
export declare type TokenDependencySelectorKey = {
    address: string;
    network: Network;
    tokenId?: number;
};
export declare type TokenDependency = BaseToken | AppTokenPosition | NonFungibleToken;
export declare type GetOne = (opts: TokenDependencySelectorKey) => Promise<TokenDependency | null>;
export declare type GetMany = (opts: TokenDependencySelectorKey[]) => Promise<(TokenDependency | null)[]>;
export interface TokenDependencySelector {
    getOne: GetOne;
    getMany: GetMany;
}
export declare type CreateTokenDependencySelectorOptions = {
    tags?: LoggingTags;
};
export interface TokenDependencySelectorFactory {
    create: (opts: CreateTokenDependencySelectorOptions) => TokenDependencySelector;
}
