import 'reflect-metadata'; import { Type } from "../codeGen/domain/types/Type"; import ClassScheme from "../codeGen/domain/schema/ClassScheme"; export declare const SerializableKey = "SerializableKey"; export declare const SerializableKeys = "SerializableKeys"; export declare const SerializableTypes = "SerializableTypes"; export declare const SerializableArrayTypes = "SerializableArrayTypes"; export declare function serializable(name?: string, arrayType?: Function, isAny?: boolean): (target: Object, propertyKey: string) => void; export interface ISerializable { } export declare abstract class BaseSerializer { static serialize(entity: ISerializable): Object; static deserialize(serializableType: ISerializable & Function, raw: { [key: string]: any; }, valuePath?: string[]): T; static getClassScheme(serializableType: ISerializable & Function): ClassScheme; static getClassDependencies(serializableType: ISerializable & Function): (ISerializable & Function)[]; protected static isSerializableObject(object: Function): boolean; protected static getType(propType: any, arrayType?: any): Type; protected static checkType(prop: string, value: any, expectedType: any, isSerializable: boolean): void; }