import LogLevel from '../enums/LogLevel';
/**
 * A logging interface for those SDK users that want to create their own logging behaviour.
 *
 * While all of the input parameters are classified as unknown typically input falls into the categories of
 * string, object or Error.
 */
interface Logger {
    /**
     * Fetch the current {@link LogLevel}
     */
    get logLevel(): LogLevel;
    /**
     * @param level The new LogLevel
     */
    set logLevel(level: LogLevel);
    /**
     * Used when attempting to diagnose a specific problem.
     * @param message The message to log.
     * @param optionalParams One or more optional params. Examples may include JSON data or Error objects.
     */
    debug(message?: unknown, ...optionalParams: unknown[]): void;
    /**
     * Used for routine messages that happen during the course of ordinary operation.
     *
     * @param message The message to log.
     * @param optionalParams One or more optional params. Examples may include JSON data or Error objects.
     */
    info(message?: unknown, ...optionalParams: unknown[]): void;
    /**
     * Used for unexpected conditions where recovery may be possible.
     *
     * @param message The message to log.
     * @param optionalParams One or more optional params. Examples may include JSON data or Error objects.
     */
    warn(message?: unknown, ...optionalParams: unknown[]): void;
    /**
     * Used for unexpected conditions where recovery is not possible.
     *
     * @param message The message to log.
     * @param optionalParams One or more optional params. Examples may include JSON data or Error objects.
     */
    error(message?: unknown, ...optionalParams: unknown[]): void;
}
export default Logger;
//# sourceMappingURL=Logger.d.ts.map