/** A type guard function that narrows `unknown` to `T` */ export type Guard = (value: unknown) => value is T; /** Extract the guarded type from a Guard */ export type GuardType = G extends Guard ? T : never; /** Make all properties required and non-nullable */ export type RequiredDeep = { [K in keyof T]-?: NonNullable; }; /** A value that could be null or undefined */ export type Nullish = null | undefined; /** A value that is neither null nor undefined */ export type NonNullish = Exclude; /** Primitive JavaScript types */ export type Primitive = string | number | boolean | bigint | symbol | null | undefined; /** A plain object with string keys */ export type PlainObject = Record; /** Function type shorthand */ export type AnyFunction = (...args: unknown[]) => unknown; /** A readonly tuple type */ export type ReadonlyTuple = readonly [...T]; /** Branded type for nominal typing */ export type Brand = T & { readonly __brand: B; }; /** Infer the shape from a guard record */ export type ShapeGuardType>> = { [K in keyof T]: GuardType; }; //# sourceMappingURL=types.d.ts.map