import { StringStream, NeonSerializable } from "../../u"; export declare enum TransactionAttributeType { HighPriority = 1, OracleResponse = 17 } export declare enum OracleResponseCode { Success = 0, ProtocolNotSupported = 16, ConsensusUnreachable = 18, NotFound = 20, Timeout = 22, Forbidden = 24, ResponseTooLarge = 26, InsufficientFunds = 28, ContentTypeNotSupported = 31, Error = 255 } export interface HighPriorityTransactionAttributeJson { type: "HighPriority"; } export interface OracleResponseTransactionAttributeJson { type: "OracleResponse"; id: number; code: string; result: string; } export type TransactionAttributeJson = HighPriorityTransactionAttributeJson | OracleResponseTransactionAttributeJson; export interface TransactionAttributeLike { type: number; } export interface OracleResponseAttributeLike extends TransactionAttributeLike { id: number; code: OracleResponseCode; result: string; } export declare abstract class TransactionAttribute implements NeonSerializable { abstract get type(): TransactionAttributeType; abstract export(): TransactionAttributeLike; abstract toJson(): TransactionAttributeJson; get size(): number; static fromJson(input: TransactionAttributeJson): TransactionAttribute; static fromStream(ss: StringStream): TransactionAttribute; static deserialize(ss: StringStream): TransactionAttribute; private static getImplementation; serialize(): string; } export declare class HighPriorityAttribute extends TransactionAttribute { private static _type; get type(): TransactionAttributeType; static fromJson(_: HighPriorityTransactionAttributeJson): HighPriorityAttribute; static deserialize(ss: StringStream): HighPriorityAttribute; toJson(): TransactionAttributeJson; export(): TransactionAttributeLike; } export declare class OracleResponseAttribute extends TransactionAttribute { id: number; code: OracleResponseCode; result: string; private static _type; get type(): TransactionAttributeType; get size(): number; static fromJson(input: OracleResponseTransactionAttributeJson): OracleResponseAttribute; static deserialize(ss: StringStream): OracleResponseAttribute; constructor(id: number, code: OracleResponseCode, result: string); toJson(): TransactionAttributeJson; serialize(): string; export(): OracleResponseAttributeLike; } export default TransactionAttribute; //# sourceMappingURL=TransactionAttribute.d.ts.map