import { PublicNode } from '../node/'; import { ISigner, ITxJSON, TKeyType } from '../types'; export default abstract class Transaction { id?: string; readonly type: number; version: number; fee: number; timestamp?: number; proofs: Array; sender?: string; senderKeyType: TKeyType; senderPublicKey?: string; sponsor?: string; sponsorKeyType?: string; sponsorPublicKey?: string; height?: number; protected constructor(type: number, version: number, fee?: number); abstract toBinary(): Uint8Array; abstract toJSON(): ITxJSON; isSigned(): boolean; signWith(account: ISigner): this; get networkId(): string; broadcastTo(node: PublicNode): Promise; sponsorWith(sponsorAccount: ISigner): this; protected initFrom(data: ITxJSON): this; }