import type { PromiseOrValue } from '@envelop/types'; export type PromiseType = T extends PromiseLike ? U : T; export type InferFunctionReturn any> = PromiseType>; export type InferContext any> = PromiseType>; export type PickRequired = T & Required>; export type DeepPartial = T extends Function ? T : T extends Array ? DeepPartialArray : T extends object ? DeepPartialObject : T | undefined; interface DeepPartialArray extends Array>>> { } type DeepPartialObject = { [P in keyof T]?: PromiseOrValue>>; }; export type { PromiseOrValue };