class_docstr: Stores Documents to be used by the components of a Pipeline.
  
  Classes implementing this protocol often store the documents permanently and allow specialized components to
  perform retrieval on them, either by embedding, by keyword, hybrid, and so on, depending on the backend used.
  
  In order to retrieve documents, consider using a Retriever that supports the DocumentStore implementation that
  you're using.
docstr: Returns the number of documents stored.
code: def count_documents(self) -> int:
      """
      Returns the number of documents stored.
      """
      ...
  
file_path: haystack/haystack/document_stores/types/protocol.py
imports: from typing import Protocol, Optional, Dict, Any, List
  import logging
  from haystack.dataclasses import Document
  from haystack.document_stores.types.policy import DuplicatePolicy
label_desc: Use image node_id 3 for calling the DocumentStore obj's underlying member method code with example usage: obj.count_documents() without return types