@rhofkens/mcp-quotes-server-claude-code
Version:
Model Context Protocol (MCP) server for managing and serving quotes
94 lines • 2.72 kB
TypeScript
/**
* MCP Quotes Server - Template Manager
*
* Central manager for all quote templates
*/
import type { IQuoteTemplate, ITemplateSearchQuery, ITemplateRenderContext, ITemplateRenderResult, ITemplateValidationResult } from '../../types/templates.js';
import { TemplateCategory } from '../../types/templates.js';
/**
* Template Manager class - singleton pattern
*/
export declare class TemplateManager {
private static instance;
private initialized;
private constructor();
/**
* Get singleton instance
*/
static getInstance(): TemplateManager;
/**
* Initialize template manager
*/
initialize(): Promise<void>;
/**
* Load all category templates into repository
*/
private loadCategoryTemplates;
/**
* Get a template by ID
*/
getTemplate(id: string, version?: string): Promise<IQuoteTemplate | null>;
/**
* List all templates in a category
*/
listByCategory(category: TemplateCategory): Promise<IQuoteTemplate[]>;
/**
* Search templates
*/
searchTemplates(query: ITemplateSearchQuery): Promise<IQuoteTemplate[]>;
/**
* Validate a template
*/
validateTemplate(template: IQuoteTemplate): ITemplateValidationResult;
/**
* Render a template
*/
renderTemplate(templateId: string, context: ITemplateRenderContext): Promise<ITemplateRenderResult>;
/**
* Save a custom template
*/
saveTemplate(template: IQuoteTemplate): Promise<void>;
/**
* Get template suggestions based on context
*/
getTemplateSuggestions(context: {
category?: TemplateCategory;
tags?: string[];
purpose?: string;
}): Promise<IQuoteTemplate[]>;
/**
* Get all available categories
*/
getAvailableCategories(): TemplateCategory[];
/**
* Get category metadata
*/
getCategoryMetadata(category: TemplateCategory): {
name: string;
description: string;
icon: string;
};
/**
* Export template as JSON
*/
exportTemplate(templateId: string): Promise<string>;
/**
* Import template from JSON
*/
importTemplate(jsonString: string): Promise<IQuoteTemplate>;
/**
* Clone an existing template
*/
cloneTemplate(templateId: string, newName: string): Promise<IQuoteTemplate>;
/**
* Get template statistics
*/
getTemplateStatistics(): Promise<{
totalTemplates: number;
byCategory: Record<TemplateCategory, number>;
mostUsed: IQuoteTemplate[];
recentlyUpdated: IQuoteTemplate[];
}>;
}
export declare const templateManager: TemplateManager;
//# sourceMappingURL=templateManager.d.ts.map