import { Not } from '../../utils/types.js'; import { Nullable, Optional, TypeInterface } from '../data-types/types/type-definitions.js'; /** * Returns true if the property is optional, otherwise false. */ export type IsPropertyReadOptional = T extends TypeInterface ? Config extends Optional ? true : Config extends Nullable ? true : false : false; /** * Returns true if the property is required, otherwise false. */ export type IsPropertyReadRequired = Not>; export type IsPropertyWriteOptional = T extends TypeInterface ? Config extends Optional ? true : Config extends Nullable ? true : Config extends { default: any; } ? true : false : false; export type IsPropertyWriteRequired = Not>;