import { AbstractConstructor, Constructor } from '../index';
/**
 * Base interface for data objects. Consider using classes extending {@link BaseDoEntity} instead.
 */
export interface DoEntity {
    _type?: string;
    _typeVersion?: string;
}
/**
 * Base interface for data objects which accept all properties. Consider using classes extending {@link BaseDoEntity} instead.
 */
export interface AnyDoEntity extends DoEntity {
    [property: string]: any;
}
/**
 * Class decorator function for data objects. It writes the given typeName value to the _type attribute of the data object instance. Is executed before the class constructor.
 * @param typeName The typeName (_type) of the data object.
 */
export declare function typeName(typeName?: string): <T extends Constructor | AbstractConstructor>(BaseClass: T) => {
    new (...args: any[]): {};
} & T;
//# sourceMappingURL=DoEntity.d.ts.map