```ts
function auditTicket(ticket: string): string {
  if (typeof ticket !== 'string') {
    throw new Error('Invalid input');
  }

  const regex = /^[A-Z]{2}-\d{4}-\d{1}$/;
  if (!regex.test(ticket)) {
    return 'shape';
  }

  let total = 0;
  for (let i = 0; i < ticket.length - 1; i++) {
    const char = ticket[i];
    const value = char === 'A' ? 1 : char === 'B' ? 2 : char === 'C' ? 3 : char === 'D' ? 4 : char === 'E' ? 5 : char === 'F' ? 6 : char === 'G' ? 7 : char === 'H' ? 8 : char === 'I' ? 9 : char === 'J' ? 10 : char === 'K' ? 11 : char === 'L' ? 12 : char === 'M' ? 13 : char === 'N' ? 14 : char === 'O' ? 15 : char === 'P' ? 16 : char === 'Q' ? 17 : char === 'R' ? 18 : char === 'S' ? 19 : char === 'T' ? 20 : char === 'U' ? 21 : char === 'V' ? 22 : char === 'W' ? 23 : char === 'X' ? 24 : char === 'Y' ? 25 : char === 'Z' ? 26 : 0;
    total += value * (i + 1);
  }

  const checkDigit = parseInt(ticket.slice(-1), 10);
  if (checkDigit !== total % 10) {
    return 'check';
  }

  return 'ok';
}
```