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

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 };
