import { TronTransactionMethods } from "@cryptovarna/tron-web-api";
import BigNumber from "bignumber.js";
export interface TokenBridgeConfiguration {
    bridge: string;
    networks: string[];
    correspondents: string[];
    peggedBridges: string[];
}
export interface TokenBridgeInstance {
    token: {
        (): TronTransactionMethods<string>;
    };
    getConfiguration: {
        (): TronTransactionMethods<TokenBridgeConfiguration>;
    };
    getToken: {
        (): TronTransactionMethods<string>;
    };
    getDailyLimit: {
        (): TronTransactionMethods<{
            dailySwapped: BigNumber;
            dayLimit: BigNumber;
        }>;
    };
    moveIn: {
        (network: string, recipient: string, amount: number | string, userSeed: number | string): TronTransactionMethods<BigNumber>;
    };
}
export interface TaxedTokenBridgeInstance extends TokenBridgeInstance {
    withdrawDeclinedMoveIn: {
        (tokenId: string): TronTransactionMethods<void>;
    };
    getTax: {
        (): TronTransactionMethods<BigNumber>;
    };
}
export interface INetwork {
    networks: string[];
    correspondents: string[];
}
export interface BridgeInstance {
    listNetworks: {
        (): TronTransactionMethods<INetwork>;
    };
    listOracles: {
        (): TronTransactionMethods<string[]>;
    };
    approveTask: {
        (taskId: string, signature: string, preserveTask: boolean): TronTransactionMethods<void>;
    };
    declineTask: {
        (taskId: string, signature: string): TronTransactionMethods<void>;
    };
    executeTask: {
        (taskId: string, creator: string, targetNetwork: string, targets: string[], values: number[] | string[], calldatas: string[], userSeed: number, signatures: string[]): TronTransactionMethods<void>;
    };
    createPeggedTask: {
        (targetNetwork: string, targets: string[], values: number[] | string[], calldatas: string[], userSeed: number, signers: string[], taskId: string, signature: string): TronTransactionMethods<string>;
    };
}
export interface TaxedBridgeInstance extends BridgeInstance {
    getTax: {
        (): TronTransactionMethods<BigNumber>;
    };
}
