import { type EnvConfig } from '../../config/env.js'; interface JlcPcbLayerConfig { layerId: number; copperWeight: string; thickness?: number; } interface JlcPcbStencilConfig { included: boolean; type?: 'top' | 'bottom' | 'both'; } export interface JlcPcbOrderRequest { boardCount: number; layers: number; width: number; height: number; color?: string; surfaceFinish?: string; copperWeight?: string; boardThickness?: number; impedance?: boolean; solderMask?: string; silkscreen?: string; stencil?: JlcPcbStencilConfig; layerConfig?: JlcPcbLayerConfig[]; deliveryTime?: string; pcbQty?: number; } export interface JlcPcbQuoteResult { total: number; currency: string; breakdown: Array<{ item: string; cost: number; }>; } export interface JlcPcbOrderResult { orderId: string; } export interface JlcPcbOrderStatus { status: string; details: unknown; } export interface JlcPcbCapability { feature: string; supported: boolean; constraints?: string; } export declare class JlcpcbClient { private config; private logger; private baseUrl; constructor(config: EnvConfig); private authHeaders; private requestWithRetry; /** * Request a quotation for a PCB order from JLCPCB. * @param request - The PCB order specification * @returns Quote result with total cost and breakdown */ getQuote(request: JlcPcbOrderRequest): Promise; /** * Paid/order-like operations are intentionally unsupported by this MCP package. * Use the quote gating workflow to prepare audit evidence, then complete procurement outside the agent. */ placeOrder(_request: JlcPcbOrderRequest): Promise; /** * Get the current status of an existing JLCPCB order. * @param orderId - The JLCPCB order ID * @returns Order status and details */ getOrderStatus(orderId: string): Promise; /** * Check JLCPCB capabilities for a given board specification. * @param boardSpec - Board specification to check * @returns Array of capability results */ checkCapabilities(boardSpec: Partial): Promise; } export {};