import type { AnalysisBatchResult, AnalysisOptions, StockInput } from "./types.js"; export declare const DEFAULT_API_BASE_URL = "https://quote-test-api.yoxiang.cn"; export declare const DEFAULT_RESULT_BASE_URL = "https://test.yoxiang.cn"; export declare const MAX_FILE_BYTES = 10485760; export declare const MAX_CONCURRENT_PARTS = 5; export declare const DEFAULT_ANALYSIS_INPUT: { readonly material: "6061"; readonly process: "cnc-machining"; readonly tolerance: "ISO2768-m"; readonly surfaceRoughness: "Ra3.2"; }; export declare class CliError extends Error { readonly exitCode: number; readonly details?: unknown | undefined; constructor(message: string, exitCode: number, details?: unknown | undefined); } export interface SubmitAnalysisInput { filePaths: string[]; material?: string; process?: string; tolerance?: string; surfaceRoughness?: string; stock?: StockInput; } interface ClientOptions { baseUrl?: string; resultBaseUrl?: string; fetchImpl?: typeof fetch; pollIntervalMs?: number; } interface InspectedFile { path: string; realPath: string; name: string; size: number; sha256: string; } export declare class AnalysisClient { private readonly baseUrl; private readonly resultBaseUrl; private readonly fetchImpl; private readonly pollIntervalMs; constructor(options?: ClientOptions); options(): Promise; submitBatch(input: SubmitAnalysisInput): Promise; batchStatus(batchId: string): Promise; waitBatch(batchId: string, timeoutMs?: number, onPoll?: (result: AnalysisBatchResult) => void): Promise; private decorateBatch; private upload; private request; } export declare function inspectFile(filePath: string): Promise; export declare function inspectFiles(filePaths: string[]): Promise; export declare function isBatchTerminal(status: AnalysisBatchResult["status"]): boolean; export {};