package dev.kreuzberg; import java.util.List; /** * Bridge interface for the OcrBackend plugin system. * * Implementations are wrapped by OcrBackendBridge and exposed to the native * runtime through Panama FFM upcall stubs. */ public interface IOcrBackend { /** Plugin name (used for registry keying). */ String name(); /** Plugin version. */ String version(); /** Initialize the plugin. */ default void initialize() throws Exception {} /** Shut down the plugin. */ default void shutdown() throws Exception {} /** process_image. */ ExtractionResult process_image(byte[] image_bytes, OcrConfig config) throws Exception; /** process_image_file. */ ExtractionResult process_image_file(java.nio.file.Path path, OcrConfig config) throws Exception; /** supports_language. */ boolean supports_language(String lang) throws Exception; /** backend_type. */ String backend_type() throws Exception; /** supported_languages. */ List supported_languages() throws Exception; /** supports_table_detection. */ boolean supports_table_detection() throws Exception; /** supports_document_processing. */ boolean supports_document_processing() throws Exception; /** process_document. */ ExtractionResult process_document(java.nio.file.Path _path, OcrConfig _config) throws Exception; }