import { ethers, BigNumberish } from 'ethers';
import { TokenLike } from "@vigo.technology/v-engine/build/types";
import { Transaction } from "@vigo.technology/v-engine/build/operations";
import { PaymentLayer2Order, PaymentOptions, PayStatus, PaymentRecordResponse } from './types';
declare const PayStatus: {
    processing: string;
    completed: string;
    failure: string;
};
export declare class Layer2 {
    timer: any;
    api: any;
    putHashCount: number;
    constructor(options: PaymentOptions);
    transfer(transfer: {
        payId: number;
        jsrpc: string;
        ethWallet: ethers.Signer;
        toAccount: string;
        token: TokenLike;
        amount: BigNumberish;
    }): Promise<import("@vigo.technology/v-engine/build/types").TransactionReceipt>;
    doTransfer(transfer: {
        jsrpc: string;
        ethWallet: ethers.Signer;
        toAccount: string;
        token: TokenLike;
        amount: BigNumberish;
    }): Promise<Transaction>;
    putHash(payId: number, transferTx: Transaction): Promise<boolean>;
    cancelRecord(id: number): Promise<any>;
    pollingPayStatus(payId: number): Promise<PayStatus>;
    createRecord(order: PaymentLayer2Order): Promise<PaymentRecordResponse>;
    fetchPayStatus(payId: number): Promise<PayStatus>;
    clearInterval(): void;
    checkParams(options: PaymentLayer2Order): void;
}
export {};
