export type PartialRequired<T, Required extends keyof T> = {
    [key in keyof T]?: T[key];
} & {
    [key in Required]: T[key];
};
export type Normalize<T> = {
    [K in keyof T]: T[K];
};
export type AnyRecord = Record<string | number | symbol, any>;
export type AnyArray = any[];
export type EmptyObject = {};
export type Unsubscribe = (abort?: boolean) => void;
export type StringIndexable<T extends object> = {
    [P in keyof T as P extends string ? `${P}` | P : P]: T[P];
};
export type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
