import HttpClient from './HttpClient.js'; import { type IaOptions, Mediatype, FileUpload, CreateItemResponse, UpdateItemParams, UpdateItemResponse, GetItemResponse, GetItemTasksResponse, TaskCriteria, GetItemsResponse, GetItemsParams } from './types.js'; export * from './types.js'; declare class InternetArchive { token?: string | null; options?: IaOptions; httpClient: HttpClient; static default: typeof InternetArchive; /** * Provides access to Internet Archive APIs through methods * * @param token - {@link https://archive.org/developers/tutorial-get-ia-credentials.html S3-like API Key} formatted as "accesskey:secretkey" (required for all methods except getItem or getItems) * @param options - InternetArchive API options * @param options.testmode - Option to add item to {@link https://archive.org/details/test_collection Test Collection} (auto deletes in 30 days) - default FALSE * @param options.setScanner - option to add scanner metadata for internetarchive-sdk-js - default TRUE * @see {@link https://archive.org/developers/tutorial-get-ia-credentials.html Archive.org - Get your Internet Archive credentials} * @see {@link https://archive.org/details/test_collection Archive.org - Test Collection} */ constructor(token?: string, options?: IaOptions); /** * Creates an Item in a Collection (Uploads a file and adds metadata). * * @param item - identifier, collection, mediatype, upload, metadata. * @param item.identifier - The unique identifier for the item. * @param item.collection - The collection that the item belongs to. * @param item.mediatype - The item mediatype. * @param item.upload - The item upload. * @param item.metadata - The item metadata (optional). * @returns The item identifier, metadata, and upload filename. * * @see {@link https://archive.org/developers/ias3.html Archive.org - ias3 Internet archive S3-like API} */ createItem(item: { identifier: string; collection: string; mediatype: Mediatype; upload: FileUpload; metadata?: Record; }): Promise; /** * Returns Items based on filters and options. * * @param items - filters (collection, subject, creator) and options (fields, rows). * @param items.filters - Filter by collection, subject, creator. * @param items.options - Options to specify fields returned and amount of items. * @returns The responseHeader and response with items as docs. * * @see {@link https://archive.org/advancedsearch.php Archive.org - Advanced Search API} */ getItems(items: GetItemsParams): Promise; /** * Returns an Item by identifier. * * @param identifier - The unique identifier for the item. * @returns Item metadata, file paths, and other info. * * @see {@link https://archive.org/developers/metadata.html Archive.org - Item Metadata API API} */ getItem(identifier: string): Promise; /** * Updates an Item by identifier and metadata. * * @param identifier - The unique identifier for the item. * @param metadata - The item metadata. * @returns Update response (success, error, task_id, log). * * @see {@link https://archive.org/developers/metadata.html Archive.org - Item Metadata API API} */ updateItem(identifier: string, metadata: UpdateItemParams): Promise; /** * Uploads a File to a parent Item. * * @param upload - identifier, mediatype, file. * @param upload.identifier - The unique identifier of the parent item. * @param upload.mediatype - The upload mediatype. * @param upload.file - The upload file. * * @see {@link https://archive.org/developers/ias3.html Archive.org - ias3 Internet archive S3-like API} */ uploadFile(upload: { identifier: string; mediatype: Mediatype; file: FileUpload; }): Promise; /** * Deletes a File from an Item. * * @param path - The path of the file [identifier/filename]. * * @see {@link https://archive.org/developers/ias3.html Archive.org - ias3 Internet archive S3-like API} */ deleteFile(path: string): Promise; /** * Returns Tasks from an Item. * * @param identifier - identifier, mediatype, file. * @param criteria - Parameters to filter item tasks. * * @see {@link https://archive.org/developers/tasks.html Archive.org - Tasks API} */ getItemTasks(identifier: string, criteria?: TaskCriteria): Promise; } export default InternetArchive;