declare global {
    namespace MdEditorLogger {
        type MetricsData = {
            component: string;
            event: string;
            duration?: number;
            meta?: Record<string, any>;
        };
        interface ActionData {
            action: string;
            source: string;
            [key: string]: any;
        }
        interface Logger {
            log(...data: any[]): void;
            info(...data: any[]): void;
            error(...data: any[]): void;
            warn(...data: any[]): void;
            metrics(data: MetricsData): void;
            action(data: ActionData): void;
        }
        interface Settings extends Partial<Logger> {
        }
    }
}
declare class Logger implements MdEditorLogger.Logger {
    #private;
    get log(): (...data: any[]) => void;
    get info(): (...data: any[]) => void;
    get error(): (...data: any[]) => void;
    get warn(): (...data: any[]) => void;
    get metrics(): (data: MdEditorLogger.MetricsData) => void;
    get action(): (data: MdEditorLogger.ActionData) => void;
    setLogger(settings?: MdEditorLogger.Settings): void;
    /**
     * @inner
     *
     * To override the default logger, use setLogger
     */
    createLogger(settings: MdEditorLogger.Settings): MdEditorLogger.Logger;
}
export declare const logger: Logger;
export {};
