import { Request, Context, Response } from 'http-api-utils'; interface Options { verbose?: boolean; enable: boolean; mockPath: string; extension: string[]; refresh: boolean; ignore: string | RegExp | (string | RegExp)[]; } type GeneralOptions = Partial; interface ExposeNodeModule extends NodeModule { _compile: (rawCode: string, fileName: string) => void; } type MockRespData = Object; interface MockRequest extends Request { routes?: Record; } interface MockKoaContext extends Context { request: MockRequest; } type MockRespFunc = ((_req: MockRequest, _res: Response, context: Context) => void) | ((_req: MockRequest, _res: Response, context: Context) => Promise); interface MockHandler { url: string; method: string; response: MockRespData | MockRespFunc; } interface ModuleMockHandler extends MockHandler { _file: string; } export { ExposeNodeModule, GeneralOptions, MockHandler, MockKoaContext, MockRequest, MockRespData, MockRespFunc, ModuleMockHandler, Options };