/**
 * Admission Contact Addresses Model - Response Types
 *
 * Purpose: Response type definitions with populated references
 * Cloned from: AuthUserCoreUserContactAddresses
 * Prefix: admca_ (admission contact addresses)
 */
import { AdmissionContactAddressesBase, AdmissionEntityAccessPassManagementBase } from "../../schema/admission/admission_contact_addresses";
import { controllerResponse } from "../../utilities";
import { MTableQueries } from "../../common-types/common";
export interface MAdmissionContactAddressListPayload extends MTableQueries {
    admca_admission_id_admap?: string;
    admca_is_primary?: boolean;
    admca_isactive?: boolean;
    query?: string;
}
export interface MAdmissionContactAddressGetByIdPayload {
    admca_id: string;
}
export interface MAdmissionContactAddressDeletePayload {
    admca_id: string;
}
export interface MAdmissionContactAddressInsertUpdatePayload extends Partial<AdmissionContactAddressesBase> {
    _id?: string;
    admca_id?: string;
}
/**
 * Response type with populated references
 * Using Omit to avoid type conflicts when overriding properties
 */
type AdmissionAdmissionContactAddresses = Omit<AdmissionContactAddressesBase, 'admca_admission_id_admap' | 'admca_address_type_id_sygms' | 'admca_contact_pin_sypin' | 'admca_contact_country_syctr'> & {
    admca_admission_id_admap?: {
        _id: string;
        admap_application_number?: string;
        admap_first_name?: string;
        admap_last_name?: string;
    } | string;
    admca_address_type_id_sygms?: {
        _id: string;
        sygms_code: string;
        sygms_title: string;
    } | string;
    admca_contact_pin_sypin?: {
        _id: string;
        sypin_pincode: number;
        sypin_city: string;
        sypin_state: string;
    } | string;
    admca_contact_country_syctr?: {
        _id: string;
        syctr_country_iso_name: string;
        syctr_country_iso_code: string;
        syctr_country_code: string;
    } | string;
    admission_entity_access_pass_management?: AdmissionEntityAccessPassManagementBase;
};
/**
 * Controller response type for list operations
 */
interface admissionContactAddressesControllerResponse extends controllerResponse {
    data?: AdmissionAdmissionContactAddresses[] | AdmissionAdmissionContactAddresses | null;
    totalDocument?: number;
}
/**
 * Controller response for single operations
 */
interface AdmissionContactAddressResponse extends AdmissionAdmissionContactAddresses {
}
export { AdmissionAdmissionContactAddresses, // Main response type
AdmissionContactAddressResponse, // Single response
admissionContactAddressesControllerResponse };
