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