/// /// import { Project } from "../core/Project"; import { SimpleExerciseLobsterOutlet } from "../view/SimpleExerciseLobsterOutlet"; import { Message, MessageResponses } from "../util/observe"; import { ProjectList, ProjectData, FullProjectData } from "./projects"; import { UserInfo as UserData } from "./user"; import { CourseData } from "./courses"; /** * Expects elements with these ids to be present: * - lobster-log-in-button * - lobster-my-projects */ export declare class LobsterApplication { _act: MessageResponses; readonly myProjectsList: ProjectList; readonly courseProjectsList: ProjectList; readonly lobsterOutlet: SimpleExerciseLobsterOutlet; readonly projectSaveOutlet: ProjectSaveOutlet; readonly myProjects?: ProjectData[]; readonly courseProjects?: ProjectData[]; readonly activeProject: Project; readonly activeProjectData?: FullProjectData; readonly currentCourse?: CourseData; private currentCreateProjectList; private readonly logInButtonElem; constructor(); private setUpElements; protected onUserLoggedIn(user: UserData): Promise; protected onUserLoggedOut(user: UserData): void; protected onProjectSelected(projectData: ProjectData): Promise; protected onCreateProjectClicked(message: Message): Promise; private loadProject; private setProjectFromData; private refreshMyProjectsList; private refreshCourseProjectsList; private setProject; private updateButtons; private createProject; private editActiveProject; private deleteActiveProject; private loadCourses; private setCourses; private loadCourse; private editActiveExercise; } export declare type ProjectSaveAction = (project: Project) => Promise; export declare class ProjectSaveOutlet { _act: MessageResponses; readonly project: Project; readonly isSaved: boolean; readonly isEnabled: boolean; private saveAction; private readonly element; private readonly saveButtonElem; private isAutosaveOn; constructor(element: JQuery, project: Project, saveAction: ProjectSaveAction, autosaveInterval?: number | false); setProject(project: Project, isEnabled: boolean): Project; private autosaveCallback; saveProject(): Promise; private onSaveDisabled; private onSaveSuccessful; private onUnsavedChanges; private onSaveAttempted; private onSaveFailed; private removeButtonClasses; private onProjectChanged; private onSaveRequested; }