export type RemoveIndex = { [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K]; }; export declare const uppercase: (str: S) => Uppercase; export declare const callOrIdentity: (value: MaybeLazy) => T; export type MaybeLazy = T | (() => T); export declare const zip: (a: A[], b: B[]) => [A, B | undefined][]; export declare const HeadersInitToPlainObject: (headers?: HeadersInit) => Record; export declare const HeadersInstanceToPlainObject: (headers: Response["headers"]) => Record; export declare const tryCatch: <$Return, $Throw extends Error = Error>(fn: () => $Return) => $Return extends Promise ? Promise | $Throw> : $Return | $Throw; /** * Ensure that the given value is an error and return it. If it is not an error than * wrap it in one, passing the given value as the error message. */ export declare const errorFromMaybeError: (maybeError: unknown) => Error; export declare const isPromiseLikeValue: (value: unknown) => value is Promise; export declare const casesExhausted: (value: never) => never; export declare const isPlainObject: (value: unknown) => value is Record; export declare const entries: >(obj: T) => [keyof T, T[keyof T]][]; export declare const values: >(obj: T) => T[keyof T][]; export type Exact<$Value, $Constraint> = ($Value extends unknown ? $Constraint extends $Value ? {} extends $Value ? $Constraint : { [K in keyof $Value]: Exact<$Value[K], $Constraint[K]>; } : $Constraint : never) | ($Value extends Narrowable ? $Value : never); export type Narrowable = string | number | bigint | boolean | []; export type Letter = LetterLower | LetterUpper; export type Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'; export type LetterLower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z'; export type LetterUpper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'; export type StringNonEmpty = `${Letter}${string}`; export type MaybeList = T | T[]; export type NotEmptyObject = keyof T extends never ? never : T; export type Values = T[keyof T]; export type GetKeyOr = Key extends keyof T ? T[Key] : Or; export type As = U extends T ? U : never; export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; export type LastOf = UnionToIntersection T : never> extends () => infer R ? R : never; export type Push = [...T, V]; export type UnionToTuple, N = [T] extends [never] ? true : false> = true extends N ? [] : Push>, L>; export type CountKeys = keyof T extends never ? 0 : UnionToTuple['length']; export type IsMultipleKeys = IsMultiple>; export type IsMultiple = T extends 0 ? false : T extends 1 ? false : true; export type ExcludeNull = Exclude; export declare const mapValues: <$Obj extends Record, $Fn extends (value: $Obj[keyof $Obj], key: keyof $Obj) => any>(object: $Obj, fn: $Fn) => Record>; export type SetProperty<$Obj extends object, $Prop extends keyof $Obj, $Type extends $Obj[$Prop]> = Omit<$Obj, $Prop> & { [_ in $Prop]: $Type; }; export declare const lowerCaseFirstLetter: (s: string) => string; export declare function assertArray(v: unknown): asserts v is unknown[]; export declare function assertObject(v: unknown): asserts v is object; export type StringKeyof = keyof T & string; export type MaybePromise = T | Promise; export declare const capitalizeFirstLetter: (string: string) => string; export type SomeAsyncFunction = (...args: unknown[]) => Promise; export type SomeMaybeAsyncFunction = (...args: unknown[]) => MaybePromise; export type Deferred = { promise: Promise; isResolved: () => boolean; resolve: (value: T) => void; reject: (error: unknown) => void; }; export declare const createDeferred: <$T>(options?: { strict?: boolean; }) => Deferred<$T>; export declare const debug: (...args: any[]) => void; export declare const debugSub: (...args: any[]) => (...subArgs: any[]) => void; export type PlusOneUpToTen = n extends 0 ? 1 : n extends 1 ? 2 : n extends 2 ? 3 : n extends 3 ? 4 : n extends 4 ? 5 : n extends 5 ? 6 : n extends 6 ? 7 : n extends 7 ? 8 : n extends 8 ? 9 : n extends 9 ? 10 : never; export type MinusOneUpToTen = n extends 10 ? 9 : n extends 9 ? 8 : n extends 8 ? 7 : n extends 7 ? 6 : n extends 6 ? 5 : n extends 5 ? 4 : n extends 4 ? 3 : n extends 3 ? 2 : n extends 2 ? 1 : n extends 1 ? 0 : never; export type findIndexForValue = findIndexForValue_; type findIndexForValue_ = value extends list[i] ? i : findIndexForValue_>; export type FindValueAfter = list[PlusOneUpToTen>]; export type ValueOr = value extends undefined ? orValue : value; export type FindValueAfterOr = ValueOr>], orValue>; export type GetLastValue = T[MinusOneUpToTen]; export type IsLastValue = value extends GetLastValue ? true : false; export type Include = T extends U ? T : never; export declare const partitionErrors: (array: T[]) => [Exclude[], Include[]]; export {}; //# sourceMappingURL=prelude.d.ts.map