export type ArrayElementType<TWhere> = TWhere extends (infer U)[] ? U extends object ? U : never : never;
export type Optional<T, K extends keyof T> = Omit<T, K> & {
    [K in keyof T]?: T[K];
};
export declare function isNonNullObject(val: unknown): val is object;
export declare function hasProp<T extends object, K extends PropertyKey>(obj: T, prop: K): obj is T & Record<K, unknown>;
export type WithRequired<T, K extends keyof T> = T & {
    [P in K]-?: T[P];
};
//# sourceMappingURL=typescriptExtensions.d.ts.map