///
/**
* Copyright 2021 Insta Industries, Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
*/
import * as child_process from 'child_process';
import { Client } from './grpc';
import { Logger } from './logger';
import { CompleterGroup } from './async-utils';
/**
* The context provides environment-specific dependencies.
* The environment could be the server, client or a test.
*
* As a result, their behavior can be changed as needed in the environment.
*/
export declare type BotContext = {
args: Map;
client?: Client;
completerGroup?: CompleterGroup;
logger?: Logger;
afterTasksCallbacks?: (() => any)[];
setTimeout?: (hander: TimerHandler, timeout?: number) => any;
spawn?: (command: string, args: ReadonlyArray, options?: child_process.SpawnOptions) => child_process.ChildProcess;
};
/**
* Provides the context used in bots.
*/
export declare function botContext(): BotContext;