export interface ClientOptions { apiKey?: string | null; baseUrl?: string; fetch?: typeof globalThis.fetch; clientName?: string; clientVersion?: string; acquisitionChannel?: string | null; retries?: number; }
export interface UploadOptions { filename?: string; mimeType?: string; idempotencyKey?: string; }
export interface RunOptions { fileIds?: string[]; parameters?: Record<string, unknown>; maxCostMicrousd?: number; deadlineSeconds?: number; allowPartial?: boolean; idempotencyKey?: string; }
export interface AgentEvidenceOptions { maxTokens?: number; limit?: number; }
export interface AccessibilityRepairOptions { language?: string; title?: string; execute?: boolean; idempotencyKey?: string; }
export interface ModelReadyOptions { execute?: boolean; dpi?: number; languages?: string[]; linearize?: boolean; maxOutputBytes?: number; idempotencyKey?: string; }
export interface SourceWatchOptions { name?: string; intervalSeconds?: number; maxBytes?: number; idempotencyKey?: string; }
export declare class PDFCentralError extends Error { status: number; code: string; requestId: string | null; retryable: boolean; details: unknown; }
export declare class PDFCentralClient {
  apiKey: string | null;
  baseUrl: string;
  constructor(options?: ClientOptions);
  setApiKey(apiKey: string): this;
  request(path: string, options?: Record<string, unknown>): Promise<any>;
  capabilities(options?: { availableOnly?: boolean; summary?: boolean }): Promise<any>;
  createGuestSession(options?: { acquisitionChannel?: string | null }): Promise<any>;
  limits(): Promise<any>;
  status(): Promise<any>;
  recipes(): Promise<any>;
  doctor(): Promise<any>;
  listApiKeys(): Promise<any>;
  createApiKey(scopes: string[], options?: { expiresAt?: string; idempotencyKey?: string }): Promise<any>;
  rotateApiKey(credentialId: string, options?: { scopes?: string[]; expiresAt?: string; idempotencyKey?: string }): Promise<any>;
  revokeApiKey(credentialId: string): Promise<any>;
  upload(file: Uint8Array | ArrayBuffer | ArrayBufferView | Blob, options?: UploadOptions): Promise<any>;
  importUrl(sourceUrl: string, options?: UploadOptions & { expectedSha256?: string }): Promise<any>;
  process(options?: { recipe?: string; fileIds?: string[]; sourceUrl?: string; parameters?: Record<string, unknown>; maxCostMicrousd?: number; allowOcr?: boolean; idempotencyKey?: string }): Promise<any>;
  createBatch(tasks: any[], options?: { maxCostMicrousd?: number; idempotencyKey?: string }): Promise<any>;
  getBatch(batchId: string): Promise<any>;
  listCollections(): Promise<any>;
  createCollection(name: string, options?: { idempotencyKey?: string }): Promise<any>;
  addCollectionDocument(collectionId: string, fileId: string, options?: { documentKey?: string; idempotencyKey?: string }): Promise<any>;
  getCollectionChanges(collectionId: string, options?: { after?: string; limit?: number }): Promise<any>;
  searchCollection(collectionId: string, query: string, options?: { limit?: number; idempotencyKey?: string }): Promise<any>;
  deleteCollection(collectionId: string): Promise<any>;
  compareDocuments(beforeFileId: string, afterFileId: string, options?: { idempotencyKey?: string }): Promise<any>;
  classifyBundle(fileId: string, options?: { createFiles?: boolean; idempotencyKey?: string }): Promise<any>;
  createReview(artifactId: string, corrections: any[], options?: { reason?: string; parentReviewId?: string; authorizationRef?: string; saveRule?: boolean; idempotencyKey?: string }): Promise<any>;
  listReviews(artifactId: string): Promise<any>;
  getReview(reviewId: string): Promise<any>;
  changeReviewState(reviewId: string, action: "revoke" | "restore", options?: { reason?: string; idempotencyKey?: string }): Promise<any>;
  agentAnalyze(endpoint: string, body: Record<string, unknown>, options?: { idempotencyKey?: string }): Promise<any>;
  preparePdfForAgent(fileId: string): Promise<any>;
  detectPdfAgentThreats(fileId: string): Promise<any>;
  extractPdfToSchema(fileId: string, fieldSchema: Record<string, unknown>, options?: { options?: Record<string, unknown> }): Promise<any>;
  retrievePdfEvidence(fileId: string, query: string | Array<Record<string, unknown>>, options?: AgentEvidenceOptions): Promise<any>;
  verifyPdfClaims(fileId: string, claims: Array<Record<string, unknown>>, options?: { minimumCoverage?: number }): Promise<any>;
  answerDocument(fileId: string, question: string | Array<Record<string, unknown>>, options?: AgentEvidenceOptions): Promise<any>;
  reconcileDocumentSet(fileIds: string[]): Promise<any>;
  checkDocumentRequirements(fileId: string, requirements: Array<Record<string, unknown>>): Promise<any>;
  extractActionsAndDeadlines(fileId: string): Promise<any>;
  extractPdfVisualCandidates(fileId: string): Promise<any>;
  auditPdfAccessibility(fileId: string): Promise<any>;
  repairPdfAccessibilityMetadata(fileId: string, options?: AccessibilityRepairOptions): Promise<any>;
  planPdfRedactions(fileId: string, policy: Record<string, unknown>): Promise<any>;
  makePdfModelReady(fileId: string, options?: ModelReadyOptions): Promise<any>;
  createSourceWatch(sourceUrl: string, options?: SourceWatchOptions): Promise<any>;
  listSourceWatches(): Promise<any>;
  getSourceWatch(watchId: string): Promise<any>;
  deleteSourceWatch(watchId: string): Promise<any>;
  pollSourceWatch(watchId: string): Promise<any>;
  getSourceWatchEvents(watchId: string, options?: { limit?: number }): Promise<any>;
  run(operation: string, options?: RunOptions): Promise<any>;
  getJob(jobId: string): Promise<any>;
  waitForJob(jobId: string, options?: { intervalMs?: number; timeoutMs?: number }): Promise<any>;
  getArtifact(artifactId: string): Promise<any>;
  getArtifactRecords(artifactId: string): Promise<any>;
  downloadFile(fileId: string): Promise<Uint8Array>;
  extractText(file: Uint8Array | ArrayBuffer | ArrayBufferView | Blob, options?: UploadOptions & Record<string, any>): Promise<{ file: any; job: any; records: any[] }>;
  readDocument(fileOrUrl: Uint8Array | ArrayBuffer | ArrayBufferView | Blob | string, options?: UploadOptions & Record<string, any>): Promise<{ file: any; job: any; records: any[] }>;
}
export declare const createClient: (options?: ClientOptions) => PDFCentralClient;
