import { LeaderboardDelete, LeaderboardFetch, LeaderboardLength, LeaderboardRemoveElements, LeaderboardUpsert, LeaderboardOrder } from '@gomomento/sdk-core';
import { leaderboard } from '@gomomento/generated-types/dist/leaderboard';
import { ILeaderboardDataClient } from '@gomomento/sdk-core/dist/src/internal/clients/leaderboard/ILeaderboardDataClient';
import { LeaderboardClientAllProps } from './leaderboard-client-all-props';
export declare const CONNECTION_ID_KEY: unique symbol;
export declare class LeaderboardDataClient implements ILeaderboardDataClient {
    private readonly configuration;
    private readonly credentialProvider;
    private readonly logger;
    private readonly cacheServiceErrorMapper;
    private readonly requestTimeoutMs;
    private readonly clientWrappers;
    protected nextDataClientIndex: number;
    private readonly interceptors;
    /**
     * @param {LeaderboardClientAllProps} props
     * @param dataClientID
     */
    constructor(props: LeaderboardClientAllProps, dataClientID: string);
    close(): void;
    private validateRequestTimeout;
    private initializeInterceptors;
    private createMetadata;
    private convertMapOrRecordToElementsList;
    upsert(cacheName: string, leaderboardName: string, elements: Record<number, number> | Map<number, number>): Promise<LeaderboardUpsert.Response>;
    private sendUpsert;
    fetchByScore(cacheName: string, leaderboardName: string, minScore?: number, maxScore?: number, order?: LeaderboardOrder, offset?: number, count?: number): Promise<LeaderboardFetch.Response>;
    private sendFetchByScore;
    fetchByRank(cacheName: string, leaderboardName: string, startRank: number, endRank: number, order?: LeaderboardOrder): Promise<LeaderboardFetch.Response>;
    private sendFetchByRank;
    getRank(cacheName: string, leaderboardName: string, ids: Array<number>, order?: LeaderboardOrder): Promise<LeaderboardFetch.Response>;
    private sendGetRank;
    length(cacheName: string, leaderboardName: string): Promise<LeaderboardLength.Response>;
    private sendLength;
    removeElements(cacheName: string, leaderboardName: string, ids: Array<number>): Promise<LeaderboardRemoveElements.Response>;
    private sendRemoveElements;
    delete(cacheName: string, leaderboardName: string): Promise<LeaderboardDelete.Response>;
    private sendDelete;
    protected getNextDataClient(): leaderboard.LeaderboardClient;
}
