import type { Response } from 'express';
import Controller from '../../../routes/controller.js';
import type { IFlagResolver, IUnleashConfig } from '../../../types/index.js';
import type ClientInstanceService from './instance-service.js';
import type { Logger } from '../../../logger.js';
import type { IAuthRequest } from '../../../routes/unleash-types.js';
import type ClientMetricsServiceV2 from '../client-metrics/metrics-service-v2.js';
import type { IUnleashServices, OpenApiService } from '../../../services/index.js';
import type { BulkMetricsSchema } from '../../../openapi/spec/bulk-metrics-schema.js';
import type { CustomMetricsSchema } from '../../../openapi/spec/custom-metrics-schema.js';
import type { CustomMetricsService } from '../custom/custom-metrics-service.js';
import type { MetricsTranslator } from '../impact/metrics-translator.js';
import type { ClientMetricsSchema } from '../../../server-impl.js';
export default class ClientMetricsController extends Controller {
    logger: Logger;
    clientInstanceService: ClientInstanceService;
    openApiService: OpenApiService;
    metricsV2: ClientMetricsServiceV2;
    customMetricsService: CustomMetricsService;
    metricsTranslator: MetricsTranslator;
    flagResolver: IFlagResolver;
    constructor({ clientInstanceService, clientMetricsServiceV2, openApiService, customMetricsService, }: Pick<IUnleashServices, 'clientInstanceService' | 'clientMetricsServiceV2' | 'openApiService' | 'customMetricsService'>, config: IUnleashConfig);
    private processPromiseResults;
    registerMetrics(req: IAuthRequest<void, void, ClientMetricsSchema>, res: Response): Promise<void>;
    customMetrics(req: IAuthRequest<void, void, CustomMetricsSchema>, res: Response<void>): Promise<void>;
    bulkMetrics(req: IAuthRequest<void, void, BulkMetricsSchema>, res: Response<void>): Promise<void>;
}
//# sourceMappingURL=metrics.d.ts.map