import { Type } from '@itrocks/class-type';
import { CollectionType } from '@itrocks/property-type';
import { ReflectClass } from './class';
export declare class ReflectProperty<T extends object, K extends keyof T = keyof T> {
    #private;
    readonly name: K;
    constructor(object: T | ReflectClass<T> | Type<T>, name: K);
    get class(): ReflectClass<T>;
    get collectionType(): import("@itrocks/property-type").PropertyTypes<T>[K] & CollectionType;
    get defaultValue(): Partial<Pick<T, keyof T>>[K];
    get object(): T | undefined;
    get type(): import("@itrocks/property-type").PropertyTypes<T>[K];
    get value(): T[K] | undefined;
}
