import abstractTransportBuild from "pino-abstract-transport";
import * as stream0 from "stream";
import { LogDescriptor } from "pino";

//#region src/constants.d.ts
declare const LokiLogLevel: {
  readonly Info: "info";
  readonly Debug: "debug";
  readonly Error: "error";
  readonly Warning: "warning";
  readonly Critical: "critical";
};
type LokiLogLevel = (typeof LokiLogLevel)[keyof typeof LokiLogLevel];
//# sourceMappingURL=constants.d.ts.map

//#endregion
//#region src/types.d.ts
interface PinoLog {
  level: number;
  msg?: string;
  [key: string]: any;
}
interface LokiOptions {
  host: string;
  endpoint?: string;
  timeout?: number;
  silenceErrors?: boolean;
  batching?: boolean;
  interval?: number;
  replaceTimestamp?: boolean;
  labels?: {
    [key: string]: string;
  };
  levelMap?: {
    [key: number]: LokiLogLevel;
  };
  basicAuth?: {
    username: string;
    password: string;
  };
  headers?: Record<string, string>;
  propsToLabels?: string[];
  convertArrays?: boolean;
  structuredMetaKey?: string;
  logFormat?: LogFormat;
}
type LogFormatExpectedObject = LogDescriptor & {
  lokilevel: LokiLogLevel;
  time: number;
  level: number;
  msg?: string;
  [key: string]: any;
};
type LogFormat = false | string | ((log: LogFormatExpectedObject) => string);
//#endregion
//#region src/index.d.ts
declare function pinoLoki(userOptions: LokiOptions): stream0.Transform & abstractTransportBuild.OnUnknown;
//#endregion
export { LokiLogLevel, LokiOptions, PinoLog, pinoLoki as default, pinoLoki };
//# sourceMappingURL=index.d.ts.map