export declare type Nullable = T | null | undefined; export declare type ObjectValue = T[keyof T]; export declare type OneOrMoreReadonlyArray = readonly [T, ...T[]]; export declare type PartialWithUndefined = { [P in keyof T]?: T[P] | undefined; }; export declare type RequiredExcludeUndefined = { [P in keyof T]-?: Exclude; }; /** * The built-in `AsyncIterable` type does not have the `TReturn` and `TNext` arguments. * This type fixes that problem and makes it easier to use with function return types. * * Note: Do not specify the `never` type for the `TNext` argument! * It will not be available for the for-await-of statement. */ export interface AsyncIterableReturn { [Symbol.asyncIterator]: () => AsyncIterator; } /** * The built-in `AsyncIterableIterator` type does not have the `TReturn` and `TNext` arguments. * This type fixes that problem and makes it easier to use with function return types. * * Note: Do not specify the `never` type for the `TNext` argument! * It will not be available for the for-await-of statement. */ export interface AsyncIterableIteratorReturn extends AsyncIterator { [Symbol.asyncIterator]: () => AsyncIterableIteratorReturn; } export declare function assertType(_: T): void; export declare type isInteger = (value: unknown) => value is number; export declare type objectEntries = (o: Record) => Array<[T, U]>; export declare type objectFromEntries = (entries: Iterable) => Record; export declare type Cond, TResult extends Record<'match' | 'notMatch', unknown>> = [TCond['expected']] extends [TCond['actual']] ? [TCond['actual']] extends [TCond['expected']] ? TResult['match'] : TResult['notMatch'] : TResult['notMatch']; export declare type Cond2 & Record<'cond1' | 'cond2', Record<'actual' | 'expected' | 'onlyMatch', unknown>>> = Cond; notMatch: Cond; }>;