@mweinbach/apple-docs-mcp 1.0.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 (267) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +560 -0
  3. package/dist/constants/browser-headers.d.ts +48 -0
  4. package/dist/constants/browser-headers.d.ts.map +1 -0
  5. package/dist/constants/browser-headers.js +166 -0
  6. package/dist/constants/browser-headers.js.map +1 -0
  7. package/dist/index.d.ts +83 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +215 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/schemas/analyze-api.schema.d.ts +42 -0
  12. package/dist/schemas/analyze-api.schema.d.ts.map +1 -0
  13. package/dist/schemas/analyze-api.schema.js +23 -0
  14. package/dist/schemas/analyze-api.schema.js.map +1 -0
  15. package/dist/schemas/apple-docs.schema.d.ts +18 -0
  16. package/dist/schemas/apple-docs.schema.d.ts.map +1 -0
  17. package/dist/schemas/apple-docs.schema.js +10 -0
  18. package/dist/schemas/apple-docs.schema.js.map +1 -0
  19. package/dist/schemas/doc-content.schema.d.ts +24 -0
  20. package/dist/schemas/doc-content.schema.d.ts.map +1 -0
  21. package/dist/schemas/doc-content.schema.js +10 -0
  22. package/dist/schemas/doc-content.schema.js.map +1 -0
  23. package/dist/schemas/documentation-updates.schema.d.ts +27 -0
  24. package/dist/schemas/documentation-updates.schema.d.ts.map +1 -0
  25. package/dist/schemas/documentation-updates.schema.js +12 -0
  26. package/dist/schemas/documentation-updates.schema.js.map +1 -0
  27. package/dist/schemas/framework-symbols.schema.d.ts +24 -0
  28. package/dist/schemas/framework-symbols.schema.d.ts.map +1 -0
  29. package/dist/schemas/framework-symbols.schema.js +11 -0
  30. package/dist/schemas/framework-symbols.schema.js.map +1 -0
  31. package/dist/schemas/index.d.ts +15 -0
  32. package/dist/schemas/index.d.ts.map +1 -0
  33. package/dist/schemas/index.js +15 -0
  34. package/dist/schemas/index.js.map +1 -0
  35. package/dist/schemas/platform-compatibility.schema.d.ts +18 -0
  36. package/dist/schemas/platform-compatibility.schema.d.ts.map +1 -0
  37. package/dist/schemas/platform-compatibility.schema.js +8 -0
  38. package/dist/schemas/platform-compatibility.schema.js.map +1 -0
  39. package/dist/schemas/references.schema.d.ts +18 -0
  40. package/dist/schemas/references.schema.d.ts.map +1 -0
  41. package/dist/schemas/references.schema.js +9 -0
  42. package/dist/schemas/references.schema.js.map +1 -0
  43. package/dist/schemas/related-apis.schema.d.ts +21 -0
  44. package/dist/schemas/related-apis.schema.d.ts.map +1 -0
  45. package/dist/schemas/related-apis.schema.js +9 -0
  46. package/dist/schemas/related-apis.schema.js.map +1 -0
  47. package/dist/schemas/sample-code.schema.d.ts +21 -0
  48. package/dist/schemas/sample-code.schema.d.ts.map +1 -0
  49. package/dist/schemas/sample-code.schema.js +10 -0
  50. package/dist/schemas/sample-code.schema.js.map +1 -0
  51. package/dist/schemas/search.schema.d.ts +15 -0
  52. package/dist/schemas/search.schema.d.ts.map +1 -0
  53. package/dist/schemas/search.schema.js +8 -0
  54. package/dist/schemas/search.schema.js.map +1 -0
  55. package/dist/schemas/similar-apis.schema.d.ts +21 -0
  56. package/dist/schemas/similar-apis.schema.d.ts.map +1 -0
  57. package/dist/schemas/similar-apis.schema.js +9 -0
  58. package/dist/schemas/similar-apis.schema.js.map +1 -0
  59. package/dist/schemas/technologies.schema.d.ts +21 -0
  60. package/dist/schemas/technologies.schema.d.ts.map +1 -0
  61. package/dist/schemas/technologies.schema.js +10 -0
  62. package/dist/schemas/technologies.schema.js.map +1 -0
  63. package/dist/schemas/technology-overviews.schema.d.ts +24 -0
  64. package/dist/schemas/technology-overviews.schema.d.ts.map +1 -0
  65. package/dist/schemas/technology-overviews.schema.js +11 -0
  66. package/dist/schemas/technology-overviews.schema.js.map +1 -0
  67. package/dist/schemas/wwdc.schemas.d.ts +208 -0
  68. package/dist/schemas/wwdc.schemas.d.ts.map +1 -0
  69. package/dist/schemas/wwdc.schemas.js +97 -0
  70. package/dist/schemas/wwdc.schemas.js.map +1 -0
  71. package/dist/tools/definitions.d.ts +10 -0
  72. package/dist/tools/definitions.d.ts.map +1 -0
  73. package/dist/tools/definitions.js +690 -0
  74. package/dist/tools/definitions.js.map +1 -0
  75. package/dist/tools/doc-fetcher.d.ts +19 -0
  76. package/dist/tools/doc-fetcher.d.ts.map +1 -0
  77. package/dist/tools/doc-fetcher.js +487 -0
  78. package/dist/tools/doc-fetcher.js.map +1 -0
  79. package/dist/tools/doc-formatter.d.ts +69 -0
  80. package/dist/tools/doc-formatter.d.ts.map +1 -0
  81. package/dist/tools/doc-formatter.js +208 -0
  82. package/dist/tools/doc-formatter.js.map +1 -0
  83. package/dist/tools/find-similar-apis.d.ts +5 -0
  84. package/dist/tools/find-similar-apis.d.ts.map +1 -0
  85. package/dist/tools/find-similar-apis.js +275 -0
  86. package/dist/tools/find-similar-apis.js.map +1 -0
  87. package/dist/tools/get-documentation-updates.d.ts +5 -0
  88. package/dist/tools/get-documentation-updates.d.ts.map +1 -0
  89. package/dist/tools/get-documentation-updates.js +244 -0
  90. package/dist/tools/get-documentation-updates.js.map +1 -0
  91. package/dist/tools/get-platform-compatibility.d.ts +5 -0
  92. package/dist/tools/get-platform-compatibility.d.ts.map +1 -0
  93. package/dist/tools/get-platform-compatibility.js +205 -0
  94. package/dist/tools/get-platform-compatibility.js.map +1 -0
  95. package/dist/tools/get-related-apis.d.ts +5 -0
  96. package/dist/tools/get-related-apis.d.ts.map +1 -0
  97. package/dist/tools/get-related-apis.js +155 -0
  98. package/dist/tools/get-related-apis.js.map +1 -0
  99. package/dist/tools/get-sample-code.d.ts +5 -0
  100. package/dist/tools/get-sample-code.d.ts.map +1 -0
  101. package/dist/tools/get-sample-code.js +375 -0
  102. package/dist/tools/get-sample-code.js.map +1 -0
  103. package/dist/tools/get-technology-overviews.d.ts +5 -0
  104. package/dist/tools/get-technology-overviews.d.ts.map +1 -0
  105. package/dist/tools/get-technology-overviews.js +306 -0
  106. package/dist/tools/get-technology-overviews.js.map +1 -0
  107. package/dist/tools/handlers.d.ts +29 -0
  108. package/dist/tools/handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers.js +350 -0
  110. package/dist/tools/handlers.js.map +1 -0
  111. package/dist/tools/list-technologies.d.ts +5 -0
  112. package/dist/tools/list-technologies.d.ts.map +1 -0
  113. package/dist/tools/list-technologies.js +165 -0
  114. package/dist/tools/list-technologies.js.map +1 -0
  115. package/dist/tools/resolve-references-batch.d.ts +5 -0
  116. package/dist/tools/resolve-references-batch.d.ts.map +1 -0
  117. package/dist/tools/resolve-references-batch.js +199 -0
  118. package/dist/tools/resolve-references-batch.js.map +1 -0
  119. package/dist/tools/search-framework-symbols.d.ts +7 -0
  120. package/dist/tools/search-framework-symbols.d.ts.map +1 -0
  121. package/dist/tools/search-framework-symbols.js +235 -0
  122. package/dist/tools/search-framework-symbols.js.map +1 -0
  123. package/dist/tools/search-parser.d.ts +15 -0
  124. package/dist/tools/search-parser.d.ts.map +1 -0
  125. package/dist/tools/search-parser.js +188 -0
  126. package/dist/tools/search-parser.js.map +1 -0
  127. package/dist/tools/search-result-parser.d.ts +52 -0
  128. package/dist/tools/search-result-parser.d.ts.map +1 -0
  129. package/dist/tools/search-result-parser.js +137 -0
  130. package/dist/tools/search-result-parser.js.map +1 -0
  131. package/dist/tools/tools-guide.d.ts +124 -0
  132. package/dist/tools/tools-guide.d.ts.map +1 -0
  133. package/dist/tools/tools-guide.js +389 -0
  134. package/dist/tools/tools-guide.js.map +1 -0
  135. package/dist/tools/wwdc/content-extractor.d.ts +9 -0
  136. package/dist/tools/wwdc/content-extractor.d.ts.map +1 -0
  137. package/dist/tools/wwdc/content-extractor.js +520 -0
  138. package/dist/tools/wwdc/content-extractor.js.map +1 -0
  139. package/dist/tools/wwdc/topics-extractor.d.ts +32 -0
  140. package/dist/tools/wwdc/topics-extractor.d.ts.map +1 -0
  141. package/dist/tools/wwdc/topics-extractor.js +146 -0
  142. package/dist/tools/wwdc/topics-extractor.js.map +1 -0
  143. package/dist/tools/wwdc/video-list-extractor.d.ts +13 -0
  144. package/dist/tools/wwdc/video-list-extractor.d.ts.map +1 -0
  145. package/dist/tools/wwdc/video-list-extractor.js +238 -0
  146. package/dist/tools/wwdc/video-list-extractor.js.map +1 -0
  147. package/dist/tools/wwdc/wwdc-handlers.d.ts +32 -0
  148. package/dist/tools/wwdc/wwdc-handlers.d.ts.map +1 -0
  149. package/dist/tools/wwdc/wwdc-handlers.js +791 -0
  150. package/dist/tools/wwdc/wwdc-handlers.js.map +1 -0
  151. package/dist/types/apple-docs.d.ts +112 -0
  152. package/dist/types/apple-docs.d.ts.map +1 -0
  153. package/dist/types/apple-docs.js +5 -0
  154. package/dist/types/apple-docs.js.map +1 -0
  155. package/dist/types/cache.d.ts +28 -0
  156. package/dist/types/cache.d.ts.map +1 -0
  157. package/dist/types/cache.js +5 -0
  158. package/dist/types/cache.js.map +1 -0
  159. package/dist/types/content-sections.d.ts +37 -0
  160. package/dist/types/content-sections.d.ts.map +1 -0
  161. package/dist/types/content-sections.js +5 -0
  162. package/dist/types/content-sections.js.map +1 -0
  163. package/dist/types/error.d.ts +39 -0
  164. package/dist/types/error.d.ts.map +1 -0
  165. package/dist/types/error.js +21 -0
  166. package/dist/types/error.js.map +1 -0
  167. package/dist/types/headers.d.ts +95 -0
  168. package/dist/types/headers.d.ts.map +1 -0
  169. package/dist/types/headers.js +5 -0
  170. package/dist/types/headers.js.map +1 -0
  171. package/dist/types/http.d.ts +31 -0
  172. package/dist/types/http.d.ts.map +1 -0
  173. package/dist/types/http.js +5 -0
  174. package/dist/types/http.js.map +1 -0
  175. package/dist/types/index.d.ts +11 -0
  176. package/dist/types/index.d.ts.map +1 -0
  177. package/dist/types/index.js +12 -0
  178. package/dist/types/index.js.map +1 -0
  179. package/dist/types/search.d.ts +62 -0
  180. package/dist/types/search.d.ts.map +1 -0
  181. package/dist/types/search.js +5 -0
  182. package/dist/types/search.js.map +1 -0
  183. package/dist/types/sections.d.ts +64 -0
  184. package/dist/types/sections.d.ts.map +1 -0
  185. package/dist/types/sections.js +5 -0
  186. package/dist/types/sections.js.map +1 -0
  187. package/dist/types/tools/platform.d.ts +33 -0
  188. package/dist/types/tools/platform.d.ts.map +1 -0
  189. package/dist/types/tools/platform.js +5 -0
  190. package/dist/types/tools/platform.js.map +1 -0
  191. package/dist/types/tools/sample-code.d.ts +23 -0
  192. package/dist/types/tools/sample-code.d.ts.map +1 -0
  193. package/dist/types/tools/sample-code.js +5 -0
  194. package/dist/types/tools/sample-code.js.map +1 -0
  195. package/dist/types/tools/technology.d.ts +18 -0
  196. package/dist/types/tools/technology.d.ts.map +1 -0
  197. package/dist/types/tools/technology.js +5 -0
  198. package/dist/types/tools/technology.js.map +1 -0
  199. package/dist/types/tools/updates.d.ts +23 -0
  200. package/dist/types/tools/updates.d.ts.map +1 -0
  201. package/dist/types/tools/updates.js +5 -0
  202. package/dist/types/tools/updates.js.map +1 -0
  203. package/dist/types/wwdc.d.ts +200 -0
  204. package/dist/types/wwdc.d.ts.map +1 -0
  205. package/dist/types/wwdc.js +5 -0
  206. package/dist/types/wwdc.js.map +1 -0
  207. package/dist/utils/cache-warmer.d.ts +22 -0
  208. package/dist/utils/cache-warmer.d.ts.map +1 -0
  209. package/dist/utils/cache-warmer.js +115 -0
  210. package/dist/utils/cache-warmer.js.map +1 -0
  211. package/dist/utils/cache.d.ts +109 -0
  212. package/dist/utils/cache.d.ts.map +1 -0
  213. package/dist/utils/cache.js +302 -0
  214. package/dist/utils/cache.js.map +1 -0
  215. package/dist/utils/constants.d.ts +178 -0
  216. package/dist/utils/constants.d.ts.map +1 -0
  217. package/dist/utils/constants.js +266 -0
  218. package/dist/utils/constants.js.map +1 -0
  219. package/dist/utils/error-handler.d.ts +80 -0
  220. package/dist/utils/error-handler.d.ts.map +1 -0
  221. package/dist/utils/error-handler.js +437 -0
  222. package/dist/utils/error-handler.js.map +1 -0
  223. package/dist/utils/framework-mapper.d.ts +84 -0
  224. package/dist/utils/framework-mapper.d.ts.map +1 -0
  225. package/dist/utils/framework-mapper.js +534 -0
  226. package/dist/utils/framework-mapper.js.map +1 -0
  227. package/dist/utils/http-client.d.ts +130 -0
  228. package/dist/utils/http-client.d.ts.map +1 -0
  229. package/dist/utils/http-client.js +464 -0
  230. package/dist/utils/http-client.js.map +1 -0
  231. package/dist/utils/http-headers-generator.d.ts +151 -0
  232. package/dist/utils/http-headers-generator.d.ts.map +1 -0
  233. package/dist/utils/http-headers-generator.js +407 -0
  234. package/dist/utils/http-headers-generator.js.map +1 -0
  235. package/dist/utils/logger.d.ts +44 -0
  236. package/dist/utils/logger.d.ts.map +1 -0
  237. package/dist/utils/logger.js +73 -0
  238. package/dist/utils/logger.js.map +1 -0
  239. package/dist/utils/preloader.d.ts +20 -0
  240. package/dist/utils/preloader.d.ts.map +1 -0
  241. package/dist/utils/preloader.js +82 -0
  242. package/dist/utils/preloader.js.map +1 -0
  243. package/dist/utils/rate-limiter.d.ts +28 -0
  244. package/dist/utils/rate-limiter.d.ts.map +1 -0
  245. package/dist/utils/rate-limiter.js +48 -0
  246. package/dist/utils/rate-limiter.js.map +1 -0
  247. package/dist/utils/topic-mapper.d.ts +18 -0
  248. package/dist/utils/topic-mapper.d.ts.map +1 -0
  249. package/dist/utils/topic-mapper.js +182 -0
  250. package/dist/utils/topic-mapper.js.map +1 -0
  251. package/dist/utils/url-converter.d.ts +22 -0
  252. package/dist/utils/url-converter.d.ts.map +1 -0
  253. package/dist/utils/url-converter.js +70 -0
  254. package/dist/utils/url-converter.js.map +1 -0
  255. package/dist/utils/user-agent-pool.d.ts +241 -0
  256. package/dist/utils/user-agent-pool.d.ts.map +1 -0
  257. package/dist/utils/user-agent-pool.js +557 -0
  258. package/dist/utils/user-agent-pool.js.map +1 -0
  259. package/dist/utils/wwdc-data-source-path.d.ts +9 -0
  260. package/dist/utils/wwdc-data-source-path.d.ts.map +1 -0
  261. package/dist/utils/wwdc-data-source-path.js +22 -0
  262. package/dist/utils/wwdc-data-source-path.js.map +1 -0
  263. package/dist/utils/wwdc-data-source.d.ts +36 -0
  264. package/dist/utils/wwdc-data-source.d.ts.map +1 -0
  265. package/dist/utils/wwdc-data-source.js +133 -0
  266. package/dist/utils/wwdc-data-source.js.map +1 -0
  267. package/package.json +83 -0
@@ -0,0 +1,241 @@
1
+ /**
2
+ * User-Agent Pool Manager for rotating user agents to avoid detection
3
+ *
4
+ * Provides robust management of multiple User-Agent strings with:
5
+ * - Multiple rotation strategies (random, sequential, smart)
6
+ * - Automatic error handling and recovery
7
+ * - Performance statistics and monitoring
8
+ * - Thread-safe concurrent access
9
+ * - Browser type detection and header generation support
10
+ *
11
+ * @author Apple Docs MCP
12
+ * @version 1.0.0
13
+ */
14
+ import type { UserAgent as UserAgentType, BrowserType } from '../types/headers.js';
15
+ /**
16
+ * Configuration options for the User-Agent pool
17
+ */
18
+ export interface UserAgentPoolConfig {
19
+ /** Rotation strategy to use */
20
+ strategy?: RotationStrategy;
21
+ /** How long to disable failed User-Agents (in milliseconds) */
22
+ disableDuration?: number;
23
+ /** Maximum number of failures before disabling a User-Agent */
24
+ failureThreshold?: number;
25
+ /** Minimum success rate to keep a User-Agent enabled (0-1) */
26
+ minSuccessRate?: number;
27
+ }
28
+ /**
29
+ * Rotation strategies available
30
+ */
31
+ export type RotationStrategy = 'random' | 'sequential' | 'smart';
32
+ /**
33
+ * Statistics for a single User-Agent
34
+ */
35
+ export interface AgentStats {
36
+ value: string;
37
+ successCount: number;
38
+ failureCount: number;
39
+ successRate: number;
40
+ totalRequests: number;
41
+ isEnabled: boolean;
42
+ lastUsed?: Date;
43
+ consecutiveFailures: number;
44
+ }
45
+ /**
46
+ * Overall pool statistics
47
+ */
48
+ export interface PoolStats {
49
+ /** Total number of User-Agents in pool */
50
+ total: number;
51
+ /** Number of currently enabled User-Agents */
52
+ enabled: number;
53
+ /** Number of currently disabled User-Agents */
54
+ disabled: number;
55
+ /** Total requests made across all User-Agents */
56
+ totalRequests: number;
57
+ /** Overall success rate (0-100) */
58
+ successRate: number;
59
+ /** Current rotation strategy */
60
+ strategy: RotationStrategy;
61
+ /** Pool health score (0-100) */
62
+ healthScore: number;
63
+ }
64
+ /**
65
+ * User-Agent Pool Manager
66
+ *
67
+ * Manages a pool of User-Agent strings with rotation, error handling,
68
+ * and automatic recovery capabilities.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const pool = new UserAgentPool([
73
+ * 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
74
+ * 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36'
75
+ * ]);
76
+ *
77
+ * const userAgent = pool.getNext();
78
+ * // ... make request ...
79
+ * if (response.ok) {
80
+ * pool.markSuccess(userAgent);
81
+ * } else {
82
+ * pool.markFailure(userAgent, response.status);
83
+ * }
84
+ * ```
85
+ */
86
+ export declare class UserAgentPool {
87
+ private agents;
88
+ private currentIndex;
89
+ private config;
90
+ private mutex;
91
+ /**
92
+ * Create a new User-Agent pool
93
+ *
94
+ * @param agents - Array of User-Agent strings to manage
95
+ * @param config - Configuration options
96
+ * @throws {Error} When agents array is empty or contains invalid values
97
+ */
98
+ constructor(agents: string[], config?: UserAgentPoolConfig);
99
+ /**
100
+ * Get the next User-Agent string using the configured strategy
101
+ *
102
+ * This method is thread-safe and handles automatic recovery of disabled agents.
103
+ *
104
+ * @returns The next User-Agent string to use
105
+ * @throws {Error} When no User-Agents are available
106
+ */
107
+ getNext(): Promise<string>;
108
+ /**
109
+ * Mark a User-Agent as having failed a request
110
+ *
111
+ * @param userAgent - The User-Agent string that failed
112
+ * @param statusCode - HTTP status code of the failure (optional)
113
+ */
114
+ markFailure(userAgent: string, statusCode?: number): Promise<void>;
115
+ /**
116
+ * Mark a User-Agent as having succeeded a request
117
+ *
118
+ * @param userAgent - The User-Agent string that succeeded
119
+ */
120
+ markSuccess(userAgent: string): Promise<void>;
121
+ /**
122
+ * Add a new User-Agent to the pool
123
+ *
124
+ * @param userAgent - The User-Agent string to add
125
+ * @throws {Error} When User-Agent is invalid or already exists
126
+ */
127
+ addAgent(userAgent: string): Promise<void>;
128
+ /**
129
+ * Remove a User-Agent from the pool
130
+ *
131
+ * @param userAgent - The User-Agent string to remove
132
+ * @throws {Error} When trying to remove the last User-Agent
133
+ */
134
+ removeAgent(userAgent: string): Promise<void>;
135
+ /**
136
+ * Get statistics for all User-Agents in the pool
137
+ *
138
+ * @returns Array of statistics for each User-Agent
139
+ */
140
+ getAgentStats(): AgentStats[];
141
+ /**
142
+ * Get overall pool statistics
143
+ *
144
+ * @returns Pool-wide statistics
145
+ */
146
+ getStats(): PoolStats;
147
+ /**
148
+ * Reset all statistics while keeping the User-Agents
149
+ */
150
+ resetStats(): Promise<void>;
151
+ /**
152
+ * Get the current configuration
153
+ *
154
+ * @returns Current pool configuration
155
+ */
156
+ getConfig(): Readonly<Required<UserAgentPoolConfig>>;
157
+ /**
158
+ * Get the next User-Agent as a structured UserAgent object
159
+ *
160
+ * This method provides enhanced information about the User-Agent including
161
+ * browser type, version, OS details, and architecture information.
162
+ *
163
+ * @returns Promise resolving to a UserAgent object with parsed information
164
+ * @throws {Error} When no User-Agents are available
165
+ */
166
+ getNextUserAgent(): Promise<UserAgentType>;
167
+ /**
168
+ * Get a random User-Agent string filtered by browser type
169
+ *
170
+ * @param browserType - Desired browser type
171
+ * @returns Promise resolving to a User-Agent string of the specified type
172
+ * @throws {Error} When no User-Agents of the specified type are available
173
+ */
174
+ getByBrowserType(browserType: BrowserType): Promise<string>;
175
+ /**
176
+ * Get a random User-Agent object filtered by browser type
177
+ *
178
+ * @param browserType - Desired browser type
179
+ * @returns Promise resolving to a UserAgent object of the specified type
180
+ * @throws {Error} When no User-Agents of the specified type are available
181
+ */
182
+ getUserAgentByBrowserType(browserType: BrowserType): Promise<UserAgentType>;
183
+ /**
184
+ * Get statistics grouped by browser type
185
+ *
186
+ * @returns Statistics organized by browser type
187
+ */
188
+ getStatsByBrowserType(): Record<BrowserType, {
189
+ count: number;
190
+ enabled: number;
191
+ successRate: number;
192
+ }>;
193
+ /**
194
+ * Get all available browser types in the pool
195
+ *
196
+ * @returns Array of browser types present in the pool
197
+ */
198
+ getAvailableBrowserTypes(): BrowserType[];
199
+ private selectByStrategy;
200
+ private selectRandom;
201
+ private selectSequential;
202
+ private selectSmart;
203
+ private selectAndUseAgent;
204
+ private findAgent;
205
+ private shouldDisableAgent;
206
+ private getAgentSuccessRate;
207
+ private recoverDisabledAgents;
208
+ private selectFallbackAgent;
209
+ private calculateHealthScore;
210
+ private removeDuplicates;
211
+ private shuffleAgents;
212
+ }
213
+ /**
214
+ * Pre-defined User-Agent strings for common browsers
215
+ * Covers Chrome, Firefox, Safari, and Edge across different platforms
216
+ */
217
+ export declare const COMMON_USER_AGENTS: {
218
+ readonly CHROME_MAC_INTEL: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
219
+ readonly CHROME_MAC_APPLE: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
220
+ readonly CHROME_WINDOWS: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
221
+ readonly CHROME_LINUX: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36";
222
+ readonly FIREFOX_MAC_INTEL: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0";
223
+ readonly FIREFOX_MAC_APPLE: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0";
224
+ readonly FIREFOX_WINDOWS: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0";
225
+ readonly FIREFOX_LINUX: "Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0";
226
+ readonly SAFARI_MAC_INTEL_15_1: "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15";
227
+ readonly SAFARI_MAC_APPLE_15_1: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Safari/605.1.15";
228
+ readonly SAFARI_MAC_INTEL_14_7: "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15";
229
+ readonly SAFARI_MAC_APPLE_14_7: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 14_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6.1 Safari/605.1.15";
230
+ readonly EDGE_WINDOWS: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0";
231
+ readonly EDGE_MAC_INTEL: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0";
232
+ readonly EDGE_MAC_APPLE: "Mozilla/5.0 (Macintosh; arm64 Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0";
233
+ };
234
+ /**
235
+ * Create a default User-Agent pool with common browser agents
236
+ *
237
+ * @param config - Configuration options for the pool
238
+ * @returns A new UserAgentPool instance with common User-Agents
239
+ */
240
+ export declare function createDefaultPool(config?: UserAgentPoolConfig): UserAgentPool;
241
+ //# sourceMappingURL=user-agent-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-agent-pool.d.ts","sourceRoot":"","sources":["../../src/utils/user-agent-pool.ts"],"names":[],"mappings":"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"}