```python
from typing import List

def merge_ledgers(base: List[List[str]], ours: List[List[str]], theirs: List[List[str]]) -> List[List[str]]:
    if not isinstance(base, list) or not isinstance(ours, list) or not isinstance(theirs, list):
        raise ValueError("All arguments must be lists.")
    if not all(isinstance(entry, list) and len(entry) == 2 for entry in base + ours + theirs):
        raise ValueError("All entries must be two-item lists.")
    if not all(isinstance(account, str) and account for account in base + ours + theirs):
        raise ValueError("All account names must be non-empty strings.")
    if not all(isinstance(cents, int) for cents in base + ours + theirs):
        raise ValueError("All cents values must be integers.")
    if len(set(account for account in base + ours + theirs)) != len(base + ours + theirs):
        raise ValueError("All accounts must be unique.")

    merged = []
    for account in set(base + ours + theirs):
        base_value = 0 if account not in base else int(base[base.index(account)][1])
        ours_value = 0 if account not in ours else int(ours[ours.index(account)][1])
        theirs_value = 0 if account not in theirs else int(theirs[theirs.index(account)][1])

        if account in ours and account in theirs:
            merged_value = base_value + ours_value + theirs_value
        elif account in ours:
            merged_value = base_value + ours_value
        elif account in theirs:
            merged_value = base_value + theirs_value
        else:
            merged_value = base_value

        merged.append([account, merged_value])

    return sorted(merged, key=lambda x: x[0])
```