import PrivateKey from "../crypto/private-key"; import PublicKey from "../crypto/public-key"; import OperationId from "../interfaces/OperationId"; import { asset } from "../serializers/chain"; import { SerializerInput, SerializerOutput } from "../serializers/ISerializer"; import OperationSerializer, { TOperationInput } from "../serializers/operation"; declare enum OPERATION_RESULT_VARIANT { VOID = 0, OBJECT = 1, ASSET = 2 } type OPERATION_RESULT = T extends any ? [T, { [OPERATION_RESULT_VARIANT.VOID]: null, [OPERATION_RESULT_VARIANT.OBJECT]: string, [OPERATION_RESULT_VARIANT.ASSET]: SerializerInput, }[T]] : never; interface BroadcastingResult { id: string, block_num: number, trx_num: number, trx: { ref_block_num: number, ref_block_prefix: number, fees_collected: number, expiration: string, operations: SerializerOutput[], extensions: never[], signatures: string[], operation_results: OPERATION_RESULT[], }, } export default class Transaction { readonly transactionObject: any; readonly operations: SerializerOutput[]; expiration: number; addOperation( operationId: T, props?: TOperationInput[1], ): Transaction; addSigner(privateKey: PrivateKey | Buffer, publicKey?: PublicKey): Transaction; getPotentialSignatures(): Promise<{publicKeys:Array}>; sign(privateKey?: PrivateKey): Promise; broadcast(wasBroadcastedCallback?: () => any): Promise<[BroadcastingResult]>; setRequiredFees(assetId?: string): Promise; serialize(): Buffer; signedTransactionSerializer(): Buffer; }