import { Constructor, ObjectType } from '../../index';
export declare const doValueMetaData: {
    TYPE_META_DATA_KEY: string;
    getFieldMetaData(prototype: object, fieldName: string): DoValueMetaData;
    resolveFieldMetaData(meta: RawFieldMetaData): DoValueMetaData;
    getObjectTypeInfo(objectType: ObjectType<any>): {
        type: Constructor<any>;
        typeName: string;
    };
    resolveToConstructor<T>(objectType: ObjectType<T>): Constructor<T>;
    getArrayValueType(metaData: DoValueMetaData): DoValueMetaData;
    chooseDataObjectType(obj: any, metaData?: DoValueMetaData): Constructor;
    detectDataObjectClass(obj: any): Constructor;
    /**
     * Checks if `actualType` is instanceof `declaredType`.
     */
    assertTypesCompatible(actualType: Constructor, declaredType: Constructor): void;
};
export type RawFieldMetaData = ObjectType | {
    objectType: ObjectType;
    typeArgs: RawFieldMetaData[];
};
export type DoValueMetaData<T = any> = {
    type: Constructor<T>;
    typeName: string;
    args: DoValueMetaData[];
};
//# sourceMappingURL=doValueMetaData.d.ts.map