UNPKG

smc-hub

Version:

CoCalc: Backend webserver component

47 lines (46 loc) 1.64 kB
/// <reference types="node" /> import { EventEmitter } from "events"; import { ProjectState, ProjectStatus } from "smc-util/db-schema/projects"; export type { ProjectState, ProjectStatus }; export declare type Action = "open" | "start" | "stop" | "restart"; export declare function getProject(project_id: string): BaseProject | undefined; export declare abstract class BaseProject extends EventEmitter { readonly project_id: string; is_ready: boolean; is_freed: boolean; protected stateChanging: ProjectState | undefined; constructor(project_id: string); protected siteLicenseHook(): Promise<void>; protected saveStateToDatabase(state: ProjectState): Promise<void>; protected saveStatusToDatabase(status: ProjectStatus): Promise<void>; dbg(f: string): (string?: any) => void; abstract state(): Promise<ProjectState>; abstract status(): Promise<ProjectStatus>; abstract start(): Promise<void>; abstract stop(): Promise<void>; restart(): Promise<void>; protected wait(opts: { until: () => Promise<boolean>; maxTime: number; }): Promise<void>; address(): Promise<{ host: string; port: number; secret_token: string; }>; abstract copyPath(opts: CopyOptions): Promise<string>; setAllQuotas(): Promise<void>; } export interface CopyOptions { path: string; target_project_id?: string; target_path?: string; overwrite_newer?: boolean; delete_missing?: boolean; backup?: boolean; timeout?: number; bwlimit?: number; wait_until_done?: boolean; scheduled?: string | Date; public?: boolean; }