import { WithoutIndexSignature } from '../types'; /** * @internal * Overwrite properties in `TType` with properties in `TWith` * Only overwrites properties when the type to be overwritten * is an object. Otherwise it will just use the type from `TWith`. */ export type Overwrite = TWith extends any ? TType extends object ? { [K in keyof WithoutIndexSignature | keyof WithoutIndexSignature]: K extends keyof TWith ? TWith[K] : K extends keyof TType ? TType[K] : never; } & (string extends keyof TWith ? { [key: string]: TWith[string]; } : number extends keyof TWith ? { [key: number]: TWith[number]; } : {}) : TWith : never; /** * @internal */ export type DefaultValue = UnsetMarker extends TValue ? TFallback : TValue; /** * @internal */ export declare const middlewareMarker: "middlewareMarker" & { __brand: 'middlewareMarker'; }; /** * @internal */ export type MiddlewareMarker = typeof middlewareMarker; /** * @internal */ export declare const unsetMarker: unique symbol; /** * @internal */ export type UnsetMarker = typeof unsetMarker; /** * @internal */ export type ValidateShape = TActualShape extends TExpectedShape ? Exclude extends never ? TActualShape : TExpectedShape : never; /** * @internal */ export type PickFirstDefined = undefined extends TType ? undefined extends TPick ? never : TPick : TType; /** * @internal * Returns the raw input type of a procedure */ export type GetRawInputFn = () => Promise; //# sourceMappingURL=utils.d.ts.map