import "reflect-metadata";
import { Class } from "./types";
import { TypeRegistration } from "./type-registry";
export interface Deserializer<T> {
    read(object: any): T;
}
export declare class StringDeserializer implements Deserializer<string> {
    read(object: any): string;
}
export declare class BooleanDeserializer implements Deserializer<boolean> {
    read(object: any): boolean;
}
export declare class NumberDeserializer implements Deserializer<number> {
    read(object: any): number;
}
export declare class TypeRegistrationDeserializer<T> implements Deserializer<T> {
    readonly type: Class<T>;
    readonly registration: TypeRegistration<T>;
    constructor(type: Class<T>, registration: TypeRegistration<T>);
    read(value: any): T;
    private bind;
}
