/** * Trove (National Library of Australia) API Client * * The Trove API v3 provides access to the National Library's digitised * collections including newspapers, books, images, maps, and more. * * API Documentation: https://trove.nla.gov.au/about/create-something/using-api/v3/api-technical-guide * API Console: https://troveconsole.herokuapp.com/ */ import { BaseClient } from '../../core/base-client.js'; import { type TroveSearchParams, type TroveSearchResult, type TroveNewspaperTitle, type TroveTitleDetail, type TroveArticleDetail, type TroveState, type TroveContributor, type TroveMagazineTitle, type TroveWorkDetail, type TrovePerson, type TrovePersonSearchResult, type TroveList, type TroveMagazineTitleDetail, type TroveRecLevel, type TroveIncludeOption } from './types.js'; export declare class TroveClient extends BaseClient { private readonly apiKey; constructor(apiKey?: string); /** * Search across Trove categories */ search(params: TroveSearchParams): Promise; /** * Get a newspaper article by ID */ getNewspaperArticle(articleId: string, includeText?: boolean): Promise; /** * Get a gazette article by ID */ getGazetteArticle(articleId: string, includeText?: boolean): Promise; /** * List newspaper titles */ listNewspaperTitles(state?: TroveState): Promise; /** * List gazette titles */ listGazetteTitles(state?: string): Promise; /** * Get details of a specific newspaper/gazette title */ getTitleDetails(titleId: string, options?: { includeYears?: boolean; dateRange?: { from: string; to: string; }; type?: 'newspaper' | 'gazette'; }): Promise; /** * Check if API key is configured */ hasApiKey(): boolean; /** * Get contributor (library/archive) details by NUC code */ getContributor(nuc: string): Promise; /** * List magazine titles */ listMagazineTitles(): Promise; /** * Get a work by ID (books, images, maps, music, archives) */ getWork(workId: string, options?: { reclevel?: TroveRecLevel; include?: TroveIncludeOption[]; }): Promise; /** * Get a user-curated list by ID */ getList(listId: string, options?: { include?: ('listitems')[]; }): Promise; /** * Get a person or organisation by ID */ getPerson(personId: string, options?: { reclevel?: TroveRecLevel; }): Promise; /** * List or search contributors (libraries, archives, institutions) */ listContributors(options?: { query?: string; reclevel?: TroveRecLevel; }): Promise; /** * Get magazine title details with years/issues */ getMagazineTitle(titleId: string, options?: { includeYears?: boolean; dateRange?: string; }): Promise; /** * Search for people and organisations */ searchPeople(query: string, options?: { limit?: number; start?: string; type?: 'Person' | 'Organisation' | 'Family'; }): Promise; private fetchWithAuth; private parseSearchResponse; private parseFacets; private parseArticle; private parseArticleDetail; private parseWork; private parseComments; private parseNewspaperTitles; private parseTitleDetail; private extractThumbnail; private parseContributor; private parseMagazineTitles; private parseWorkDetail; private parseHoldings; private extractHoldingUrl; private extractCallNumber; private extractLanguage; private extractBiography; private extractContributorList; private parseLinks; private parseVersions; private extractIdentifier; private parseList; private extractListDate; private parseListItems; private parsePerson; private parseContributorList; private parseMagazineTitleDetail; private parsePersonSearchResponse; } export declare const troveClient: TroveClient; //# sourceMappingURL=client.d.ts.map