import type { GenericDescriptor, PropertyDescriptor } from "../index"; declare function CompletePropertyDescriptor( Desc: D & ThisType, ): Required< D extends { "[[Value]]": infer T } ? GenericDescriptor & { "[[Value]]": T; "[[Writable]]": boolean; } : D extends { "[[Value]]"?: infer T | undefined } | { "[[Writable]]"?: boolean | undefined } ? GenericDescriptor & { "[[Value]]": T | undefined; "[[Writable]]": boolean; } : D extends { "[[Get]]"?: (() => infer T) | undefined } | { "[[Set]]"?: ((value: infer T) => void) | undefined } ? GenericDescriptor & { "[[Get]]": (() => T) | undefined; "[[Set]]": ((value: T) => void) | undefined; } : D & PropertyDescriptor >; declare function CompletePropertyDescriptor(Desc: PropertyDescriptor & ThisType): Required; export = CompletePropertyDescriptor;