import { EventListener } from "@App/internal/utils/event" ; export type TaskEvent = "complete" | "init" | "stop" | "load" ; export type TaskType = "topic" | "exam" | "video" | "document" | "other" ; export abstract class Task extends EventListener < TaskEvent > { public Init ( ) { return new Promise < any > ( resolve => { return resolve ( ) ; } ) ; } public abstract Done ( ) ; public abstract Start ( ) ; public abstract Type ( ) ; public Submit ( ) { return new Promise < any > ( resolve => { return resolve ( ) ; } ) ; } public Stop ( ) { return new Promise < any > ( resolve => { return resolve ( ) ; } ) ; } public Context ( ) { return window ; } } export interface TaskControlBar { SetTask ( task ) : void ; GetTask ( ) : Task ; }