import { AuguryCore } from '../augury-core.class' ; export abstract class Plugin { protected augury : AuguryCore | null = null ; public initialize ( augury ) { this . augury = augury ; this . doInitialize ( ) ; } public abstract doInitialize ( ) ; public getAugury ( ) { if ( this . augury ) { return this . augury ; } else { throw new Error ( 'Augury has not initialized this plugin' ) ; } } }