import { Category } from "./enums"; interface Author extends Person { numBooksPublished: number; } interface Book { author: string, available: boolean, category: Category; id: number, markDamaged?: DamageLogger, pages?: number, title: string, } interface CatalogItem { catalogNumber: number; } interface DamageLogger { (reason: string): void; } interface Inventory { addItem: (newItem: T) => void; getAllItems: () => Array; getNewestItem: () => T; } interface Librarian extends Person { assistCustomer: (custName: string) => void, department: string, } interface Magazine { publisher: string; title: string; } interface Person { email: string; name: string; } export { Author, Book, CatalogItem, DamageLogger as Logger, Inventory, Librarian, Magazine, }