import "reflect-metadata";
import { Class } from "./types";
export declare type RootElementConfiguration = {
    alias: string;
};
export declare function Configuration<T>(cfg: RootElementConfiguration): any;
export declare function RootElement<T>(type: Class<T>): Class<T>;
declare type Cfg = {
    alias: string;
};
export declare type ReadConfiguration = {} & Cfg;
export declare type WriteConfiguration = {} & Cfg;
export declare type PropertyConfiguration = {
    type: Class<any>;
    read: ReadConfiguration;
    write: WriteConfiguration;
};
export declare function Property<T>(configuration?: Partial<PropertyConfiguration> | Class<T>): any;
export {};
