import { IEntityRef } from '../../api/IEntityRef';
import { AbstractRef } from '../AbstractRef';
import { IBuildOptions } from '../../api/IBuildOptions';
import { IPropertyRef } from '../../api/IPropertyRef';
import { METADATA_TYPE } from '../Constants';
import { IEntityOptions } from '../options/IEntityOptions';
import { IClassRef } from '../../api/IClassRef';
import { ILookupRegistry } from '../../api/ILookupRegistry';
import { SchemaRef } from '../SchemaRef';
export declare class DefaultEntityRef extends AbstractRef implements IEntityRef {
    constructor(options?: IEntityOptions);
    additionalProperties(options: any): void;
    getSchemaRefs(): SchemaRef | SchemaRef[];
    getRegistry(): ILookupRegistry;
    build<T>(instance: any, options?: IBuildOptions): T;
    create<T>(addinfo?: boolean): T;
    getPropertyRef(name: string): IPropertyRef;
    getPropertyRefs(): IPropertyRef[];
    id(): string;
    getClassRefFor(object: string | Function | IClassRef, type: METADATA_TYPE): IClassRef;
    /**
     * Check if an object / instance is of same type like this entity ref (same check as IClassRef.isOf).
     *
     * @param instance
     */
    isOf(instance: any): boolean;
}
