No, that’s all the developer’s responsibility to decide what an OptiX application requires.
Non-indexed triangles and indexed triangles are explained here: https://raytracing-docs.nvidia.com/optix6/guide_6_5/index.html#host#triangles
You also don’t need to provide any normals if your specific OptiX program implementation can work without.
The acceleration structure (AS) is a bounding volume hierarchy (BVH) of axis aligned bounding boxes (AABB).
For custom primitives you as a developer must implement the bounding box program to calculate the AABB around the individual geometric primitives.
For GeometryTriangles OptiX does that with a built-in program internally.
The AS build happens on the next launch after the AS has been marked dirty automatically or manually.
That BVH is built over the spatial structure of these leaf AABBs to get a fast hierarchical acceleration structure which speeds up the BVH traversal to find the closest intersection. You could call that hierarchy “layers” if you like.
How that AS works internally is abstracted by OptiX and has changed multiple times over different OptiX versions.