import { ApitallyConsumer, ApitallyConfig } from '../common/types.js';
import { FastifyError, FastifyPluginAsync, FastifyRequest } from 'fastify';
import { AsyncResource } from 'node:async_hooks';
import { LogRecord } from '../common/requestLogger.js';
import { SpanHandle } from '../common/spanCollector.js';
import '../common/logging.js';
import 'winston';
import 'node:buffer';
import 'node:http';
import '@opentelemetry/sdk-trace-base';
import '../common/tempGzipFile.js';

declare const LOGS_SYMBOL: unique symbol;
declare const ASYNC_RESOURCE_SYMBOL: unique symbol;
declare const SPAN_HANDLE_SYMBOL: unique symbol;
declare module "fastify" {
    interface FastifyReply {
        payload: any;
        serverError?: FastifyError;
    }
    interface FastifyRequest {
        apitallyConsumer?: ApitallyConsumer | string | null;
        consumerIdentifier?: ApitallyConsumer | string | null;
        [LOGS_SYMBOL]?: LogRecord[];
        [ASYNC_RESOURCE_SYMBOL]?: AsyncResource;
        [SPAN_HANDLE_SYMBOL]?: SpanHandle;
    }
}
declare const apitallyPlugin: FastifyPluginAsync<ApitallyConfig>;
declare function setConsumer(request: FastifyRequest, consumer: ApitallyConsumer | string | null | undefined): void;

declare const _default: FastifyPluginAsync<ApitallyConfig>;

export { apitallyPlugin, _default as default, setConsumer };
