import { BaseService } from "./base";
import { Source, Work, QueryParams, OpenAlexResponse } from "../types";
export declare class SourcesService extends BaseService<Source> {
    protected readonly endpoint = "sources";
    /**
     * Get works published in a specific source
     */
    getWorks(sourceId: string, params?: QueryParams): Promise<OpenAlexResponse<Work>>;
    /**
     * Get source by ISSN
     */
    getByIssn(issn: string, params?: Pick<QueryParams, "select" | "mailto">): Promise<Source>;
    /**
     * Search sources by multiple ISSNs
     */
    getByIssns(issns: string[], params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get open access sources
     */
    getOpenAccess(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources in DOAJ (Directory of Open Access Journals)
     */
    getDoajSources(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources by publisher
     */
    getByPublisher(publisher: string, params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources by type (journal, repository, etc.)
     */
    getByType(type: string, params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get journal sources
     */
    getJournals(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get repository sources
     */
    getRepositories(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get conference sources
     */
    getConferences(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get book series sources
     */
    getBookSeries(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get highly cited sources
     */
    getHighlyCited(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources with most works
     */
    getMostProlific(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources by country
     */
    getByCountry(countryCode: string, params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources by concept (subject area)
     */
    getByConcept(conceptId: string, params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources with APC (Article Processing Charges) information
     */
    getWithApc(params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources by APC price range
     */
    getByApcRange(minUsd: number, maxUsd: number, params?: QueryParams): Promise<OpenAlexResponse<Source>>;
    /**
     * Get sources by host organization
     */
    getByHostOrganization(organizationId: string, params?: QueryParams): Promise<OpenAlexResponse<Source>>;
}
//# sourceMappingURL=sources.d.ts.map