State variables can have visibility public, private or internal (default):
https://docs.soliditylang.org/en/latest/contracts.html#state-variable-visibility
The following contract should either not be parsable or should not pass typechecking:
contract C {
int external x;
constructor() { x = 1; }
function f() external view returns (int) { return(x); }
}