/**
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */ import * as Debug from 'debug' ; const name = 'assistant-conversation' ; public export interface ILogger { public debug : ( ... values : any [ ] ) => void ; public info : ( ... values : any [ ] ) => void ; public log : ( ... values : any [ ] ) => void ; public warn : ( ... values : any [ ] ) => void ; public error : ( ... values : any [ ] ) => void ; } const defaultLogger = ( ( ) => { return { debug : Debug ( `${ name }:debug` ) , info : console . info . bind ( console ) as typeof console . info , warn : Debug ( `${ name }:warn` ) , log : console . log . bind ( console ) as typeof console . log , error : console . error . bind ( console ) as typeof console . error , } ; } ) ( ) ; export const debugLogger = { debug : console . info . bind ( console ) as typeof console . info , info : console . info . bind ( console ) as typeof console . info , warn : Debug ( `${ name }:warn` ) , log : console . log . bind ( console ) as typeof console . log , error : console . error . bind ( console ) as typeof console . error , } ; let logger = defaultLogger ; export const setLogger = ( newLogger = defaultLogger ) => { logger = newLogger ; } ; export const getLogger = ( ) => { return logger ; } ;