import { IEventFilter, INodeInfo, IToken, IWalletProvider } from "@cryptovarna/tron-web-api";
import { ITokenBridgeTask, TokensBridged } from "./tasks/Task";
import { TokenBridge } from "./tokenBridge/TokenBridge";
export interface ITokenAsset {
    name: string;
    fromNetworks?: {
        node: INodeInfo;
        tokenBridge: TokenBridge;
        token: IToken;
        toNetworks: {
            node: INodeInfo;
            networkHash: string;
            tokenBridge: TokenBridge;
            token: IToken;
            tax: number;
        }[];
    }[];
}
export declare class TokenAssetFactory {
    static getDefaultAssets(providers: IWalletProvider[]): Promise<ITokenAsset[]>;
    static getTokenBridge(provider: IWalletProvider, node: INodeInfo, contractAddress: string): TokenBridge;
    static getDefaultAssetsAndTasks(providers: IWalletProvider[], pendingTasksFilter?: IEventFilter<TokensBridged>): Promise<{
        assets: ITokenAsset[];
        pendingTasks: ITokenBridgeTask[];
    }>;
    static getDefaultAssetsAndLatestTasks(providers: IWalletProvider[]): Promise<{
        assets: ITokenAsset[];
        pendingTasks: ITokenBridgeTask[];
    }>;
    static getLatestTasks(assets: ITokenAsset[], providers: IWalletProvider[]): Promise<{
        tasks: ITokenBridgeTask[];
        timestamp: number;
        oldestTimestamp: number;
        percent: number;
    }>;
    static isBridgeAvailable(provider: IWalletProvider): Promise<boolean>;
    private static getProviderData;
}
