import {Author, Book, DamageLogger, Librarian} from './interfaces'; class UniversityLibrarian implements Librarian { department: string; email: string; name: string; assistCustomer(custName: string): void { console.log(`${this.name} is assisting ${custName}.`); } } class ReferenceItem { static department = 'Research'; private _publisher: string; constructor(public title: string, protected year: number) { } printItem(): void { console.log(`${this.title} was published in ${this.year}`); console.log(`Department: ${ReferenceItem.department}.`); } get publisher(): string { return this._publisher.toUpperCase(); } set publisher(p: string) { this._publisher = p; } } class Encyclopedia extends ReferenceItem { constructor(newTitle: string, newYear: number, public edition: number) { super(newTitle, newYear); } printItem(): void { super.printItem(); console.log(`Edition: ${this.edition} (${this.year}).`); } } class Journal extends ReferenceItem { public contributors: string[]; constructor(title: string, year: number) { super(title, year); } } export { Encyclopedia, ReferenceItem, UniversityLibrarian };