"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from .basesdk import BaseSDK
from .sdkconfiguration import SDKConfiguration
from abbyy_document_ai.airwaybill_sdk import AirWaybillSDK
from abbyy_document_ai.arrivalnotice_sdk import ArrivalNoticeSDK
from abbyy_document_ai.bankstatement_sdk import BankStatementSDK
from abbyy_document_ai.basiccontract_sdk import BasicContractSDK
from abbyy_document_ai.billoflading_sdk import BillOfLadingSDK
from abbyy_document_ai.brokeragestatement_sdk import BrokerageStatementSDK
from abbyy_document_ai.certificateoforigin_sdk import CertificateOfOriginSDK
from abbyy_document_ai.commercialinvoice_sdk import CommercialInvoiceSDK
from abbyy_document_ai.customsdeclaration_sdk import CustomsDeclarationSDK
from abbyy_document_ai.dangerousgoodsdeclaration_sdk import DangerousGoodsDeclarationSDK
from abbyy_document_ai.deliverynote_sdk import DeliveryNoteSDK
from abbyy_document_ai.documentconversion import DocumentConversion
from abbyy_document_ai.hotelinvoice_sdk import HotelInvoiceSDK
from abbyy_document_ai.imagetotext import ImageToText
from abbyy_document_ai.internationalconsignmentnote_sdk import (
    InternationalConsignmentNoteSDK,
)
from abbyy_document_ai.invoice_sdk import InvoiceSDK
from abbyy_document_ai.packinglist_sdk import PackingListSDK
from abbyy_document_ai.personalearningsstatement_sdk import PersonalEarningsStatementSDK
from abbyy_document_ai.purchaseorder_sdk import PurchaseOrderSDK
from abbyy_document_ai.receipt_sdk import ReceiptSDK
from abbyy_document_ai.remittanceadvice_sdk import RemittanceAdviceSDK
from abbyy_document_ai.seawaybill_sdk import SeaWaybillSDK
from abbyy_document_ai.taxireceipt_sdk import TaxiReceiptSDK
from abbyy_document_ai.usform1040_sdk import UsForm1040SDK
from abbyy_document_ai.usformw2_sdk import UsFormW2SDK
from abbyy_document_ai.utilitybill_sdk import UtilityBillSDK


class Models(BaseSDK):
    document_conversion: DocumentConversion
    image_to_text: ImageToText
    receipt: ReceiptSDK
    invoice: InvoiceSDK
    purchase_order: PurchaseOrderSDK
    remittance_advice: RemittanceAdviceSDK
    delivery_note: DeliveryNoteSDK
    hotel_invoice: HotelInvoiceSDK
    taxi_receipt: TaxiReceiptSDK
    utility_bill: UtilityBillSDK
    us_form1040: UsForm1040SDK
    us_form_w2: UsFormW2SDK
    personal_earnings_statement: PersonalEarningsStatementSDK
    bank_statement: BankStatementSDK
    air_waybill: AirWaybillSDK
    arrival_notice: ArrivalNoticeSDK
    bill_of_lading: BillOfLadingSDK
    certificate_of_origin: CertificateOfOriginSDK
    commercial_invoice: CommercialInvoiceSDK
    dangerous_goods_declaration: DangerousGoodsDeclarationSDK
    customs_declaration: CustomsDeclarationSDK
    packing_list: PackingListSDK
    sea_waybill: SeaWaybillSDK
    international_consignment_note: InternationalConsignmentNoteSDK
    basic_contract: BasicContractSDK
    brokerage_statement: BrokerageStatementSDK

    def __init__(self, sdk_config: SDKConfiguration) -> None:
        BaseSDK.__init__(self, sdk_config)
        self.sdk_configuration = sdk_config
        self._init_sdks()

    def _init_sdks(self):
        self.document_conversion = DocumentConversion(self.sdk_configuration)
        self.image_to_text = ImageToText(self.sdk_configuration)
        self.receipt = ReceiptSDK(self.sdk_configuration)
        self.invoice = InvoiceSDK(self.sdk_configuration)
        self.purchase_order = PurchaseOrderSDK(self.sdk_configuration)
        self.remittance_advice = RemittanceAdviceSDK(self.sdk_configuration)
        self.delivery_note = DeliveryNoteSDK(self.sdk_configuration)
        self.hotel_invoice = HotelInvoiceSDK(self.sdk_configuration)
        self.taxi_receipt = TaxiReceiptSDK(self.sdk_configuration)
        self.utility_bill = UtilityBillSDK(self.sdk_configuration)
        self.us_form1040 = UsForm1040SDK(self.sdk_configuration)
        self.us_form_w2 = UsFormW2SDK(self.sdk_configuration)
        self.personal_earnings_statement = PersonalEarningsStatementSDK(
            self.sdk_configuration
        )
        self.bank_statement = BankStatementSDK(self.sdk_configuration)
        self.air_waybill = AirWaybillSDK(self.sdk_configuration)
        self.arrival_notice = ArrivalNoticeSDK(self.sdk_configuration)
        self.bill_of_lading = BillOfLadingSDK(self.sdk_configuration)
        self.certificate_of_origin = CertificateOfOriginSDK(self.sdk_configuration)
        self.commercial_invoice = CommercialInvoiceSDK(self.sdk_configuration)
        self.dangerous_goods_declaration = DangerousGoodsDeclarationSDK(
            self.sdk_configuration
        )
        self.customs_declaration = CustomsDeclarationSDK(self.sdk_configuration)
        self.packing_list = PackingListSDK(self.sdk_configuration)
        self.sea_waybill = SeaWaybillSDK(self.sdk_configuration)
        self.international_consignment_note = InternationalConsignmentNoteSDK(
            self.sdk_configuration
        )
        self.basic_contract = BasicContractSDK(self.sdk_configuration)
        self.brokerage_statement = BrokerageStatementSDK(self.sdk_configuration)
