export type IsArray<T> = T extends Array<any> ? true : false;
export type IsString<T> = T extends string ? true : false;
export type Nullable<T> = {
    [P in keyof T]: T[P] | null;
};
export type RequiredProps<T, K extends keyof T> = T & {
    [P in K]-?: T[P];
};
export type DeepPartial<T> = {
    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};
