/** Expects `T` to be `true` */ export type Expect = T; /** Returns true if types `A` and `B` are equal (and neither is `any`) */ export type Equals = UnlessAny ? true : "❌ Unexpected or missing 'readonly' property" : '❌ Type B is not assignable to type A' : '❌ Type A is not assignable to type B'>; /** Returns true if type `A` extends type `B` (and neither is `any`) */ export type Extends = UnlessAny; /** Returns true if type `A` does **NOT** extend type `B` (and neither is `any`) */ export type NotExtends = UnlessAny; type ExactEqual = (() => U extends A ? 1 : 0) extends (() => U extends B ? 1 : 0) ? Any : never; declare const _Any__Brand: unique symbol; type Any = { [_Any__Brand]: true; }; type IsAny = Any extends T ? ([T] extends [Any] ? true : false) : false; type UnlessAny = IsAny extends true ? IsAny extends true ? "❌ Types A and B are both 'any'" : "❌ Type A is 'any' but type B is not" : IsAny extends true ? "❌ Type B is 'any' but type A is not" : C; export {};