import { ViewKey } from "@anz-bank/vscode-sysl-model"; import { ViewModel, ViewModelDelta } from "@anz-bank/vscode-sysl-plugin"; import { URI } from "vscode-uri"; import { Snapshotter } from "../../editor/snapshot"; import { View } from "../types"; import { Webview } from "../web/webview"; import { MultiView } from "./types"; /** Renders multiple child views. */ export declare abstract class AbstractMultiView implements MultiView { readonly uri: URI; protected readonly _children: { [key: string]: View; }; constructor(uri: URI); get children(): readonly View[]; /** Returns {@code true} if the multiview already contains a child view with {@code key}. */ hasChild(key: ViewKey): boolean; /** Returns the child view with {@code key} if it exists, or {@code undefined} otherwise. */ getChild(key: ViewKey): View | undefined; abstract addChild(key: ViewKey, initialModel?: T): View; /** Removes and returns the child view with the given key if it exists, or undefined otherwise. */ removeChild(key: ViewKey): View | undefined; /** Cleans up the multiview's resources. */ dispose(): void; } /** Renders multiple child views onto a Webview using the renderer. */ export declare class WebMultiView extends AbstractMultiView { private readonly basePath; private readonly snapshotter?; private readonly surface; constructor(uri: URI, webview: Webview, basePath: string, snapshotter?: Snapshotter | undefined); /** * Creates a new child view with {@code key} and optionally an initial model. Returns the view * once created, initialized and added as a child of the multiview. * * If the view already exists within the multiview, throws an error to enforce consistency. */ addChild(key: ViewKey, initialModel?: T): View; /** Initializes the multiview's Webview with the renderer's HTML. */ private initializeWebview; }