import { CliConfig } from "./config.js"; import { EntityName } from "./entities.js"; export interface ApiMeta { count?: number; db_response_time_ms?: number; page?: number; per_page?: number; next_cursor?: string | null; groups_count?: number; } export interface RateLimitMeta { limit?: number; remaining?: number; reset?: number; creditsUsed?: number; } export interface ApiEnvelope { meta?: ApiMeta; results?: T[]; group_by?: Array>; data?: T; rateLimit: RateLimitMeta; requestUrl: string; } export interface ListOptions { filter?: string[]; search?: string; sort?: string; select?: string[]; sample?: number; seed?: string; page?: number; perPage?: number; cursor?: string; all?: boolean; includeXpac?: boolean; } export declare class OpenAlexClient { private readonly config; constructor(config: CliConfig); authorizeDownloadUrl(rawUrl: string): string; getRateLimit(): Promise>>; get(entity: EntityName, id: string, select?: string[]): Promise>>; random(entity: EntityName, select?: string[]): Promise>>; autocomplete(entity: EntityName, queryText: string): Promise>>; list(entity: EntityName, options?: ListOptions): Promise>>; group(entity: EntityName, groupBy: string, options?: ListOptions): Promise>>; listFromUrl(url: string, options?: ListOptions): Promise>>; getRelatedWorks(workId: string, options?: ListOptions): Promise>>; getCitedByWorks(workId: string, options?: ListOptions): Promise>>; getReferencedWorks(workId: string, options?: ListOptions): Promise>>; private request; private requestAbsolute; private performRequest; private createQuery; private createListQuery; private requestAllListPages; private requestAllGroupPages; private requestAllPagesFromUrl; private requestAllPages; } export declare function normalizeWorkIdentifier(id: string): string;