"""
Feed generation module for StarPunk

This module provides feed generation in multiple formats (RSS, ATOM, JSON Feed)
with content negotiation and caching support.

Exports:
    generate_rss: Generate RSS 2.0 feed
    generate_rss_streaming: Generate RSS 2.0 feed with streaming
    generate_atom: Generate ATOM 1.0 feed
    generate_atom_streaming: Generate ATOM 1.0 feed with streaming
    generate_json_feed: Generate JSON Feed 1.1
    generate_json_feed_streaming: Generate JSON Feed 1.1 with streaming
    negotiate_feed_format: Content negotiation for feed formats
    get_mime_type: Get MIME type for a format name
    get_cache: Get global feed cache instance
    configure_cache: Configure global feed cache
    FeedCache: Feed caching class
"""

from .rss import (
    generate_rss,
    generate_rss_streaming,
    format_rfc822_date,
    get_note_title,
    clean_html_for_rss,
)

from .atom import (
    generate_atom,
    generate_atom_streaming,
)

from .json_feed import (
    generate_json_feed,
    generate_json_feed_streaming,
)

from .negotiation import (
    negotiate_feed_format,
    get_mime_type,
)

from .cache import (
    FeedCache,
    get_cache,
    configure_cache,
)

from .opml import (
    generate_opml,
)

__all__ = [
    # RSS functions
    "generate_rss",
    "generate_rss_streaming",
    "format_rfc822_date",
    "get_note_title",
    "clean_html_for_rss",
    # ATOM functions
    "generate_atom",
    "generate_atom_streaming",
    # JSON Feed functions
    "generate_json_feed",
    "generate_json_feed_streaming",
    # Content negotiation
    "negotiate_feed_format",
    "get_mime_type",
    # Caching
    "FeedCache",
    "get_cache",
    "configure_cache",
    # OPML
    "generate_opml",
]
