export declare namespace typeutil { type assertEqual = [T] extends [Expected] ? [Expected] extends [T] ? true : false : false; type depromisify = T extends Promise ? depromisify : T; type identity = T; type flatten = { [k in keyof T]: T[k]; } & unknown; type tupleOf = [T, ...T[]] | []; type writeable = { -readonly [P in keyof T]: T[P]; }; type nonNeverKeys = { [k in keyof T]: [T[k]] extends [never] ? never : k; }[keyof T]; type stripNever = { [k in nonNeverKeys]: k extends keyof T ? T[k] : never; }; type optionalKeys = { [k in keyof T]: undefined extends T[k] ? k : never; }[keyof T]; type requiredKeys = Exclude>; type addQuestionMarks = { [k in optionalKeys]?: T[k]; } & { [k in requiredKeys]: T[k]; }; }