//#region src/typings/index.d.ts
interface Item {
  title: string;
  id?: string;
  link: string;
  date: Date;
  description?: string;
  content?: string;
  category?: Category[];
  guid?: string;
  image?: string | Enclosure;
  audio?: string | Enclosure;
  video?: string | Enclosure;
  enclosure?: Enclosure;
  author?: Author[];
  contributor?: Author[];
  published?: Date;
  copyright?: string;
  extensions?: Extension[];
}
interface Enclosure {
  url: string;
  type?: string;
  length?: number;
  title?: string;
  duration?: number;
}
interface Author {
  name?: string;
  email?: string;
  link?: string;
  avatar?: string;
}
interface Category {
  name?: string;
  domain?: string;
  scheme?: string;
  term?: string;
}
interface FeedOptions {
  id?: string;
  title: string;
  updated?: Date;
  /**
   * Feed generator. Defaults to the library's URL.
   * Pass `false` to omit the `<generator>` element entirely.
   */
  generator?: string | false;
  language?: string;
  ttl?: number;
  stylesheet?: string;
  feed?: string;
  feedLinks?: {
    rss?: string;
    atom?: string;
    json?: string;
    [key: string]: string | undefined;
  };
  hub?: string;
  docs?: string;
  podcast?: boolean;
  category?: string;
  author?: Author;
  link?: string;
  description?: string;
  image?: string;
  favicon?: string;
  copyright?: string;
}
interface Extension {
  name: string;
  objects: Record<string, unknown>;
} //#endregion
//#region src/feed.d.ts
declare class Feed {
  options: FeedOptions;
  items: Item[];
  categories: string[];
  contributors: Author[];
  extensions: Extension[];
  constructor(options: FeedOptions);
  addItem(item: Item): void;
  addCategory(category: string): void;
  addContributor(contributor: Author): void;
  addExtension(extension: Extension): void;
  atom1(): string;
  rss2(): string;
  json1(): string;
}

//#endregion
export { Author, Category, Enclosure, Extension, Feed, FeedOptions, Item };
//# sourceMappingURL=feed.d.ts.map