import { BitstreamElement, Serializer, BitstreamReader, BitstreamWriter, FieldDefinition, SerializeOptions, IncompleteReadResult } from "@astronautlabs/bitstream"; import * as AMF3 from './amf3'; export declare enum TypeMarker { Number = 0, Boolean = 1, String = 2, Object = 3, MovieClip = 4, Null = 5, Undefined = 6, Reference = 7, EcmaArray = 8, ObjectEnd = 9, StrictArray = 10, Date = 11, LongString = 12, Unsupported = 13, RecordSet = 14, XmlDocument = 15, TypedObject = 16, AvmPlus = 17 } export declare class Value extends BitstreamElement { private _referenceTable; get referenceTable(): ComplexValue[]; marker: TypeMarker; get value(): T; set value(value: T); static get undefined(): UndefinedValue; static get true(): BooleanValue; static get false(): BooleanValue; static boolean(value: boolean): BooleanValue; static number(value: number): NumberValue; static string(value: string): LongStringValue | StringValue; static xmlDocument(value: string): XmlDocumentValue; static object(value: object, className?: string): ObjectValue; static get null(): NullValue; static date(value: Date): DateValue; static array(value: any[]): StrictArrayValue; static associativeArray(value: Map | Record): EcmaArrayValue; static any(value: any): Value; static avmPlus(value: any): AvmPlusValue; static amf3(value: any): AvmPlusValue; } export declare class ObjectProperty extends BitstreamElement { keyLength: number; private _key; get key(): string; set key(value: string); value: Value; } export declare class ObjectPropertyArraySerializer implements Serializer { read(reader: BitstreamReader, type: any, parent: BitstreamElement, field: FieldDefinition): Generator; write(writer: BitstreamWriter, type: any, parent: BitstreamElement, field: FieldDefinition, value: ObjectProperty[]): void; } export declare class NumberValue extends Value { marker: TypeMarker; private $value; get value(): number; set value(value: number); } export declare class BooleanValue extends Value { marker: TypeMarker; private $value; get value(): boolean; set value(value: boolean); } export declare class StringValue extends Value { marker: TypeMarker; length: number; private $value; get value(): string; set value(value: string); } export declare class ComplexValue extends Value { write(bitstream: BitstreamWriter, options?: SerializeOptions): void; onSerializeFinished(): void; onParseFinished(): void; } export declare class ObjectValue extends ComplexValue { marker: TypeMarker; private _properties; $objectVariantMarker: any; get properties(): ObjectProperty[]; set properties(value: ObjectProperty[]); private buildValue; private _value; get value(): any; set value(value: any); } export declare class TypedObjectValue extends ObjectValue { marker: TypeMarker; private _className; classNameLength: number; get className(): string; set className(value: string); } export declare class NullValue extends Value { marker: TypeMarker; } export declare class UndefinedValue extends Value { marker: TypeMarker; } export declare class ReferenceValue extends Value { marker: TypeMarker; index: number; get reference(): ComplexValue; get value(): any; } export declare class EcmaArrayValue extends ComplexValue> { marker: TypeMarker; private _count; private _properties; private get properties(); private endKey; private endMarker; private set properties(value); private _value; get value(): Map; set value(value: Map); } export declare class ObjectEndValue extends Value { marker: TypeMarker; } export declare class StrictArrayValue extends ComplexValue { marker: TypeMarker; private _value; private _values; count: number; private get values(); private set values(value); get value(): T[]; static elementValues(value: StrictArrayValue): Value[]; set value(value: T[]); } export declare class DateValue extends Value { marker: TypeMarker; private _value; private get $value(); private set $value(value); private timeZone; get value(): Date; set value(value: Date); } export declare class LongStringValue extends Value { marker: TypeMarker; private _length; private $value; get value(): string; set value(value: string); } export declare class UnsupportedValue extends Value { marker: TypeMarker; } export declare class RecordSetValue extends Value { marker: TypeMarker; } export declare class MovieClipValue extends Value { marker: TypeMarker; } export declare class XmlDocumentValue extends Value { marker: TypeMarker; private _length; private $value; get value(): string; set value(value: string); } export declare class AvmPlusValue extends Value { marker: TypeMarker; private $value; get value(): any; set value(value: any); static unwrap(v: AvmPlusValue): AMF3.Value; }