import { Networking } from '../tools/Networking';
import { BitKeyInfo, KeyInfo } from './BitIndexer.type';
import { TxsWithMMJsonSignedOrUnSigned } from './RegisterAPI.type';
import { CrossChainDirection, CrossChainAccountStatus } from '../const';
export interface LockAccountParam {
    key_info: KeyInfo;
    account: string;
}
export interface CrossChainAccountStatusParam extends LockAccountParam {
}
export interface CrossChainAccountStatusRes {
    account: string;
    lock_hash: string;
    mint_hash: string;
    status: CrossChainAccountStatus;
}
export interface MintNftSignInfoParam {
    key_info: KeyInfo;
    account: string;
}
export interface MintNftSignInfoRes {
    account: string;
    data: string;
    gnosis_signatures: any[];
}
export interface CrossChainReturnTrxHashToServiceParam extends LockAccountParam {
    txHash: string;
    direction: CrossChainDirection;
}
export interface AccountsInCrossChainingParam extends BitKeyInfo {
    page: number;
    size: number;
}
export interface AccountsInCrossChaining {
    account: string;
    cross_direction: CrossChainDirection;
    recycle_hash: string;
}
export interface AccountsInCrossChainingRes {
    total: number;
    list: AccountsInCrossChaining;
}
export interface EthNftsParam extends AccountsInCrossChainingParam {
    keyword?: string;
}
export interface EthNft {
    coin_type: string;
    account: string;
    uuid: string;
    expire_at: number;
}
export interface EthNftsRes {
    total: number;
    list: EthNft[];
}
export declare class CrossChainAPI {
    baseUri: string;
    net: Networking;
    constructor(baseUri: string);
    lockAccount(params: LockAccountParam): Promise<TxsWithMMJsonSignedOrUnSigned>;
    crossChainAccountStatus(params: CrossChainAccountStatusParam): Promise<CrossChainAccountStatusRes>;
    mintNftSignInfo(params: MintNftSignInfoParam): Promise<MintNftSignInfoRes>;
    returnTrxHashToService(params: CrossChainReturnTrxHashToServiceParam): Promise<void>;
    accountsInCrossChaining(params: AccountsInCrossChainingParam): Promise<AccountsInCrossChainingRes>;
    ethNfts(params: EthNftsParam): Promise<EthNftsRes>;
    sendTransaction(params: Omit<TxsWithMMJsonSignedOrUnSigned, 'mm_json'>): Promise<{
        hash: string;
    }>;
}
