import { AwilixContainer } from 'awilix'; import Router from '@koa/router'; import { Bristol } from 'bristol'; export type User = { Id: number; Email: string; }; export type UserState = User & { RealAccount?: User; }; export type PaginationOptions = { defaultSize: number; }; export type PaginationQuery = { page: number; skip: number; offset: number; size: number; limit: number; filter: { [key: string]: string; }; sorting: [string, string][] | null; order: [string, string][] | null; query: string; }; export type ITFinLoggerContainer = { logger: Bristol; container: AwilixContainer; }; export type ITFinContextParams = { locales?: any; defaultLocale?: any; controllersDir: string[]; servicesDirs?: string[]; paginationOptions?: any; swagger?: any; initTasksService?: boolean; }; export type ITFinAppParam = ITFinLoggerContainer & ITFinContextParams & { state: any; resolveService: (name: string) => any; }; export type ITFinStateContext = { scope: AwilixContainer; getIpAddress: () => string; decRouter: Router; };