What the widget calls, and nothing more. DrawingTemplateRepository implements it; a host that keeps templates on its own server can implement it directly instead.

interface DrawingTemplateStore {
    load(): Promise<DrawingTemplateCatalog>;
    removeTemplate(
        id: string,
        options?: DrawingTemplateOperationOptions,
    ): Promise<void>;
    renameTemplate(
        id: string,
        name: string,
        options?: DrawingTemplateOperationOptions,
    ): Promise<DrawingTemplate>;
    saveTemplate(
        name: string,
        tool: string,
        values: DrawingTemplateValues,
        options?: DrawingTemplateOperationOptions,
    ): Promise<DrawingTemplate>;
    setDefault(
        tool: string,
        values: null | DrawingTemplateValues,
        options?: DrawingTemplateOperationOptions,
    ): Promise<void>;
    subscribe(listener: (catalog: DrawingTemplateCatalog) => void): () => void;
}

Implemented by

Methods