import { JobDTO } from "../../client/job";
import pino from "pino";
import { QueuesUpdateCronBody } from "../scheduler/types/queues/update-cron";
export interface Logger {
    log?: pino.Logger;
    started(address: string, telemetryEnabled: boolean): void;
    jobCreated(job: JobDTO & {
        tokenId: string;
    }): void;
    cronUpdated(crons: QueuesUpdateCronBody, deleted: string[]): void;
    jobDeleted(job: {
        endpoint: string;
        id: string;
        tokenId: string;
    }): void;
    /**
     * @returns function to call when execution is done
     */
    startingExecution(job: {
        id: string;
        tokenId: string;
        endpoint: string;
        body: string;
    }): () => void;
    executionErrored(job: {
        id: string;
        tokenId: string;
        endpoint: string;
        body: string;
    }, error: string): void;
}
export declare type LoggerType = "dx" | "structured" | "none" | "quiet" | Logger;
export declare function getLogger(type?: LoggerType, logger?: import("pino").Logger<{
    level: string;
}>): Logger | undefined;
