Skip to main content
Glama
template-repository.d.ts3.71 kB
import { DatabaseAdapter } from '../database/database-adapter'; import { TemplateWorkflow, TemplateDetail } from './template-fetcher'; export interface StoredTemplate { id: number; workflow_id: number; name: string; description: string; author_name: string; author_username: string; author_verified: number; nodes_used: string; workflow_json?: string; workflow_json_compressed?: string; categories: string; views: number; created_at: string; updated_at: string; url: string; scraped_at: string; metadata_json?: string; metadata_generated_at?: string; } export declare class TemplateRepository { private db; private sanitizer; private hasFTS5Support; constructor(db: DatabaseAdapter); private initializeFTS5; saveTemplate(workflow: TemplateWorkflow, detail: TemplateDetail, categories?: string[]): void; getTemplatesByNodes(nodeTypes: string[], limit?: number, offset?: number): StoredTemplate[]; getTemplate(templateId: number): StoredTemplate | null; private decompressWorkflow; searchTemplates(query: string, limit?: number, offset?: number): StoredTemplate[]; private searchTemplatesLIKE; getTemplatesForTask(task: string, limit?: number, offset?: number): StoredTemplate[]; getAllTemplates(limit?: number, offset?: number, sortBy?: 'views' | 'created_at' | 'name'): StoredTemplate[]; getTemplateCount(): number; getSearchCount(query: string): number; getNodeTemplatesCount(nodeTypes: string[]): number; getTaskTemplatesCount(task: string): number; getExistingTemplateIds(): Set<number>; getMostRecentTemplateDate(): Date | null; hasTemplate(templateId: number): boolean; getTemplateMetadata(): Map<number, { name: string; updated_at: string; }>; getTemplateStats(): Record<string, any>; clearTemplates(): void; rebuildTemplateFTS(): void; updateTemplateMetadata(templateId: number, metadata: any): void; batchUpdateMetadata(metadataMap: Map<number, any>): void; getTemplatesWithoutMetadata(limit?: number): StoredTemplate[]; getTemplatesWithOutdatedMetadata(daysOld?: number, limit?: number): StoredTemplate[]; getMetadataStats(): { total: number; withMetadata: number; withoutMetadata: number; outdated: number; }; private buildMetadataFilterConditions; searchTemplatesByMetadata(filters: { category?: string; complexity?: 'simple' | 'medium' | 'complex'; maxSetupMinutes?: number; minSetupMinutes?: number; requiredService?: string; targetAudience?: string; }, limit?: number, offset?: number): StoredTemplate[]; getMetadataSearchCount(filters: { category?: string; complexity?: 'simple' | 'medium' | 'complex'; maxSetupMinutes?: number; minSetupMinutes?: number; requiredService?: string; targetAudience?: string; }): number; getAvailableCategories(): string[]; getAvailableTargetAudiences(): string[]; getTemplatesByCategory(category: string, limit?: number, offset?: number): StoredTemplate[]; getTemplatesByComplexity(complexity: 'simple' | 'medium' | 'complex', limit?: number, offset?: number): StoredTemplate[]; getSearchTemplatesByMetadataCount(filters: { category?: string; complexity?: 'simple' | 'medium' | 'complex'; maxSetupMinutes?: number; minSetupMinutes?: number; requiredService?: string; targetAudience?: string; }): number; getUniqueCategories(): string[]; getUniqueTargetAudiences(): string[]; } //# sourceMappingURL=template-repository.d.ts.map

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/czlonkowski/n8n-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server