mDNS Discovery on customcomponent steps

hello ,

What all edits we have to do in order to make a custom device discoverable in homeassistant using a custom component using the zeroconf/mDNS . ?
What all data are needed to provide in the mDNS data from the Device to make it Discoverable in homeassistant UI. ?
Can Anyone help on this …