mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-01-30 06:22:04 +00:00
79 lines
3.2 KiB
TypeScript
79 lines
3.2 KiB
TypeScript
import { DatabaseAdapter } from '../database/database-adapter';
|
|
export interface TemplateInfo {
|
|
id: number;
|
|
name: string;
|
|
description: string;
|
|
author: {
|
|
name: string;
|
|
username: string;
|
|
verified: boolean;
|
|
};
|
|
nodes: string[];
|
|
views: number;
|
|
created: string;
|
|
url: string;
|
|
metadata?: {
|
|
categories: string[];
|
|
complexity: 'simple' | 'medium' | 'complex';
|
|
use_cases: string[];
|
|
estimated_setup_minutes: number;
|
|
required_services: string[];
|
|
key_features: string[];
|
|
target_audience: string[];
|
|
};
|
|
}
|
|
export interface TemplateWithWorkflow extends TemplateInfo {
|
|
workflow: any;
|
|
}
|
|
export interface PaginatedResponse<T> {
|
|
items: T[];
|
|
total: number;
|
|
limit: number;
|
|
offset: number;
|
|
hasMore: boolean;
|
|
}
|
|
export interface TemplateMinimal {
|
|
id: number;
|
|
name: string;
|
|
description: string;
|
|
views: number;
|
|
nodeCount: number;
|
|
metadata?: {
|
|
categories: string[];
|
|
complexity: 'simple' | 'medium' | 'complex';
|
|
use_cases: string[];
|
|
estimated_setup_minutes: number;
|
|
required_services: string[];
|
|
key_features: string[];
|
|
target_audience: string[];
|
|
};
|
|
}
|
|
export type TemplateField = 'id' | 'name' | 'description' | 'author' | 'nodes' | 'views' | 'created' | 'url' | 'metadata';
|
|
export type PartialTemplateInfo = Partial<TemplateInfo>;
|
|
export declare class TemplateService {
|
|
private repository;
|
|
constructor(db: DatabaseAdapter);
|
|
listNodeTemplates(nodeTypes: string[], limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
|
|
getTemplate(templateId: number, mode?: 'nodes_only' | 'structure' | 'full'): Promise<any>;
|
|
searchTemplates(query: string, limit?: number, offset?: number, fields?: string[]): Promise<PaginatedResponse<PartialTemplateInfo>>;
|
|
getTemplatesForTask(task: string, limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
|
|
listTemplates(limit?: number, offset?: number, sortBy?: 'views' | 'created_at' | 'name', includeMetadata?: boolean): Promise<PaginatedResponse<TemplateMinimal>>;
|
|
listAvailableTasks(): string[];
|
|
searchTemplatesByMetadata(filters: {
|
|
category?: string;
|
|
complexity?: 'simple' | 'medium' | 'complex';
|
|
maxSetupMinutes?: number;
|
|
minSetupMinutes?: number;
|
|
requiredService?: string;
|
|
targetAudience?: string;
|
|
}, limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
|
|
getAvailableCategories(): Promise<string[]>;
|
|
getAvailableTargetAudiences(): Promise<string[]>;
|
|
getTemplatesByCategory(category: string, limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
|
|
getTemplatesByComplexity(complexity: 'simple' | 'medium' | 'complex', limit?: number, offset?: number): Promise<PaginatedResponse<TemplateInfo>>;
|
|
getTemplateStats(): Promise<Record<string, any>>;
|
|
fetchAndUpdateTemplates(progressCallback?: (message: string, current: number, total: number) => void, mode?: 'rebuild' | 'update'): Promise<void>;
|
|
private formatTemplateInfo;
|
|
private formatTemplateWithFields;
|
|
}
|
|
//# sourceMappingURL=template-service.d.ts.map
|