import 'reflect-metadata'; import { BitStream } from 'bit-buffer-ts'; declare class Coder { private readonly parent?; private static readonly definitions; static define(definition: any): string; private readonly definitions; private lines; constructor(parent?: Coder | undefined); code(...code: string[]): void; set(prop: any, code: string): void; get fullLines(): string[]; get fullScript(): string; compiled?: (o: Object, s: BitStream) => void; run(o: Object, s: BitStream): Object; } export declare class DecoderEncoder { private readonly parent?; readonly encoder: Coder; readonly decoder: Coder; static readonly utf8Decoder: string; static readonly latin1Decoder: string; static readonly utf8Encoder: string; constructor(parent?: DecoderEncoder | undefined); skip(bits: number): void; array(prop: string, count: string | number): void; arrayLength(prop: string, bits: number, arrayProp: string): void; object(prop: string, constructor: (new () => any) | (new (internalGuard: never) => any)): void; customDecoder(method: any): void; customEncoder(method: any): void; if(prop: any): void; ifInstanceOf(constructor: Function): void; unsigned: (prop: any, bits: number) => void; signed: (prop: any, bits: number) => void; number(prop: any, signed: boolean, bits: number): void; numberSignMagnitude(prop: any, bits: number): void; boolean(prop: any): void; latin1(prop: any, lengthBits: number): void; utf8(prop: any, charactersBits: number, lengthBits: number): void; } export declare function getDecoderEncoder(target: any): DecoderEncoder; export declare const Int: (bits: number) => PropertyDecorator; export declare const UInt: (bits: number) => PropertyDecorator; export declare const IntSM: (bits: number) => PropertyDecorator; export declare const Bool: PropertyDecorator; export declare const Latin1: (lengthBits: number) => PropertyDecorator; export declare const Utf8: (charactersBits: number, lengthBits: number) => PropertyDecorator; export declare const Obj: (constructor: (new () => any) | (new (internalGuard: never) => any)) => PropertyDecorator; export declare const Arr: (length: string | number, type: PropertyDecorator) => (target: any, propertyKey: any) => void; export declare const ArrLength: (bits: number, arrayProp: string) => PropertyDecorator; export declare const If: (prop: string) => PropertyDecorator; export declare const IfInstanceOf: (constructor: () => Function) => PropertyDecorator; export declare const Skip: (bits: number) => PropertyDecorator; export declare const CustomDecoder: PropertyDecorator; export declare const CustomEncoder: PropertyDecorator; export declare const DF: (number: number) => { (target: Function): void; (target: Object, propertyKey: string | symbol): void; }; export {};