import { BigNumberString } from "./BigNumberString";
import { ChainId } from "./ChainId";
import { EthereumContractAddress } from "./EthereumContractAddress";
import { GatewayUrl } from "./GatewayUrl";
import { PaymentId } from "./PaymentId";
import { PublicIdentifier } from "./PublicIdentifier";
import { SortedTransfers } from "./SortedTransfers";
import { EPaymentState } from "./typing";
import { UnixTimestamp } from "./UnixTimestamp";
export declare abstract class Payment {
    id: PaymentId;
    routerPublicIdentifier: PublicIdentifier;
    chainId: ChainId;
    to: PublicIdentifier;
    from: PublicIdentifier;
    state: EPaymentState;
    paymentToken: EthereumContractAddress;
    requiredStake: BigNumberString;
    amountStaked: BigNumberString;
    expirationDate: UnixTimestamp;
    createdTimestamp: UnixTimestamp;
    updatedTimestamp: UnixTimestamp;
    collateralRecovered: BigNumberString;
    gatewayUrl: GatewayUrl;
    details: SortedTransfers;
    metadata: string | null;
    constructor(id: PaymentId, routerPublicIdentifier: PublicIdentifier, chainId: ChainId, to: PublicIdentifier, from: PublicIdentifier, state: EPaymentState, paymentToken: EthereumContractAddress, requiredStake: BigNumberString, amountStaked: BigNumberString, expirationDate: UnixTimestamp, createdTimestamp: UnixTimestamp, updatedTimestamp: UnixTimestamp, collateralRecovered: BigNumberString, gatewayUrl: GatewayUrl, details: SortedTransfers, metadata: string | null);
}
//# sourceMappingURL=Payment.d.ts.map