import { ApplicationService } from '@adonisjs/core/types';
import { AsyncLocalStorage } from 'node:async_hooks';
import { ApitallyClient } from '../common/client.cjs';
import { LogRecord } from '../common/requestLogger.cjs';
import '../common/consumerRegistry.cjs';
import '../common/types.cjs';
import '../common/logging.cjs';
import 'winston';
import '../common/requestCounter.cjs';
import '../common/serverErrorCounter.cjs';
import '../common/spanCollector.cjs';
import '@opentelemetry/sdk-trace-base';
import '../common/validationErrorCounter.cjs';
import 'node:buffer';
import 'node:http';
import '../common/tempGzipFile.cjs';

declare module "@adonisjs/core/types" {
    interface ContainerBindings {
        apitallyClient: ApitallyClient;
        apitallyLogsContext: AsyncLocalStorage<LogRecord[]>;
    }
}
declare class ApitallyProvider {
    protected app: ApplicationService;
    constructor(app: ApplicationService);
    register(): void;
    start(): Promise<void>;
    ready(): Promise<void>;
    shutdown(): Promise<void>;
}

export { ApitallyProvider as default };
