import {z} from 'zod'
export type GetApiProductPartsArgs = {limit?: number | undefined, offset?: number | undefined, order?: ('last_updated' | 'part_number' | 'part_status' | '1ku_price' | 'stock') | undefined, orderDirection?: string | undefined, part_number_prefix?: string | undefined, part_number?: string | undefined, part_status?: ('Active' | 'Preview' | 'NRND' | 'Not Recommended for New Designs' | 'Not Recommended
for New Designs' | 'Obsolete') | undefined, generic_product_id?: string | undefined, product_family?: string | undefined};
export type GetApiProductPartsOptions = {baseUrl?: string | undefined, ApiKeyAuth?: string | undefined, fetch?: typeof fetch | undefined};
export const productPart = z.object({orderableId: z.string().optional(), productCategory: z.string().optional(), firstProductSubcategory: z.string().optional(), genericId: z.string().optional(), genericTitle: z.string().optional(), genericUrl: z.string().optional(), productFamily: z.string().optional(), "1kuPrice": z.number().nullable().optional(), budgetaryPrice: z.array(z.object({units: z.number().int().optional(), price: z.number().optional(), currency: z.string().optional()})).optional(), status: z.enum(["Active", "Obsolete", "NRND"]).optional(), type: z.string().optional(), description: z.string().optional(), class: z.string().nullable().optional(), category: z.string().nullable().optional(), leadCount: z.number().int().gte(0).optional(), dimensions: z.object({length: z.number().nullable().optional(), width: z.number().nullable().optional(), thickness: z.number().nullable().optional(), pitch: z.number().nullable().optional()}).optional(), peakReflowTemperature: z.string().nullable().optional(), leadFree: z.boolean().optional(), partAvailability: z.string().optional(), featuredDocument: z.object({documentTitle: z.string().optional(), documentUrl: z.string().optional()}).optional(), images: z.array(z.string()).optional(), chipImage: z.string().nullable().optional(), regulatory: z.object({htsus: z.string().nullable().optional(), eccn: z.string().nullable().optional(), moistureSensitivityLevel: z.string().nullable().optional(), rohsCompliant: z.boolean().optional(), chinaRohsCompliant: z.boolean().optional(), hazardousMaterials: z.object({mercury: z.boolean().optional(), lead: z.boolean().optional(), halogen: z.boolean().optional(), cadmium: z.boolean().optional(), hexavalentChromium: z.boolean().optional(), pbde: z.boolean().optional(), pbb: z.boolean().optional()}).optional()}).optional(), lifecycle: z.string().optional(), alternative: z.object({alternativeGenericId: z.string().nullable().optional(), alternativeNote: z.string().nullable().optional()}).optional(), packaging: z.object({package: z.object({packageCode: z.string().optional(), href: z.string().optional()}).optional(), carrierType: z.string().optional(), packageCode: z.string().optional(), pbFreeCategory: z.string().optional(), jedecStandard: z.string().optional(), quantityPerCarrier: z.number().int().gte(0).optional(), quantityPerReel: z.number().int().gte(0).nullable().optional(), reelSize: z.string().nullable().optional(), tapePin1Quad: z.string().nullable().optional(), tapePocketPitch: z.number().nullable().optional(), packageUrl: z.string().optional(), packageDescription: z.string().optional(), packageName: z.string().optional(), prevCode: z.string().nullable().optional()}).optional(), plp: z.string().nullable().optional(), sampleable: z.boolean().optional(), directBuy: z.boolean().optional(), replacementProduct: z.string().nullable().optional(), replacementProductRemark: z.string().nullable().optional(), distiInventory: z.object({value: z.record(z.string(), z.object({part: z.string().optional(), quantity: z.number().int().gte(0).optional(), distributorName: z.string().optional(), shoppingCartUrl: z.string().optional()})).optional(), updated: z.string().optional(), inStock: z.number().int().gte(0).lte(1).optional(), quantity: z.number().int().gte(0).optional()}).optional(), cadModel: z.array(z.object({cadSoftware: z.string().optional(), url: z.string().optional(), providedBy: z.string().optional(), agileId: z.string().optional(), dcpDocumentId: z.string().nullable().optional(), title: z.string().optional(), type: z.string().optional(), language: z.string().optional(), href: z.string().optional()})).optional(), parametricAttributes: z.array(z.object({productPartAttributeId: z.string(), attributeName: z.string(), href: z.string(), attributeValues: z.array(z.union([z.string(), z.number(), z.boolean()])), attributeValuesParsed: z.array(z.object({type: z.enum(["GP", "BK", "DOC", "OP", "URL"]).optional(), value: z.string().optional(), href: z.string().optional(), url: z.string().optional()})).optional()})).optional()});
export const getApiProductPartsResponse = z.object({data: z.array(productPart).optional(), pagination: z.object({offset: z.number().int().optional(), limit: z.number().int().optional(), total: z.number().int().optional(), has_more: z.boolean().optional()}).optional()});
export const validateResponse = async