export type StrictOmit = Omit; export type StrictPick = Pick; export type StrictExclude = Exclude; export type StrictExtract = Extract; type UnionToIntersection = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never; export type IsUnion = [T] extends [UnionToIntersection] ? false : true; export declare const IsTrue: () => void; export type ReMap = T extends Record ? { [Key in keyof T]: T[Key]; } : T; export type IsSame = ReMap extends infer RT ? ReMap extends infer RU ? (() => G extends RT ? 1 : 2) extends () => G extends RU ? 1 : 2 ? true : false : never : never; export type IsEqual = T[] extends U[] ? U[] extends T[] ? true : false : false; export type GetOddOrEvenSegments = Mode extends 'Odd' ? T extends `${infer H extends string}/${infer R extends string}` ? GetOddOrEvenSegments : [...ACC, T] : T extends `${string}/${infer R extends string}` ? GetOddOrEvenSegments : ACC; export type DeepPartial = { [K in keyof T]?: T[K] extends Record ? DeepPartial : T[K]; }; export type DeepPartialExceptArray = T extends (infer A)[] ? T : { [K in keyof T]?: T[K] extends Record ? DeepPartial : T[K]; }; export type EmptyObject = NonNullable; export type RemoveOptionalNever = { [K in keyof T as Partial[K] extends T[K] ? Required[K][] extends never[] ? never : K : K]: T[K]; }; export {};