import type { YogaLogger, YogaServer } from 'graphql-yoga';
import { google } from '@apollo/usage-reporting-protobuf';
import type { ApolloUsageReportOptions } from './index';
import { OurReport } from './stats.js';
export declare class Reporter {
    private yoga;
    private logger;
    private reportHeaders;
    private options;
    private reportsBySchema;
    private nextSendAfterDelay?;
    private sending;
    constructor(options: ApolloUsageReportOptions, yoga: YogaServer<Record<string, unknown>, Record<string, unknown>>, logger: YogaLogger);
    addTrace(schemaId: string, options: Parameters<OurReport['addTrace']>[0]): Promise<void> | undefined;
    flush(): Promise<PromiseSettledResult<unknown>[]>;
    sendReport(schemaId: string): Promise<void>;
    private _sendReport;
    private getReport;
}
export declare function getEnvVar<T>(name: string, defaultValue?: T): string | T | undefined;
export declare function dateToProtoTimestamp(date: Date): google.protobuf.Timestamp;
