import { inject , injectable } from 'inversify' ; import { BookListModule } from './bookList' ; import { ChangeUserProfileFormModule } from './changeUserProfileForm' ; import { CreateBookFormModule } from './createBookForm' ; import { LoginFormModule } from './loginForm' ; import { NavigationModule } from './navigation' ; import { UserRegistrationFormModule } from './userRegistrationForm' ; export type ContainersState = { changeUserProfileForm : ReturnType < ChangeUserProfileFormModule [ 'state' ] > ; createBookForm : ReturnType < CreateBookFormModule [ 'state' ] > ; loginForm : ReturnType < LoginFormModule [ 'state' ] > ; navigation : ReturnType < NavigationModule [ 'state' ] > ; userRegistrationForm : ReturnType < UserRegistrationFormModule [ 'state' ] > ; bookList : ReturnType < BookListModule [ 'state' ] > ; } ; @ injectable ( ) export class ContainerModule { constructor ( @ inject ( ChangeUserProfileFormModule ) public readonly changeUserProfileForm , @ inject ( CreateBookFormModule ) public readonly createBookForm , @ inject ( LoginFormModule ) public readonly loginForm , @ inject ( NavigationModule ) public readonly navigation , @ inject ( UserRegistrationFormModule ) public readonly userRegistrationForm , @ inject ( BookListModule ) public readonly bookList ) { } }