/**
 * Admission Vital Information Model - Response Types
 *
 * Purpose: Response type definitions with populated references
 * Prefix: admvi_ (admission vital information)
 */
import { AdmissionVitalInformationBase } from "../../schema/admission/admission_vital_information";
import { AdmissionEntityAccessPassManagementBase } from "../../schema/admission/admission_contact_addresses";
import { controllerResponse } from "../../utilities";
import { MTableQueries } from "../../common-types/common";
export interface MAdmissionVitalInformationListPayload extends MTableQueries {
    admvi_admission_id_admap?: string;
    admvi_vital_type_id_sygms?: string;
    admvi_isactive?: boolean;
    query?: string;
}
export interface MAdmissionVitalInformationGetByIdPayload {
    admvi_id: string;
}
export interface MAdmissionVitalInformationDeletePayload {
    admvi_id: string;
}
export interface MAdmissionVitalInformationInsertUpdatePayload extends Partial<AdmissionVitalInformationBase> {
    _id?: string;
    admvi_id?: string;
}
/**
 * Response type with populated references
 * Using Omit to avoid type conflicts when overriding properties
 */
type AdmissionAdmissionVitalInformation = Omit<AdmissionVitalInformationBase, 'admvi_admission_id_admap' | 'admvi_vital_type_id_sygms' | 'admvi_unit_id_sygms' | 'admvi_captured_by_user'> & {
    admvi_admission_id_admap?: {
        _id: string;
        admap_application_number?: string;
        admap_first_name?: string;
        admap_last_name?: string;
    } | string;
    admvi_vital_type_id_sygms?: {
        _id: string;
        sygms_code: string;
        sygms_title: string;
    } | string;
    admvi_unit_id_sygms?: {
        _id: string;
        sygms_code: string;
        sygms_title: string;
    } | string;
    admvi_captured_by_user?: {
        _id: string;
        user_username?: string;
        user_fullname?: string;
    } | string;
    admission_entity_access_pass_management?: AdmissionEntityAccessPassManagementBase;
};
/**
 * Controller response type for list operations
 */
interface admissionVitalInformationControllerResponse extends controllerResponse {
    data?: AdmissionAdmissionVitalInformation[] | AdmissionAdmissionVitalInformation | null;
    totalDocument?: number;
}
/**
 * Controller response for single operations
 */
interface AdmissionVitalInformationResponse extends AdmissionAdmissionVitalInformation {
}
export { AdmissionAdmissionVitalInformation, // Main response type
AdmissionVitalInformationResponse, // Single response
admissionVitalInformationControllerResponse };
