import { StrictLogStoreClientConfig } from '../Config';
import { type StrictStreamrClientConfig } from '../streamr/Config';
import { LoggerFactory } from '../streamr/LoggerFactory';
import { HttpFetcher } from '../streamr/utils/HttpFetcher';
import { type GQtyClient } from './gqty';
export interface GraphQLQuery {
    query: string;
    variables?: Record<string, any>;
}
export declare const GraphQLClientInjectionToken: unique symbol;
export declare class GQtyClients {
    streamrClient: GQtyClient;
    constructor(httpFetcher: HttpFetcher, config: Pick<StrictStreamrClientConfig, 'contracts'>);
}
export declare class GraphQLClient {
    private logStoreClientConfig;
    private httpFetcher;
    private readonly logger;
    constructor(loggerFactory: LoggerFactory, httpFetcher: HttpFetcher, logStoreClientConfig: StrictLogStoreClientConfig);
    sendQuery(query: GraphQLQuery): Promise<any>;
    fetchPaginatedResults<T extends {
        id: string;
    }>(createQuery: (lastId: string, pageSize: number) => GraphQLQuery, parseItems?: (response: any) => T[], pageSize?: number): AsyncGenerator<T, void, undefined>;
    getIndexBlockNumber(): Promise<number>;
    static createWhereClause(variables: Record<string, any>): string;
}
