Basically you need an encoder with quadrature output.
An index pulse is useful for avoiding to calibrate at startup, which is useful for application that has a force bias, like a robot arm that has gravity, since the bias is not good for calibration. However the firmware to make use of the index pulse is not in place yet.
The encoder frequency is the frequency of the A/B pulses for that encoder resolution and that motor's base speed. The motor base speed is a function of motor kv and supply voltage, and is the max speed of the motor without using field weakening (which isn't implemented yet). The reason that the encoder frequency is useful is because that is how the max rpm of many encoders are rated. For example the Omron E6B2-CWZ6C (datasheet) is rated to 100kHz pulse rate.
The $10 encoders from AliExpress have 600 PPR (2400 CPR), and have worked well so far, and are what I use on my machines.