export class TestCase {
  expect(returnValue): this
  describe(message: string): this
  should(message: string): this
  assert(message: string, assertFunction: (actualReturnValue: any) => void): this
}

export function test(testFn: Function, definerFn: Function): void
export function given(...args: any[]): TestCase

export class TestCase {
  expect(returnValue: any): this
  describe(message: string): this
  should(message: string): this
  assert(message: string, assertFunction: (actualReturnValue: any) => void): this
}

export function test(testFn: Function, definerFn: Function): void
export function given(...args: any[]): TestCase

Work with `noImplicitAny` ts compiler option
Work with `noImplicitAny` ts compiler option

If the TypeScript compiler is set to `strict` or has `noImplicitAny` this will cause a project not to compile