/// import { Constructor } from '@neo-one/utils-esnext-esm'; import { BinaryWriter } from '../../BinaryWriter'; import { ECPoint, PrivateKey, UInt256, UInt256Hex } from '../../common'; import { SerializableWire, SerializeWire } from '../Serializable'; import { WitnessModel } from '../WitnessModel'; import { AttributeModel } from './attribute'; import { InputModel } from './InputModel'; import { OutputModel } from './OutputModel'; import { TransactionTypeModel } from './TransactionTypeModel'; export interface TransactionBaseModelAdd { readonly version?: number; readonly attributes?: readonly TAttribute[]; readonly inputs?: readonly TInput[]; readonly outputs?: readonly TOutput[]; readonly scripts?: readonly TWitness[]; readonly hash?: UInt256; } export interface TransactionBaseModelAddWithType extends TransactionBaseModelAdd { readonly type: Type; } export declare const MAX_TRANSACTION_ATTRIBUTES = 16; export declare abstract class TransactionBaseModel implements SerializableWire { static readonly VERSION: number; protected static readonly WitnessConstructor: Constructor; readonly type: Type; readonly version: number; readonly attributes: readonly TAttribute[]; readonly inputs: readonly TInput[]; readonly outputs: readonly TOutput[]; readonly scripts: readonly TWitness[]; readonly serializeWire: SerializeWire; readonly serializeUnsigned: SerializeWire; private readonly hashInternal; private readonly hashHexInternal; private readonly messageInternal; constructor({ version, type, attributes, inputs, outputs, scripts, hash, }: TransactionBaseModelAddWithType); abstract clone(options: { readonly scripts?: readonly TWitness[]; readonly attributes?: readonly TAttribute[]; readonly inputs?: readonly TInput[]; readonly outputs?: readonly TOutput[]; }): this; get hash(): UInt256; get hashHex(): UInt256Hex; get message(): Buffer; sign(key: PrivateKey): this; signWithSignature(signature: Buffer, publicKey: ECPoint): this; serializeExclusiveBase(_writer: BinaryWriter): void; serializeUnsignedBase(writer: BinaryWriter): void; serializeWireBase(writer: BinaryWriter): void; }