import { DeepPartial } from './types/custom_type.types.cjs';
import { ProvideEntity } from './model_factory.cjs';
import { z } from 'zod';

declare const mintyLoggerLevel: z.ZodEnum<["silent", "trace", "debug", "info", "warn", "error", "fatal"]>;
declare type MintyLoggerLevel = z.infer<typeof mintyLoggerLevel>;
declare const getMintyLoggerLevel: (data: unknown, params?: Partial<z.ParseParams> | undefined) => "error" | "info" | "silent" | "trace" | "debug" | "warn" | "fatal";
declare class MintyLoggerOptions {
    id: string;
    logFileEnabled: boolean;
    logPath: string;
    logFilePrefix: string;
    minDumpSizeKB: number;
    maxDumpSizeKB: number;
    maxDebugDepth: number;
    logLevelOptions: {
        consoleMin?: MintyLoggerLevel;
        dumpMax?: MintyLoggerLevel;
        syncLogger?: boolean;
    };
    allowedKeywords?: string[] | undefined;
    debugging: `none` | `debug` | `verbose`;
    bannedKeywords: string[];
    constructor(id: string, logFileEnabled: boolean, logPath: string, logFilePrefix: string, minDumpSizeKB: number, maxDumpSizeKB: number, maxDebugDepth: number, logLevelOptions: {
        consoleMin?: MintyLoggerLevel;
        dumpMax?: MintyLoggerLevel;
        syncLogger?: boolean;
    }, allowedKeywords?: string[] | undefined, debugging?: `none` | `debug` | `verbose`, bannedKeywords?: string[]);
    static create: (input: ProvideEntity<MintyLoggerOptions, never>, options?: {
        defaultValue: boolean;
        excludeExtraProp: boolean;
    } | undefined, customMapperOverride?: ((input: ProvideEntity<MintyLoggerOptions, never>) => never) | undefined) => MintyLoggerOptions;
}
declare type MintyLoggerDataAndOptions = {
    debug?: unknown;
    message?: string;
    __options?: Partial<MintyLoggerOptions>;
};
declare type MintyLoggerResult = {
    printedMessage: string;
    level: string;
    optionsAndData: MintyLoggerDataAndOptions;
    moduleNameOrLabel: string;
    debugMessage?: string;
    debugging: {
        printConsole: boolean;
        isTooBig: boolean;
        isDumped: boolean;
        debugObject?: Record<any, any>;
    };
};
declare type MintyLoggerType = {
    <O extends MintyLoggerDataAndOptions = MintyLoggerDataAndOptions>(label: string, options?: O, level?: MintyLoggerLevel): MintyLoggerResult | undefined;
    <DO>(label: string, debugOrOptions?: DO, level?: MintyLoggerLevel): MintyLoggerResult | undefined;
    <DO>(label: string, debugOrOptions?: DO, level?: string): MintyLoggerResult | undefined;
};
declare const MintyLogger: MintyLoggerType;
declare type MintyLoggerFactoryType = (label: string, options?: DeepPartial<MintyLoggerOptions>) => {
    log: MintyLoggerType;
    error: MintyLoggerType;
    child: (childLabel: string, childOptions?: DeepPartial<MintyLoggerOptions>) => ReturnType<MintyLoggerFactoryType>;
    getOptions: () => MintyLoggerOptions;
};
declare const MintyLoggerFactory: MintyLoggerFactoryType;

export { MintyLogger, MintyLoggerDataAndOptions, MintyLoggerFactory, MintyLoggerFactoryType, MintyLoggerLevel, MintyLoggerOptions, MintyLoggerResult, MintyLoggerType, getMintyLoggerLevel, mintyLoggerLevel };
