archicore 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +530 -0
  2. package/dist/analyzers/dead-code.d.ts +95 -0
  3. package/dist/analyzers/dead-code.js +327 -0
  4. package/dist/analyzers/duplication.d.ts +90 -0
  5. package/dist/analyzers/duplication.js +344 -0
  6. package/dist/analyzers/security.d.ts +79 -0
  7. package/dist/analyzers/security.js +484 -0
  8. package/dist/architecture/index.d.ts +35 -0
  9. package/dist/architecture/index.js +249 -0
  10. package/dist/cli/commands/analyzers.d.ts +6 -0
  11. package/dist/cli/commands/analyzers.js +431 -0
  12. package/dist/cli/commands/export.d.ts +6 -0
  13. package/dist/cli/commands/export.js +78 -0
  14. package/dist/cli/commands/index.d.ts +8 -0
  15. package/dist/cli/commands/index.js +8 -0
  16. package/dist/cli/commands/init.d.ts +26 -0
  17. package/dist/cli/commands/init.js +140 -0
  18. package/dist/cli/commands/interactive.d.ts +7 -0
  19. package/dist/cli/commands/interactive.js +522 -0
  20. package/dist/cli/commands/projects.d.ts +6 -0
  21. package/dist/cli/commands/projects.js +249 -0
  22. package/dist/cli/index.d.ts +7 -0
  23. package/dist/cli/index.js +7 -0
  24. package/dist/cli/ui/box.d.ts +17 -0
  25. package/dist/cli/ui/box.js +62 -0
  26. package/dist/cli/ui/colors.d.ts +49 -0
  27. package/dist/cli/ui/colors.js +86 -0
  28. package/dist/cli/ui/index.d.ts +9 -0
  29. package/dist/cli/ui/index.js +9 -0
  30. package/dist/cli/ui/prompt.d.ts +34 -0
  31. package/dist/cli/ui/prompt.js +122 -0
  32. package/dist/cli/ui/spinner.d.ts +29 -0
  33. package/dist/cli/ui/spinner.js +80 -0
  34. package/dist/cli/ui/table.d.ts +33 -0
  35. package/dist/cli/ui/table.js +84 -0
  36. package/dist/cli/utils/config.d.ts +23 -0
  37. package/dist/cli/utils/config.js +73 -0
  38. package/dist/cli/utils/index.d.ts +6 -0
  39. package/dist/cli/utils/index.js +6 -0
  40. package/dist/cli/utils/session.d.ts +27 -0
  41. package/dist/cli/utils/session.js +117 -0
  42. package/dist/cli.d.ts +8 -0
  43. package/dist/cli.js +295 -0
  44. package/dist/code-index/ast-parser.d.ts +16 -0
  45. package/dist/code-index/ast-parser.js +330 -0
  46. package/dist/code-index/dependency-graph.d.ts +16 -0
  47. package/dist/code-index/dependency-graph.js +161 -0
  48. package/dist/code-index/index.d.ts +44 -0
  49. package/dist/code-index/index.js +124 -0
  50. package/dist/code-index/symbol-extractor.d.ts +13 -0
  51. package/dist/code-index/symbol-extractor.js +150 -0
  52. package/dist/export/index.d.ts +92 -0
  53. package/dist/export/index.js +676 -0
  54. package/dist/github/github-service.d.ts +146 -0
  55. package/dist/github/github-service.js +609 -0
  56. package/dist/impact-engine/index.d.ts +25 -0
  57. package/dist/impact-engine/index.js +284 -0
  58. package/dist/index.d.ts +60 -0
  59. package/dist/index.js +149 -0
  60. package/dist/metrics/index.d.ts +136 -0
  61. package/dist/metrics/index.js +525 -0
  62. package/dist/orchestrator/deepseek-optimizer.d.ts +67 -0
  63. package/dist/orchestrator/deepseek-optimizer.js +320 -0
  64. package/dist/orchestrator/index.d.ts +34 -0
  65. package/dist/orchestrator/index.js +305 -0
  66. package/dist/pr-guardian/index.d.ts +143 -0
  67. package/dist/pr-guardian/index.js +553 -0
  68. package/dist/refactoring/index.d.ts +108 -0
  69. package/dist/refactoring/index.js +580 -0
  70. package/dist/rules-engine/index.d.ts +129 -0
  71. package/dist/rules-engine/index.js +482 -0
  72. package/dist/semantic-memory/embedding-service.d.ts +24 -0
  73. package/dist/semantic-memory/embedding-service.js +120 -0
  74. package/dist/semantic-memory/index.d.ts +45 -0
  75. package/dist/semantic-memory/index.js +206 -0
  76. package/dist/semantic-memory/vector-store.d.ts +27 -0
  77. package/dist/semantic-memory/vector-store.js +166 -0
  78. package/dist/server/index.d.ts +28 -0
  79. package/dist/server/index.js +141 -0
  80. package/dist/server/middleware/api-auth.d.ts +43 -0
  81. package/dist/server/middleware/api-auth.js +256 -0
  82. package/dist/server/routes/admin.d.ts +5 -0
  83. package/dist/server/routes/admin.js +123 -0
  84. package/dist/server/routes/api.d.ts +7 -0
  85. package/dist/server/routes/api.js +362 -0
  86. package/dist/server/routes/auth.d.ts +16 -0
  87. package/dist/server/routes/auth.js +191 -0
  88. package/dist/server/routes/developer.d.ts +8 -0
  89. package/dist/server/routes/developer.js +439 -0
  90. package/dist/server/routes/github.d.ts +7 -0
  91. package/dist/server/routes/github.js +495 -0
  92. package/dist/server/routes/upload.d.ts +7 -0
  93. package/dist/server/routes/upload.js +196 -0
  94. package/dist/server/services/api-key-service.d.ts +81 -0
  95. package/dist/server/services/api-key-service.js +281 -0
  96. package/dist/server/services/auth-service.d.ts +40 -0
  97. package/dist/server/services/auth-service.js +315 -0
  98. package/dist/server/services/project-service.d.ts +123 -0
  99. package/dist/server/services/project-service.js +533 -0
  100. package/dist/server/services/token-service.d.ts +107 -0
  101. package/dist/server/services/token-service.js +416 -0
  102. package/dist/server/services/upload-service.d.ts +93 -0
  103. package/dist/server/services/upload-service.js +464 -0
  104. package/dist/types/api.d.ts +188 -0
  105. package/dist/types/api.js +86 -0
  106. package/dist/types/github.d.ts +335 -0
  107. package/dist/types/github.js +5 -0
  108. package/dist/types/index.d.ts +265 -0
  109. package/dist/types/index.js +32 -0
  110. package/dist/types/user.d.ts +69 -0
  111. package/dist/types/user.js +42 -0
  112. package/dist/utils/file-utils.d.ts +20 -0
  113. package/dist/utils/file-utils.js +163 -0
  114. package/dist/utils/logger.d.ts +17 -0
  115. package/dist/utils/logger.js +41 -0
  116. package/dist/watcher/index.d.ts +125 -0
  117. package/dist/watcher/index.js +397 -0
  118. package/package.json +71 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Основные типы системы ИИ-архитектор
3
+ */
4
+ export var SymbolKind;
5
+ (function (SymbolKind) {
6
+ SymbolKind["Function"] = "function";
7
+ SymbolKind["Class"] = "class";
8
+ SymbolKind["Interface"] = "interface";
9
+ SymbolKind["Variable"] = "variable";
10
+ SymbolKind["Constant"] = "constant";
11
+ SymbolKind["Type"] = "type";
12
+ SymbolKind["Module"] = "module";
13
+ SymbolKind["Namespace"] = "namespace";
14
+ })(SymbolKind || (SymbolKind = {}));
15
+ export var EdgeType;
16
+ (function (EdgeType) {
17
+ EdgeType["Import"] = "import";
18
+ EdgeType["Call"] = "call";
19
+ EdgeType["Inheritance"] = "inheritance";
20
+ EdgeType["Composition"] = "composition";
21
+ EdgeType["DataFlow"] = "data_flow";
22
+ })(EdgeType || (EdgeType = {}));
23
+ export var RefactoringType;
24
+ (function (RefactoringType) {
25
+ RefactoringType["ExtractFunction"] = "extract_function";
26
+ RefactoringType["RenameSymbol"] = "rename_symbol";
27
+ RefactoringType["MoveFile"] = "move_file";
28
+ RefactoringType["InlineVariable"] = "inline_variable";
29
+ RefactoringType["ExtractInterface"] = "extract_interface";
30
+ RefactoringType["OptimizeImports"] = "optimize_imports";
31
+ })(RefactoringType || (RefactoringType = {}));
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,69 @@
1
+ /**
2
+ * User and Subscription Types for ArchiCore
3
+ */
4
+ export type SubscriptionTier = 'free' | 'mid' | 'pro' | 'admin';
5
+ export interface TierLimits {
6
+ requestsPerDay: number;
7
+ fullAnalysisPerDay: number;
8
+ projectsPerDay: number;
9
+ maxFileSizeMB: number;
10
+ retentionDays: number;
11
+ price: number;
12
+ priceYearly: number;
13
+ }
14
+ export declare const TIER_LIMITS: Record<SubscriptionTier, TierLimits>;
15
+ export interface User {
16
+ id: string;
17
+ email: string;
18
+ username: string;
19
+ passwordHash?: string;
20
+ avatar?: string;
21
+ tier: SubscriptionTier;
22
+ provider: 'email' | 'github' | 'google';
23
+ providerId?: string;
24
+ createdAt: Date;
25
+ lastLoginAt: Date;
26
+ usage: UserUsage;
27
+ subscription?: Subscription;
28
+ }
29
+ export interface UserUsage {
30
+ requestsToday: number;
31
+ fullAnalysisToday: number;
32
+ projectsToday: number;
33
+ lastResetDate: string;
34
+ }
35
+ export interface Subscription {
36
+ id: string;
37
+ tier: SubscriptionTier;
38
+ status: 'active' | 'cancelled' | 'expired' | 'trial';
39
+ startDate: Date;
40
+ endDate: Date;
41
+ autoRenew: boolean;
42
+ paymentMethod?: string;
43
+ }
44
+ export interface AuthSession {
45
+ token: string;
46
+ userId: string;
47
+ expiresAt: Date;
48
+ }
49
+ export interface LoginRequest {
50
+ email: string;
51
+ password: string;
52
+ }
53
+ export interface RegisterRequest {
54
+ email: string;
55
+ username: string;
56
+ password: string;
57
+ }
58
+ export interface OAuthRequest {
59
+ provider: 'github' | 'google';
60
+ code: string;
61
+ redirectUri: string;
62
+ }
63
+ export interface AuthResponse {
64
+ success: boolean;
65
+ token?: string;
66
+ user?: Omit<User, 'passwordHash'>;
67
+ error?: string;
68
+ }
69
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1,42 @@
1
+ /**
2
+ * User and Subscription Types for ArchiCore
3
+ */
4
+ export const TIER_LIMITS = {
5
+ free: {
6
+ requestsPerDay: 10,
7
+ fullAnalysisPerDay: 1,
8
+ projectsPerDay: 3,
9
+ maxFileSizeMB: 10,
10
+ retentionDays: 7,
11
+ price: 0,
12
+ priceYearly: 0
13
+ },
14
+ mid: {
15
+ requestsPerDay: 50,
16
+ fullAnalysisPerDay: 5,
17
+ projectsPerDay: 10,
18
+ maxFileSizeMB: 30,
19
+ retentionDays: 14,
20
+ price: 39,
21
+ priceYearly: 390 // ~2 months free
22
+ },
23
+ pro: {
24
+ requestsPerDay: 150,
25
+ fullAnalysisPerDay: 15,
26
+ projectsPerDay: 20,
27
+ maxFileSizeMB: 60,
28
+ retentionDays: 30,
29
+ price: 99,
30
+ priceYearly: 990 // ~2 months free
31
+ },
32
+ admin: {
33
+ requestsPerDay: Infinity,
34
+ fullAnalysisPerDay: Infinity,
35
+ projectsPerDay: Infinity,
36
+ maxFileSizeMB: 500,
37
+ retentionDays: 365,
38
+ price: 0,
39
+ priceYearly: 0
40
+ }
41
+ };
42
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1,20 @@
1
+ export declare class FileUtils {
2
+ static readFileContent(filePath: string): Promise<string>;
3
+ static getFileSize(filePath: string): Promise<number>;
4
+ static getAllFiles(rootDir: string, patterns?: string[]): Promise<string[]>;
5
+ static getLanguageFromExtension(filePath: string): string;
6
+ static getProjectStructure(rootDir: string): Promise<ProjectStructure>;
7
+ }
8
+ export interface ProjectStructure {
9
+ rootDir: string;
10
+ files: FileInfo[];
11
+ directories: Set<string>;
12
+ }
13
+ export interface FileInfo {
14
+ path: string;
15
+ relativePath: string;
16
+ language: string;
17
+ size: number;
18
+ lastModified: Date;
19
+ }
20
+ //# sourceMappingURL=file-utils.d.ts.map
@@ -0,0 +1,163 @@
1
+ import { readFile, stat } from 'fs/promises';
2
+ import { join, relative, extname } from 'path';
3
+ import { glob } from 'glob';
4
+ const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB max file size for parsing
5
+ export class FileUtils {
6
+ static async readFileContent(filePath) {
7
+ return await readFile(filePath, 'utf-8');
8
+ }
9
+ static async getFileSize(filePath) {
10
+ const stats = await stat(filePath);
11
+ return stats.size;
12
+ }
13
+ static async getAllFiles(rootDir, patterns = [
14
+ '**/*.ts', '**/*.js', '**/*.tsx', '**/*.jsx', // JS/TS
15
+ '**/*.vue', // Vue
16
+ '**/*.py', // Python
17
+ '**/*.go', // Go
18
+ '**/*.rs', // Rust
19
+ '**/*.java', // Java
20
+ '**/*.php', // PHP
21
+ '**/*.rb', // Ruby
22
+ '**/*.cs', // C#
23
+ '**/*.cpp', '**/*.c', '**/*.h', '**/*.hpp' // C/C++
24
+ ]) {
25
+ const files = [];
26
+ for (const pattern of patterns) {
27
+ const matches = await glob(pattern, {
28
+ cwd: rootDir,
29
+ nodir: true, // Exclude directories that match file patterns (e.g., "404.php/")
30
+ dot: true, // Include files in hidden directories (e.g., ".default/")
31
+ ignore: [
32
+ // Package managers (always third-party, never user code)
33
+ 'node_modules/**',
34
+ '**/node_modules/**',
35
+ 'bower_components/**',
36
+ '**/bower_components/**',
37
+ 'jspm_packages/**',
38
+ // Build/Generated output
39
+ 'dist/**',
40
+ '**/dist/**',
41
+ '.next/**',
42
+ '.nuxt/**',
43
+ '.output/**',
44
+ // Version control
45
+ '.git/**',
46
+ '.svn/**',
47
+ '.hg/**',
48
+ // IDE/Editor
49
+ '.idea/**',
50
+ '.vscode/**',
51
+ // Test coverage (generated reports)
52
+ 'coverage/**',
53
+ '.nyc_output/**',
54
+ 'htmlcov/**',
55
+ // Python virtual environments
56
+ 'venv/**',
57
+ '.venv/**',
58
+ '**/site-packages/**',
59
+ '**/__pycache__/**',
60
+ '**/*.pyc',
61
+ '*.egg-info/**',
62
+ '.eggs/**',
63
+ '.tox/**',
64
+ // Minified/bundled files (generated, not source)
65
+ '**/*.min.js',
66
+ '**/*.min.css',
67
+ '**/*.bundle.js',
68
+ '**/*.chunk.js',
69
+ '**/*-min.js',
70
+ '**/*.packed.js',
71
+ // Rich text editors (always third-party)
72
+ '**/tinymce/**',
73
+ '**/ckeditor/**',
74
+ '**/ckeditor5/**',
75
+ '**/codemirror/**',
76
+ '**/ace-builds/**',
77
+ '**/monaco-editor/**',
78
+ '**/quill/**',
79
+ '**/froala-editor/**',
80
+ // Lock files (generated, not code)
81
+ 'package-lock.json',
82
+ 'yarn.lock',
83
+ 'pnpm-lock.yaml',
84
+ 'composer.lock',
85
+ 'Gemfile.lock',
86
+ 'poetry.lock',
87
+ 'Pipfile.lock',
88
+ 'Cargo.lock',
89
+ // Cache directories
90
+ '.cache/**',
91
+ '**/.cache/**',
92
+ '.parcel-cache/**',
93
+ '.turbo/**'
94
+ ],
95
+ absolute: true
96
+ });
97
+ files.push(...matches);
98
+ }
99
+ // Filter out large files and directories
100
+ const filteredFiles = [];
101
+ for (const file of [...new Set(files)]) {
102
+ try {
103
+ const stats = await stat(file);
104
+ // Skip directories (e.g., folders named "404.php")
105
+ if (!stats.isFile()) {
106
+ continue;
107
+ }
108
+ if (stats.size <= MAX_FILE_SIZE) {
109
+ filteredFiles.push(file);
110
+ }
111
+ }
112
+ catch {
113
+ // Skip files we can't stat
114
+ }
115
+ }
116
+ return filteredFiles;
117
+ }
118
+ static getLanguageFromExtension(filePath) {
119
+ const ext = extname(filePath);
120
+ const map = {
121
+ '.ts': 'typescript',
122
+ '.tsx': 'typescript',
123
+ '.js': 'javascript',
124
+ '.jsx': 'javascript',
125
+ '.vue': 'vue',
126
+ '.py': 'python',
127
+ '.go': 'go',
128
+ '.rs': 'rust',
129
+ '.java': 'java',
130
+ '.php': 'php',
131
+ '.rb': 'ruby',
132
+ '.cs': 'csharp',
133
+ '.cpp': 'cpp',
134
+ '.c': 'c',
135
+ '.h': 'c',
136
+ '.hpp': 'cpp'
137
+ };
138
+ return map[ext] || 'unknown';
139
+ }
140
+ static async getProjectStructure(rootDir) {
141
+ const files = await this.getAllFiles(rootDir);
142
+ const structure = {
143
+ rootDir,
144
+ files: [],
145
+ directories: new Set()
146
+ };
147
+ for (const file of files) {
148
+ const rel = relative(rootDir, file);
149
+ const stats = await stat(file);
150
+ structure.files.push({
151
+ path: file,
152
+ relativePath: rel,
153
+ language: this.getLanguageFromExtension(file),
154
+ size: stats.size,
155
+ lastModified: stats.mtime
156
+ });
157
+ const dirPath = join(rootDir, rel.split('/').slice(0, -1).join('/'));
158
+ structure.directories.add(dirPath);
159
+ }
160
+ return structure;
161
+ }
162
+ }
163
+ //# sourceMappingURL=file-utils.js.map
@@ -0,0 +1,17 @@
1
+ export declare enum LogLevel {
2
+ DEBUG = 0,
3
+ INFO = 1,
4
+ WARN = 2,
5
+ ERROR = 3
6
+ }
7
+ export declare class Logger {
8
+ private static level;
9
+ static setLevel(level: LogLevel): void;
10
+ static debug(message: string, data?: unknown): void;
11
+ static info(message: string, data?: unknown): void;
12
+ static warn(message: string, data?: unknown): void;
13
+ static error(message: string, error?: unknown): void;
14
+ static success(message: string): void;
15
+ static progress(message: string): void;
16
+ }
17
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1,41 @@
1
+ import chalk from 'chalk';
2
+ export var LogLevel;
3
+ (function (LogLevel) {
4
+ LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
5
+ LogLevel[LogLevel["INFO"] = 1] = "INFO";
6
+ LogLevel[LogLevel["WARN"] = 2] = "WARN";
7
+ LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
8
+ })(LogLevel || (LogLevel = {}));
9
+ export class Logger {
10
+ static level = LogLevel.INFO;
11
+ static setLevel(level) {
12
+ this.level = level;
13
+ }
14
+ static debug(message, data) {
15
+ if (this.level <= LogLevel.DEBUG) {
16
+ console.log(chalk.gray(`[DEBUG] ${message}`), data || '');
17
+ }
18
+ }
19
+ static info(message, data) {
20
+ if (this.level <= LogLevel.INFO) {
21
+ console.log(chalk.blue(`[INFO] ${message}`), data || '');
22
+ }
23
+ }
24
+ static warn(message, data) {
25
+ if (this.level <= LogLevel.WARN) {
26
+ console.warn(chalk.yellow(`[WARN] ${message}`), data || '');
27
+ }
28
+ }
29
+ static error(message, error) {
30
+ if (this.level <= LogLevel.ERROR) {
31
+ console.error(chalk.red(`[ERROR] ${message}`), error || '');
32
+ }
33
+ }
34
+ static success(message) {
35
+ console.log(chalk.green(`✓ ${message}`));
36
+ }
37
+ static progress(message) {
38
+ console.log(chalk.cyan(`⟳ ${message}`));
39
+ }
40
+ }
41
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Real-time File Watcher
3
+ *
4
+ * Мониторинг изменений файлов:
5
+ * - Автоматическая переиндексация при изменениях
6
+ * - Debounce для избежания лишних обновлений
7
+ * - Поддержка .gitignore паттернов
8
+ * - События для уведомления о изменениях
9
+ */
10
+ import { EventEmitter } from 'events';
11
+ export interface WatcherConfig {
12
+ debounceMs: number;
13
+ ignorePatterns: string[];
14
+ watchExtensions: string[];
15
+ recursive: boolean;
16
+ }
17
+ export interface FileChangeEvent {
18
+ type: 'add' | 'change' | 'delete';
19
+ path: string;
20
+ timestamp: Date;
21
+ }
22
+ export interface WatcherStats {
23
+ watchedFiles: number;
24
+ watchedDirectories: number;
25
+ totalChanges: number;
26
+ lastChangeTime?: Date;
27
+ isWatching: boolean;
28
+ }
29
+ export declare class FileWatcher extends EventEmitter {
30
+ private config;
31
+ private watchers;
32
+ private pendingChanges;
33
+ private debounceTimers;
34
+ private stats;
35
+ private rootPath;
36
+ constructor(config?: Partial<WatcherConfig>);
37
+ /**
38
+ * Начать мониторинг директории
39
+ */
40
+ watch(dirPath: string): Promise<void>;
41
+ /**
42
+ * Остановить мониторинг
43
+ */
44
+ stop(): void;
45
+ /**
46
+ * Получить статистику
47
+ */
48
+ getStats(): WatcherStats;
49
+ /**
50
+ * Загрузка паттернов из .gitignore
51
+ */
52
+ private loadGitignore;
53
+ /**
54
+ * Установка watchers рекурсивно
55
+ */
56
+ private setupWatchers;
57
+ /**
58
+ * Создание watcher для директории
59
+ */
60
+ private createDirectoryWatcher;
61
+ /**
62
+ * Обработка события файла
63
+ */
64
+ private handleFileEvent;
65
+ /**
66
+ * Debounce обработки события
67
+ */
68
+ private debounceEvent;
69
+ /**
70
+ * Обработка отложенного изменения
71
+ */
72
+ private processPendingChange;
73
+ /**
74
+ * Проверка, нужно ли игнорировать путь
75
+ */
76
+ private shouldIgnore;
77
+ /**
78
+ * Проверка, нужно ли отслеживать файл
79
+ */
80
+ private shouldWatchFile;
81
+ /**
82
+ * Добавить паттерн для игнорирования
83
+ */
84
+ addIgnorePattern(pattern: string): void;
85
+ /**
86
+ * Удалить паттерн игнорирования
87
+ */
88
+ removeIgnorePattern(pattern: string): void;
89
+ /**
90
+ * Получить все отслеживаемые файлы
91
+ */
92
+ getWatchedFiles(): string[];
93
+ }
94
+ /**
95
+ * Менеджер автоматической переиндексации
96
+ */
97
+ export declare class AutoReindexManager {
98
+ private watcher;
99
+ private reindexCallback?;
100
+ private batchTimeout?;
101
+ private pendingReindex;
102
+ private batchDelayMs;
103
+ constructor(batchDelayMs?: number);
104
+ /**
105
+ * Запуск мониторинга с callback для переиндексации
106
+ */
107
+ start(dirPath: string, reindexCallback: () => Promise<void>): Promise<void>;
108
+ /**
109
+ * Остановка мониторинга
110
+ */
111
+ stop(): void;
112
+ /**
113
+ * Планирование переиндексации (с батчингом)
114
+ */
115
+ private scheduleReindex;
116
+ /**
117
+ * Получить статистику watcher'а
118
+ */
119
+ getStats(): WatcherStats;
120
+ /**
121
+ * Получить экземпляр watcher'а
122
+ */
123
+ getWatcher(): FileWatcher;
124
+ }
125
+ //# sourceMappingURL=index.d.ts.map