website-to-markdown-mcp
Version:
Advanced MCP server for fetching websites and converting to markdown with AI-powered features and stealth capabilities
803 lines • 30.4 kB
TypeScript
import { z } from 'zod';
declare const WebsiteSchema: z.ZodObject<{
name: z.ZodString;
url: z.ZodString;
description: z.ZodOptional<z.ZodString>;
enabled: z.ZodDefault<z.ZodBoolean>;
customSettings: z.ZodOptional<z.ZodObject<{
timeout: z.ZodOptional<z.ZodNumber>;
retries: z.ZodOptional<z.ZodNumber>;
useStealthBrowser: z.ZodOptional<z.ZodBoolean>;
extractMainContent: z.ZodOptional<z.ZodBoolean>;
removeAds: z.ZodOptional<z.ZodBoolean>;
preserveImages: z.ZodOptional<z.ZodBoolean>;
preserveLinks: z.ZodOptional<z.ZodBoolean>;
customUserAgent: z.ZodOptional<z.ZodString>;
customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
rateLimit: z.ZodOptional<z.ZodObject<{
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
burstLimit: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
}, {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
}, {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
name: string;
url: string;
enabled: boolean;
description?: string | undefined;
customSettings?: {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
} | undefined;
}, {
name: string;
url: string;
description?: string | undefined;
enabled?: boolean | undefined;
customSettings?: {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
} | undefined;
}>;
declare const GlobalSettingsSchema: z.ZodObject<{
defaultTimeout: z.ZodDefault<z.ZodNumber>;
defaultRetries: z.ZodDefault<z.ZodNumber>;
defaultUserAgent: z.ZodDefault<z.ZodString>;
maxConcurrentRequests: z.ZodDefault<z.ZodNumber>;
enableGlobalRateLimit: z.ZodDefault<z.ZodBoolean>;
globalRateLimit: z.ZodObject<{
requestsPerSecond: z.ZodDefault<z.ZodNumber>;
burstLimit: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
requestsPerSecond: number;
burstLimit: number;
}, {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
}>;
stealthBrowser: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
headless: z.ZodDefault<z.ZodBoolean>;
blockResources: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
useProxy: z.ZodDefault<z.ZodBoolean>;
proxyUrl: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
headless: boolean;
blockResources: string[];
useProxy: boolean;
proxyUrl?: string | undefined;
}, {
enabled?: boolean | undefined;
headless?: boolean | undefined;
blockResources?: string[] | undefined;
useProxy?: boolean | undefined;
proxyUrl?: string | undefined;
}>;
contentProcessing: z.ZodObject<{
removeAds: z.ZodDefault<z.ZodBoolean>;
removeNavigation: z.ZodDefault<z.ZodBoolean>;
removeFooter: z.ZodDefault<z.ZodBoolean>;
removeSidebar: z.ZodDefault<z.ZodBoolean>;
extractMainContent: z.ZodDefault<z.ZodBoolean>;
preserveImages: z.ZodDefault<z.ZodBoolean>;
preserveLinks: z.ZodDefault<z.ZodBoolean>;
minTextLength: z.ZodDefault<z.ZodNumber>;
maxTextLength: z.ZodOptional<z.ZodNumber>;
generateSummary: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
removeAds: boolean;
removeNavigation: boolean;
extractMainContent: boolean;
preserveImages: boolean;
preserveLinks: boolean;
removeFooter: boolean;
removeSidebar: boolean;
minTextLength: number;
generateSummary: boolean;
maxTextLength?: number | undefined;
}, {
removeAds?: boolean | undefined;
removeNavigation?: boolean | undefined;
extractMainContent?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
removeFooter?: boolean | undefined;
removeSidebar?: boolean | undefined;
minTextLength?: number | undefined;
maxTextLength?: number | undefined;
generateSummary?: boolean | undefined;
}>;
caching: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
ttl: z.ZodDefault<z.ZodNumber>;
maxSize: z.ZodDefault<z.ZodNumber>;
useRedis: z.ZodDefault<z.ZodBoolean>;
redisUrl: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
ttl: number;
maxSize: number;
useRedis: boolean;
redisUrl?: string | undefined;
}, {
enabled?: boolean | undefined;
ttl?: number | undefined;
maxSize?: number | undefined;
useRedis?: boolean | undefined;
redisUrl?: string | undefined;
}>;
logging: z.ZodObject<{
level: z.ZodDefault<z.ZodEnum<["error", "warn", "info", "debug"]>>;
enableFileLogging: z.ZodDefault<z.ZodBoolean>;
enablePerformanceLogging: z.ZodDefault<z.ZodBoolean>;
logDirectory: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
level: "info" | "error" | "warn" | "debug";
enableFileLogging: boolean;
enablePerformanceLogging: boolean;
logDirectory: string;
}, {
level?: "info" | "error" | "warn" | "debug" | undefined;
enableFileLogging?: boolean | undefined;
enablePerformanceLogging?: boolean | undefined;
logDirectory?: string | undefined;
}>;
monitoring: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
metricsPort: z.ZodOptional<z.ZodNumber>;
healthCheckInterval: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
healthCheckInterval: number;
metricsPort?: number | undefined;
}, {
enabled?: boolean | undefined;
metricsPort?: number | undefined;
healthCheckInterval?: number | undefined;
}>;
}, "strip", z.ZodTypeAny, {
logging: {
level: "info" | "error" | "warn" | "debug";
enableFileLogging: boolean;
enablePerformanceLogging: boolean;
logDirectory: string;
};
defaultTimeout: number;
defaultRetries: number;
defaultUserAgent: string;
maxConcurrentRequests: number;
enableGlobalRateLimit: boolean;
globalRateLimit: {
requestsPerSecond: number;
burstLimit: number;
};
stealthBrowser: {
enabled: boolean;
headless: boolean;
blockResources: string[];
useProxy: boolean;
proxyUrl?: string | undefined;
};
contentProcessing: {
removeAds: boolean;
removeNavigation: boolean;
extractMainContent: boolean;
preserveImages: boolean;
preserveLinks: boolean;
removeFooter: boolean;
removeSidebar: boolean;
minTextLength: number;
generateSummary: boolean;
maxTextLength?: number | undefined;
};
caching: {
enabled: boolean;
ttl: number;
maxSize: number;
useRedis: boolean;
redisUrl?: string | undefined;
};
monitoring: {
enabled: boolean;
healthCheckInterval: number;
metricsPort?: number | undefined;
};
}, {
logging: {
level?: "info" | "error" | "warn" | "debug" | undefined;
enableFileLogging?: boolean | undefined;
enablePerformanceLogging?: boolean | undefined;
logDirectory?: string | undefined;
};
globalRateLimit: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
};
stealthBrowser: {
enabled?: boolean | undefined;
headless?: boolean | undefined;
blockResources?: string[] | undefined;
useProxy?: boolean | undefined;
proxyUrl?: string | undefined;
};
contentProcessing: {
removeAds?: boolean | undefined;
removeNavigation?: boolean | undefined;
extractMainContent?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
removeFooter?: boolean | undefined;
removeSidebar?: boolean | undefined;
minTextLength?: number | undefined;
maxTextLength?: number | undefined;
generateSummary?: boolean | undefined;
};
caching: {
enabled?: boolean | undefined;
ttl?: number | undefined;
maxSize?: number | undefined;
useRedis?: boolean | undefined;
redisUrl?: string | undefined;
};
monitoring: {
enabled?: boolean | undefined;
metricsPort?: number | undefined;
healthCheckInterval?: number | undefined;
};
defaultTimeout?: number | undefined;
defaultRetries?: number | undefined;
defaultUserAgent?: string | undefined;
maxConcurrentRequests?: number | undefined;
enableGlobalRateLimit?: boolean | undefined;
}>;
declare const ConfigSchema: z.ZodObject<{
websites: z.ZodArray<z.ZodObject<{
name: z.ZodString;
url: z.ZodString;
description: z.ZodOptional<z.ZodString>;
enabled: z.ZodDefault<z.ZodBoolean>;
customSettings: z.ZodOptional<z.ZodObject<{
timeout: z.ZodOptional<z.ZodNumber>;
retries: z.ZodOptional<z.ZodNumber>;
useStealthBrowser: z.ZodOptional<z.ZodBoolean>;
extractMainContent: z.ZodOptional<z.ZodBoolean>;
removeAds: z.ZodOptional<z.ZodBoolean>;
preserveImages: z.ZodOptional<z.ZodBoolean>;
preserveLinks: z.ZodOptional<z.ZodBoolean>;
customUserAgent: z.ZodOptional<z.ZodString>;
customHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
rateLimit: z.ZodOptional<z.ZodObject<{
requestsPerSecond: z.ZodOptional<z.ZodNumber>;
burstLimit: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
}, {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
}, {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
name: string;
url: string;
enabled: boolean;
description?: string | undefined;
customSettings?: {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
} | undefined;
}, {
name: string;
url: string;
description?: string | undefined;
enabled?: boolean | undefined;
customSettings?: {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
} | undefined;
}>, "many">;
settings: z.ZodOptional<z.ZodObject<{
defaultTimeout: z.ZodDefault<z.ZodNumber>;
defaultRetries: z.ZodDefault<z.ZodNumber>;
defaultUserAgent: z.ZodDefault<z.ZodString>;
maxConcurrentRequests: z.ZodDefault<z.ZodNumber>;
enableGlobalRateLimit: z.ZodDefault<z.ZodBoolean>;
globalRateLimit: z.ZodObject<{
requestsPerSecond: z.ZodDefault<z.ZodNumber>;
burstLimit: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
requestsPerSecond: number;
burstLimit: number;
}, {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
}>;
stealthBrowser: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
headless: z.ZodDefault<z.ZodBoolean>;
blockResources: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
useProxy: z.ZodDefault<z.ZodBoolean>;
proxyUrl: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
headless: boolean;
blockResources: string[];
useProxy: boolean;
proxyUrl?: string | undefined;
}, {
enabled?: boolean | undefined;
headless?: boolean | undefined;
blockResources?: string[] | undefined;
useProxy?: boolean | undefined;
proxyUrl?: string | undefined;
}>;
contentProcessing: z.ZodObject<{
removeAds: z.ZodDefault<z.ZodBoolean>;
removeNavigation: z.ZodDefault<z.ZodBoolean>;
removeFooter: z.ZodDefault<z.ZodBoolean>;
removeSidebar: z.ZodDefault<z.ZodBoolean>;
extractMainContent: z.ZodDefault<z.ZodBoolean>;
preserveImages: z.ZodDefault<z.ZodBoolean>;
preserveLinks: z.ZodDefault<z.ZodBoolean>;
minTextLength: z.ZodDefault<z.ZodNumber>;
maxTextLength: z.ZodOptional<z.ZodNumber>;
generateSummary: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
removeAds: boolean;
removeNavigation: boolean;
extractMainContent: boolean;
preserveImages: boolean;
preserveLinks: boolean;
removeFooter: boolean;
removeSidebar: boolean;
minTextLength: number;
generateSummary: boolean;
maxTextLength?: number | undefined;
}, {
removeAds?: boolean | undefined;
removeNavigation?: boolean | undefined;
extractMainContent?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
removeFooter?: boolean | undefined;
removeSidebar?: boolean | undefined;
minTextLength?: number | undefined;
maxTextLength?: number | undefined;
generateSummary?: boolean | undefined;
}>;
caching: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
ttl: z.ZodDefault<z.ZodNumber>;
maxSize: z.ZodDefault<z.ZodNumber>;
useRedis: z.ZodDefault<z.ZodBoolean>;
redisUrl: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
ttl: number;
maxSize: number;
useRedis: boolean;
redisUrl?: string | undefined;
}, {
enabled?: boolean | undefined;
ttl?: number | undefined;
maxSize?: number | undefined;
useRedis?: boolean | undefined;
redisUrl?: string | undefined;
}>;
logging: z.ZodObject<{
level: z.ZodDefault<z.ZodEnum<["error", "warn", "info", "debug"]>>;
enableFileLogging: z.ZodDefault<z.ZodBoolean>;
enablePerformanceLogging: z.ZodDefault<z.ZodBoolean>;
logDirectory: z.ZodDefault<z.ZodString>;
}, "strip", z.ZodTypeAny, {
level: "info" | "error" | "warn" | "debug";
enableFileLogging: boolean;
enablePerformanceLogging: boolean;
logDirectory: string;
}, {
level?: "info" | "error" | "warn" | "debug" | undefined;
enableFileLogging?: boolean | undefined;
enablePerformanceLogging?: boolean | undefined;
logDirectory?: string | undefined;
}>;
monitoring: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
metricsPort: z.ZodOptional<z.ZodNumber>;
healthCheckInterval: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
healthCheckInterval: number;
metricsPort?: number | undefined;
}, {
enabled?: boolean | undefined;
metricsPort?: number | undefined;
healthCheckInterval?: number | undefined;
}>;
}, "strip", z.ZodTypeAny, {
logging: {
level: "info" | "error" | "warn" | "debug";
enableFileLogging: boolean;
enablePerformanceLogging: boolean;
logDirectory: string;
};
defaultTimeout: number;
defaultRetries: number;
defaultUserAgent: string;
maxConcurrentRequests: number;
enableGlobalRateLimit: boolean;
globalRateLimit: {
requestsPerSecond: number;
burstLimit: number;
};
stealthBrowser: {
enabled: boolean;
headless: boolean;
blockResources: string[];
useProxy: boolean;
proxyUrl?: string | undefined;
};
contentProcessing: {
removeAds: boolean;
removeNavigation: boolean;
extractMainContent: boolean;
preserveImages: boolean;
preserveLinks: boolean;
removeFooter: boolean;
removeSidebar: boolean;
minTextLength: number;
generateSummary: boolean;
maxTextLength?: number | undefined;
};
caching: {
enabled: boolean;
ttl: number;
maxSize: number;
useRedis: boolean;
redisUrl?: string | undefined;
};
monitoring: {
enabled: boolean;
healthCheckInterval: number;
metricsPort?: number | undefined;
};
}, {
logging: {
level?: "info" | "error" | "warn" | "debug" | undefined;
enableFileLogging?: boolean | undefined;
enablePerformanceLogging?: boolean | undefined;
logDirectory?: string | undefined;
};
globalRateLimit: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
};
stealthBrowser: {
enabled?: boolean | undefined;
headless?: boolean | undefined;
blockResources?: string[] | undefined;
useProxy?: boolean | undefined;
proxyUrl?: string | undefined;
};
contentProcessing: {
removeAds?: boolean | undefined;
removeNavigation?: boolean | undefined;
extractMainContent?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
removeFooter?: boolean | undefined;
removeSidebar?: boolean | undefined;
minTextLength?: number | undefined;
maxTextLength?: number | undefined;
generateSummary?: boolean | undefined;
};
caching: {
enabled?: boolean | undefined;
ttl?: number | undefined;
maxSize?: number | undefined;
useRedis?: boolean | undefined;
redisUrl?: string | undefined;
};
monitoring: {
enabled?: boolean | undefined;
metricsPort?: number | undefined;
healthCheckInterval?: number | undefined;
};
defaultTimeout?: number | undefined;
defaultRetries?: number | undefined;
defaultUserAgent?: string | undefined;
maxConcurrentRequests?: number | undefined;
enableGlobalRateLimit?: boolean | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
websites: {
name: string;
url: string;
enabled: boolean;
description?: string | undefined;
customSettings?: {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
} | undefined;
}[];
settings?: {
logging: {
level: "info" | "error" | "warn" | "debug";
enableFileLogging: boolean;
enablePerformanceLogging: boolean;
logDirectory: string;
};
defaultTimeout: number;
defaultRetries: number;
defaultUserAgent: string;
maxConcurrentRequests: number;
enableGlobalRateLimit: boolean;
globalRateLimit: {
requestsPerSecond: number;
burstLimit: number;
};
stealthBrowser: {
enabled: boolean;
headless: boolean;
blockResources: string[];
useProxy: boolean;
proxyUrl?: string | undefined;
};
contentProcessing: {
removeAds: boolean;
removeNavigation: boolean;
extractMainContent: boolean;
preserveImages: boolean;
preserveLinks: boolean;
removeFooter: boolean;
removeSidebar: boolean;
minTextLength: number;
generateSummary: boolean;
maxTextLength?: number | undefined;
};
caching: {
enabled: boolean;
ttl: number;
maxSize: number;
useRedis: boolean;
redisUrl?: string | undefined;
};
monitoring: {
enabled: boolean;
healthCheckInterval: number;
metricsPort?: number | undefined;
};
} | undefined;
}, {
websites: {
name: string;
url: string;
description?: string | undefined;
enabled?: boolean | undefined;
customSettings?: {
timeout?: number | undefined;
removeAds?: boolean | undefined;
extractMainContent?: boolean | undefined;
retries?: number | undefined;
useStealthBrowser?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
customUserAgent?: string | undefined;
customHeaders?: Record<string, string> | undefined;
rateLimit?: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
} | undefined;
} | undefined;
}[];
settings?: {
logging: {
level?: "info" | "error" | "warn" | "debug" | undefined;
enableFileLogging?: boolean | undefined;
enablePerformanceLogging?: boolean | undefined;
logDirectory?: string | undefined;
};
globalRateLimit: {
requestsPerSecond?: number | undefined;
burstLimit?: number | undefined;
};
stealthBrowser: {
enabled?: boolean | undefined;
headless?: boolean | undefined;
blockResources?: string[] | undefined;
useProxy?: boolean | undefined;
proxyUrl?: string | undefined;
};
contentProcessing: {
removeAds?: boolean | undefined;
removeNavigation?: boolean | undefined;
extractMainContent?: boolean | undefined;
preserveImages?: boolean | undefined;
preserveLinks?: boolean | undefined;
removeFooter?: boolean | undefined;
removeSidebar?: boolean | undefined;
minTextLength?: number | undefined;
maxTextLength?: number | undefined;
generateSummary?: boolean | undefined;
};
caching: {
enabled?: boolean | undefined;
ttl?: number | undefined;
maxSize?: number | undefined;
useRedis?: boolean | undefined;
redisUrl?: string | undefined;
};
monitoring: {
enabled?: boolean | undefined;
metricsPort?: number | undefined;
healthCheckInterval?: number | undefined;
};
defaultTimeout?: number | undefined;
defaultRetries?: number | undefined;
defaultUserAgent?: string | undefined;
maxConcurrentRequests?: number | undefined;
enableGlobalRateLimit?: boolean | undefined;
} | undefined;
}>;
export type Website = z.infer<typeof WebsiteSchema>;
export type GlobalSettings = z.infer<typeof GlobalSettingsSchema>;
export type Config = z.infer<typeof ConfigSchema>;
export declare class ConfigManager {
private config;
private configPath;
private watchers;
private isWatching;
constructor(configPath?: string);
private loadConfig;
private getDefaultConfig;
private setupFileWatcher;
private notifyWatchers;
getConfig(): Config;
getWebsites(): Website[];
getWebsiteByName(name: string): Website | undefined;
getGlobalSettings(): GlobalSettings;
addWebsite(website: Omit<Website, 'enabled'>): void;
updateWebsite(name: string, updates: Partial<Website>): void;
removeWebsite(name: string): void;
toggleWebsite(name: string): void;
updateGlobalSettings(settings: Partial<GlobalSettings>): void;
private saveConfig;
validateConfig(): {
isValid: boolean;
errors: string[];
};
getStats(): {
totalWebsites: number;
enabledWebsites: number;
disabledWebsites: number;
configSize: number;
lastModified?: Date;
};
onConfigChange(callback: (config: Config) => void): () => void;
exportConfig(): string;
importConfig(configData: string): void;
resetToDefault(): void;
getMergedSettingsForWebsite(websiteName: string): GlobalSettings & Website['customSettings'];
}
export declare function getConfigManager(configPath?: string): ConfigManager;
export declare function getConfig(): Config;
export declare function getGlobalSettings(): GlobalSettings;
export declare function getWebsites(): Website[];
export {};
//# sourceMappingURL=config-manager.d.ts.map