import { ComponentRef, TemplateRef } from "@angular/core"; import { BehaviorSubject, Observable, Subject } from "rxjs"; import { ComponentType } from '@angular/cdk/portal'; import { WorkspaceTabRef } from './models/workspace-tab-ref.model'; import { IWorkspaceTabConfig } from './models/i-workspace-tab-config'; import { WorkspaceErrorModel } from './models/workspace-error.model'; import { NgsWorkspaceComponent } from './ngs-workspace.component'; export abstract class NgsWorkspace { slide: BehaviorSubject<'in' | 'out'>; afterAllClosed: Observable; tabCount: Observable; onTabClosed: Subject>; afterOpened: Subject>; openWorkspaces: WorkspaceTabRef[]; emitErrors: Subject; abstract open(template: ComponentType, config?: IWorkspaceTabConfig): WorkspaceTabRef; abstract closeAll(): void; abstract getWorkspaceById(id: number): WorkspaceTabRef | undefined; abstract attachHeader(headerRef: TemplateRef | ComponentType); }