Needs `@api private`