import * as BigNumber from 'bignumber.js';
import Serde from './Serde';
import Signature from './Signature';
export interface PaymentJSON {
    channelId: string;
    sender: string;
    receiver: string;
    price: BigNumber.BigNumber;
    value: BigNumber.BigNumber;
    channelValue: BigNumber.BigNumber;
    v: number | string;
    r: string;
    s: string;
    meta: string;
    token: string | undefined;
    createdAt?: number;
    tokenContract?: string;
}
export interface SerializedPayment {
    channelId: string;
    value: string;
    sender: string;
    receiver: string;
    price: string;
    channelValue: string;
    v: number;
    r: string;
    s: string;
    token?: string;
    meta: string;
    createdAt?: number;
    tokenContract?: string;
}
export default class Payment {
    channelId: string;
    sender: string;
    receiver: string;
    price: BigNumber.BigNumber;
    value: BigNumber.BigNumber;
    channelValue: BigNumber.BigNumber;
    signature: Signature;
    meta: string;
    token: string | undefined;
    createdAt?: number;
    tokenContract: string;
    constructor(options: Payment);
}
export declare class PaymentSerde implements Serde<Payment> {
    static instance: PaymentSerde;
    static required: string[];
    serialize(obj: Payment): SerializedPayment;
    deserialize(data: any): Payment;
}
