import { Kernel } from "@tandem/common/ioc"; export declare type SerializedContentType = any[]; export interface ISerializer { serialize(value: T): U; deserialize(value: U, kernel: Kernel, ctor?: any): T; } export interface ISerializable { serialize(): T; deserialize(value: T): void; } export declare function createSerializer(ctor: { new (...rest: any[]): any; }): ISerializer; export declare function getSerializeType(value: any): any; export declare function serializable(type: string, serializer?: ISerializer): (ctor: new (...rest: any[]) => any) => void; export declare function isSerializable(value: Object): boolean; export declare function serialize(value: any): SerializedContentType; export declare function deserialize(content: SerializedContentType, kernel: Kernel): any;