@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
74 lines • 2.81 kB
TypeScript
import { SiteTemplate, TemplateLibrary, TemplateCategory } from "@/types/templates";
import { Prisma } from "@prisma/client";
export declare const templates: SiteTemplate[];
export declare const templateCategories: {
id: TemplateCategory;
name: string;
description: string;
icon: string;
}[];
export declare const templateLibrary: TemplateLibrary;
export declare class TemplateManager {
private templates;
constructor(templates: SiteTemplate[]);
getById(id: string): SiteTemplate | undefined;
getBySlug(slug: string): SiteTemplate | undefined;
getByCategory(category: TemplateCategory): SiteTemplate[];
getFreeTemplates(): SiteTemplate[];
getPremiumTemplates(): SiteTemplate[];
getActiveTemplates(): SiteTemplate[];
getPublicTemplates(): SiteTemplate[];
search(query: string): SiteTemplate[];
filter(options: {
category?: TemplateCategory;
pricing?: "FREE" | "PREMIUM" | "ENTERPRISE";
features?: string[];
tags?: string[];
search?: string;
}): SiteTemplate[];
sort(templates: SiteTemplate[], sortBy: "name" | "popularity" | "rating" | "date", order?: "asc" | "desc"): SiteTemplate[];
getRecommendations(currentTemplate?: SiteTemplate, limit?: number): SiteTemplate[];
getStats(): {
total: number;
active: number;
free: number;
premium: number;
categories: Record<TemplateCategory, number>;
};
}
export declare const templateManager: TemplateManager;
export declare const getTemplateById: (id: string) => SiteTemplate;
export declare const getTemplateBySlug: (slug: string) => SiteTemplate;
export declare const getTemplatesByCategory: (category: TemplateCategory) => SiteTemplate[];
export declare const searchTemplates: (query: string) => SiteTemplate[];
export declare const filterTemplates: (options: Parameters<typeof templateManager.filter>[0]) => SiteTemplate[];
export declare const getTemplateStats: () => {
total: number;
active: number;
free: number;
premium: number;
categories: Record<TemplateCategory, number>;
};
export declare const createSiteFromTemplate: (templateId: string, siteData: {
name: string;
slug: string;
domain?: string;
}) => {
name: string;
slug: string;
domain: string;
templateId: string;
templateData: Prisma.InputJsonValue;
settings: Prisma.InputJsonValue;
sections: {
type: import("@/types/templates").SectionType;
name: string;
content: Prisma.InputJsonValue;
styles: Prisma.InputJsonValue;
order: number;
isVisible: boolean;
isPublished: boolean;
}[];
};
export declare const cloneTemplate: (templateId: string, newData: Partial<SiteTemplate>) => SiteTemplate;
//# sourceMappingURL=index.d.ts.map