import { UserEntity } from 'src/entities/user.entity'; import { Permission } from 'src/enum'; import { AccessRepository } from 'src/repositories/access.repository'; import { ActivityRepository } from 'src/repositories/activity.repository'; import { ApiKeyRepository } from 'src/repositories/api-key.repository'; import { AuditRepository } from 'src/repositories/audit.repository'; import { ConfigRepository } from 'src/repositories/config.repository'; import { MemoryRepository } from 'src/repositories/memory.repository'; import { ViewRepository } from 'src/repositories/view-repository'; export type DeepPartial = T extends object ? { [K in keyof T]?: DeepPartial } : T; export type AuthApiKey = { id: string; key: string; user: UserEntity; permissions: Permission[]; }; export type RepositoryInterface = Pick; export type IActivityRepository = RepositoryInterface; export type IAccessRepository = { [K in keyof AccessRepository]: RepositoryInterface }; export type IApiKeyRepository = RepositoryInterface; export type IAuditRepository = RepositoryInterface; export type IConfigRepository = RepositoryInterface; export type IMemoryRepository = RepositoryInterface; export type IViewRepository = RepositoryInterface; export type ActivityItem = | Awaited> | Awaited>[0]; export type ApiKeyItem = | Awaited> | NonNullable>> | Awaited>[0]; export type MemoryItem = | Awaited> | Awaited>[0];