export interface OpenAlexConfig {
    timeout?: number;
    retries?: number;
    retryDelay?: number;
}
export interface PaginationParams {
    page?: number;
    per_page?: number;
    cursor?: string;
}
export interface FilterParams {
    filter?: Record<string, any>;
    search?: string;
    sort?: string;
    group_by?: string;
}
export interface QueryParams extends PaginationParams, FilterParams {
    select?: string;
    mailto?: string;
}
export interface ExternalIds {
    openalex?: string;
    doi?: string;
    mag?: string;
    pmid?: string;
    pmcid?: string;
    arxiv?: string;
    scopus?: string;
    wos?: string;
}
export interface Location {
    is_oa: boolean;
    landing_page_url?: string;
    pdf_url?: string;
    source?: {
        id: string;
        display_name: string;
        issn_l?: string;
        issn?: string[];
        is_oa: boolean;
        is_in_doaj: boolean;
        host_organization?: string;
        type: string;
    };
    license?: string;
    version?: string;
    host_venue?: any;
}
export interface CountByYear {
    year: number;
    cited_by_count: number;
    works_count?: number;
}
export interface Work {
    id: string;
    doi?: string;
    title?: string;
    display_name?: string;
    publication_year?: number;
    publication_date?: string;
    ids: ExternalIds;
    language?: string;
    primary_location?: Location;
    type: string;
    type_crossref?: string;
    open_access: {
        is_oa: boolean;
        oa_date?: string;
        oa_url?: string;
        any_repository_has_fulltext: boolean;
    };
    authorships: Authorship[];
    countries_distinct_count: number;
    institutions_distinct_count: number;
    corresponding_author_ids: string[];
    corresponding_institution_ids: string[];
    apc_list?: {
        value: number;
        currency: string;
        value_usd: number;
        provenance: string;
    };
    apc_paid?: {
        value: number;
        currency: string;
        value_usd: number;
        provenance: string;
    };
    has_fulltext: boolean;
    fulltext_origin?: string;
    cited_by_count: number;
    cited_by_api_url: string;
    counts_by_year: CountByYear[];
    updated_date: string;
    created_date: string;
    locations: Location[];
    best_oa_location?: Location;
    sustainable_development_goals: SustainableDevelopmentGoal[];
    grants: Grant[];
    referenced_works: string[];
    related_works: string[];
    concepts: WorkConcept[];
    mesh: MeshTerm[];
    locations_count: number;
    referenced_works_count: number;
    related_works_count: number;
    ngrams_url?: string;
    abstract_inverted_index?: Record<string, number[]>;
    cited_by_api_url_v2: string;
    biblio: {
        volume?: string;
        issue?: string;
        first_page?: string;
        last_page?: string;
    };
    is_retracted: boolean;
    is_paratext: boolean;
}
export interface Authorship {
    author_position: string;
    author: {
        id: string;
        display_name: string;
        orcid?: string;
    };
    institutions: Institution[];
    countries: string[];
    is_corresponding: boolean;
    raw_author_name?: string;
    raw_affiliation_string?: string;
}
export interface WorkConcept {
    id: string;
    wikidata?: string;
    display_name: string;
    level: number;
    score: number;
}
export interface MeshTerm {
    descriptor_ui: string;
    descriptor_name: string;
    qualifier_ui?: string;
    qualifier_name?: string;
    is_major_topic: boolean;
}
export interface Grant {
    funder: string;
    funder_display_name: string;
    award_id?: string;
}
export interface SustainableDevelopmentGoal {
    id: string;
    display_name: string;
    score: number;
}
export interface Author {
    id: string;
    orcid?: string;
    display_name: string;
    display_name_alternatives: string[];
    works_count: number;
    cited_by_count: number;
    ids: ExternalIds;
    last_known_institution?: {
        id: string;
        display_name: string;
        ror?: string;
        country_code: string;
        type: string;
    };
    counts_by_year: CountByYear[];
    works_api_url: string;
    updated_date: string;
    created_date: string;
    summary_stats: {
        two_yr_mean_citedness: number;
        h_index: number;
        i10_index: number;
    };
    x_concepts: AuthorConcept[];
}
export interface AuthorConcept {
    id: string;
    wikidata?: string;
    display_name: string;
    level: number;
    score: number;
}
export interface Institution {
    id: string;
    ror?: string;
    display_name: string;
    country_code: string;
    type: string;
    homepage_url?: string;
    image_url?: string;
    image_thumbnail_url?: string;
    display_name_acronyms: string[];
    display_name_alternatives: string[];
    works_count: number;
    cited_by_count: number;
    ids: ExternalIds;
    geo: {
        city: string;
        geonames_city_id: string;
        region?: string;
        country_code: string;
        country: string;
        latitude: number;
        longitude: number;
    };
    international: {
        display_name: Record<string, string>;
    };
    associated_institutions: AssociatedInstitution[];
    counts_by_year: CountByYear[];
    x_concepts: InstitutionConcept[];
    works_api_url: string;
    updated_date: string;
    created_date: string;
    summary_stats: {
        two_yr_mean_citedness: number;
        h_index: number;
        i10_index: number;
    };
}
export interface AssociatedInstitution {
    id: string;
    display_name: string;
    ror?: string;
    country_code: string;
    type: string;
    relationship: string;
}
export interface InstitutionConcept {
    id: string;
    wikidata?: string;
    display_name: string;
    level: number;
    score: number;
}
export interface Source {
    id: string;
    issn_l?: string;
    issn?: string[];
    display_name: string;
    publisher?: string;
    works_count: number;
    cited_by_count: number;
    is_oa: boolean;
    is_in_doaj: boolean;
    homepage_url?: string;
    ids: ExternalIds;
    host_organization?: string;
    host_organization_name?: string;
    host_organization_lineage: string[];
    type: string;
    counts_by_year: CountByYear[];
    works_api_url: string;
    updated_date: string;
    created_date: string;
    apc_prices: APCPrice[];
    apc_usd?: number;
    country_code?: string;
    societies: Society[];
    alternate_titles: string[];
    abbreviated_title?: string;
    x_concepts: SourceConcept[];
    summary_stats: {
        two_yr_mean_citedness: number;
        h_index: number;
        i10_index: number;
    };
}
export interface APCPrice {
    price: number;
    currency: string;
}
export interface Society {
    url: string;
    organization: string;
}
export interface SourceConcept {
    id: string;
    wikidata?: string;
    display_name: string;
    level: number;
    score: number;
}
export interface Concept {
    id: string;
    wikidata?: string;
    display_name: string;
    level: number;
    description?: string;
    works_count: number;
    cited_by_count: number;
    ids: ExternalIds;
    image_url?: string;
    image_thumbnail_url?: string;
    international: {
        display_name: Record<string, string>;
        description?: Record<string, string>;
    };
    ancestors: ConceptAncestor[];
    related_concepts: RelatedConcept[];
    counts_by_year: CountByYear[];
    works_api_url: string;
    updated_date: string;
    created_date: string;
    summary_stats: {
        two_yr_mean_citedness: number;
        h_index: number;
        i10_index: number;
    };
}
export interface ConceptAncestor {
    id: string;
    wikidata?: string;
    display_name: string;
    level: number;
}
export interface RelatedConcept {
    id: string;
    wikidata?: string;
    display_name: string;
    level: number;
    score: number;
}
export interface OpenAlexResponse<T> {
    results: T[];
    meta: {
        count: number;
        db_response_time_ms: number;
        page: number;
        per_page: number;
    };
    group_by?: GroupByResult[];
}
export interface GroupByResult {
    key: string;
    key_display_name: string;
    count: number;
}
export interface AutocompleteResponse {
    results: AutocompleteResult[];
    meta: {
        count: number;
        db_response_time_ms: number;
    };
}
export interface AutocompleteResult {
    id: string;
    display_name: string;
    hint?: string;
    cited_by_count?: number;
    works_count?: number;
    entity_type: string;
    external_id?: string;
}
export type OpenAlexEntity = Work | Author | Institution | Source | Concept;
export interface OpenAlexError {
    error: string;
    message: string;
    status_code?: number;
}
//# sourceMappingURL=index.d.ts.map