import { BaseResponse } from "./base.js";
/**
 * Enum for logistics status
 */
export declare enum LogisticsStatus {
    /** Initial status, order not ready for fulfillment */
    LOGISTICS_NOT_START = "LOGISTICS_NOT_START",
    /** Order arranged shipment */
    LOGISTICS_REQUEST_CREATED = "LOGISTICS_REQUEST_CREATED",
    /** Order handed over to 3PL */
    LOGISTICS_PICKUP_DONE = "LOGISTICS_PICKUP_DONE",
    /** Order pending 3PL retry pickup */
    LOGISTICS_PICKUP_RETRY = "LOGISTICS_PICKUP_RETRY",
    /** Order cancelled by 3PL due to failed pickup or picked up but not able to proceed with delivery */
    LOGISTICS_PICKUP_FAILED = "LOGISTICS_PICKUP_FAILED",
    /** Order successfully delivered */
    LOGISTICS_DELIVERY_DONE = "LOGISTICS_DELIVERY_DONE",
    /** Order cancelled due to 3PL delivery failed */
    LOGISTICS_DELIVERY_FAILED = "LOGISTICS_DELIVERY_FAILED",
    /** Order cancelled when order at LOGISTICS_REQUEST_CREATED */
    LOGISTICS_REQUEST_CANCELED = "LOGISTICS_REQUEST_CANCELED",
    /** Integrated logistics COD: Order rejected for COD */
    LOGISTICS_COD_REJECTED = "LOGISTICS_COD_REJECTED",
    /**
     * Order ready for fulfilment from payment perspective:
     * - non-COD: order paid
     * - COD: order passed COD screening
     */
    LOGISTICS_READY = "LOGISTICS_READY",
    /** Order cancelled when order at LOGISTICS_READY */
    LOGISTICS_INVALID = "LOGISTICS_INVALID",
    /** Order cancelled due to 3PL lost the order */
    LOGISTICS_LOST = "LOGISTICS_LOST",
    /** Order logistics pending arrangement */
    LOGISTICS_PENDING_ARRANGE = "LOGISTICS_PENDING_ARRANGE"
}
/**
 * Enum for tracking logistics status
 */
export declare enum TrackingLogisticsStatus {
    /** Initial state */
    INITIAL = "INITIAL",
    /** Order initialization */
    ORDER_INIT = "ORDER_INIT",
    /** Order has been submitted */
    ORDER_SUBMITTED = "ORDER_SUBMITTED",
    /** Order has been finalized */
    ORDER_FINALIZED = "ORDER_FINALIZED",
    /** Order has been created */
    ORDER_CREATED = "ORDER_CREATED",
    /** Pickup has been requested */
    PICKUP_REQUESTED = "PICKUP_REQUESTED",
    /** Pickup is pending */
    PICKUP_PENDING = "PICKUP_PENDING",
    /** Package has been picked up */
    PICKED_UP = "PICKED_UP",
    /** Delivery is pending */
    DELIVERY_PENDING = "DELIVERY_PENDING",
    /** Package has been delivered */
    DELIVERED = "DELIVERED",
    /** Retry pickup attempt */
    PICKUP_RETRY = "PICKUP_RETRY",
    /** Operation timed out */
    TIMEOUT = "TIMEOUT",
    /** Package is lost */
    LOST = "LOST",
    /** Status update */
    UPDATE = "UPDATE",
    /** Update has been submitted */
    UPDATE_SUBMITTED = "UPDATE_SUBMITTED",
    /** Update has been created */
    UPDATE_CREATED = "UPDATE_CREATED",
    /** Return process started */
    RETURN_STARTED = "RETURN_STARTED",
    /** Package has been returned */
    RETURNED = "RETURNED",
    /** Return is pending */
    RETURN_PENDING = "RETURN_PENDING",
    /** Return has been initiated */
    RETURN_INITIATED = "RETURN_INITIATED",
    /** Operation has expired */
    EXPIRED = "EXPIRED",
    /** Cancellation requested */
    CANCEL = "CANCEL",
    /** Cancellation has been created */
    CANCEL_CREATED = "CANCEL_CREATED",
    /** Order has been canceled */
    CANCELED = "CANCELED",
    /** Failed to initialize order */
    FAILED_ORDER_INIT = "FAILED_ORDER_INIT",
    /** Failed to submit order */
    FAILED_ORDER_SUBMITTED = "FAILED_ORDER_SUBMITTED",
    /** Failed to create order */
    FAILED_ORDER_CREATED = "FAILED_ORDER_CREATED",
    /** Failed to request pickup */
    FAILED_PICKUP_REQUESTED = "FAILED_PICKUP_REQUESTED",
    /** Failed to pick up package */
    FAILED_PICKED_UP = "FAILED_PICKED_UP",
    /** Failed to deliver package */
    FAILED_DELIVERED = "FAILED_DELIVERED",
    /** Failed to submit update */
    FAILED_UPDATE_SUBMITTED = "FAILED_UPDATE_SUBMITTED",
    /** Failed to create update */
    FAILED_UPDATE_CREATED = "FAILED_UPDATE_CREATED",
    /** Failed to start return */
    FAILED_RETURN_STARTED = "FAILED_RETURN_STARTED",
    /** Failed to return package */
    FAILED_RETURNED = "FAILED_RETURNED",
    /** Failed to create cancellation */
    FAILED_CANCEL_CREATED = "FAILED_CANCEL_CREATED",
    /** Failed to cancel order */
    FAILED_CANCELED = "FAILED_CANCELED"
}
/**
 * Parameters for getting tracking information
 */
export type GetTrackingInfoParams = {
    /** Shopee's unique identifier for an order */
    order_sn: string;
    /**
     * Shopee's unique identifier for the package under an order.
     * You shouldn't fill the field with empty string when there isn't a package number.
     */
    package_number?: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Tracking information details
 */
export interface TrackingInfo {
    /** The time when logistics info has been updated */
    update_time: number;
    /** The description of order logistics tracking info */
    description: string;
    /**
     * The Shopee logistics status for the order.
     * Applicable values: See Data Definition- TrackingLogisticsStatus
     */
    logistics_status: TrackingLogisticsStatus;
}
/**
 * Response for get tracking info API
 */
export interface GetTrackingInfoResponse extends BaseResponse {
    response: {
        /** Shopee's unique identifier for an order */
        order_sn: string;
        /** Shopee's unique identifier for the package under an order */
        package_number: string;
        /**
         * The Shopee logistics status for the order.
         * Applicable values: See Data Definition- LogisticsStatus
         */
        logistics_status: LogisticsStatus;
        /** The tracking info of the order */
        tracking_info: TrackingInfo[];
    };
}
/**
 * Weight limit for logistics channel
 */
export interface WeightLimit {
    /** Max weight for an item on this logistic channel */
    item_max_weight: number;
    /** Min weight for an item on this logistic channel */
    item_min_weight: number;
}
/**
 * Dimension limit for logistics channel
 */
export interface ItemMaxDimension {
    /** Max height limit */
    height: number;
    /** Max width limit */
    width: number;
    /** Max length limit */
    length: number;
    /** Unit for the limit */
    unit: string;
    /** Sum of the item's dimension */
    dimension_sum: number;
}
/**
 * Volume limit for logistics channel
 */
export interface VolumeLimit {
    /** Max volume for an item on this logistic channel */
    item_max_volume: number;
    /** Min volume for an item on this logistic channel */
    item_min_volume: number;
}
/**
 * Size information for logistics channel
 */
export interface SizeInfo {
    /** Identity of size */
    size_id: string;
    /** Name of size */
    name: string;
    /** Pre-defined shipping fee for the specific size */
    default_price: number;
}
/**
 * Logistics capability
 */
export interface LogisticsCapability {
    /** Whether it's a Seller logistics channel */
    seller_logistics: boolean;
}
/**
 * Logistics channel information
 */
export interface LogisticsChannel {
    /** Identity of logistic channel */
    logistics_channel_id: number;
    /** Name of logistic channel */
    logistics_channel_name: string;
    /** Whether this logistic channel supports COD */
    cod_enabled: boolean;
    /** Whether this logistic channel is enabled on shop level */
    enabled: boolean;
    /** Fee type: SIZE_SELECTION, SIZE_INPUT, FIXED_DEFAULT_PRICE, CUSTOM_PRICE */
    fee_type: string;
    /** List of sizes (only for fee_type SIZE_SELECTION) */
    size_list: SizeInfo[];
    /** Weight limit for this logistic channel */
    weight_limit: WeightLimit;
    /** Dimension limit for this logistic channel */
    item_max_dimension: ItemMaxDimension;
    /** Volume limit */
    volume_limit: VolumeLimit;
    /** Description of logistics channel */
    logistics_description: string;
    /** Whether the logistic channel is force enabled on Shop Level */
    force_enable: boolean;
    /** Parent logistic channel ID */
    mask_channel_id: number;
    /** Whether the channel is blocked to use seller cover shipping fee function */
    block_seller_cover_shipping_fee?: boolean;
    /** Whether this channel support cross border shipping */
    support_cross_border?: boolean;
    /** Whether seller has set the Seller logistics configuration */
    seller_logistic_has_configuration?: boolean | null;
    /** Capability of one logistic channel */
    logistics_capability?: LogisticsCapability;
    /** Whether this channel support pre-print AWB */
    preprint?: boolean;
}
/**
 * Response for get channel list API
 */
export interface GetChannelListResponse extends BaseResponse {
    response: {
        /** List of logistics channels */
        logistics_channel_list: LogisticsChannel[];
    };
}
/**
 * Logistics channel pause status information
 */
export interface PauseStatus {
    /** Indicates whether logistics channels are paused */
    is_paused?: boolean;
    /** Auto resume time when paused */
    pause_end_time?: number;
    /** Remaining daily pause quota in seconds when not paused */
    remaining_pause_quota?: number;
}
/**
 * Response for get pause status API
 */
export interface GetPauseStatusResponse extends BaseResponse {
    response?: PauseStatus;
}
/**
 * Parameters for set pause status
 */
export type SetPauseStatusParams = {
    /** The target pause status */
    is_paused: boolean;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for set pause status API
 */
export interface SetPauseStatusResponse extends BaseResponse {
    response?: PauseStatus;
}
/**
 * Pickup time slot information
 */
export interface PickupTimeSlot {
    /** Date of pickup time (timestamp) */
    date: number;
    /** Text description of pickup time */
    time_text?: string;
    /** Identity of pickup time */
    pickup_time_id: string;
    /** Flags for recommended time slots */
    flags?: string[];
}
/**
 * Pickup address information
 */
export interface PickupAddress {
    /** Identity of address */
    address_id: number;
    /** Region of address */
    region: string;
    /** State of address */
    state: string;
    /** City of address */
    city: string;
    /** District of address */
    district: string;
    /** Town of address */
    town: string;
    /** Address description */
    address: string;
    /** Zipcode of address */
    zipcode: string;
    /** Flags of shop address */
    address_flag?: string[];
    /** List of pickup time information */
    time_slot_list?: PickupTimeSlot[];
}
/**
 * Dropoff branch information
 */
export interface DropoffBranch {
    /** Identity of logistics branch */
    branch_id: number;
    /** Region of address */
    region: string;
    /** State of address */
    state: string;
    /** City of address */
    city: string;
    /** Address description */
    address: string;
    /** Zipcode of address */
    zipcode: string;
    /** District of address */
    district: string;
    /** Town of address */
    town: string;
}
/**
 * Slug information for TW 3PL drop-off partners
 */
export interface SlugInfo {
    /** Identity of slug */
    slug: string;
    /** Name of slug */
    slug_name: string;
}
/**
 * Info needed for shipping
 */
export interface InfoNeeded {
    /** Dropoff requirements */
    dropoff?: string[];
    /** Pickup requirements */
    pickup?: string[];
    /** Non-integrated requirements */
    non_integrated?: string[];
}
/**
 * Dropoff information
 */
export interface DropoffInfo {
    /** List of available dropoff branches */
    branch_list?: DropoffBranch[];
    /** List of available TW 3PL drop-off partners */
    slug_list?: SlugInfo[];
}
/**
 * Pickup information
 */
export interface PickupInfo {
    /** List of available pickup addresses */
    address_list?: PickupAddress[];
}
/**
 * Parameters for getting shipping parameter
 */
export type GetShippingParameterParams = {
    /** Shopee's unique identifier for an order */
    order_sn: string;
    /**
     * Shopee's unique identifier for the package under an order.
     * You shouldn't fill the field with empty string when there isn't a package number.
     */
    package_number?: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get shipping parameter API
 */
export interface GetShippingParameterResponse extends BaseResponse {
    response: {
        /** Parameters required to initialize logistics */
        info_needed?: InfoNeeded;
        /** Logistics information for dropoff mode */
        dropoff?: DropoffInfo;
        /** Logistics information for pickup mode */
        pickup?: PickupInfo;
    };
}
/**
 * Parameters for getting tracking number
 */
export type GetTrackingNumberParams = {
    /** Shopee's unique identifier for an order */
    order_sn: string;
    /** Shopee's unique identifier for the package under an order */
    package_number?: string;
    /** Optional fields to include in response */
    response_optional_fields?: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get tracking number API
 */
export interface GetTrackingNumberResponse extends BaseResponse {
    response: {
        /** The tracking number of this order */
        tracking_number: string;
        /** The unique identifier for package of BR correios */
        plp_number?: string;
        /** The first mile tracking number of the order (Cross Border Seller only) */
        first_mile_tracking_number?: string;
        /** The last mile tracking number of the order (Cross Border BR seller only) */
        last_mile_tracking_number?: string;
        /** Hint information if cannot get some fields under special scenarios */
        hint?: string;
        /** Pickup code for drivers (ID local orders using instant+sameday) */
        pickup_code?: string;
    };
}
/**
 * Pickup information for ship order
 */
export interface ShipOrderPickup {
    /** Identity of address */
    address_id: number;
    /** Pickup time id */
    pickup_time_id?: string;
    /** Tracking number from third-party shipping carrier */
    tracking_number?: string;
}
/**
 * Dropoff information for ship order
 */
export interface ShipOrderDropoff {
    /** Identity of branch */
    branch_id?: number;
    /** Real name of sender */
    sender_real_name?: string;
    /** Tracking number from third-party shipping carrier */
    tracking_number?: string;
    /** Selected 3PL partner for drop-off */
    slug?: string;
}
/**
 * Non-integrated channel information for ship order
 */
export interface ShipOrderNonIntegrated {
    /** Tracking number assigned by shipping carrier */
    tracking_number?: string;
}
/**
 * Parameters for ship order
 */
export type ShipOrderParams = {
    /** Shopee's unique identifier for an order */
    order_sn: string;
    /** Shopee's unique identifier for the package under an order */
    package_number?: string;
    /** Pickup information (required if get_shipping_parameter returns "pickup") */
    pickup?: ShipOrderPickup;
    /** Dropoff information (required if get_shipping_parameter returns "dropoff") */
    dropoff?: ShipOrderDropoff;
    /** Non-integrated channel information */
    non_integrated?: ShipOrderNonIntegrated;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for ship order API
 */
export interface ShipOrderResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Address information
 */
export interface Address {
    /** Identity of address */
    address_id: number;
    /** Region of address */
    region: string;
    /** State of address */
    state: string;
    /** City of address */
    city: string;
    /** District of address */
    district: string;
    /** Town of address */
    town: string;
    /** Full address description */
    address: string;
    /** Zipcode */
    zipcode: string;
    /** Address type flags */
    address_flag?: string[];
    /** Address status */
    address_status?: string;
    /** Full address string */
    full_address?: string;
}
/**
 * Response for get address list API
 */
export interface GetAddressListResponse extends BaseResponse {
    response: {
        /** Whether to show pickup address */
        show_pickup_address: boolean;
        /** List of addresses */
        address_list: Address[];
    };
}
/**
 * Order item for batch ship order
 */
export interface BatchShipOrderItem {
    /** Shopee's unique identifier for an order */
    order_sn: string;
    /** Shopee's unique identifier for the package under an order */
    package_number?: string;
    /** Pickup information */
    pickup?: ShipOrderPickup;
    /** Dropoff information */
    dropoff?: ShipOrderDropoff;
    /** Non-integrated channel information */
    non_integrated?: ShipOrderNonIntegrated;
}
/**
 * Parameters for batch ship order
 */
export type BatchShipOrderParams = {
    /** List of order items to ship */
    order_list: BatchShipOrderItem[];
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Batch ship order result item
 */
export interface BatchShipOrderResultItem {
    /** Order serial number */
    order_sn: string;
    /** Error code if failed */
    error?: string;
    /** Error message if failed */
    message?: string;
}
/**
 * Response for batch ship order API
 */
export interface BatchShipOrderResponse extends BaseResponse {
    response?: {
        /** List of results */
        result_list?: BatchShipOrderResultItem[];
    };
}
/**
 * Parameters for mass ship order
 */
export type MassShipOrderParams = {
    /** Logistics channel ID */
    logistics_channel_id: number;
    /** Product location ID */
    product_location_id?: string;
    /** List of packages */
    package_list: Array<{
        /** Shopee's unique identifier for an order */
        order_sn: string;
        /** Shopee's unique identifier for the package under an order */
        package_number?: string;
    }>;
    /** Pickup information */
    pickup?: ShipOrderPickup;
    /** Dropoff information */
    dropoff?: ShipOrderDropoff;
    /** Non-integrated shipping information */
    non_integrated?: ShipOrderNonIntegrated;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for mass ship order API
 */
export interface MassShipOrderResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for ship booking
 */
export type ShipBookingParams = {
    /** Booking serial number */
    booking_sn: string;
    /** Pickup information */
    pickup?: ShipOrderPickup;
    /** Dropoff information */
    dropoff?: ShipOrderDropoff;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for ship booking API
 */
export interface ShipBookingResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for get booking shipping parameter
 */
export type GetBookingShippingParameterParams = {
    /** Booking serial number */
    booking_sn: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get booking shipping parameter API
 */
export interface GetBookingShippingParameterResponse extends BaseResponse {
    response: {
        /** Parameters required to initialize logistics */
        info_needed?: InfoNeeded;
        /** Logistics information for dropoff mode */
        dropoff?: DropoffInfo;
        /** Logistics information for pickup mode */
        pickup?: PickupInfo;
    };
}
/**
 * Parameters for get booking tracking info
 */
export type GetBookingTrackingInfoParams = {
    /** Booking serial number */
    booking_sn: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get booking tracking info API
 */
export interface GetBookingTrackingInfoResponse extends BaseResponse {
    response: {
        /** Booking serial number */
        booking_sn: string;
        /** Current logistics status */
        logistics_status: LogisticsStatus;
        /** Tracking info events */
        tracking_info: TrackingInfo[];
    };
}
/**
 * Parameters for get booking tracking number
 */
export type GetBookingTrackingNumberParams = {
    /** Booking serial number */
    booking_sn: string;
    /** Optional fields to include in response */
    response_optional_fields?: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get booking tracking number API
 */
export interface GetBookingTrackingNumberResponse extends BaseResponse {
    response: {
        /** The tracking number */
        tracking_number: string;
        /** Hint information */
        hint?: string;
    };
}
/**
 * Package item for mass shipping/tracking requests
 */
export type PackageListItem = {
    /** Shopee's unique identifier for the package under an order */
    package_number: string;
};
/**
 * Parameters for get mass shipping parameter
 */
export type GetMassShippingParameterParams = {
    /** Logistics channel ID (optional) */
    logistics_channel_id?: number;
    /** Product location ID (optional) */
    product_location_id?: string;
    /** List of packages to get shipping parameters for */
    package_list: PackageListItem[];
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for get mass shipping parameter API
 */
export interface GetMassShippingParameterResponse extends BaseResponse {
    response: {
        /** Parameters required */
        info_needed?: InfoNeeded;
        /** Dropoff information */
        dropoff?: DropoffInfo;
        /** Pickup information */
        pickup?: PickupInfo;
    };
}
/**
 * Parameters for get mass tracking number
 */
export type GetMassTrackingNumberParams = {
    /** List of packages to get tracking numbers for */
    package_list: PackageListItem[];
    /** Optional response fields to include (e.g. "first_mile_tracking_number") */
    response_optional_fields?: string;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Mass tracking success item
 */
export interface MassTrackingSuccessItem {
    /** Shopee's unique identifier for the package under an order */
    package_number: string;
    /** The tracking number of this order */
    tracking_number?: string;
    /** The unique identifier for package of BR correios */
    plp_number?: string;
    /** The first mile tracking number of the order */
    first_mile_tracking_number?: string;
    /** The last mile tracking number of the order */
    last_mile_tracking_number?: string;
    /** Hint information */
    hint?: string;
    /** Pickup code for instant+sameday orders */
    pickup_code?: string;
}
/**
 * Mass tracking fail item
 */
export interface MassTrackingFailItem {
    /** Shopee's unique identifier for the package under an order */
    package_number: string;
    /** Reason for failure */
    fail_reason?: string;
}
/**
 * Response for get mass tracking number API
 */
export interface GetMassTrackingNumberResponse extends BaseResponse {
    response?: {
        /** List of successfully retrieved tracking numbers */
        success_list?: MassTrackingSuccessItem[];
        /** List of packages that failed to get tracking numbers */
        fail_list?: MassTrackingFailItem[];
    };
}
/**
 * Parameters for set address config
 */
export type SetAddressConfigParams = {
    /** Whether to show pickup address */
    show_pickup_address?: boolean;
    /** Address type configuration */
    address_type_config?: Array<{
        /** Address type */
        address_type?: string;
        /** Address list */
        address_list?: Array<{
            /** Address ID */
            address_id?: number;
        }>;
    }>;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for set address config API
 */
export interface SetAddressConfigResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for delete address
 */
export type DeleteAddressParams = {
    /** Address ID to delete */
    address_id: number;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for delete address API
 */
export interface DeleteAddressResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Shipping document type enum
 */
export declare enum ShippingDocumentType {
    NORMAL_AIR_WAYBILL = "NORMAL_AIR_WAYBILL",
    THERMAL_AIR_WAYBILL = "THERMAL_AIR_WAYBILL",
    NORMAL_JOB_AIR_WAYBILL = "NORMAL_JOB_AIR_WAYBILL",
    THERMAL_JOB_AIR_WAYBILL = "THERMAL_JOB_AIR_WAYBILL"
}
/**
 * Parameters for create shipping document
 */
export type CreateShippingDocumentParams = {
    /** List of orders to create shipping document for. limit [1, 50] */
    order_list: Array<{
        /** Shopee's unique identifier for an order */
        order_sn: string;
        /** Shopee's unique identifier for the package under an order */
        package_number?: string;
        /** The tracking number of the order. Required except for channels that allow printing before arrangement */
        tracking_number?: string;
        /** The type of shipping document */
        shipping_document_type?: string;
    }>;
    /** Document type */
    shipping_document_type?: string;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for create shipping document API
 */
export interface CreateShippingDocumentResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for download shipping document
 */
export type DownloadShippingDocumentParams = {
    /** List of orders to download documents for */
    order_list: Array<{
        /** Order SN */
        order_sn: string;
        /** Package number (optional) */
        package_number?: string;
    }>;
    /** Document type */
    shipping_document_type: string;
};
/**
 * Response for download shipping document API (returns raw binary PDF)
 */
export type DownloadShippingDocumentResponse = Buffer;
/**
 * Parameters for get shipping document parameter
 */
export type GetShippingDocumentParameterParams = {
    /** List of orders to get shipping document parameters for. limit [1, 50] */
    order_list: Array<{
        /** Shopee's unique identifier for an order */
        order_sn: string;
        /** Shopee's unique identifier for the package under an order */
        package_number?: string;
    }>;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for get shipping document parameter API
 */
export interface GetShippingDocumentParameterResponse extends BaseResponse {
    response?: {
        /** Suggested document type */
        suggested_shipping_document_type?: string;
        /** Selectable document types */
        selectable_shipping_document_type?: string[];
    };
}
/**
 * Parameters for get shipping document result
 */
export type GetShippingDocumentResultParams = {
    /** List of orders to query shipping document status for. limit [1, 50] */
    order_list: Array<{
        /** Shopee's unique identifier for an order */
        order_sn: string;
        /** Shopee's unique identifier for the package under an order */
        package_number?: string;
        /** The type of shipping document */
        shipping_document_type?: string;
    }>;
    /** Document type */
    shipping_document_type?: string;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Shipping document result item
 */
export interface ShippingDocumentResultItem {
    /** Order serial number */
    order_sn: string;
    /** Result status */
    status?: string;
    /** Error message if failed */
    error?: string;
}
/**
 * Response for get shipping document result API
 */
export interface GetShippingDocumentResultResponse extends BaseResponse {
    response?: {
        /** List of results */
        result_list?: ShippingDocumentResultItem[];
    };
}
/**
 * Parameters for get shipping document data info
 */
export type GetShippingDocumentDataInfoParams = {
    /** Shopee's unique identifier for an order */
    order_sn: string;
    /** Shopee's unique identifier for the package under an order */
    package_number?: string;
    /** Recipient address information */
    recipient_address_info?: object;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get shipping document data info API
 */
export interface GetShippingDocumentDataInfoResponse extends BaseResponse {
    response?: {
        /** Document data list */
        data_list?: any[];
    };
}
/**
 * Parameters for create booking shipping document
 */
export type CreateBookingShippingDocumentParams = {
    /** List of bookings */
    booking_list: Array<{
        /** Shopee's unique identifier for a booking */
        booking_sn: string;
        /** Tracking number */
        tracking_number?: string;
        /** Shipping document type */
        shipping_document_type?: string;
    }>;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for create booking shipping document API
 */
export interface CreateBookingShippingDocumentResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for download booking shipping document
 */
export type DownloadBookingShippingDocumentParams = {
    /** List of bookings */
    booking_list: Array<{
        /** Shopee's unique identifier for a booking */
        booking_sn: string;
    }>;
    /** Document type */
    shipping_document_type: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for download booking shipping document API (returns raw binary PDF)
 */
export type DownloadBookingShippingDocumentResponse = Buffer;
/**
 * Parameters for get booking shipping document parameter
 */
export type GetBookingShippingDocumentParameterParams = {
    /** List of bookings */
    booking_list: Array<{
        /** Shopee's unique identifier for a booking */
        booking_sn: string;
    }>;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get booking shipping document parameter API
 */
export interface GetBookingShippingDocumentParameterResponse extends BaseResponse {
    response?: {
        /** Suggested document type */
        suggested_shipping_document_type?: string;
        /** Selectable document types */
        selectable_shipping_document_type?: string[];
    };
}
/**
 * Parameters for get booking shipping document result
 */
export type GetBookingShippingDocumentResultParams = {
    /** List of bookings */
    booking_list: Array<{
        /** Shopee's unique identifier for a booking */
        booking_sn: string;
        /** Shipping document type */
        shipping_document_type?: string;
    }>;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get booking shipping document result API
 */
export interface GetBookingShippingDocumentResultResponse extends BaseResponse {
    response?: {
        /** List of results */
        result_list?: any[];
    };
}
/**
 * Parameters for get booking shipping document data info
 */
export type GetBookingShippingDocumentDataInfoParams = {
    /** Shopee's unique identifier for a booking */
    booking_sn: string;
    /** Recipient address information */
    recipient_address_info?: object;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get booking shipping document data info API
 */
export interface GetBookingShippingDocumentDataInfoResponse extends BaseResponse {
    response?: {
        /** Document data list */
        data_list?: any[];
    };
}
/**
 * Parameters for create shipping document job
 */
export type CreateShippingDocumentJobParams = {
    /** Shipping document type */
    shipping_document_type: string;
    /** Unpackaged SKU requests */
    unpackaged_sku_requests?: object[];
    /** Package list */
    package_list: Array<{
        /** Shopee's unique identifier for an order */
        order_sn: string;
        /** Shopee's unique identifier for the package under an order */
        package_number?: string;
    }>;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for create shipping document job API
 */
export interface CreateShippingDocumentJobResponse extends BaseResponse {
    response?: {
        /** Job ID */
        job_id?: string;
    };
}
/**
 * Parameters for download shipping document job
 */
export type DownloadShippingDocumentJobParams = {
    /** Job ID */
    job_id: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for download shipping document job API
 */
export interface DownloadShippingDocumentJobResponse extends BaseResponse {
    response?: {
        /** Download URL */
        result?: string;
    };
}
/**
 * Parameters for get shipping document job status
 */
export type GetShippingDocumentJobStatusParams = {
    /** Job ID */
    job_id: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get shipping document job status API
 */
export interface GetShippingDocumentJobStatusResponse extends BaseResponse {
    response?: {
        /** Job status */
        status?: string;
        /** Error message if failed */
        error?: string;
    };
}
/**
 * Parameters for download to label
 */
export type DownloadToLabelParams = {
    /** Sorting group */
    sorting_group?: string;
    /** Label quantity */
    quantity?: number;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for download to label API
 */
export interface DownloadToLabelResponse extends BaseResponse {
    response?: {
        /** Download URL */
        result?: string;
    };
}
/**
 * Parameters for update channel
 */
export type UpdateChannelParams = {
    /** Logistics channel ID */
    logistics_channel_id: number;
    /** Whether to enable the channel */
    enabled?: boolean;
    /** COD enabled */
    cod_enabled?: boolean;
    /** Auto call driver setting */
    auto_call_driver_setting?: object;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for update channel API
 */
export interface UpdateChannelResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for update shipping order
 */
export type UpdateShippingOrderParams = {
    /** Order serial number */
    order_sn: string;
    /** Package number */
    package_number?: string;
    /** Pickup information */
    pickup?: ShipOrderPickup;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for update shipping order API
 */
export interface UpdateShippingOrderResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for update tracking status
 */
export type UpdateTrackingStatusParams = {
    /** Order serial number */
    order_sn: string;
    /** Tracking number */
    tracking_number?: string;
    /** Tracking URL */
    tracking_url?: string;
    /** Logistics status */
    logistics_status?: string;
    /** Failed reason */
    failed_reason?: string;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for update tracking status API
 */
export interface UpdateTrackingStatusResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for update self collection order logistics
 */
export type UpdateSelfCollectionOrderLogisticsParams = {
    /** Package number */
    package_number: string;
    /** Self collection logistics action */
    self_collection_logistics_action?: string;
    /** EPOC image list */
    epoc_image_list?: string[];
    /** PIN */
    pin?: string;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for update self collection order logistics API
 */
export interface UpdateSelfCollectionOrderLogisticsResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for get operating hours
 */
export type GetOperatingHoursParams = Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get operating hours API
 */
export interface GetOperatingHoursResponse extends BaseResponse {
    response?: {
        /** Operating hours data */
        operating_hours?: any[];
    };
}
/**
 * Parameters for update operating hours
 */
export type UpdateOperatingHoursParams = {
    /** Regular operating hours */
    regular_operating_hour?: any[];
    /** Special operating hours */
    special_operating_hour?: any[];
    /** Instant operating hours */
    instant_operating_hour?: any[];
    /** Shop collection operating hours */
    shop_collection_operating_hour?: any[];
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for update operating hours API
 */
export interface UpdateOperatingHoursResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for get operating hour restrictions
 */
export type GetOperatingHourRestrictionsParams = Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get operating hour restrictions API
 */
export interface GetOperatingHourRestrictionsResponse extends BaseResponse {
    response?: {
        /** Restrictions data */
        restrictions?: any[];
    };
}
/**
 * Parameters for delete special operating hour
 */
export type DeleteSpecialOperatingHourParams = {
    /** Name */
    name?: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for delete special operating hour API
 */
export interface DeleteSpecialOperatingHourResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for get mart packaging info
 */
export type GetMartPackagingInfoParams = {
    /** Order serial number */
    order_sn: string;
} & Record<string, string | number | boolean | null | undefined>;
/**
 * Response for get mart packaging info API
 */
export interface GetMartPackagingInfoResponse extends BaseResponse {
    response?: {
        /** Packaging info */
        packaging_info?: any;
    };
}
/**
 * Parameters for set mart packaging info
 */
export type SetMartPackagingInfoParams = {
    /** Enable mart packaging info */
    enable?: boolean;
    /** Packaging dimension */
    dimension?: {
        length?: number;
        width?: number;
        height?: number;
    };
    /** Packaging fee */
    packaging_fee?: number;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for set mart packaging info API
 */
export interface SetMartPackagingInfoResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * TPF tracking status item
 */
export interface TPFTrackingStatusItem {
    /** Package number */
    package_number: string;
    /** Tracking status */
    tracking_status: string;
}
/**
 * Parameters for batch update TPF warehouse tracking status
 */
export type BatchUpdateTPFWarehouseTrackingStatusParams = {
    /** Third-party fulfillment name */
    tpf_name?: string;
    /** Third-party fulfillment tracking status */
    tpf_tracking_status?: string;
    /** Package list */
    package_list: TPFTrackingStatusItem[];
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for batch update TPF warehouse tracking status API
 */
export interface BatchUpdateTPFWarehouseTrackingStatusResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for check polygon update status
 */
export type CheckPolygonUpdateStatusParams = {
    /** ID that needs to be checked. Please pass the task_id returned via the v2.logistics.upload_serviceable_polygon. */
    task_id: string;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for check polygon update status API
 */
export interface CheckPolygonUpdateStatusResponse extends BaseResponse {
    response?: {
        /** Serviceable polygon file upload status. 0: Task completed, 1: Task in progress, 2: KML file related errors */
        status?: number;
        /** Details of the upload status, e.g "task in progress" */
        message?: string;
    };
}
/**
 * Parameters for update address
 */
export type UpdateAddressParams = {
    /** Unique identifier for the address. You can get the address_id via v2.logistics.get_address_list. */
    address_id: number;
    /** The region of the address. Note: Do not allow to update the region of the address. */
    region?: string;
    /** The state of the address. */
    state?: string;
    /** The city of the address. */
    city?: string;
    /** The district of the address. */
    district?: string;
    /** The town of the address. */
    town?: string;
    /** The detailed address description of the address. */
    address?: string;
    /** The zipcode of the address. */
    zipcode?: string;
    /** Recipient's name at this address. */
    name?: string;
    /** Contact phone number for the recipient. */
    phone?: string;
    /** Geolocation information for the address. Type: JSON string. To clear existing geo info, pass "" or {}. To keep existing geo info, do not include this field. */
    geo_info?: string;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for update address API
 */
export interface UpdateAddressResponse extends BaseResponse {
    response?: Record<string, never>;
}
/**
 * Parameters for upload serviceable polygon
 */
export type UploadServiceablePolygonParams = {
    /** The .kml file to be uploaded to denote the serviceability area of the shops. */
    file: File | Blob;
} & Record<string, string | number | boolean | object | null | undefined>;
/**
 * Response for upload serviceable polygon API
 */
export interface UploadServiceablePolygonResponse extends BaseResponse {
    response?: {
        /** Use the task_id to call v2.logistics.check_polygon_update_status to check if the upload job has been completed. */
        task_id?: string;
    };
}
