import { Token } from '../../../domain/entities/token';
import { Network } from '../../../domain/entities/network';
import { ITokenRepository } from '../../../domain/repositories/token-repository';
import { INetworkRepository } from '../../../domain/repositories/network-repository';
import { ILogger } from '../../../application/ports/logger';
import { INetworkRpcClient } from '../../../application/ports/network-rpc-client';
import { CoinMarketCapClient } from '../../../infrastructure/external/coinmarketcap-client';
import { CreateTokenUseCase } from '../admin/create-token.use-case';
import { TokenLookupInput } from '../../dto/token.dto';
export declare class ResolveTokenByContractUseCase {
    private readonly networkRepository;
    private readonly tokenRepository;
    private readonly createTokenUseCase;
    private readonly coinMarketCapClient;
    private readonly networkRpcClient;
    private readonly logger;
    constructor(networkRepository: INetworkRepository, tokenRepository: ITokenRepository, createTokenUseCase: CreateTokenUseCase, coinMarketCapClient: CoinMarketCapClient, networkRpcClient: INetworkRpcClient, logger: ILogger);
    execute(input: TokenLookupInput): Promise<{
        token: Token;
        network: Network;
    }>;
    private resolveNativeToken;
    private resolveNetwork;
    private createToken;
    private fetchOnChainMetadata;
    private createNativeToken;
}
//# sourceMappingURL=resolve-token-by-contract.use-case.d.ts.map