/// <reference types="node" />
import { EventEmitter } from 'events';
import { FeedParserOptions, AxiosRequestConfig } from './modules/FeedParser';
export interface FeedItem {
    title: string;
    description: string;
    summary: string;
    date: Date | null;
    pubdate: Date | null;
    link: string;
    origlink: string;
    author: string;
    guid: string;
    comments: string;
    [x: string]: any;
}
export interface FeedItemEvent {
    feed: {
        name: string;
        url: string;
    };
    item: FeedItem;
}
export interface FeedConfig {
    name: string;
    url: string;
    refreshRateInSecs?: number;
    skipInitialList?: boolean;
    uidGenerator?: (item: FeedItem) => string;
    parserOpts?: FeedParserOptions;
    requestOpts?: AxiosRequestConfig;
}
declare type Feed = {
    timer?: NodeJS.Timer;
    config: FeedConfig;
    lastUid: string;
};
export default class FeedWatch extends EventEmitter {
    private feedList;
    fetchAndUpdateItems(feed: Feed, isInitialRun?: boolean): Promise<void>;
    initFeed(config: FeedConfig): Promise<void>;
    add({ name, url, skipInitialList, refreshRateInSecs, uidGenerator, requestOpts, parserOpts, }: FeedConfig): void;
    remove(url: string): void;
    destroy(): void;
    list(): FeedConfig[];
}
export {};
