import type { GithubHttp } from '../../http/github';
import type { GithubDatasourceItem, GithubGraphqlDatasourceAdapter, GithubPackageConfig } from './types';
export declare class GithubGraphqlDatasourceHelper<GraphqlItem, ResultItem extends GithubDatasourceItem> {
    private http;
    private datasourceAdapter;
    static prepareQuery(payloadQuery: string): string;
    static query<T, U extends GithubDatasourceItem>(config: GithubPackageConfig, http: GithubHttp, adapter: GithubGraphqlDatasourceAdapter<T, U>): Promise<U[]>;
    private readonly baseUrl;
    private readonly repoOwner;
    private readonly repoName;
    private itemsPerQuery;
    private queryCount;
    private cursor;
    constructor(packageConfig: GithubPackageConfig, http: GithubHttp, datasourceAdapter: GithubGraphqlDatasourceAdapter<GraphqlItem, ResultItem>);
    private getFingerprint;
    private getRawQueryOptions;
    private doRawQuery;
    private shrinkPageSize;
    private hasReachedQueryLimit;
    private doShrinkableQuery;
    private doPaginatedQuery;
    /**
     * This method intentionally was made not async, though it returns `Promise`.
     *
     * It helps us to avoid potential race conditions during concurrent fetching
     * of the same package releases.
     */
    private doConcurrentQuery;
    private getItems;
}
