La prima variante è corretta; nella seconda il congiuntivo trapassato non è giustificato, ma deve essere sostituito dal futuro anteriore, come nella prima, o dal congiuntivo passato.
Per quanto riguarda sarà passato / sia passato, entrambe le soluzioni sono corrette: la prima instaura un rapporto di anteriorità nel futuro rispetto a sarà / sarebbe, mettendo l'accento sul momento di inizio del tempo intercorso dall'ultimo incontro; la seconda instaura un rapporto di anteriorità nel presente, che per il congiuntivo equivale all'anteriorità nel futuro, visto che il congiuntivo non ha il futuro. Tra sarà passato e sia passato, quindi, la differenza è di tipo diafasico: il congiuntivo, cioè, è più formale dell'indicativo. Il terzo evento introduce una complicazione, perché prende come momento di riferimento un passato nel futuro (sarà passato / sia passato), rispetto al quale è precedente. Il parlante, quindi, deve scegliere se rappresentarlo come precedente rispetto al passato (avessi visto) o rispetto al futuro, quindi al presente (avrai visto / abbia visto). La soluzione più logica è la seconda, perché è chiaro che il piano temporale di fondo (definito dal verbo della proposizione principale) è futuro.
Una soluzione ancora più informale (perché più vaga) del futuro anteriore, ma probabilmente quella che un parlante sarebbe portato a scegliere in un contesto parlato anche di media formalità, è l'indicativo passato prossimo (hai visto), che collocherebbe l'evento nel passato, quindi automaticamente in un momento precedente a sarà passato (ignorando che il piano temporale di fondo è futuro).
Fabio Ruggiano