import type { ProcessedMessageMetadata } from '@message-queue-toolkit/core';
import type { Histogram } from 'prom-client';
import type promClient from 'prom-client';
import { PrometheusMessageMetric } from '../../PrometheusMessageMetric.ts';
import type { PrometheusMetricParams } from '../../types.ts';
export declare abstract class PrometheusMessageTimeMetric<MessagePayload extends object> extends PrometheusMessageMetric<MessagePayload, Histogram<'messageType' | 'version' | 'queue' | 'result'>> {
    protected createMetric(client: typeof promClient, metricParams: PrometheusMetricParams<MessagePayload>): Histogram<'messageType' | 'version' | 'queue' | 'result'>;
    registerProcessedMessage(metadata: ProcessedMessageMetadata<MessagePayload>): void;
    protected abstract calculateObservedValue(metadata: ProcessedMessageMetadata<MessagePayload>): number | null;
}
