import loglevel from "loglevel";
/** Logger interface used within the js-sdk codebase */
export interface Logger {
    /**
     * Output trace message to the logger, with stack trace.
     *
     * @param msg - Data to log.
     */
    trace(...msg: any[]): void;
    /**
     * Output debug message to the logger.
     *
     * @param msg - Data to log.
     */
    debug(...msg: any[]): void;
    /**
     * Output info message to the logger.
     *
     * @param msg - Data to log.
     */
    info(...msg: any[]): void;
    /**
     * Output warn message to the logger.
     *
     * @param msg - Data to log.
     */
    warn(...msg: any[]): void;
    /**
     * Output error message to the logger.
     *
     * @param msg - Data to log.
     */
    error(...msg: any[]): void;
    /**
     * Create a child logger.
     *
     * @param namespace - name to add to the current logger to generate the child. Some implementations of `Logger`
     *    use this as a prefix; others use a different mechanism.
     */
    getChild(namespace: string): Logger;
}
/**
 * Implementation of {@link Logger} based on `loglevel`.
 *
 * @deprecated this shouldn't be public; prefer {@link Logger}.
 */
export interface PrefixedLogger extends loglevel.Logger, Logger {
    /** @deprecated prefer {@link Logger.getChild} */
    withPrefix: (prefix: string) => PrefixedLogger;
    /** @deprecated internal property */
    prefix: string;
}
/**
 * Drop-in replacement for `console` using {@link https://www.npmjs.com/package/loglevel|loglevel}.
 * Can be tailored down to specific use cases if needed.
 */
export declare const logger: PrefixedLogger;
//# sourceMappingURL=logger.d.ts.map