```ts
export function runLengthEncode(input: string): string {
    if (typeof input !== 'string') {
        throw new Error('Input must be a string');
    }

    let encoded = '';
    for (let i = 0; i < input.length; i++) {
        const char = input[i];
        let count = 1;
        while (i + count < input.length && char === input[i + count]) {
            count++;
        }
        if (count <= 9) {
            encoded += char + count.toString();
        } else if (count > 9) {
            throw new Error('Run length greater than nine characters is not stated');
        }
        i += count - 1;
    }

    return encoded;
}
```