import { z } from 'zod'; import { ia, Mediatype, UpdateItemRequestData, UpdateItemRequestPatch, CreateItemRequestHeaders, UploadFileHeaders } from './schema.js'; export type IaOptions = z.infer; export type Mediatype = z.infer; export type CreateItemRequestHeaders = z.infer; export type UpdateItemParams = Record; export type UpdateItemRequestPatch = z.infer; export type UpdateItemRequestData = z.infer; export type UploadFileHeaders = z.infer; export interface CreateItemParams { identifier: string; collection: string; mediatype: Mediatype; upload: FileUpload; metadata?: Record; } export interface CreateItemResponse { identifier: string; metadata: Record; upload: { filename: string; }; } export interface UpdateItemResponse { success: boolean; error?: string; task_id?: number; log?: string; } export interface GetItemsParams { filters?: { collection?: string; subject?: string; creator?: string; }; options?: { fields?: string; rows?: number; }; } export interface GetItemsResponse { responseHeader: { status: number; QTtime: number; params: Record; }; response: { numFound: number; start: 0; docs: Record[]; }; } export interface GetItemResponse { created: number; d1: string; d2: string; dir: string; files: Record[]; files_count: number; metadata: Record; server: string; uniq: number; workable_servers: string[]; } export interface FileUpload { filename: string; path?: string; data?: Buffer; } export interface UploadFileParams { identifier: string; mediatype: Mediatype; file: FileUpload; } export interface GetItemTasksResponse { succes: boolean; value: Record; } /** * @see {@link https://archive.org/developers/tasks.html#criteria Archive.org - Tasks API - Criteria} */ export interface TaskCriteria { task_id?: number; server?: string; cmd?: string; args?: string; submitter?: string; priority?: number; wait_admin?: number; }