import { Log } from '@google-cloud/logging';
import { LogEntry } from '@google-cloud/logging/build/src/entry.js';
import { LogLayerTransportConfig, LogLevel, BaseTransport, LogLayerTransportParams } from '@loglayer/transport';

interface GoogleCloudLoggingTransportConfig extends LogLayerTransportConfig<Log> {
    /**
     * The root level data to include for all log entries.
     * "severity", "timestamp" and "jsonPayload" are already populated by the transport.
     * @see https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry
     */
    rootLevelData?: Omit<LogEntry, "severity" | "timestamp" | "jsonPayload">;
    /**
     * Minimum log level to process. Defaults to "trace"
     */
    level?: LogLevel | "trace" | "debug" | "info" | "warn" | "error" | "fatal";
}
declare class GoogleCloudLoggingTransport extends BaseTransport<Log> {
    private rootLevelData;
    private level;
    constructor(config: GoogleCloudLoggingTransportConfig);
    private mapLogLevel;
    shipToLogger({ data, hasData, logLevel, messages }: LogLayerTransportParams): any[];
}

export { GoogleCloudLoggingTransport, type GoogleCloudLoggingTransportConfig };
