/** * Common types used across the SDK */ interface EcontConfig { username: string; password: string; environment?: "production" | "demo"; timeout?: number; maxRetries?: number; } interface ApiResponse { success: boolean; data?: T; error?: ApiError$1; } interface ApiError$1 { code: string; message: string; details?: string; } interface PaginationParams { page?: number; pageSize?: number; } interface PaginatedResponse { items: T[]; totalCount: number; page: number; pageSize: number; } interface Address { id?: number | null; city?: City; fullAddress?: string; fullAddressEn?: string; quarter?: string | null; street?: string | null; num?: string; other?: string; location?: GeoLocation | null; zip?: string | null; hezid?: string | null; officeCode?: string; } interface GeoLocation { latitude: number; longitude: number; confidence: number; } interface City { id: number; country: Country; postCode: string; name: string; nameEn: string; regionName: string | null; regionNameEn: string | null; phoneCode: string | null; location: GeoLocation | null; expressCityDeliveries: boolean | null; monday: boolean | null; tuesday: boolean | null; wednesday: boolean | null; thursday: boolean | null; friday: boolean | null; saturday: boolean | null; sunday: boolean | null; serviceDays: number | null; zoneId: number | null; zoneName: string | null; zoneNameEn: string | null; servingOffices: ServingOffice[]; } interface Country { id: number | null; code2: string; code3: string; name: string; nameEn: string; isEU: boolean; } interface ServingOffice { officeCode: string; servingType: string; } interface PhoneNumber { number: string; type?: "mobile" | "landline"; } interface ContactPerson { name: string; phones: PhoneNumber[]; email?: string; } /** * API Error types from Econt documentation */ interface EcontApiError { type?: string; message?: string; fields?: string[]; innerErrors?: EcontApiError[]; } /** * Nomenclatures types - Street, Quarter, etc. */ interface Street { id?: number; cityID?: number; name?: string; nameEn?: string; } interface Quarter { id?: number; cityID?: number; name?: string; nameEn?: string; } interface GetStreetsRequest { cityID?: number; streetName?: string; } interface GetStreetsResponse { streets?: Street[]; } interface GetQuartersRequest { cityID?: number; } interface GetQuartersResponse { quarters?: Quarter[]; } /** * Office types */ interface Office { id: number; code: string; isMPS: boolean; isAPS: boolean; name: string; nameEn: string; phones: string[]; emails: string[]; address: OfficeAddress; info: string; currency: string; language: string | null; normalBusinessHoursFrom: number; normalBusinessHoursTo: number; halfDayBusinessHoursFrom: number; halfDayBusinessHoursTo: number; shipmentTypes: string[]; partnerCode: string; hubCode: string; hubName: string; hubNameEn: string; isDrive: boolean; } interface OfficeAddress { id: number | null; city: City; fullAddress: string; fullAddressEn: string; quarter: string | null; street: string | null; num: string; other: string; location: Location | null; zip: string | null; hezid: string | null; } interface Location { latitude: number; longitude: number; confidence: number; } interface GetOfficesRequest { countryCode?: string; cityId?: number; officeCode?: string; } interface GetOfficesResponse { offices: Office[]; } /** * Profile and client types */ interface ClientProfile { name?: string; nameEn?: string; phones?: string[]; email?: string; clientNumber?: string; personalIDNumber?: string; firmIDNumber?: string; address?: string; } interface CDPayOptions { paymentMethod?: string; cardNumber?: string; cardholderName?: string; expiryDate?: string; cvv?: string; } interface GetClientProfilesResponse { profiles?: ClientProfile[]; } interface CreateCDAgreementRequest { clientProfile?: ClientProfile; agreementDetails?: string; } interface CreateCDAgreementResponse { success?: boolean; agreementId?: string; } /** * Shipment types */ declare enum ShipmentType { DOCUMENT = "document", PACK = "pack", PALLET = "pallet", CARGO = "cargo", DOCUMENT_PALLET = "documentpallet", BIG_LETTER = "big_letter", SMALL_LETTER = "small_letter", MONEY_TRANSFER = "money_transfer", PP = "pp" } declare enum InstructionType { TAKE = "take", GIVE = "give", RETURN = "return", SERVICES = "services" } declare enum RequestCourierStatusType { UNPROCESS = "unprocess", PROCESS = "process", TAKEN = "taken", REJECT = "reject", REJECT_CLIENT = "reject_client" } interface HostedFile { url: string; filename?: string; contentType?: string; } interface ReturnInstructionParams { returnParcelDestination?: string; returnParcelIsDocument?: boolean; returnParcelIsEmptyPallet?: boolean; emptyPalletEuro: number; emptyPallet80: number; emptyPallet100: number; emptyPallet120: number; daysUntilReturn?: number; returnParcelPaymentSide?: string; returnParcelReceiverClient?: ClientProfile; returnParcelReceiverAgent?: ClientProfile; returnParcelReceiverOfficeCode?: string; returnParcelReceiverAddress?: Address; printReturnParcel?: boolean; rejectAction?: string; rejectInstruction?: string; rejectContact?: string; rejectReturnClient?: ClientProfile; rejectReturnAgent?: ClientProfile; rejectReturnOfficeCode?: string; rejectReturnAddress?: Address; rejectOriginalParcelPaySide?: string; rejectReturnParcelPaySide?: string; signatureDocuments: boolean; signaturePenColor: string; signatureCount: number; signaturePageNumbers: string; signatureOtherInstructions: string; executeIfRejectedWithoutReview?: boolean; useReturnAddressForInstruction?: boolean; executeIfNotTaken: number; } interface Instruction { id?: number; type?: InstructionType; title?: string; description?: string; attachments?: HostedFile[]; voiceDescription?: HostedFile; returnInstructionParams?: ReturnInstructionParams; name?: string; applyToAllParcels?: boolean; applyToReceivers?: string[]; } interface PackElement { width: number; height: number; length: number; weight: number; } interface PackingListElement { inventoryNum?: string; description?: string; weight?: number; count?: number; price?: number; file?: HostedFile; alternativeDepartment?: string; } interface CustomsListElement { cn: string; description: string; sum: number; currency: string; } interface CargoVehicleOptions { senderAddressTruckAccess?: boolean; receiverAddressTruckAccess?: boolean; senderAddressLiftingVehicleRequired?: boolean; receiverAddressLiftingVehicleRequired?: boolean; senderAddressTailLiftTruckRequired?: boolean; receiverAddressTailLiftTruckRequired?: boolean; } interface ShippingLabelServices { priorityTimeFrom?: string; priorityTimeTo?: string; deliveryReceipt?: boolean; digitalReceipt?: boolean; goodsReceipt?: boolean; twoWayShipment?: boolean; deliveryToFloor?: boolean; pack5?: number; pack6?: number; pack8?: number; pack9?: number; pack10?: number; pack12?: number; refrigeratedPack?: number; declaredValueAmount?: number; declaredValueCurrency?: string; moneyTransferAmount?: number; expressMoneyTransfer?: boolean; cdAmount?: number; cdType?: string; cdCurrency?: string; cdPayOptionsTemplate?: string; cdPayOptions?: CDPayOptions; invoiceBeforePayCD?: boolean; smsNotification?: boolean; invoiceNum?: string; } interface ShippingLabel { shipmentNumber?: string; previousShipmentNumber?: string; previousShipmentReceiverPhone?: string; senderClient?: ClientProfile; senderAgent?: ClientProfile; senderAddress?: Address; senderOfficeCode?: string; emailOnDelivery?: string; smsOnDelivery?: string; receiverClient?: ClientProfile; receiverAgent?: ClientProfile; receiverAddress?: Address; receiverOfficeCode?: string; receiverProviderID?: number; receiverBIC?: string; receiverIBAN?: string; envelopeNumbers?: string[]; packCount?: number; packs?: PackElement[]; shipmentType?: ShipmentType; weight?: number; sizeUnder60cm?: boolean; shipmentDimensionsL?: number; shipmentDimensionsW?: number; shipmentDimensionsH?: number; shipmentDescription?: string; orderNumber?: string; sendDate?: string; holidayDeliveryDay?: string; keepUpright?: boolean; services?: ShippingLabelServices; instructions?: Instruction[]; payAfterAccept?: boolean; payAfterTest?: boolean; packingListType?: string; packingList?: PackingListElement[]; partialDelivery?: boolean; paymentSenderMethod?: string; paymentReceiverMethod?: string; paymentReceiverAmount?: number; paymentReceiverAmountIsPercent?: boolean; paymentOtherClientNumber?: string; paymentOtherAmount?: number; paymentOtherAmountIsPercent?: boolean; mediator?: string; paymentToken?: string; customsList?: CustomsListElement[]; customsInvoice?: string; cargoVehicleOptions?: CargoVehicleOptions; } interface ShipmentStatusService { type?: string; description?: string; count?: number; paymentSide?: string; price?: number; currency?: string; } interface ShipmentTrackingEvent { isReceipt?: boolean; destinationType?: string; destinationDetails?: string; destinationDetailsEn?: string; officeName?: string; officeNameEn?: string; cityName?: string; cityNameEn?: string; countryCode?: string; officeCode: string; time?: string; } interface NextShipmentElement { shipmentNumber?: string; reason?: string; pdfURL?: string; } interface PreviousShipment { shipmentNumber: number; reason: string; pdfURL: string; } interface ShipmentEditionResponseElement { shipmentNum: number; editionNum: number; editionType: string; editionError: string; price: string; currency: string; } interface ShipmentStatus { shipmentNumber?: string; storageOfficeName?: string; storagePersonName?: string; createdTime?: string; sendTime?: string; deliveryTime?: string; shipmentType?: ShipmentType; packCount?: number; shipmentDescription?: string; weight?: number; senderDeliveryType?: string; senderClient?: ClientProfile; senderAgent?: ClientProfile; senderOfficeCode?: string; senderAddress?: Address; receiverDeliveryType?: string; receiverClient?: ClientProfile; receiverAgent?: ClientProfile; receiverOfficeCode?: string; receiverAddress?: Address; hubCode?: string; hubName?: string; hubNameEN?: string; cdCollectedAmount?: number; cdCollectedCurrency?: string; cdCollectedTime?: string; cdPaidAmount?: number; cdPaidCurrency?: string; cdPaidTime?: string; totalPrice?: number; currency?: string; discountPercent?: number; discountAmount?: number; discountDescription?: string; senderDueAmount?: number; receiverDueAmount?: number; otherDueAmount?: number; deliveryAttemptCount?: number; previousShipmentNumber?: string; services?: ShipmentStatusService[]; lastProcessedInstruction?: string; nextShipments?: NextShipmentElement[]; trackingEvents?: ShipmentTrackingEvent[]; pdfURL?: string; expectedDeliveryDate?: string; returnShipmentURL?: string; rejectOriginalParcelPaySide: string; rejectReturnParcelPaySide: string; shipmentEdition: ShipmentEditionResponseElement; previousShipment: PreviousShipment; warnings?: string; shortDeliveryStatus: string; shortDeliveryStatusEn: string; routingCode?: string; } interface PaymentAdditionPrice { side: string; shareAmount: number; method: string; otherClientNumber: string; } interface PaymentInstruction { method: string; } interface CreateLabelResultElement { label?: ShipmentStatus; error?: ApiError; payAfterAcceptIgnored: string; } interface DeleteLabelsResultElement { shipmentNum?: string; error?: ApiError; } interface ShipmentStatusResultElement { status?: ShipmentStatus; error?: ApiError; } interface RequestCourierStatus { id?: number; status?: RequestCourierStatusType; note?: string; reject_reason?: string; } interface RequestCourierStatusResultElement { status?: RequestCourierStatus; error?: ApiError; } interface GetMyAWBResultElement { shipmentNumber: string; senderName: string; status: string; createdDate: string; acceptedDate: string; cdAmount: number; courierServiceAmount: number; courierServiceMasterPayer: string; receiverPhone: string; cdCurrency: string; courierServiceCurrency: string; } interface CheckPossibleShipmentEditionsResultElement { possibleShipmentEditions?: string[]; shipmentNum: number; } interface UpdateLabelRequest { label: ShippingLabel; requestCourierTimeFrom: string; requestCourierTimeTo: string; destroy: boolean; paymentAdditionPrice: PaymentAdditionPrice; paymentInstruction: PaymentInstruction; } interface UpdateLabelsResultElement { error?: ApiError; labels: UpdateLabelResponse; } interface UpdateLabelResponse { label?: ShipmentStatus; } interface ApiError { code: string; message: string; details?: string; } interface CreateLabelRequest { label?: ShippingLabel; requestCourierTimeFrom?: string; requestCourierTimeTo?: string; mode?: "calculate" | "validate" | "create" | "calculate_with_block"; } interface CreateLabelResponse { label?: ShipmentStatus; blockingPaymentURL?: string; courierRequestID?: number; payAfterAcceptIgnored: string; } interface CreateLabelsRequest { labels?: ShippingLabel[]; runAsyncAndEmailResultTo?: string; mode?: "validate" | "calculate" | "create"; } interface CreateLabelsResponse { results?: CreateLabelResultElement[]; } interface DeleteLabelsRequest { shipmentNumbers?: string[]; } interface DeleteLabelsResponse { results?: DeleteLabelsResultElement[]; } interface UpdateLabelRequestData { label: ShippingLabel; requestCourierTimeFrom: string; requestCourierTimeTo: string; destroy: boolean; paymentAdditionPrice: PaymentAdditionPrice; paymentInstruction: PaymentInstruction; } interface UpdateLabelResponseData { label: ShipmentStatus; } interface UpdateLabelsRequest { labels: UpdateLabelRequest[]; } interface UpdateLabelsResponse { results?: UpdateLabelsResultElement[]; } interface CheckPossibleShipmentEditionsRequest { shipmentNums: number[]; } interface CheckPossibleShipmentEditionsResponse { possibleShipmentEditions?: CheckPossibleShipmentEditionsResultElement[]; } interface GroupingRequest { labels: number[]; } interface GroupingResponse { label: ShipmentStatus; } interface GroupingCancelationRequest { groupLabel: number; } interface GroupingCancelationResponse { status: string; } interface RequestCourierRequest { requestTimeFrom?: string; requestTimeTo?: string; shipmentType?: ShipmentType; shipmentPackCount?: number; shipmentWeight?: number; senderClient?: ClientProfile; senderAgent?: ClientProfile; senderAddress?: Address; attachShipments?: string[]; pack12?: number; cargoVehicleOptions?: CargoVehicleOptions; } interface RequestCourierResponse { courierRequestID?: string; warnings?: string; } interface GetShipmentStatusesRequest { shipmentNumbers?: string[]; } interface GetShipmentStatusesResponse { shipmentStatuses?: ShipmentStatusResultElement[]; } interface GetRequestCourierStatusRequest { requestCourierIds?: string[]; } interface GetRequestCourierStatusResponse { requestCourierStatus?: RequestCourierStatusResultElement[]; } interface GetMyAWBRequest { dateFrom: string; dateTo: string; page?: number; side: string; } interface GetMyAWBResponse { dateFrom: string; dateTo: string; page: number; totalPages: number; results?: GetMyAWBResultElement[]; } interface SetITUCodeRequest { awbBarcode: string; truckRegNum: string; ITU_code: string; } interface SetITUCodeResponse { } /** * Address Service types */ interface WorkingTime { start: string; end: string; } interface WorkingDateTime { dayType: DayType; day: string; start: string; end: string; } declare enum DayType { WORKDAY = "workday", HALFDAY = "halfday", HOLIDAY = "holiday" } interface ValidateAddressRequest { address?: Address; } interface ValidateAddressResponse { address?: Address; validationStatus?: string; } interface AddressServiceTimesRequest { city: number; address: string; date: string; shipmentType: ShipmentType; } interface AddressServiceTimesResponse { serviceOffice: Office; serviceOfficeLatitude: number; serviceOfficeLongitude: number; serviceOfficeClientsWorkTimes?: WorkingTime[]; serviceOfficeCourierWorkTimes?: WorkingTime[]; serviceOfficeTime?: WorkingDateTime; serviceOfficeNext30daysWorkTime?: WorkingDateTime[]; } interface GetNearestOfficesRequest { address?: Address; shipmentType?: ShipmentType; } interface GetNearestOfficesResponse { offices?: Office[]; } /** * PaymentReport types * Note: These are placeholder types - need actual API documentation to complete */ interface PaymentReportRequest { requestData?: string; } interface PaymentReportResponse { resultData?: string; } /** * ThreeWayLogistics types * Note: These are placeholder types - need actual API documentation to complete */ interface ThreeWayLogisticsRequest { requestData?: string; } interface ThreeWayLogisticsResponse { resultData?: string; } export { type Address, type AddressServiceTimesRequest, type AddressServiceTimesResponse, type ApiError$1 as ApiError, type ApiResponse, type CDPayOptions, type CargoVehicleOptions, type CheckPossibleShipmentEditionsRequest, type CheckPossibleShipmentEditionsResponse, type CheckPossibleShipmentEditionsResultElement, type City, type ClientProfile, type ContactPerson, type Country, type CreateCDAgreementRequest, type CreateCDAgreementResponse, type CreateLabelRequest, type CreateLabelResponse, type CreateLabelResultElement, type CreateLabelsRequest, type CreateLabelsResponse, type CustomsListElement, DayType, type DeleteLabelsRequest, type DeleteLabelsResponse, type DeleteLabelsResultElement, type EcontApiError, type EcontConfig, type GeoLocation, type GetClientProfilesResponse, type GetMyAWBRequest, type GetMyAWBResponse, type GetMyAWBResultElement, type GetNearestOfficesRequest, type GetNearestOfficesResponse, type GetOfficesRequest, type GetOfficesResponse, type GetQuartersRequest, type GetQuartersResponse, type GetRequestCourierStatusRequest, type GetRequestCourierStatusResponse, type GetShipmentStatusesRequest, type GetShipmentStatusesResponse, type GetStreetsRequest, type GetStreetsResponse, type GroupingCancelationRequest, type GroupingCancelationResponse, type GroupingRequest, type GroupingResponse, type HostedFile, type Instruction, InstructionType, type Location, type NextShipmentElement, type Office, type OfficeAddress, type PackElement, type PackingListElement, type PaginatedResponse, type PaginationParams, type PaymentAdditionPrice, type PaymentInstruction, type PaymentReportRequest, type PaymentReportResponse, type PhoneNumber, type PreviousShipment, type Quarter, type RequestCourierRequest, type RequestCourierResponse, type RequestCourierStatus, type RequestCourierStatusResultElement, RequestCourierStatusType, type ReturnInstructionParams, type ServingOffice, type SetITUCodeRequest, type SetITUCodeResponse, type ShipmentEditionResponseElement, type ShipmentStatus, type ShipmentStatusResultElement, type ShipmentStatusService, type ShipmentTrackingEvent, ShipmentType, type ShippingLabel, type ShippingLabelServices, type Street, type ThreeWayLogisticsRequest, type ThreeWayLogisticsResponse, type UpdateLabelRequest, type UpdateLabelRequestData, type UpdateLabelResponse, type UpdateLabelResponseData, type UpdateLabelsRequest, type UpdateLabelsResponse, type UpdateLabelsResultElement, type ValidateAddressRequest, type ValidateAddressResponse, type WorkingDateTime, type WorkingTime };