import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js"; import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js"; import * as core from "../../../../core/index.js"; import * as SarvamAI from "../../../index.js"; import { DocumentIntelligenceJob, type DocumentIntelligenceJobOptions } from "../DocumentIntelligenceJob.js"; export declare namespace DocumentIntelligenceClient { interface Options extends BaseClientOptions { } interface RequestOptions extends BaseRequestOptions { } } export declare class DocumentIntelligenceClient { protected readonly _options: NormalizedClientOptionsWithAuth; constructor(options?: DocumentIntelligenceClient.Options); /** * Creates a new document intelligence job. * * **Supported Languages (BCP-47 format):** * - `hi-IN`: Hindi (default) * - `en-IN`: English * - `bn-IN`: Bengali * - `gu-IN`: Gujarati * - `kn-IN`: Kannada * - `ml-IN`: Malayalam * - `mr-IN`: Marathi * - `or-IN`: Odia * - `pa-IN`: Punjabi * - `ta-IN`: Tamil * - `te-IN`: Telugu * - `ur-IN`: Urdu * - `as-IN`: Assamese * - `bodo-IN`: Bodo * - `doi-IN`: Dogri * - `ks-IN`: Kashmiri * - `kok-IN`: Konkani * - `mai-IN`: Maithili * - `mni-IN`: Manipuri * - `ne-IN`: Nepali * - `sa-IN`: Sanskrit * - `sat-IN`: Santali * - `sd-IN`: Sindhi * * **Output Formats:** * - `html`: Structured HTML with layout preservation (default) * - `md`: Markdown format * * **Prompt Types:** * Customize how specific content types are processed: * - `default_ocr`: Standard text extraction (default for all text blocks) * - `table_to_html`: Convert tables to HTML format * - `table_to_markdown`: Convert tables to Markdown format * - `chart_to_markdown`: Extract chart data as Markdown table * - `chart_to_json`: Extract chart data as JSON * - `describe_image`: Generate image caption * - `caption_en`: Same as describe_image (English) * - `caption_in`: Caption in document language * * **Webhook Callback:** * Optionally provide a callback URL to receive notification when processing completes. * * @param {SarvamAI.DocumentIntelligenceJobRequest} request * @param {DocumentIntelligenceClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link SarvamAI.BadRequestError} * @throws {@link SarvamAI.ForbiddenError} * @throws {@link SarvamAI.TooManyRequestsError} * @throws {@link SarvamAI.InternalServerError} * @throws {@link SarvamAI.ServiceUnavailableError} * * @example * await client.documentIntelligence.initialise() */ initialise(request?: SarvamAI.DocumentIntelligenceJobRequest, requestOptions?: DocumentIntelligenceClient.RequestOptions): core.HttpResponsePromise; /** * Creates a new document intelligence job with a fluent API (matching Python SDK). * * Returns a {@link DocumentIntelligenceJob} instance with convenience methods: * - `uploadFile(path)` - Upload a file * - `start()` - Start processing * - `waitUntilComplete()` - Poll until done * - `getPageMetrics()` - Get processing metrics * - `downloadOutput(path)` - Download results * * @param {DocumentIntelligenceJobOptions} options - Job configuration options * @param {DocumentIntelligenceClient.RequestOptions} requestOptions - Request-specific configuration * * @example * ```typescript * const job = await client.documentIntelligence.createJob({ * language: "hi-IN", * outputFormat: "html" * }); * * await job.uploadFile("./document.pdf"); * await job.start(); * const status = await job.waitUntilComplete(); * console.log(`Completed: ${status.job_state}`); * * const metrics = job.getPageMetrics(); * console.log(`Processed ${metrics.pagesSucceeded} pages`); * * await job.downloadOutput("./output.html"); * ``` */ createJob(options?: DocumentIntelligenceJobOptions, requestOptions?: DocumentIntelligenceClient.RequestOptions): Promise; private __initialise; /** * Returns presigned URLs for uploading input files. * * **File Constraints:** * - Exactly one file required (PDF or ZIP) * - PDF files: `.pdf` extension * - ZIP files: `.zip` extension * * @param {SarvamAI.DocDigitizationUploadFilesRequest} request * @param {DocumentIntelligenceClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link SarvamAI.BadRequestError} * @throws {@link SarvamAI.ForbiddenError} * @throws {@link SarvamAI.TooManyRequestsError} * @throws {@link SarvamAI.InternalServerError} * @throws {@link SarvamAI.ServiceUnavailableError} * * @example * await client.documentIntelligence.getUploadLinks({ * job_id: "job_id", * files: ["files"] * }) */ getUploadLinks(request: SarvamAI.DocDigitizationUploadFilesRequest, requestOptions?: DocumentIntelligenceClient.RequestOptions): core.HttpResponsePromise; private __getUploadLinks; /** * Validates the uploaded file and starts processing. * * **Validation Checks:** * - File must be uploaded before starting * - File size must not exceed 200 MB * - PDF must be parseable by the PDF parser * - ZIP must contain only JPEG/PNG images * - ZIP must be flat (no nested folders beyond one level) * - ZIP must contain at least one valid image * - Page/image count must not exceed 500 * - User must have sufficient credits * * **Processing:** * Job runs asynchronously. Poll the status endpoint or use webhook callback for completion notification. * * @param {string} job_id - The unique identifier of the job * @param {DocumentIntelligenceClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link SarvamAI.BadRequestError} * @throws {@link SarvamAI.ForbiddenError} * @throws {@link SarvamAI.TooManyRequestsError} * @throws {@link SarvamAI.InternalServerError} * @throws {@link SarvamAI.ServiceUnavailableError} * * @example * await client.documentIntelligence.start("job_id") */ start(job_id: string, requestOptions?: DocumentIntelligenceClient.RequestOptions): core.HttpResponsePromise; private __start; /** * Returns the current status of a job with page-level metrics. * * **Job States:** * - `Accepted`: Job created, awaiting file upload * - `Pending`: File uploaded, waiting to start * - `Running`: Processing in progress * - `Completed`: All pages processed successfully * - `PartiallyCompleted`: Some pages succeeded, some failed * - `Failed`: All pages failed or job-level error * * **Page Metrics:** * Response includes detailed progress: total pages, pages processed, succeeded, failed, and per-page errors. * * @param {string} job_id - The unique identifier of the job * @param {DocumentIntelligenceClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link SarvamAI.BadRequestError} * @throws {@link SarvamAI.ForbiddenError} * @throws {@link SarvamAI.TooManyRequestsError} * @throws {@link SarvamAI.InternalServerError} * @throws {@link SarvamAI.ServiceUnavailableError} * * @example * await client.documentIntelligence.getStatus("job_id") */ getStatus(job_id: string, requestOptions?: DocumentIntelligenceClient.RequestOptions): core.HttpResponsePromise; private __getStatus; /** * Returns presigned URLs for downloading output files. * * **Prerequisites:** * - Job must be in `Completed` or `PartiallyCompleted` state * - Failed jobs have no output available * * @param {string} job_id - The unique identifier of the job * @param {DocumentIntelligenceClient.RequestOptions} requestOptions - Request-specific configuration. * * @throws {@link SarvamAI.BadRequestError} * @throws {@link SarvamAI.ForbiddenError} * @throws {@link SarvamAI.TooManyRequestsError} * @throws {@link SarvamAI.InternalServerError} * @throws {@link SarvamAI.ServiceUnavailableError} * * @example * await client.documentIntelligence.getDownloadLinks("job_id") */ getDownloadLinks(job_id: string, requestOptions?: DocumentIntelligenceClient.RequestOptions): core.HttpResponsePromise; private __getDownloadLinks; }