export function assertType<T extends true | false>(_expectTrue: T) {}
export type IsExact<T, U> = TupleMatches<AnyToBrand<T>, AnyToBrand<U>> extends true ? TupleMatches< DeepMakeRequiredForIsExact<T>, DeepMakeRequiredForIsExact<U> > extends true ? true : false : false;
type DeepMakeRequiredForIsExact<T> = { [P in keyof T]-?: DeepMakeRequiredForIsExact<AnyToBrand<T[P]>>;};
export type IsAny<T> = 0 extends (1 & T) ? true : false;
type TupleMatches<T, U> = Matches<[T], [U]> extends true ? true : false;type Matches<T, U> = T extends U ? U extends T ? true : false : false;
type AnyToBrand<T> = IsAny<T> extends true ? { __conditionalTypeChecksAny__: undefined } : T;