diff --git a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/ContextAndRuleProviderState.cs b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/ContextAndRuleProviderState.cs
index 70cc832d2d..786d537998 100644
--- a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/ContextAndRuleProviderState.cs
+++ b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/ContextAndRuleProviderState.cs
@@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.ProjectSystem.VS.Query;
/// to pass the state their child producers will need, but allows the actual binding
/// of the to be delayed until needed.
///
-internal sealed class ContextAndRuleProviderState
+public sealed class ContextAndRuleProviderState
{
public ContextAndRuleProviderState(IProjectState projectState, QueryProjectPropertiesContext propertiesContext, Rule rule)
{
diff --git a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/IProjectState.cs b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/IProjectState.cs
index b5044898e8..8cfe7a00d9 100644
--- a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/IProjectState.cs
+++ b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/IProjectState.cs
@@ -32,7 +32,7 @@ namespace Microsoft.VisualStudio.ProjectSystem.VS.Query;
/// significantly reduce the amount of work we need to do.
///
///
-internal interface IProjectState
+public interface IProjectState
{
///
/// Binds the specified schema to a particular context within the given project configuration.
diff --git a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/QueryProjectPropertiesContext.cs b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/QueryProjectPropertiesContext.cs
index 6383525c0a..453a789967 100644
--- a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/QueryProjectPropertiesContext.cs
+++ b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/ProjectSystem/VS/Query/PropertyPages/QueryProjectPropertiesContext.cs
@@ -16,7 +16,7 @@ namespace Microsoft.VisualStudio.ProjectSystem.VS.Query;
/// manner that can be passed from one provider to another and is also suitable as a
/// key into a cache (such as the ).
///
-internal sealed class QueryProjectPropertiesContext : IProjectPropertiesContext, IEquatable
+public sealed class QueryProjectPropertiesContext : IProjectPropertiesContext, IEquatable
{
///
/// A well-known context representing the project file as a whole.
@@ -84,7 +84,7 @@ public override int GetHashCode()
/// Creates a from a Project Query API
/// .
///
- public static bool TryCreateFromEntityId(EntityIdentity id, [NotNullWhen(true)] out QueryProjectPropertiesContext? propertiesContext)
+ internal static bool TryCreateFromEntityId(EntityIdentity id, [NotNullWhen(true)] out QueryProjectPropertiesContext? propertiesContext)
{
if (id.TryGetValue(ProjectModelIdentityKeys.ProjectPath, out string? projectPath))
{
diff --git a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/PublicAPI.Unshipped.txt b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/PublicAPI.Unshipped.txt
index e69de29bb2..b5f0076f9e 100644
--- a/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/PublicAPI.Unshipped.txt
+++ b/src/Microsoft.VisualStudio.ProjectSystem.Managed.VS/PublicAPI.Unshipped.txt
@@ -0,0 +1,22 @@
+Microsoft.VisualStudio.ProjectSystem.VS.Query.ContextAndRuleProviderState
+Microsoft.VisualStudio.ProjectSystem.VS.Query.ContextAndRuleProviderState.ContextAndRuleProviderState(Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState! projectState, Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext! propertiesContext, Microsoft.Build.Framework.XamlTypes.Rule! rule) -> void
+Microsoft.VisualStudio.ProjectSystem.VS.Query.ContextAndRuleProviderState.ProjectState.get -> Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.ContextAndRuleProviderState.PropertiesContext.get -> Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.ContextAndRuleProviderState.Rule.get -> Microsoft.Build.Framework.XamlTypes.Rule!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState
+Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState.BindToRuleAsync(Microsoft.VisualStudio.ProjectSystem.ProjectConfiguration! projectConfiguration, string! schemaName, Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext! propertiesContext) -> System.Threading.Tasks.Task!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState.GetDataVersionAsync(Microsoft.VisualStudio.ProjectSystem.ProjectConfiguration! configuration) -> System.Threading.Tasks.Task<(string! versionKey, long versionNumber)?>!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState.GetKnownConfigurationsAsync() -> System.Threading.Tasks.Task?>!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState.GetMetadataVersionAsync() -> System.Threading.Tasks.Task<(string! versionKey, long versionNumber)?>!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.IProjectState.GetSuggestedConfigurationAsync() -> System.Threading.Tasks.Task!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext
+Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.Equals(Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext? other) -> bool
+Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.File.get -> string!
+Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.IsProjectFile.get -> bool
+Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.ItemName.get -> string?
+Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.ItemType.get -> string?
+Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.QueryProjectPropertiesContext(bool isProjectFile, string! file, string? itemType, string? itemName) -> void
+override Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.Equals(object! obj) -> bool
+override Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.GetHashCode() -> int
+static Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.TryCreateFromEntityId(Microsoft.VisualStudio.ProjectSystem.Query.EntityIdentity! id, out Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext? propertiesContext) -> bool
+static readonly Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext.ProjectFile -> Microsoft.VisualStudio.ProjectSystem.VS.Query.QueryProjectPropertiesContext!
\ No newline at end of file