import { BaseDocumentLoader } from "./base";
import { Document } from "../types";
export interface RSSLoaderConfig {
    maxItems?: number;
    includeContent?: boolean;
    requestOptions?: {
        timeout?: number;
        headers?: Record<string, string>;
    };
}
export interface RSSItem {
    title?: string;
    link?: string;
    content?: string;
    contentSnippet?: string;
    author?: string;
    pubDate?: string;
    categories?: string[];
    guid?: string;
}
export interface RSSFeed {
    title?: string;
    description?: string;
    link?: string;
    language?: string;
    lastBuildDate?: string;
    items: RSSItem[];
}
export declare class RSSLoader extends BaseDocumentLoader {
    supportedExtensions: string[];
    private parser;
    private config;
    constructor(config?: RSSLoaderConfig);
    load(filePath: string, content: Buffer): Promise<Document>;
    loadFromURL(url: string): Promise<Document[]>;
    loadFromString(rssContent: string, sourceUrl: string): Promise<Document[]>;
    private processFeed;
    private createDocumentFromItem;
    private cleanHtmlContent;
    private detectLanguage;
    protected generateDocumentId(identifier: string): string;
}
export declare class NaverBlogRSSLoader extends RSSLoader {
    private blogId;
    constructor(blogId: string, config?: RSSLoaderConfig);
    loadBlog(): Promise<Document[]>;
    getBlogId(): string;
    getRSSUrl(): string;
    static createFromUrl(url: string, config?: RSSLoaderConfig): NaverBlogRSSLoader;
    static extractBlogId(url: string): string | null;
}
export declare class RSSFeedManager {
    private feedSources;
    addFeed(name: string, loader: RSSLoader): void;
    removeFeed(name: string): boolean;
    loadAllFeeds(): Promise<Map<string, Document[]>>;
    getFeedNames(): string[];
    getFeed(name: string): RSSLoader | undefined;
}
//# sourceMappingURL=rss.d.ts.map