/** * useTemplateManager Hook * 提供完整的模板管理功能,包括加载、创建、更新、删除、搜索等 */ import type { RegexTemplate } from '../templates/types'; import { TemplateCategory } from '../templates/types'; import { getTemplateStats } from '../templates'; export interface UseTemplateManagerOptions { /** * 是否自动加载模板 * @default true */ autoLoad?: boolean; /** * 初始搜索关键词 */ initialKeyword?: string; /** * 初始分类过滤 */ initialCategory?: TemplateCategory | 'all'; /** * 初始排序方式 */ initialSortBy?: 'default' | 'popular' | 'recent'; } export interface UseTemplateManagerReturn { templates: RegexTemplate[]; filteredTemplates: RegexTemplate[]; selectedTemplate: RegexTemplate | null; searchKeyword: string; selectedCategory: TemplateCategory | 'all'; sortBy: 'default' | 'popular' | 'recent'; stats: ReturnType; isStorageAvailable: boolean; loading: boolean; error: string | null; selectTemplate: (id: string) => void; clearSelection: () => void; useTemplate: (id: string) => RegexTemplate | undefined; setSearchKeyword: (keyword: string) => void; setSelectedCategory: (category: TemplateCategory | 'all') => void; setSortBy: (sortBy: 'default' | 'popular' | 'recent') => void; resetFilters: () => void; createTemplate: (template: Omit) => Promise; updateTemplate: (id: string, updates: Partial>) => Promise; deleteTemplate: (id: string) => Promise; duplicateTemplate: (id: string, newName?: string) => Promise; deleteMultipleTemplates: (ids: string[]) => Promise; clearAllCustomTemplates: () => Promise; exportTemplates: () => string; importTemplates: (jsonString: string, merge?: boolean) => Promise; validateTemplate: (template: Partial) => { valid: boolean; errors: string[]; }; getMostUsedTemplates: (limit?: number) => RegexTemplate[]; getRecentlyUsedTemplates: (limit?: number) => RegexTemplate[]; refresh: () => void; } /** * useTemplateManager Hook */ export declare const useTemplateManager: (options?: UseTemplateManagerOptions) => UseTemplateManagerReturn;