import { ModelValueType, NestedModelDefinition } from './glossary'; import { ManyOf, OneOf, Relation, RelationKind } from './relations/Relation'; export declare class NullableObject { objectDefinition: ValueType; defaultsToNull: boolean; constructor(definition: ValueType, defaultsToNull: boolean); } export declare type NullableGetter = () => ValueType | null; export declare class NullableProperty { getValue: NullableGetter; constructor(getter: NullableGetter); } export declare function nullable(value: ValueType, options?: { defaultsToNull?: boolean; }): NullableObject; export declare function nullable(value: NullableGetter, options?: { defaultsToNull?: boolean; }): NullableProperty; export declare function nullable>(value: ValueType, options?: { defaultsToNull?: boolean; }): ValueType extends Relation ? Kind extends RelationKind.ManyOf ? ManyOf : OneOf : never;