import { MomentoLoggerFactory, TransportStrategy } from '../'; import { Middleware } from './middleware/middleware'; /** * Configuration options for Momento LeaderboardClient * * @export * @interface LeaderboardConfiguration */ export interface LeaderboardConfiguration { /** * @returns {MomentoLoggerFactory} the current configuration options for logging verbosity and format */ getLoggerFactory(): MomentoLoggerFactory; /** * @returns {TransportStrategy} the current configuration options for wire interactions with the Momento service */ getTransportStrategy(): TransportStrategy; /** * Convenience copy constructor that updates the client-side timeout setting in the TransportStrategy * @param {number} clientTimeoutMillis * @returns {LeaderboardConfiguration} a new Configuration object with its TransportStrategy updated to use the specified client timeout */ withClientTimeoutMillis(clientTimeoutMillis: number): LeaderboardConfiguration; /** * Copy constructor for overriding TransportStrategy * @param {TransportStrategy} transportStrategy * @returns {Configuration} a new Configuration object with the specified TransportStrategy */ withTransportStrategy(transportStrategy: TransportStrategy): LeaderboardConfiguration; /** * @returns {boolean} Configures whether the client should return a Momento Error object or throw an exception when an * error occurs. By default, this is set to false, and the client will return a Momento Error object on errors. Set it * to true if you prefer for exceptions to be thrown. */ getThrowOnErrors(): boolean; /** * Copy constructor for configuring whether the client should return a Momento Error object or throw an exception when an * error occurs. By default, this is set to false, and the client will return a Momento Error object on errors. Set it * to true if you prefer for exceptions to be thrown. * @param {boolean} throwOnErrors * @returns {Configuration} a new Configuration object with the specified throwOnErrors setting */ withThrowOnErrors(throwOnErrors: boolean): LeaderboardConfiguration; /** * @returns {Middleware[]} the middleware functions that will wrap each request */ getMiddlewares(): Middleware[]; /** * Copy constructor for overriding Middlewares * @param {Middleware[]} middlewares * @returns {Configuration} a new Configuration object with the specified Middlewares */ withMiddlewares(middlewares: Middleware[]): LeaderboardConfiguration; /** * Copy constructor that adds a single middleware to the existing middlewares * @param {Middleware} middleware * @returns {Configuration} a new Configuration object with the specified Middleware appended to the list of existing Middlewares */ addMiddleware(middleware: Middleware): LeaderboardConfiguration; } export interface LeaderboardConfigurationProps { /** * Configures logging verbosity and format */ loggerFactory: MomentoLoggerFactory; /** * Configures low-level options for network interactions with the Momento service */ transportStrategy: TransportStrategy; /** * Configures whether the client should return a Momento Error object or throw an exception when an error occurs. */ throwOnErrors: boolean; /** * Configures middleware functions that will wrap each request */ middlewares: Middleware[]; } export declare class LeaderboardClientConfiguration implements LeaderboardConfiguration { private readonly loggerFactory; private readonly transportStrategy; private readonly throwOnErrors; private readonly middlewares; constructor(props: LeaderboardConfigurationProps); getLoggerFactory(): MomentoLoggerFactory; getTransportStrategy(): TransportStrategy; withClientTimeoutMillis(clientTimeoutMillis: number): LeaderboardConfiguration; withTransportStrategy(transportStrategy: TransportStrategy): LeaderboardConfiguration; getThrowOnErrors(): boolean; withThrowOnErrors(throwOnErrors: boolean): LeaderboardConfiguration; getMiddlewares(): Middleware[]; withMiddlewares(middlewares: Middleware[]): LeaderboardConfiguration; addMiddleware(middleware: Middleware): LeaderboardConfiguration; }