///
///
import { Filter } from '@loopback/repository';
import { Request } from '@loopback/rest';
import { IAuthUserWithPermissions, ILogger, SuccessResponse } from '@sourcefuse-npm/alivio-lib';
import { AuditLogService, AuthenticationService, BadgeRewardsService, Caregiver, CareGroupService, ChatService, Ehr, NotifService, Patient, PatientAdapterService, PatientController, PatientOnboardingService, PatientService, TenantConfigHelperService, TenantConnector, User, UsersService, PatientCareGiver } from '@sourcefuse-npm/patient-facade';
import { PatientUserService } from '@sourcefuse-npm/patient-facade/dist/services/patient-user.service';
import { PatientOthersDetailsDTO } from '../models';
import { PatientCareGiverOtherdetails, PatientOtherdetails } from '../models/patient-caregiver-other-details';
import { DailyCheckInsService, PatientCarePlanDetailsService, PatientOthersDetailsService } from '../services';
import { DiPatientCaregiverUserService } from '../services/di-patient-caregiver-user.service';
export declare class PatientAPIController extends PatientController {
protected patientOnbService: PatientOnboardingService;
protected patientService: PatientService;
protected userService: UsersService;
protected chatService: ChatService;
protected cgpService: CareGroupService;
protected authService: AuthenticationService;
protected notifService: NotifService;
protected auditLogService: AuditLogService;
protected ehrService: Ehr;
logger: ILogger;
protected i18n: i18nAPI;
protected readonly patientCgUserService: DiPatientCaregiverUserService;
protected readonly tenantConfigHelper: TenantConfigHelperService;
protected readonly badgeRewardsService: BadgeRewardsService;
protected readonly patientAdapterService: PatientAdapterService;
protected patientUserService: PatientUserService;
protected readonly tenantConnector: TenantConnector;
protected readonly patientOthersDetailsService: PatientOthersDetailsService;
patientCarePlanDetailsService: PatientCarePlanDetailsService;
dailyCheckIns: DailyCheckInsService;
constructor(patientOnbService: PatientOnboardingService, patientService: PatientService, userService: UsersService, chatService: ChatService, cgpService: CareGroupService, authService: AuthenticationService, notifService: NotifService, auditLogService: AuditLogService, ehrService: Ehr, logger: ILogger, i18n: i18nAPI, patientCgUserService: DiPatientCaregiverUserService, tenantConfigHelper: TenantConfigHelperService, badgeRewardsService: BadgeRewardsService, patientAdapterService: PatientAdapterService, patientUserService: PatientUserService, tenantConnector: TenantConnector, patientOthersDetailsService: PatientOthersDetailsService, patientCarePlanDetailsService: PatientCarePlanDetailsService, dailyCheckIns: DailyCheckInsService);
create(req: Omit, request: Request, currentUser: IAuthUserWithPermissions): Promise;
findPatientById(id: number, request: Request, currentUser: IAuthUserWithPermissions): Promise;
findOtherplanDetails(request: Request, filter?: Filter): Promise;
updateByPatientId(id: number, req: Omit, request: Request, currentUser: IAuthUserWithPermissions): Promise;
createExternalId(length?: number): string;
find(request: Request, filter?: Filter): Promise<(PatientOtherdetails & User)[]>;
createPatient(req: Omit, request: Request, currentUser: IAuthUserWithPermissions): Promise;
handleCaregiverAdd(careGiverToUpdate: any, patientDetailsBeforeUpdate: any, currentUser: IAuthUserWithPermissions, token?: string): Promise;
addCaregiver(req: any, patient: Patient, token?: string): Promise;
updateCaregiver(caregiver: Caregiver, currentUser: IAuthUserWithPermissions, token?: string): Promise;
}