/// import { XyoTreeIterator } from '../helpers/tree-iterator'; export interface IXyoObjectPartialSchema { /** * How many bytes necessary to encode size of object */ sizeIdentifierSize: 1 | 2 | 4 | 8 | null; /** * Is the value that is being encoded iterable and if so is it typed */ iterableType: IIterableType | null; /** * What is the id of the schema */ id: number; } export declare type IIterableType = 'not-iterable' | 'iterable-typed' | 'iterable-untyped'; export interface IXyoObjectSchema { [s: string]: IXyoObjectPartialSchema; } /** Either a Buffer or a hex-string */ export declare type SerializationType = 'buffer' | 'hex'; /** The type that can be returned */ export declare type BufferOrString = Buffer | string; export interface IXyoSerializationService { schema: IXyoObjectSchema; /** * Will serialize an xyo object. If serialization type is hex, will return the hex-string * representation of the object in question * * @param {IXyoSerializableObject} serializable * @param {SerializationType} [serializationType] Optional, defaults to Buffer * @returns {BufferOrString} Will return a Buffer or an hex-string based off of `serializationType` * @memberof IXyoSerializationService */ serialize(serializable: IXyoSerializableObject | IXyoSerializableObject[], serializationType?: SerializationType): BufferOrString; /** * Will deserialize an xyo object from a buffer or hex-string to the object representation * * @template T * @param {BufferOrString} deserializable * @returns {T} * @memberof IXyoSerializationService */ deserialize(deserializable: BufferOrString): XyoTreeIterator; hydrate(deserializable: IParseResult): T; parse(src: Buffer): IParseResult; arrayOf(tCollection: T[]): IXyoSerializableObject; typedArrayOf(tCollection: T[]): IXyoSerializableObject; untypedArrayOf(tCollection: T[]): IXyoSerializableObject; findFirstElement(collection: IXyoSerializableObject[], schemaObjectId: number): T | undefined; } export interface IXyoSerializableObject { origin: Buffer | undefined; schemaObjectId: number; srcBuffer: Buffer | null; getData(): Buffer | IXyoSerializableObject | IXyoSerializableObject[]; serialize(): Buffer; serializeHex(): string; getReadableName(): string; getReadableValue(): any; isEqual(other: IXyoSerializableObject): boolean; realSchema(): IXyoObjectPartialSchema; } export interface IXyoDeserializer { schemaObjectId: number; deserialize(data: Buffer, serializationService: IXyoSerializationService): T; } export interface IParseResult { data: Buffer | IParseResult[]; id: number; sizeIdentifierSize: 1 | 2 | 4 | 8; iterableType: 'iterable-typed' | 'iterable-untyped' | 'not-iterable'; dataBytes: Buffer; headerBytes: Buffer; } export interface IOnTheFlyGetDataOptions { buffer?: Buffer; object?: IXyoSerializableObject; array?: IXyoSerializableObject[]; fn?: () => Buffer | IXyoSerializableObject | IXyoSerializableObject[]; } //# sourceMappingURL=index.d.ts.map