export type ExtractPropertyNamesWithType = { [K in keyof T]: T[K] extends U ? K : never; }[keyof T]; export type ExtractPropertyNamesExceptType = { [K in keyof T]: T[K] extends U ? never : K; }[keyof T]; export type PropertiesOfType = Pick>; export type PropertiesExcept = Pick>; export type PartialRequire = Partial & Pick; export type AnyFunction = (...args: any[]) => any; export interface Attributes { [key: string]: string; } export interface Headers { [key: string]: string; }