import { PushMetricExporter, ResourceMetrics } from '@opentelemetry/sdk-metrics';
import { ExportResult } from '@opentelemetry/core';
import { ExporterOptions } from './external-types';
export declare const MAX_BATCH_EXPORT_SIZE = 200;
/**
 * Format and sends metrics information to Google Cloud Monitoring.
 */
export declare class CloudMonitoringMetricsExporter implements PushMetricExporter {
    private _projectId;
    private _lastExported;
    private readonly _client;
    private _metricsExportFailureLogged;
    constructor({ auth }: ExporterOptions, projectId: string);
    /**
     * Implementation for {@link PushMetricExporter.export}.
     * Calls the async wrapper method {@link _exportAsync} and
     * assures no rejected promises bubble up to the caller.
     *
     * @param metrics Metrics to be sent to the Google Cloud 3Monitoring backend
     * @param resultCallback result callback to be called on finish
     */
    export(metrics: ResourceMetrics, resultCallback: (result: ExportResult) => void): void;
    shutdown(): Promise<void>;
    forceFlush(): Promise<void>;
    /**
     * Asnyc wrapper for the {@link export} implementation.
     * Writes the current values of all exported {@link MetricRecord}s
     * to the Google Cloud Monitoring backend.
     *
     * @param resourceMetrics Metrics to be sent to the Google Cloud Monitoring backend
     */
    private _exportAsync;
    private _sendTimeSeries;
    /** Returns the minimum number of arrays of max size chunkSize, partitioned from the given array. */
    private _partitionList;
}
