// This file contains auto-generated code.
// Generated from `NHibernate, Version=5.5.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4`.
namespace NHibernate
{
    namespace Action
    {
        public abstract class AbstractEntityInsertAction : NHibernate.Action.EntityAction
        {
            protected AbstractEntityInsertAction(object id, object[] state, object instance, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Engine.ISessionImplementor), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public object[] State { get => throw null; }
        }
        public delegate void AfterTransactionCompletionProcessDelegate(bool success);
        public delegate void BeforeTransactionCompletionProcessDelegate();
        public class BulkOperationCleanupAction : NHibernate.Action.IAfterTransactionCompletionProcess, NHibernate.Action.IAsyncExecutable, NHibernate.Action.ICacheableExecutable, NHibernate.Action.IExecutable
        {
            public NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get => throw null; }
            NHibernate.Action.IAfterTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.AfterTransactionCompletionProcess { get => throw null; }
            public void BeforeExecutions() => throw null;
            public System.Threading.Tasks.Task BeforeExecutionsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Action.BeforeTransactionCompletionProcessDelegate BeforeTransactionCompletionProcess { get => throw null; }
            NHibernate.Action.IBeforeTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.BeforeTransactionCompletionProcess { get => throw null; }
            public BulkOperationCleanupAction(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Entity.IQueryable[] affectedQueryables) => throw null;
            public BulkOperationCleanupAction(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet<string> querySpaces) => throw null;
            public void Execute() => throw null;
            public void ExecuteAfterTransactionCompletion(bool success) => throw null;
            public System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void Init() => throw null;
            public virtual System.Threading.Tasks.Task InitAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public string[] PropertySpaces { get => throw null; }
            public string[] QueryCacheSpaces { get => throw null; }
        }
        public abstract class CollectionAction : NHibernate.Action.IAfterTransactionCompletionProcess, NHibernate.Action.IAsyncExecutable, NHibernate.Action.ICacheableExecutable, System.IComparable<NHibernate.Action.CollectionAction>, System.Runtime.Serialization.IDeserializationCallback, NHibernate.Action.IExecutable
        {
            NHibernate.Action.IAfterTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.AfterTransactionCompletionProcess { get => throw null; }
            public virtual NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get => throw null; }
            public virtual void BeforeExecutions() => throw null;
            public virtual System.Threading.Tasks.Task BeforeExecutionsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            NHibernate.Action.IBeforeTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.BeforeTransactionCompletionProcess { get => throw null; }
            public virtual NHibernate.Action.BeforeTransactionCompletionProcessDelegate BeforeTransactionCompletionProcess { get => throw null; }
            protected NHibernate.Collection.IPersistentCollection Collection { get => throw null; }
            public virtual int CompareTo(NHibernate.Action.CollectionAction other) => throw null;
            protected CollectionAction(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected void Evict() => throw null;
            protected System.Threading.Tasks.Task EvictAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract void Execute();
            public virtual void ExecuteAfterTransactionCompletion(bool success) => throw null;
            public virtual System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken);
            protected object GetKey() => throw null;
            protected System.Threading.Tasks.Task<object> GetKeyAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected object Key { get => throw null; }
            public NHibernate.Cache.Access.ISoftLock Lock { get => throw null; }
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            protected NHibernate.Persister.Collection.ICollectionPersister Persister { get => throw null; }
            public string[] PropertySpaces { get => throw null; }
            public string[] QueryCacheSpaces { get => throw null; }
            protected NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public override string ToString() => throw null;
        }
        public sealed class CollectionRecreateAction : NHibernate.Action.CollectionAction
        {
            public CollectionRecreateAction(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object key, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null;
            public override void Execute() => throw null;
            public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public sealed class CollectionRemoveAction : NHibernate.Action.CollectionAction
        {
            public override int CompareTo(NHibernate.Action.CollectionAction other) => throw null;
            public CollectionRemoveAction(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object id, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null;
            public CollectionRemoveAction(object affectedOwner, NHibernate.Persister.Collection.ICollectionPersister persister, object id, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null;
            public override void Execute() => throw null;
            public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public sealed class CollectionUpdateAction : NHibernate.Action.CollectionAction
        {
            public CollectionUpdateAction(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object key, bool emptySnapshot, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null;
            public override void Execute() => throw null;
            public override void ExecuteAfterTransactionCompletion(bool success) => throw null;
            public override System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class DelayedPostInsertIdentifier
        {
            public object ActualId { get => throw null; set { } }
            public DelayedPostInsertIdentifier() => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Action.DelayedPostInsertIdentifier that) => throw null;
            public override int GetHashCode() => throw null;
            public override string ToString() => throw null;
        }
        public abstract class EntityAction : NHibernate.Action.IAfterTransactionCompletionProcess, NHibernate.Action.IAsyncExecutable, NHibernate.Action.IBeforeTransactionCompletionProcess, NHibernate.Action.ICacheableExecutable, System.IComparable<NHibernate.Action.EntityAction>, System.Runtime.Serialization.IDeserializationCallback, NHibernate.Action.IExecutable
        {
            public virtual NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get => throw null; }
            NHibernate.Action.IAfterTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.AfterTransactionCompletionProcess { get => throw null; }
            protected virtual void AfterTransactionCompletionProcessImpl(bool success) => throw null;
            protected virtual System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public void BeforeExecutions() => throw null;
            public System.Threading.Tasks.Task BeforeExecutionsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual NHibernate.Action.BeforeTransactionCompletionProcessDelegate BeforeTransactionCompletionProcess { get => throw null; }
            NHibernate.Action.IBeforeTransactionCompletionProcess NHibernate.Action.IAsyncExecutable.BeforeTransactionCompletionProcess { get => throw null; }
            protected virtual void BeforeTransactionCompletionProcessImpl() => throw null;
            protected virtual System.Threading.Tasks.Task BeforeTransactionCompletionProcessImplAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual int CompareTo(NHibernate.Action.EntityAction other) => throw null;
            protected EntityAction(NHibernate.Engine.ISessionImplementor session, object id, object instance, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            public string EntityName { get => throw null; }
            public abstract void Execute();
            public void ExecuteAfterTransactionCompletion(bool success) => throw null;
            public System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken);
            public void ExecuteBeforeTransactionCompletion() => throw null;
            public System.Threading.Tasks.Task ExecuteBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected abstract bool HasPostCommitEventListeners { get; }
            public object Id { get => throw null; }
            public object Instance { get => throw null; }
            protected virtual bool NeedsAfterTransactionCompletion() => throw null;
            protected virtual bool NeedsBeforeTransactionCompletion() => throw null;
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; }
            public string[] PropertySpaces { get => throw null; }
            public string[] QueryCacheSpaces { get => throw null; }
            public NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public override string ToString() => throw null;
        }
        public sealed class EntityDeleteAction : NHibernate.Action.EntityAction
        {
            protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null;
            protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int CompareTo(NHibernate.Action.EntityAction other) => throw null;
            public EntityDeleteAction(object id, object[] state, object version, object instance, NHibernate.Persister.Entity.IEntityPersister persister, bool isCascadeDeleteEnabled, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Engine.ISessionImplementor), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public override void Execute() => throw null;
            public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected override bool HasPostCommitEventListeners { get => throw null; }
        }
        public sealed class EntityIdentityInsertAction : NHibernate.Action.AbstractEntityInsertAction
        {
            protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null;
            protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public EntityIdentityInsertAction(object[] state, object instance, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session, bool isDelayed) : base(default(object), default(object[]), default(object), default(NHibernate.Persister.Entity.IEntityPersister), default(NHibernate.Engine.ISessionImplementor)) => throw null;
            public NHibernate.Engine.EntityKey DelayedEntityKey { get => throw null; }
            public override void Execute() => throw null;
            public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public object GeneratedId { get => throw null; }
            protected override bool HasPostCommitEventListeners { get => throw null; }
        }
        public sealed class EntityInsertAction : NHibernate.Action.AbstractEntityInsertAction
        {
            protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null;
            protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int CompareTo(NHibernate.Action.EntityAction other) => throw null;
            public EntityInsertAction(object id, object[] state, object instance, object version, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session) : base(default(object), default(object[]), default(object), default(NHibernate.Persister.Entity.IEntityPersister), default(NHibernate.Engine.ISessionImplementor)) => throw null;
            public override void Execute() => throw null;
            public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected override bool HasPostCommitEventListeners { get => throw null; }
        }
        public sealed class EntityUpdateAction : NHibernate.Action.EntityAction
        {
            protected override void AfterTransactionCompletionProcessImpl(bool success) => throw null;
            protected override System.Threading.Tasks.Task AfterTransactionCompletionProcessImplAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public EntityUpdateAction(object id, object[] state, int[] dirtyProperties, bool hasDirtyCollection, object[] previousState, object previousVersion, object nextVersion, object instance, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor session) : base(default(NHibernate.Engine.ISessionImplementor), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public override void Execute() => throw null;
            public override System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected override bool HasPostCommitEventListeners { get => throw null; }
        }
        public interface IAfterTransactionCompletionProcess
        {
            void ExecuteAfterTransactionCompletion(bool success);
            System.Threading.Tasks.Task ExecuteAfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken);
        }
        public interface IAsyncExecutable : NHibernate.Action.IExecutable
        {
            NHibernate.Action.IAfterTransactionCompletionProcess AfterTransactionCompletionProcess { get; }
            NHibernate.Action.IBeforeTransactionCompletionProcess BeforeTransactionCompletionProcess { get; }
        }
        public interface IBeforeTransactionCompletionProcess
        {
            void ExecuteBeforeTransactionCompletion();
            System.Threading.Tasks.Task ExecuteBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken);
        }
        public interface ICacheableExecutable : NHibernate.Action.IExecutable
        {
            string[] QueryCacheSpaces { get; }
        }
        public interface IExecutable
        {
            NHibernate.Action.AfterTransactionCompletionProcessDelegate AfterTransactionCompletionProcess { get; }
            void BeforeExecutions();
            System.Threading.Tasks.Task BeforeExecutionsAsync(System.Threading.CancellationToken cancellationToken);
            NHibernate.Action.BeforeTransactionCompletionProcessDelegate BeforeTransactionCompletionProcess { get; }
            void Execute();
            System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken);
            string[] PropertySpaces { get; }
        }
    }
    public class ADOException : NHibernate.HibernateException
    {
        public ADOException() => throw null;
        public ADOException(string message, System.Exception innerException) => throw null;
        public ADOException(string message, System.Exception innerException, string sql) => throw null;
        protected ADOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public string SqlString { get => throw null; }
    }
    namespace AdoNet
    {
        public abstract class AbstractBatcher : NHibernate.Engine.IBatcher, System.IDisposable
        {
            public void AbortBatch(System.Exception e) => throw null;
            public abstract void AddToBatch(NHibernate.AdoNet.IExpectation expectation);
            public abstract System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken);
            public abstract int BatchSize { get; set; }
            public void CancelLastQuery() => throw null;
            protected void CheckReaders() => throw null;
            protected System.Threading.Tasks.Task CheckReadersAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public void CloseCommand(System.Data.Common.DbCommand st, System.Data.Common.DbDataReader reader) => throw null;
            public virtual void CloseCommands() => throw null;
            public void CloseReader(System.Data.Common.DbDataReader reader) => throw null;
            protected NHibernate.AdoNet.ConnectionManager ConnectionManager { get => throw null; }
            protected System.Exception Convert(System.Exception sqlException, string message) => throw null;
            protected abstract int CountOfStatementsInCurrentBatch { get; }
            protected AbstractBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null;
            protected System.Data.Common.DbCommand CurrentCommand { get => throw null; }
            protected NHibernate.SqlTypes.SqlType[] CurrentCommandParameterTypes { get => throw null; }
            protected NHibernate.SqlCommand.SqlString CurrentCommandSql { get => throw null; }
            public void Dispose() => throw null;
            protected virtual void Dispose(bool isDisposing) => throw null;
            protected abstract void DoExecuteBatch(System.Data.Common.DbCommand ps);
            protected abstract System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken);
            protected NHibernate.Driver.IDriver Driver { get => throw null; }
            public void ExecuteBatch() => throw null;
            public System.Threading.Tasks.Task ExecuteBatchAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected void ExecuteBatchWithTiming(System.Data.Common.DbCommand ps) => throw null;
            protected System.Threading.Tasks.Task ExecuteBatchWithTimingAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null;
            public int ExecuteNonQuery(System.Data.Common.DbCommand cmd) => throw null;
            public System.Threading.Tasks.Task<int> ExecuteNonQueryAsync(System.Data.Common.DbCommand cmd, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Data.Common.DbDataReader ExecuteReader(System.Data.Common.DbCommand cmd) => throw null;
            public virtual System.Threading.Tasks.Task<System.Data.Common.DbDataReader> ExecuteReaderAsync(System.Data.Common.DbCommand cmd, System.Threading.CancellationToken cancellationToken) => throw null;
            protected NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
            public System.Data.Common.DbCommand Generate(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sqlString, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
            protected NHibernate.SqlCommand.SqlString GetSQL(NHibernate.SqlCommand.SqlString sql) => throw null;
            public bool HasOpenResources { get => throw null; }
            protected static readonly NHibernate.INHibernateLogger Log;
            protected void LogCommand(System.Data.Common.DbCommand command) => throw null;
            protected virtual void OnPreparedCommand() => throw null;
            protected virtual System.Threading.Tasks.Task OnPreparedCommandAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected void Prepare(System.Data.Common.DbCommand cmd) => throw null;
            protected System.Threading.Tasks.Task PrepareAsync(System.Data.Common.DbCommand cmd, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Data.Common.DbCommand PrepareBatchCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
            public virtual System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareBatchCommandAsync(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Data.Common.DbCommand PrepareCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
            public System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareCommandAsync(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Data.Common.DbCommand PrepareQueryCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
        }
        public class ColumnNameCache
        {
            public ColumnNameCache(int columnCount) => throw null;
            public int GetIndexForColumnName(string columnName, NHibernate.AdoNet.ResultSetWrapper rs) => throw null;
        }
        public class ConnectionManager : System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
        {
            public void AddDependentSession(NHibernate.Engine.ISessionImplementor session) => throw null;
            public void AfterNonTransactionalQuery(bool success) => throw null;
            public void AfterStatement() => throw null;
            public void AfterTransaction() => throw null;
            public NHibernate.Engine.IBatcher Batcher { get => throw null; }
            public System.IDisposable BeginProcessingFromSystemTransaction(bool allowConnectionUsage) => throw null;
            public NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null;
            public NHibernate.ITransaction BeginTransaction() => throw null;
            public System.Data.Common.DbConnection Close() => throw null;
            public System.Data.Common.DbCommand CreateCommand() => throw null;
            public System.Threading.Tasks.Task<System.Data.Common.DbCommand> CreateCommandAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public ConnectionManager(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection suppliedConnection, NHibernate.ConnectionReleaseMode connectionReleaseMode, NHibernate.IInterceptor interceptor, bool shouldAutoJoinTransaction, NHibernate.Connection.IConnectionAccess connectionAccess) => throw null;
            public ConnectionManager(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection suppliedConnection, NHibernate.ConnectionReleaseMode connectionReleaseMode, NHibernate.IInterceptor interceptor, bool shouldAutoJoinTransaction) => throw null;
            public NHibernate.ITransaction CurrentTransaction { get => throw null; }
            public System.Collections.Generic.IReadOnlyCollection<NHibernate.Engine.ISessionImplementor> DependentSessions { get => throw null; }
            public System.Data.Common.DbConnection Disconnect() => throw null;
            public void EnlistIfRequired(System.Transactions.Transaction transaction) => throw null;
            public void EnlistInTransaction(System.Data.Common.DbCommand command) => throw null;
            public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
            public void FlushBeginning() => throw null;
            public void FlushEnding() => throw null;
            public System.Data.Common.DbConnection GetConnection() => throw null;
            public System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetConnectionAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Data.Common.DbConnection GetNewConnection() => throw null;
            public System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetNewConnectionAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public bool IsConnected { get => throw null; }
            public bool IsInActiveExplicitTransaction { get => throw null; }
            public bool IsInActiveTransaction { get => throw null; }
            public bool IsReadyForSerialization { get => throw null; }
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            public bool ProcessingFromSystemTransaction { get => throw null; }
            public void Reconnect() => throw null;
            public void Reconnect(System.Data.Common.DbConnection suppliedConnection) => throw null;
            public void RemoveDependentSession(NHibernate.Engine.ISessionImplementor session) => throw null;
            public NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public bool ShouldAutoJoinTransaction { get => throw null; }
            public NHibernate.ITransaction Transaction { get => throw null; }
        }
        public class Expectations
        {
            public static NHibernate.AdoNet.IExpectation AppropriateExpectation(NHibernate.Engine.ExecuteUpdateResultCheckStyle style) => throw null;
            public static readonly NHibernate.AdoNet.IExpectation Basic;
            public class BasicExpectation : NHibernate.AdoNet.IExpectation
            {
                public virtual bool CanBeBatched { get => throw null; }
                public BasicExpectation(int expectedRowCount) => throw null;
                protected virtual int DetermineRowCount(int reportedRowCount, System.Data.Common.DbCommand statement) => throw null;
                public virtual int ExpectedRowCount { get => throw null; }
                public void VerifyOutcomeNonBatched(int rowCount, System.Data.Common.DbCommand statement) => throw null;
            }
            public static readonly NHibernate.AdoNet.IExpectation None;
            public class NoneExpectation : NHibernate.AdoNet.IExpectation
            {
                public bool CanBeBatched { get => throw null; }
                public NoneExpectation() => throw null;
                public int ExpectedRowCount { get => throw null; }
                public void VerifyOutcomeNonBatched(int rowCount, System.Data.Common.DbCommand statement) => throw null;
            }
            public static void VerifyOutcomeBatched(int expectedRowCount, int rowCount) => throw null;
            public static void VerifyOutcomeBatched(int expectedRowCount, int rowCount, System.Data.Common.DbCommand statement) => throw null;
        }
        public class GenericBatchingBatcher : NHibernate.AdoNet.AbstractBatcher
        {
            public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null;
            public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null;
            public override sealed int BatchSize { get => throw null; set { } }
            public override void CloseCommands() => throw null;
            protected override int CountOfStatementsInCurrentBatch { get => throw null; }
            public GenericBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null;
            protected override void Dispose(bool isDisposing) => throw null;
            protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null;
            protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class GenericBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory
        {
            public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null;
            public GenericBatchingBatcherFactory() => throw null;
        }
        public class HanaBatchingBatcher : NHibernate.AdoNet.AbstractBatcher
        {
            public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null;
            public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int BatchSize { get => throw null; set { } }
            public override void CloseCommands() => throw null;
            protected override int CountOfStatementsInCurrentBatch { get => throw null; }
            public HanaBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null;
            protected override void Dispose(bool isDisposing) => throw null;
            protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null;
            protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class HanaBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory
        {
            public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null;
            public HanaBatchingBatcherFactory() => throw null;
        }
        public interface IBatcherFactory
        {
            NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor);
        }
        public interface IEmbeddedBatcherFactoryProvider
        {
            System.Type BatcherFactoryClass { get; }
        }
        public interface IExpectation
        {
            bool CanBeBatched { get; }
            int ExpectedRowCount { get; }
            void VerifyOutcomeNonBatched(int rowCount, System.Data.Common.DbCommand statement);
        }
        public interface IParameterAdjuster
        {
            void AdjustParameterForValue(System.Data.Common.DbParameter parameter, NHibernate.SqlTypes.SqlType sqlType, object value);
        }
        public class MySqlClientBatchingBatcher : NHibernate.AdoNet.AbstractBatcher
        {
            public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null;
            public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int BatchSize { get => throw null; set { } }
            public override void CloseCommands() => throw null;
            protected override int CountOfStatementsInCurrentBatch { get => throw null; }
            public MySqlClientBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null;
            protected override void Dispose(bool isDisposing) => throw null;
            protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null;
            protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class MySqlClientBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory
        {
            public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null;
            public MySqlClientBatchingBatcherFactory() => throw null;
        }
        public class MySqlClientSqlCommandSet : System.IDisposable
        {
            public void Append(System.Data.Common.DbCommand command) => throw null;
            public int CountOfCommands { get => throw null; }
            public MySqlClientSqlCommandSet(int batchSize) => throw null;
            public void Dispose() => throw null;
            public int ExecuteNonQuery() => throw null;
        }
        public class NonBatchingBatcher : NHibernate.AdoNet.AbstractBatcher
        {
            public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null;
            public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int BatchSize { get => throw null; set { } }
            protected override int CountOfStatementsInCurrentBatch { get => throw null; }
            public NonBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null;
            protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null;
            protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class NonBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory
        {
            public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null;
            public NonBatchingBatcherFactory() => throw null;
        }
        public class OracleDataClientBatchingBatcher : NHibernate.AdoNet.AbstractBatcher
        {
            public override void AddToBatch(NHibernate.AdoNet.IExpectation expectation) => throw null;
            public override System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int BatchSize { get => throw null; set { } }
            protected override int CountOfStatementsInCurrentBatch { get => throw null; }
            public OracleDataClientBatchingBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) : base(default(NHibernate.AdoNet.ConnectionManager), default(NHibernate.IInterceptor)) => throw null;
            protected override void DoExecuteBatch(System.Data.Common.DbCommand ps) => throw null;
            protected override System.Threading.Tasks.Task DoExecuteBatchAsync(System.Data.Common.DbCommand ps, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class OracleDataClientBatchingBatcherFactory : NHibernate.AdoNet.IBatcherFactory
        {
            public virtual NHibernate.Engine.IBatcher CreateBatcher(NHibernate.AdoNet.ConnectionManager connectionManager, NHibernate.IInterceptor interceptor) => throw null;
            public OracleDataClientBatchingBatcherFactory() => throw null;
        }
        public class ResultSetWrapper : System.Data.Common.DbDataReader
        {
            public override void Close() => throw null;
            public ResultSetWrapper(System.Data.Common.DbDataReader resultSet, NHibernate.AdoNet.ColumnNameCache columnNameCache) => throw null;
            public override int Depth { get => throw null; }
            protected override void Dispose(bool disposing) => throw null;
            public override bool Equals(object obj) => throw null;
            public override int FieldCount { get => throw null; }
            public override bool GetBoolean(int i) => throw null;
            public override byte GetByte(int i) => throw null;
            public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) => throw null;
            public override char GetChar(int i) => throw null;
            public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) => throw null;
            public override string GetDataTypeName(int i) => throw null;
            public override System.DateTime GetDateTime(int i) => throw null;
            protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null;
            public override decimal GetDecimal(int i) => throw null;
            public override double GetDouble(int i) => throw null;
            public override System.Collections.IEnumerator GetEnumerator() => throw null;
            public override System.Type GetFieldType(int i) => throw null;
            public override float GetFloat(int i) => throw null;
            public override System.Guid GetGuid(int i) => throw null;
            public override int GetHashCode() => throw null;
            public override short GetInt16(int i) => throw null;
            public override int GetInt32(int i) => throw null;
            public override long GetInt64(int i) => throw null;
            public override string GetName(int i) => throw null;
            public override int GetOrdinal(string name) => throw null;
            public override System.Data.DataTable GetSchemaTable() => throw null;
            public override string GetString(int i) => throw null;
            public override object GetValue(int i) => throw null;
            public override int GetValues(object[] values) => throw null;
            public override bool HasRows { get => throw null; }
            public override bool IsClosed { get => throw null; }
            public override bool IsDBNull(int i) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool NextResult() => throw null;
            public override System.Threading.Tasks.Task<bool> NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Read() => throw null;
            public override System.Threading.Tasks.Task<bool> ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override int RecordsAffected { get => throw null; }
            public override object this[int i] { get => throw null; }
            public override object this[string name] { get => throw null; }
        }
        public class TooManyRowsAffectedException : NHibernate.HibernateException
        {
            public int ActualRowCount { get => throw null; }
            public TooManyRowsAffectedException(string message, int expectedRowCount, int actualRowCount) => throw null;
            protected TooManyRowsAffectedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public int ExpectedRowCount { get => throw null; }
            public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        namespace Util
        {
            public class BasicFormatter : NHibernate.AdoNet.Util.IFormatter
            {
                protected static readonly System.Collections.Generic.HashSet<string> beginClauses;
                public BasicFormatter() => throw null;
                protected static readonly System.Collections.Generic.HashSet<string> dml;
                protected static readonly System.Collections.Generic.HashSet<string> endClauses;
                public virtual string Format(string source) => throw null;
                protected const string IndentString = default;
                protected const string Initial = default;
                protected static readonly System.Collections.Generic.HashSet<string> logical;
                protected static readonly System.Collections.Generic.HashSet<string> misc;
                protected static readonly System.Collections.Generic.HashSet<string> quantifiers;
            }
            public class DdlFormatter : NHibernate.AdoNet.Util.IFormatter
            {
                public DdlFormatter() => throw null;
                public virtual string Format(string sql) => throw null;
                protected virtual string FormatAlterTable(string sql) => throw null;
                protected virtual string FormatCommentOn(string sql) => throw null;
                protected virtual string FormatCreateTable(string sql) => throw null;
            }
            public class FormatStyle
            {
                public static readonly NHibernate.AdoNet.Util.FormatStyle Basic;
                public static readonly NHibernate.AdoNet.Util.FormatStyle Ddl;
                public override bool Equals(object obj) => throw null;
                public bool Equals(NHibernate.AdoNet.Util.FormatStyle other) => throw null;
                public NHibernate.AdoNet.Util.IFormatter Formatter { get => throw null; }
                public override int GetHashCode() => throw null;
                public string Name { get => throw null; }
                public static readonly NHibernate.AdoNet.Util.FormatStyle None;
            }
            public interface IFormatter
            {
                string Format(string source);
            }
            public class SqlStatementLogger
            {
                public SqlStatementLogger() => throw null;
                public SqlStatementLogger(bool logToStdout, bool formatSql) => throw null;
                public NHibernate.AdoNet.Util.FormatStyle DetermineActualStyle(NHibernate.AdoNet.Util.FormatStyle style) => throw null;
                public bool FormatSql { get => throw null; set { } }
                public string GetCommandLineWithParameters(System.Data.Common.DbCommand command) => throw null;
                public string GetParameterLoggableValue(System.Data.Common.DbParameter parameter) => throw null;
                public bool IsDebugEnabled { get => throw null; }
                public void LogBatchCommand(string batchCommand) => throw null;
                public virtual void LogCommand(string message, System.Data.Common.DbCommand command, NHibernate.AdoNet.Util.FormatStyle style) => throw null;
                public virtual void LogCommand(System.Data.Common.DbCommand command, NHibernate.AdoNet.Util.FormatStyle style) => throw null;
                public bool LogToStdout { get => throw null; set { } }
            }
        }
    }
    public class AssertionFailure : System.Exception
    {
        public AssertionFailure() => throw null;
        public AssertionFailure(string message) => throw null;
        public AssertionFailure(string message, System.Exception innerException) => throw null;
        protected AssertionFailure(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Bytecode
    {
        public abstract class AbstractBytecodeProvider : NHibernate.Bytecode.IBytecodeProvider, NHibernate.Bytecode.IInjectableCollectionTypeFactoryClass, NHibernate.Bytecode.IInjectableProxyFactoryFactory
        {
            public virtual NHibernate.Bytecode.ICollectionTypeFactory CollectionTypeFactory { get => throw null; }
            protected AbstractBytecodeProvider() => throw null;
            public abstract NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters);
            public virtual NHibernate.Bytecode.IObjectsFactory ObjectsFactory { get => throw null; }
            protected System.Type proxyFactoryFactory;
            public virtual NHibernate.Bytecode.IProxyFactoryFactory ProxyFactoryFactory { get => throw null; }
            public void SetCollectionTypeFactoryClass(string typeAssemblyQualifiedName) => throw null;
            public void SetCollectionTypeFactoryClass(System.Type type) => throw null;
            public virtual void SetProxyFactoryFactory(string typeName) => throw null;
        }
        public static partial class AccessOptimizerExtensions
        {
            public static object GetPropertyValue(this NHibernate.Bytecode.IAccessOptimizer optimizer, object target, int i) => throw null;
            public static void SetPropertyValue(this NHibernate.Bytecode.IAccessOptimizer optimizer, object target, int i, object value) => throw null;
        }
        public class ActivatorObjectsFactory : NHibernate.Bytecode.IObjectsFactory
        {
            public object CreateInstance(System.Type type) => throw null;
            public object CreateInstance(System.Type type, bool nonPublic) => throw null;
            public object CreateInstance(System.Type type, params object[] ctorArgs) => throw null;
            public ActivatorObjectsFactory() => throw null;
        }
        public static partial class BytecodeProviderExtensions
        {
            public static NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(this NHibernate.Bytecode.IBytecodeProvider bytecodeProvider, System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters, NHibernate.Properties.IGetter specializedGetter, NHibernate.Properties.ISetter specializedSetter) => throw null;
        }
        public class DefaultProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory
        {
            public NHibernate.Proxy.IProxyFactory BuildProxyFactory() => throw null;
            public DefaultProxyFactoryFactory() => throw null;
            public bool IsInstrumented(System.Type entityClass) => throw null;
            public bool IsProxy(object entity) => throw null;
            public NHibernate.Proxy.IProxyValidator ProxyValidator { get => throw null; }
        }
        public class HibernateByteCodeException : NHibernate.HibernateException
        {
            public HibernateByteCodeException() => throw null;
            public HibernateByteCodeException(string message) => throw null;
            public HibernateByteCodeException(string message, System.Exception inner) => throw null;
            protected HibernateByteCodeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public class HibernateObjectsFactoryException : NHibernate.HibernateException
        {
            public HibernateObjectsFactoryException() => throw null;
            public HibernateObjectsFactoryException(string message) => throw null;
            public HibernateObjectsFactoryException(string message, System.Exception inner) => throw null;
            protected HibernateObjectsFactoryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public interface IAccessOptimizer
        {
            object[] GetPropertyValues(object target);
            void SetPropertyValues(object target, object[] values);
        }
        public interface IBytecodeEnhancementMetadata
        {
            bool EnhancedForLazyLoading { get; }
            string EntityName { get; }
            NHibernate.Intercept.IFieldInterceptor ExtractInterceptor(object entity);
            System.Collections.Generic.ISet<string> GetUninitializedLazyProperties(object entity);
            System.Collections.Generic.ISet<string> GetUninitializedLazyProperties(object[] entityState);
            bool HasAnyUninitializedLazyProperties(object entity);
            NHibernate.Intercept.IFieldInterceptor InjectInterceptor(object entity, NHibernate.Engine.ISessionImplementor session);
            NHibernate.Bytecode.LazyPropertiesMetadata LazyPropertiesMetadata { get; }
            NHibernate.Bytecode.UnwrapProxyPropertiesMetadata UnwrapProxyPropertiesMetadata { get; }
        }
        public interface IBytecodeProvider
        {
            NHibernate.Bytecode.ICollectionTypeFactory CollectionTypeFactory { get; }
            NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters);
            NHibernate.Bytecode.IObjectsFactory ObjectsFactory { get; }
            NHibernate.Bytecode.IProxyFactoryFactory ProxyFactoryFactory { get; }
        }
        public interface ICollectionTypeFactory
        {
            NHibernate.Type.CollectionType Array(string role, string propertyRef, System.Type elementClass);
            NHibernate.Type.CollectionType Bag<T>(string role, string propertyRef);
            NHibernate.Type.CollectionType IdBag<T>(string role, string propertyRef);
            NHibernate.Type.CollectionType List<T>(string role, string propertyRef);
            NHibernate.Type.CollectionType Map<TKey, TValue>(string role, string propertyRef);
            NHibernate.Type.CollectionType OrderedSet<T>(string role, string propertyRef);
            NHibernate.Type.CollectionType Set<T>(string role, string propertyRef);
            NHibernate.Type.CollectionType SortedDictionary<TKey, TValue>(string role, string propertyRef, System.Collections.Generic.IComparer<TKey> comparer);
            NHibernate.Type.CollectionType SortedList<TKey, TValue>(string role, string propertyRef, System.Collections.Generic.IComparer<TKey> comparer);
            NHibernate.Type.CollectionType SortedSet<T>(string role, string propertyRef, System.Collections.Generic.IComparer<T> comparer);
        }
        public interface IInjectableCollectionTypeFactoryClass
        {
            void SetCollectionTypeFactoryClass(string typeAssemblyQualifiedName);
            void SetCollectionTypeFactoryClass(System.Type type);
        }
        public interface IInjectableProxyFactoryFactory
        {
            void SetProxyFactoryFactory(string typeName);
        }
        public interface IInstantiationOptimizer
        {
            object CreateInstance();
        }
        public interface IObjectsFactory
        {
            object CreateInstance(System.Type type);
            object CreateInstance(System.Type type, bool nonPublic);
            object CreateInstance(System.Type type, params object[] ctorArgs);
        }
        public interface IProxyFactoryFactory
        {
            NHibernate.Proxy.IProxyFactory BuildProxyFactory();
            bool IsInstrumented(System.Type entityClass);
            bool IsProxy(object entity);
            NHibernate.Proxy.IProxyValidator ProxyValidator { get; }
        }
        public interface IReflectionOptimizer
        {
            NHibernate.Bytecode.IAccessOptimizer AccessOptimizer { get; }
            NHibernate.Bytecode.IInstantiationOptimizer InstantiationOptimizer { get; }
        }
        public class LazyPropertiesMetadata
        {
            public LazyPropertiesMetadata(string entityName, System.Collections.Generic.IDictionary<string, NHibernate.Bytecode.LazyPropertyDescriptor> lazyPropertyDescriptors, System.Collections.Generic.IDictionary<string, System.Collections.Generic.ISet<string>> fetchGroups) => throw null;
            public string EntityName { get => throw null; }
            public System.Collections.Generic.ISet<string> FetchGroupNames { get => throw null; }
            public static NHibernate.Bytecode.LazyPropertiesMetadata From(string entityName, System.Collections.Generic.IEnumerable<NHibernate.Bytecode.LazyPropertyDescriptor> lazyPropertyDescriptors) => throw null;
            public string GetFetchGroupName(string propertyName) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Bytecode.LazyPropertyDescriptor> GetFetchGroupPropertyDescriptors(string groupName) => throw null;
            public NHibernate.Bytecode.LazyPropertyDescriptor GetLazyPropertyDescriptor(string propertyName) => throw null;
            public System.Collections.Generic.ISet<string> GetPropertiesInFetchGroup(string groupName) => throw null;
            public bool HasLazyProperties { get => throw null; }
            public System.Collections.Generic.IEnumerable<NHibernate.Bytecode.LazyPropertyDescriptor> LazyPropertyDescriptors { get => throw null; }
            public System.Collections.Generic.ISet<string> LazyPropertyNames { get => throw null; }
            public static NHibernate.Bytecode.LazyPropertiesMetadata NonEnhanced(string entityName) => throw null;
        }
        public class LazyPropertyDescriptor
        {
            public string FetchGroupName { get => throw null; }
            public static NHibernate.Bytecode.LazyPropertyDescriptor From(NHibernate.Mapping.Property property, int propertyIndex, int lazyIndex) => throw null;
            public int LazyIndex { get => throw null; }
            public string Name { get => throw null; }
            public int PropertyIndex { get => throw null; }
            public NHibernate.Type.IType Type { get => throw null; }
        }
        namespace Lightweight
        {
            public class AccessOptimizer : NHibernate.Bytecode.IAccessOptimizer
            {
                public AccessOptimizer(NHibernate.Bytecode.Lightweight.GetPropertyValuesInvoker getDelegate, NHibernate.Bytecode.Lightweight.SetPropertyValuesInvoker setDelegate, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null;
                public AccessOptimizer(NHibernate.Bytecode.Lightweight.GetPropertyValuesInvoker getDelegate, NHibernate.Bytecode.Lightweight.SetPropertyValuesInvoker setDelegate, NHibernate.Bytecode.Lightweight.GetPropertyValueInvoker[] getters, NHibernate.Bytecode.Lightweight.SetPropertyValueInvoker[] setters, NHibernate.Bytecode.Lightweight.GetPropertyValueInvoker specializedGetter, NHibernate.Bytecode.Lightweight.SetPropertyValueInvoker specializedSetter) => throw null;
                public object GetPropertyValue(object target, int i) => throw null;
                public object[] GetPropertyValues(object target) => throw null;
                public void SetPropertyValue(object target, int i, object value) => throw null;
                public void SetPropertyValues(object target, object[] values) => throw null;
            }
            public class BytecodeProviderImpl : NHibernate.Bytecode.AbstractBytecodeProvider
            {
                public BytecodeProviderImpl() => throw null;
                public override NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type mappedClass, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null;
            }
            public delegate object CreateInstanceInvoker();
            public delegate object GetPropertyValueInvoker(object obj);
            public delegate object[] GetPropertyValuesInvoker(object obj, NHibernate.Bytecode.Lightweight.GetterCallback callback);
            public delegate object GetterCallback(object obj, int index);
            public class ReflectionOptimizer : NHibernate.Bytecode.IInstantiationOptimizer, NHibernate.Bytecode.IReflectionOptimizer
            {
                public NHibernate.Bytecode.IAccessOptimizer AccessOptimizer { get => throw null; }
                protected virtual NHibernate.Bytecode.Lightweight.CreateInstanceInvoker CreateCreateInstanceMethod(System.Type type) => throw null;
                protected System.Reflection.Emit.DynamicMethod CreateDynamicMethod(System.Type returnType, System.Type[] argumentTypes) => throw null;
                public virtual object CreateInstance() => throw null;
                public ReflectionOptimizer(System.Type mappedType, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null;
                public ReflectionOptimizer(System.Type mappedType, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters, NHibernate.Properties.IGetter specializedGetter, NHibernate.Properties.ISetter specializedSetter) => throw null;
                public NHibernate.Bytecode.IInstantiationOptimizer InstantiationOptimizer { get => throw null; }
                protected readonly System.Type mappedType;
                protected virtual void ThrowExceptionForNoDefaultCtor(System.Type type) => throw null;
            }
            public delegate void SetPropertyValueInvoker(object obj, object value);
            public delegate void SetPropertyValuesInvoker(object obj, object[] values, NHibernate.Bytecode.Lightweight.SetterCallback callback);
            public delegate void SetterCallback(object obj, int index, object value);
        }
        public class NotInstrumentedException : NHibernate.HibernateException
        {
            public NotInstrumentedException(string message) => throw null;
            protected NotInstrumentedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public class NullBytecodeProvider : NHibernate.Bytecode.AbstractBytecodeProvider
        {
            public NullBytecodeProvider() => throw null;
            public override NHibernate.Bytecode.IReflectionOptimizer GetReflectionOptimizer(System.Type clazz, NHibernate.Properties.IGetter[] getters, NHibernate.Properties.ISetter[] setters) => throw null;
        }
        public class StaticProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory
        {
            public NHibernate.Proxy.IProxyFactory BuildProxyFactory() => throw null;
            public StaticProxyFactoryFactory() => throw null;
            public bool IsInstrumented(System.Type entityClass) => throw null;
            public bool IsProxy(object entity) => throw null;
            public NHibernate.Proxy.IProxyValidator ProxyValidator { get => throw null; }
        }
        public class UnableToLoadProxyFactoryFactoryException : NHibernate.Bytecode.HibernateByteCodeException
        {
            public UnableToLoadProxyFactoryFactoryException(string typeName, System.Exception inner) => throw null;
            protected UnableToLoadProxyFactoryFactoryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public override string Message { get => throw null; }
            public string TypeName { get => throw null; }
        }
        public class UnwrapProxyPropertiesMetadata
        {
            public UnwrapProxyPropertiesMetadata(string entityName, System.Collections.Generic.IDictionary<string, NHibernate.Bytecode.UnwrapProxyPropertyDescriptor> unwrapProxyPropertyDescriptors) => throw null;
            public string EntityName { get => throw null; }
            public static NHibernate.Bytecode.UnwrapProxyPropertiesMetadata From(string entityName, System.Collections.Generic.IEnumerable<NHibernate.Bytecode.UnwrapProxyPropertyDescriptor> unwrapProxyPropertyDescriptors) => throw null;
            public int GetUnwrapProxyPropertyIndex(string propertyName) => throw null;
            public bool HasUnwrapProxyProperties { get => throw null; }
            public static NHibernate.Bytecode.UnwrapProxyPropertiesMetadata NonEnhanced(string entityName) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Bytecode.UnwrapProxyPropertyDescriptor> UnwrapProxyPropertyDescriptors { get => throw null; }
            public System.Collections.Generic.ISet<string> UnwrapProxyPropertyNames { get => throw null; }
        }
        public class UnwrapProxyPropertyDescriptor
        {
            public static NHibernate.Bytecode.UnwrapProxyPropertyDescriptor From(NHibernate.Mapping.Property property, int propertyIndex) => throw null;
            public string Name { get => throw null; }
            public int PropertyIndex { get => throw null; }
            public NHibernate.Type.IType Type { get => throw null; }
        }
    }
    namespace Cache
    {
        namespace Access
        {
            public interface ISoftLock
            {
            }
        }
        public abstract class CacheBase : NHibernate.Cache.ICache
        {
            public abstract void Clear();
            public virtual System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected CacheBase() => throw null;
            public abstract void Destroy();
            public abstract object Get(object key);
            public virtual System.Threading.Tasks.Task<object> GetAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual object[] GetMany(object[] keys) => throw null;
            public virtual System.Threading.Tasks.Task<object[]> GetManyAsync(object[] keys, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract object Lock(object key);
            void NHibernate.Cache.ICache.Lock(object key) => throw null;
            public virtual System.Threading.Tasks.Task<object> LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            System.Threading.Tasks.Task NHibernate.Cache.ICache.LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual object LockMany(object[] keys) => throw null;
            public virtual System.Threading.Tasks.Task<object> LockManyAsync(object[] keys, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract long NextTimestamp();
            public virtual bool PreferMultipleGet { get => throw null; }
            public abstract void Put(object key, object value);
            public virtual System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void PutMany(object[] keys, object[] values) => throw null;
            public virtual System.Threading.Tasks.Task PutManyAsync(object[] keys, object[] values, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract string RegionName { get; }
            public abstract void Remove(object key);
            public virtual System.Threading.Tasks.Task RemoveAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract int Timeout { get; }
            public abstract void Unlock(object key, object lockValue);
            void NHibernate.Cache.ICache.Unlock(object key) => throw null;
            System.Threading.Tasks.Task NHibernate.Cache.ICache.UnlockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task UnlockAsync(object key, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void UnlockMany(object[] keys, object lockValue) => throw null;
            public virtual System.Threading.Tasks.Task UnlockManyAsync(object[] keys, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public sealed class CacheBatcher
        {
        }
        public class CachedItem : NHibernate.Cache.ReadWriteCache.ILockable
        {
            public CachedItem() => throw null;
            public CachedItem(object value, long currentTimestamp, object version) => throw null;
            public long FreshTimestamp { get => throw null; set { } }
            public bool IsGettable(long txTimestamp) => throw null;
            public bool IsLock { get => throw null; }
            public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator, bool minimalPut) => throw null;
            public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator) => throw null;
            public NHibernate.Cache.CacheLock Lock(long timeout, int id) => throw null;
            public override string ToString() => throw null;
            public object Value { get => throw null; set { } }
            public object Version { get => throw null; set { } }
        }
        public class CacheException : NHibernate.HibernateException
        {
            public CacheException() => throw null;
            public CacheException(string message) => throw null;
            public CacheException(System.Exception innerException) => throw null;
            public CacheException(string message, System.Exception innerException) => throw null;
            protected CacheException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public static class CacheFactory
        {
            public static NHibernate.Cache.ICacheConcurrencyStrategy CreateCache(string usage, string name, bool mutable, NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public static NHibernate.Cache.ICacheConcurrencyStrategy CreateCache(string usage, NHibernate.Cache.CacheBase cache) => throw null;
            public static NHibernate.Cache.ICacheConcurrencyStrategy CreateCache(string usage, NHibernate.Cache.CacheBase cache, NHibernate.Cfg.Settings settings) => throw null;
            public const string Never = default;
            public const string NonstrictReadWrite = default;
            public const string ReadOnly = default;
            public const string ReadWrite = default;
            public const string Transactional = default;
        }
        public class CacheKey : System.Runtime.Serialization.IDeserializationCallback
        {
            public CacheKey(object id, NHibernate.Type.IType type, string entityOrRoleName, NHibernate.Engine.ISessionFactoryImplementor factory, string tenantIdentifier) => throw null;
            public CacheKey(object id, NHibernate.Type.IType type, string entityOrRoleName, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public string EntityOrRoleName { get => throw null; }
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public object Key { get => throw null; }
            public void OnDeserialization(object sender) => throw null;
            public override string ToString() => throw null;
        }
        public class CacheLock : NHibernate.Cache.ReadWriteCache.ILockable, NHibernate.Cache.Access.ISoftLock
        {
            public CacheLock() => throw null;
            public CacheLock(long timeout, int id, object version) => throw null;
            public int Id { get => throw null; set { } }
            public bool IsGettable(long txTimestamp) => throw null;
            public bool IsLock { get => throw null; }
            public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator, bool minimalPut) => throw null;
            public bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator) => throw null;
            public NHibernate.Cache.CacheLock Lock(long timeout, int id) => throw null;
            public int Multiplicity { get => throw null; set { } }
            public long Timeout { get => throw null; set { } }
            public override string ToString() => throw null;
            public void Unlock(long currentTimestamp) => throw null;
            public long UnlockTimestamp { get => throw null; set { } }
            public object Version { get => throw null; set { } }
            public bool WasLockedConcurrently { get => throw null; set { } }
        }
        public class CachePutData
        {
            public CachePutData(NHibernate.Cache.CacheKey key, object value, object version, System.Collections.IComparer versionComparer, bool minimalPut) => throw null;
            public NHibernate.Cache.CacheKey Key { get => throw null; }
            public bool MinimalPut { get => throw null; }
            public object Value { get => throw null; }
            public object Version { get => throw null; }
            public System.Collections.IComparer VersionComparer { get => throw null; }
        }
        namespace Entry
        {
            public sealed class CacheEntry
            {
                public bool AreLazyPropertiesUnfetched { get => throw null; set { } }
                public object[] Assemble(object instance, object id, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.IInterceptor interceptor, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object[]> AssembleAsync(object instance, object id, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.IInterceptor interceptor, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public static NHibernate.Cache.Entry.CacheEntry Create(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
                public static NHibernate.Cache.Entry.CacheEntry Create(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
                public static System.Threading.Tasks.Task<NHibernate.Cache.Entry.CacheEntry> CreateAsync(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                public static System.Threading.Tasks.Task<NHibernate.Cache.Entry.CacheEntry> CreateAsync(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, object version, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                public CacheEntry() => throw null;
                public CacheEntry(object[] state, NHibernate.Persister.Entity.IEntityPersister persister, bool unfetched, object version, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
                public object[] DisassembledState { get => throw null; set { } }
                public string Subclass { get => throw null; set { } }
                public object Version { get => throw null; set { } }
            }
            public class CollectionCacheEntry
            {
                public virtual void Assemble(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object owner) => throw null;
                public virtual System.Threading.Tasks.Task AssembleAsync(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                public static NHibernate.Cache.Entry.CollectionCacheEntry Create(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public static System.Threading.Tasks.Task<NHibernate.Cache.Entry.CollectionCacheEntry> CreateAsync(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                public CollectionCacheEntry() => throw null;
                public CollectionCacheEntry(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public virtual object[] State { get => throw null; set { } }
                public override string ToString() => throw null;
            }
            public interface ICacheEntryStructure
            {
                object Destructure(object map, NHibernate.Engine.ISessionFactoryImplementor factory);
                object Structure(object item);
            }
            public class StructuredCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure
            {
                public StructuredCacheEntry(NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                public object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public object Structure(object item) => throw null;
            }
            public class StructuredCollectionCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure
            {
                public StructuredCollectionCacheEntry() => throw null;
                public virtual object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public virtual object Structure(object item) => throw null;
            }
            public class StructuredMapCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure
            {
                public StructuredMapCacheEntry() => throw null;
                public object Destructure(object item, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public object Structure(object item) => throw null;
            }
            public class UnstructuredCacheEntry : NHibernate.Cache.Entry.ICacheEntryStructure
            {
                public UnstructuredCacheEntry() => throw null;
                public object Destructure(object map, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public object Structure(object item) => throw null;
            }
        }
        public class FakeCache : NHibernate.Cache.CacheBase
        {
            public override void Clear() => throw null;
            public override System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public FakeCache(string regionName) => throw null;
            public override void Destroy() => throw null;
            public override object Get(object key) => throw null;
            public override System.Threading.Tasks.Task<object> GetAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Lock(object key) => throw null;
            public override System.Threading.Tasks.Task<object> LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override long NextTimestamp() => throw null;
            public override bool PreferMultipleGet { get => throw null; }
            public override void Put(object key, object value) => throw null;
            public override System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string RegionName { get => throw null; }
            public override void Remove(object key) => throw null;
            public override System.Threading.Tasks.Task RemoveAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int Timeout { get => throw null; }
            public override void Unlock(object key, object lockValue) => throw null;
            public override System.Threading.Tasks.Task UnlockAsync(object key, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class FilterKey
        {
            public static System.Collections.Generic.ISet<NHibernate.Cache.FilterKey> CreateFilterKeys(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public FilterKey(string name, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>> @params, System.Collections.Generic.IDictionary<string, NHibernate.Type.IType> types) => throw null;
            public FilterKey(NHibernate.Impl.FilterImpl filter) => throw null;
            public override bool Equals(object other) => throw null;
            public override int GetHashCode() => throw null;
            public override string ToString() => throw null;
        }
        public class HashtableCache : NHibernate.Cache.CacheBase
        {
            public override void Clear() => throw null;
            public override System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public HashtableCache(string regionName) => throw null;
            public override void Destroy() => throw null;
            public override object Get(object key) => throw null;
            public override System.Threading.Tasks.Task<object> GetAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Lock(object key) => throw null;
            public override System.Threading.Tasks.Task<object> LockAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override long NextTimestamp() => throw null;
            public override bool PreferMultipleGet { get => throw null; }
            public override void Put(object key, object value) => throw null;
            public override System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string RegionName { get => throw null; }
            public override void Remove(object key) => throw null;
            public override System.Threading.Tasks.Task RemoveAsync(object key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int Timeout { get => throw null; }
            public override void Unlock(object key, object lockValue) => throw null;
            public override System.Threading.Tasks.Task UnlockAsync(object key, object lockValue, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class HashtableCacheProvider : NHibernate.Cache.ICacheProvider
        {
            NHibernate.Cache.ICache NHibernate.Cache.ICacheProvider.BuildCache(string regionName, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public NHibernate.Cache.CacheBase BuildCache(string regionName, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public HashtableCacheProvider() => throw null;
            public long NextTimestamp() => throw null;
            public void Start(System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public void Stop() => throw null;
        }
        public interface IBatchableCacheConcurrencyStrategy : NHibernate.Cache.ICacheConcurrencyStrategy
        {
            NHibernate.Cache.CacheBase Cache { get; set; }
            object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp);
            System.Threading.Tasks.Task<object[]> GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken);
            bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts);
            System.Threading.Tasks.Task<bool[]> PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken);
        }
        public interface IBatchableQueryCache : NHibernate.Cache.IQueryCache
        {
            System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<System.Collections.IList> GetAsync(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            System.Collections.IList[] GetMany(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.Generic.ISet<string>[] spaces, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<System.Collections.IList[]> GetManyAsync(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.Generic.ISet<string>[] spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            bool Put(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            bool[] PutMany(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<bool[]> PutManyAsync(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
        }
        public interface ICache
        {
            void Clear();
            System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken);
            void Destroy();
            object Get(object key);
            System.Threading.Tasks.Task<object> GetAsync(object key, System.Threading.CancellationToken cancellationToken);
            void Lock(object key);
            System.Threading.Tasks.Task LockAsync(object key, System.Threading.CancellationToken cancellationToken);
            long NextTimestamp();
            void Put(object key, object value);
            System.Threading.Tasks.Task PutAsync(object key, object value, System.Threading.CancellationToken cancellationToken);
            string RegionName { get; }
            void Remove(object key);
            System.Threading.Tasks.Task RemoveAsync(object key, System.Threading.CancellationToken cancellationToken);
            int Timeout { get; }
            void Unlock(object key);
            System.Threading.Tasks.Task UnlockAsync(object key, System.Threading.CancellationToken cancellationToken);
        }
        public interface ICacheConcurrencyStrategy
        {
            bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version);
            System.Threading.Tasks.Task<bool> AfterInsertAsync(NHibernate.Cache.CacheKey key, object value, object version, System.Threading.CancellationToken cancellationToken);
            bool AfterUpdate(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock);
            System.Threading.Tasks.Task<bool> AfterUpdateAsync(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken);
            NHibernate.Cache.ICache Cache { get; set; }
            void Clear();
            System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken);
            void Destroy();
            void Evict(NHibernate.Cache.CacheKey key);
            System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken);
            object Get(NHibernate.Cache.CacheKey key, long txTimestamp);
            System.Threading.Tasks.Task<object> GetAsync(NHibernate.Cache.CacheKey key, long txTimestamp, System.Threading.CancellationToken cancellationToken);
            bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion);
            NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version);
            System.Threading.Tasks.Task<NHibernate.Cache.Access.ISoftLock> LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken);
            bool Put(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparer, bool minimalPut);
            System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparer, bool minimalPut, System.Threading.CancellationToken cancellationToken);
            string RegionName { get; }
            void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock);
            System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken);
            void Remove(NHibernate.Cache.CacheKey key);
            System.Threading.Tasks.Task RemoveAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken);
            bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion);
            System.Threading.Tasks.Task<bool> UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken);
        }
        public interface ICacheLock : System.IDisposable
        {
            System.IDisposable ReadLock();
            System.Threading.Tasks.Task<System.IDisposable> ReadLockAsync();
            System.IDisposable WriteLock();
            System.Threading.Tasks.Task<System.IDisposable> WriteLockAsync();
        }
        public interface ICacheProvider
        {
            NHibernate.Cache.ICache BuildCache(string regionName, System.Collections.Generic.IDictionary<string, string> properties);
            long NextTimestamp();
            void Start(System.Collections.Generic.IDictionary<string, string> properties);
            void Stop();
        }
        public interface ICacheReadWriteLockFactory
        {
            NHibernate.Cache.ICacheLock Create();
        }
        public interface IOptimisticCacheSource
        {
            bool IsVersioned { get; }
            System.Collections.IComparer VersionComparator { get; }
        }
        public interface IQueryCache
        {
            NHibernate.Cache.ICache Cache { get; }
            void Clear();
            System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken);
            void Destroy();
            System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<System.Collections.IList> GetAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            bool Put(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            string RegionName { get; }
        }
        public interface IQueryCacheFactory
        {
            NHibernate.Cache.IQueryCache GetQueryCache(string regionName, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary<string, string> props);
        }
        public static class LocableExtension
        {
        }
        public class NoCacheProvider : NHibernate.Cache.ICacheProvider
        {
            NHibernate.Cache.ICache NHibernate.Cache.ICacheProvider.BuildCache(string regionName, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public NHibernate.Cache.CacheBase BuildCache(string regionName, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public NoCacheProvider() => throw null;
            public long NextTimestamp() => throw null;
            public void Start(System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public void Stop() => throw null;
            public const string WarnMessage = default;
        }
        public class NonstrictReadWriteCache : NHibernate.Cache.IBatchableCacheConcurrencyStrategy, NHibernate.Cache.ICacheConcurrencyStrategy
        {
            public bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version) => throw null;
            public System.Threading.Tasks.Task<bool> AfterInsertAsync(NHibernate.Cache.CacheKey key, object value, object version, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool AfterUpdate(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock) => throw null;
            public System.Threading.Tasks.Task<bool> AfterUpdateAsync(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Cache.ICache Cache { get => throw null; set { } }
            NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set { } }
            public void Clear() => throw null;
            public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public NonstrictReadWriteCache() => throw null;
            public void Destroy() => throw null;
            public void Evict(NHibernate.Cache.CacheKey key) => throw null;
            public System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public object Get(NHibernate.Cache.CacheKey key, long txTimestamp) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(NHibernate.Cache.CacheKey key, long txTimestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp) => throw null;
            public System.Threading.Tasks.Task<object[]> GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion) => throw null;
            public NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version) => throw null;
            public System.Threading.Tasks.Task<NHibernate.Cache.Access.ISoftLock> LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Put(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null;
            public System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null;
            public System.Threading.Tasks.Task<bool[]> PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null;
            public string RegionName { get => throw null; }
            public void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock) => throw null;
            public System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null;
            public void Remove(NHibernate.Cache.CacheKey key) => throw null;
            public System.Threading.Tasks.Task RemoveAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion) => throw null;
            public System.Threading.Tasks.Task<bool> UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public static class QueryCacheFactoryExtension
        {
            public static NHibernate.Cache.IQueryCache GetQueryCache(this NHibernate.Cache.IQueryCacheFactory factory, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, System.Collections.Generic.IDictionary<string, string> props, NHibernate.Cache.CacheBase regionCache) => throw null;
        }
        public sealed class QueryCacheResultBuilder
        {
            public static bool IsCacheWithFetches(NHibernate.Loader.Loader loader) => throw null;
            public static bool IsCacheWithFetches(NHibernate.Loader.ILoader loader) => throw null;
        }
        public class QueryKey : System.Runtime.Serialization.IDeserializationCallback, System.IEquatable<NHibernate.Cache.QueryKey>
        {
            public int ComputeHashCode() => throw null;
            public QueryKey(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.SqlCommand.SqlString queryString, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet<NHibernate.Cache.FilterKey> filters, NHibernate.Transform.CacheableResultTransformer customTransformer, string tenantIdentifier) => throw null;
            public QueryKey(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.SqlCommand.SqlString queryString, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet<NHibernate.Cache.FilterKey> filters, NHibernate.Transform.CacheableResultTransformer customTransformer) => throw null;
            public override bool Equals(object other) => throw null;
            public bool Equals(NHibernate.Cache.QueryKey other) => throw null;
            public override int GetHashCode() => throw null;
            public void OnDeserialization(object sender) => throw null;
            public NHibernate.Transform.CacheableResultTransformer ResultTransformer { get => throw null; }
            public NHibernate.Cache.QueryKey SetFirstRows(int[] firstRows) => throw null;
            public NHibernate.Cache.QueryKey SetMaxRows(int[] maxRows) => throw null;
            public override string ToString() => throw null;
        }
        public class ReadOnlyCache : NHibernate.Cache.IBatchableCacheConcurrencyStrategy, NHibernate.Cache.ICacheConcurrencyStrategy
        {
            public bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version) => throw null;
            public System.Threading.Tasks.Task<bool> AfterInsertAsync(NHibernate.Cache.CacheKey key, object value, object version, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool AfterUpdate(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock) => throw null;
            public System.Threading.Tasks.Task<bool> AfterUpdateAsync(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Cache.ICache Cache { get => throw null; set { } }
            NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set { } }
            public void Clear() => throw null;
            public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public ReadOnlyCache() => throw null;
            public void Destroy() => throw null;
            public void Evict(NHibernate.Cache.CacheKey key) => throw null;
            public System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public object Get(NHibernate.Cache.CacheKey key, long timestamp) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(NHibernate.Cache.CacheKey key, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp) => throw null;
            public System.Threading.Tasks.Task<object[]> GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion) => throw null;
            public NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version) => throw null;
            public System.Threading.Tasks.Task<NHibernate.Cache.Access.ISoftLock> LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Put(NHibernate.Cache.CacheKey key, object value, long timestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null;
            public System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.CacheKey key, object value, long timestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null;
            public System.Threading.Tasks.Task<bool[]> PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null;
            public string RegionName { get => throw null; }
            public void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock) => throw null;
            public System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock @lock, System.Threading.CancellationToken cancellationToken) => throw null;
            public void Remove(NHibernate.Cache.CacheKey key) => throw null;
            public System.Threading.Tasks.Task RemoveAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion) => throw null;
            public System.Threading.Tasks.Task<bool> UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class ReadWriteCache : NHibernate.Cache.IBatchableCacheConcurrencyStrategy, NHibernate.Cache.ICacheConcurrencyStrategy
        {
            public bool AfterInsert(NHibernate.Cache.CacheKey key, object value, object version) => throw null;
            public System.Threading.Tasks.Task<bool> AfterInsertAsync(NHibernate.Cache.CacheKey key, object value, object version, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool AfterUpdate(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock clientLock) => throw null;
            public System.Threading.Tasks.Task<bool> AfterUpdateAsync(NHibernate.Cache.CacheKey key, object value, object version, NHibernate.Cache.Access.ISoftLock clientLock, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Cache.ICache Cache { get => throw null; set { } }
            NHibernate.Cache.CacheBase NHibernate.Cache.IBatchableCacheConcurrencyStrategy.Cache { get => throw null; set { } }
            public void Clear() => throw null;
            public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public ReadWriteCache() => throw null;
            public ReadWriteCache(NHibernate.Cache.ICacheLock locker) => throw null;
            public void Destroy() => throw null;
            public void Evict(NHibernate.Cache.CacheKey key) => throw null;
            public System.Threading.Tasks.Task EvictAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public object Get(NHibernate.Cache.CacheKey key, long txTimestamp) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(NHibernate.Cache.CacheKey key, long txTimestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public object[] GetMany(NHibernate.Cache.CacheKey[] keys, long timestamp) => throw null;
            public System.Threading.Tasks.Task<object[]> GetManyAsync(NHibernate.Cache.CacheKey[] keys, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public interface ILockable
            {
                bool IsGettable(long txTimestamp);
                bool IsLock { get; }
                bool IsPuttable(long txTimestamp, object newVersion, System.Collections.IComparer comparator);
                NHibernate.Cache.CacheLock Lock(long timeout, int id);
            }
            public bool Insert(NHibernate.Cache.CacheKey key, object value, object currentVersion) => throw null;
            public NHibernate.Cache.Access.ISoftLock Lock(NHibernate.Cache.CacheKey key, object version) => throw null;
            public System.Threading.Tasks.Task<NHibernate.Cache.Access.ISoftLock> LockAsync(NHibernate.Cache.CacheKey key, object version, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Put(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut) => throw null;
            public System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.CacheKey key, object value, long txTimestamp, object version, System.Collections.IComparer versionComparator, bool minimalPut, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool[] PutMany(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts) => throw null;
            public System.Threading.Tasks.Task<bool[]> PutManyAsync(NHibernate.Cache.CacheKey[] keys, object[] values, long timestamp, object[] versions, System.Collections.IComparer[] versionComparers, bool[] minimalPuts, System.Threading.CancellationToken cancellationToken) => throw null;
            public string RegionName { get => throw null; }
            public void Release(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock clientLock) => throw null;
            public System.Threading.Tasks.Task ReleaseAsync(NHibernate.Cache.CacheKey key, NHibernate.Cache.Access.ISoftLock clientLock, System.Threading.CancellationToken cancellationToken) => throw null;
            public void Remove(NHibernate.Cache.CacheKey key) => throw null;
            public System.Threading.Tasks.Task RemoveAsync(NHibernate.Cache.CacheKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Update(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion) => throw null;
            public System.Threading.Tasks.Task<bool> UpdateAsync(NHibernate.Cache.CacheKey key, object value, object currentVersion, object previousVersion, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class StandardQueryCache : NHibernate.Cache.IBatchableQueryCache, NHibernate.Cache.IQueryCache
        {
            public NHibernate.Cache.ICache Cache { get => throw null; }
            public void Clear() => throw null;
            public System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public StandardQueryCache(NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary<string, string> props, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, string regionName) => throw null;
            public StandardQueryCache(NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cache.CacheBase regionCache) => throw null;
            public void Destroy() => throw null;
            public System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Collections.IList Get(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<System.Collections.IList> GetAsync(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task<System.Collections.IList> GetAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, bool isNaturalKeyLookup, System.Collections.Generic.ISet<string> spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Collections.IList[] GetMany(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.Generic.ISet<string>[] spaces, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<System.Collections.IList[]> GetManyAsync(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.Generic.ISet<string>[] spaces, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual bool IsUpToDate(System.Collections.Generic.ISet<string> spaces, long timestamp) => throw null;
            protected virtual System.Threading.Tasks.Task<bool> IsUpToDateAsync(System.Collections.Generic.ISet<string> spaces, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool Put(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, NHibernate.Engine.ISessionImplementor session) => throw null;
            public bool Put(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task<bool> PutAsync(NHibernate.Cache.QueryKey key, NHibernate.Type.ICacheAssembler[] returnTypes, System.Collections.IList result, bool isNaturalKeyLookup, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool[] PutMany(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<bool[]> PutManyAsync(NHibernate.Cache.QueryKey[] keys, NHibernate.Engine.QueryParameters[] queryParameters, NHibernate.Type.ICacheAssembler[][] returnTypes, System.Collections.IList[] results, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public string RegionName { get => throw null; }
        }
        public class StandardQueryCacheFactory : NHibernate.Cache.IQueryCacheFactory
        {
            public StandardQueryCacheFactory() => throw null;
            public NHibernate.Cache.IQueryCache GetQueryCache(string regionName, NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary<string, string> props) => throw null;
            public virtual NHibernate.Cache.IQueryCache GetQueryCache(NHibernate.Cache.UpdateTimestampsCache updateTimestampsCache, System.Collections.Generic.IDictionary<string, string> props, NHibernate.Cache.CacheBase regionCache) => throw null;
        }
        public static class Timestamper
        {
            public static long Next() => throw null;
            public const short OneMs = 4096;
        }
        public class UpdateTimestampsCache
        {
            public virtual bool[] AreUpToDate(System.Collections.Generic.ISet<string>[] spaces, long[] timestamps) => throw null;
            public virtual System.Threading.Tasks.Task<bool[]> AreUpToDateAsync(System.Collections.Generic.ISet<string>[] spaces, long[] timestamps, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void Clear() => throw null;
            public virtual System.Threading.Tasks.Task ClearAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public UpdateTimestampsCache(NHibernate.Cfg.Settings settings, System.Collections.Generic.IDictionary<string, string> props) => throw null;
            public UpdateTimestampsCache(NHibernate.Cache.CacheBase cache) => throw null;
            public virtual void Destroy() => throw null;
            public void Invalidate(object[] spaces) => throw null;
            public virtual void Invalidate(System.Collections.Generic.IReadOnlyCollection<string> spaces) => throw null;
            public System.Threading.Tasks.Task InvalidateAsync(object[] spaces, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task InvalidateAsync(System.Collections.Generic.IReadOnlyCollection<string> spaces, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual bool IsUpToDate(System.Collections.Generic.ISet<string> spaces, long timestamp) => throw null;
            public virtual System.Threading.Tasks.Task<bool> IsUpToDateAsync(System.Collections.Generic.ISet<string> spaces, long timestamp, System.Threading.CancellationToken cancellationToken) => throw null;
            public void PreInvalidate(object[] spaces) => throw null;
            public virtual void PreInvalidate(System.Collections.Generic.IReadOnlyCollection<string> spaces) => throw null;
            public System.Threading.Tasks.Task PreInvalidateAsync(object[] spaces, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task PreInvalidateAsync(System.Collections.Generic.IReadOnlyCollection<string> spaces, System.Threading.CancellationToken cancellationToken) => throw null;
        }
    }
    [System.Flags]
    public enum CacheMode
    {
        Ignore = 0,
        Put = 1,
        Get = 2,
        Normal = 3,
        Refresh = 5,
    }
    public class CallbackException : NHibernate.HibernateException
    {
        public CallbackException(System.Exception innerException) => throw null;
        public CallbackException(string message) => throw null;
        public CallbackException(string message, System.Exception innerException) => throw null;
        protected CallbackException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Cfg
    {
        public static class AppSettings
        {
            public const string LoggerFactoryClassName = default;
        }
        public class BindMappingEventArgs : System.EventArgs
        {
            public BindMappingEventArgs(NHibernate.Dialect.Dialect dialect, NHibernate.Cfg.MappingSchema.HbmMapping mapping, string fileName) => throw null;
            public BindMappingEventArgs(NHibernate.Cfg.MappingSchema.HbmMapping mapping, string fileName) => throw null;
            public NHibernate.Dialect.Dialect Dialect { get => throw null; }
            public string FileName { get => throw null; }
            public NHibernate.Cfg.MappingSchema.HbmMapping Mapping { get => throw null; }
        }
        public class ClassExtractor
        {
            public class ClassEntry
            {
                public ClassEntry(string extends, string className, string entityName, string assembly, string @namespace) => throw null;
                public string EntityName { get => throw null; }
                public override bool Equals(object obj) => throw null;
                public bool Equals(NHibernate.Cfg.ClassExtractor.ClassEntry obj) => throw null;
                public string ExtendsEntityName { get => throw null; }
                public NHibernate.Util.AssemblyQualifiedTypeName FullClassName { get => throw null; }
                public NHibernate.Util.AssemblyQualifiedTypeName FullExtends { get => throw null; }
                public override int GetHashCode() => throw null;
            }
            public ClassExtractor() => throw null;
            public static System.Collections.Generic.ICollection<NHibernate.Cfg.ClassExtractor.ClassEntry> GetClassEntries(NHibernate.Cfg.MappingSchema.HbmMapping document) => throw null;
        }
        public class Configuration : System.Runtime.Serialization.ISerializable
        {
            public NHibernate.Cfg.Configuration AddAssembly(string assemblyName) => throw null;
            public NHibernate.Cfg.Configuration AddAssembly(System.Reflection.Assembly assembly) => throw null;
            public void AddAuxiliaryDatabaseObject(NHibernate.Mapping.IAuxiliaryDatabaseObject obj) => throw null;
            public NHibernate.Cfg.Configuration AddClass(System.Type persistentClass) => throw null;
            public void AddDeserializedMapping(NHibernate.Cfg.MappingSchema.HbmMapping mappingDocument, string documentFileName) => throw null;
            public NHibernate.Cfg.Configuration AddDirectory(System.IO.DirectoryInfo dir) => throw null;
            public NHibernate.Cfg.Configuration AddDocument(System.Xml.XmlDocument doc) => throw null;
            public NHibernate.Cfg.Configuration AddDocument(System.Xml.XmlDocument doc, string name) => throw null;
            public NHibernate.Cfg.Configuration AddFile(string xmlFile) => throw null;
            public NHibernate.Cfg.Configuration AddFile(System.IO.FileInfo xmlFile) => throw null;
            public void AddFilterDefinition(NHibernate.Engine.FilterDefinition definition) => throw null;
            public NHibernate.Cfg.Configuration AddInputStream(System.IO.Stream xmlInputStream) => throw null;
            public NHibernate.Cfg.Configuration AddInputStream(System.IO.Stream xmlInputStream, string name) => throw null;
            public void AddMapping(NHibernate.Cfg.MappingSchema.HbmMapping mappingDocument) => throw null;
            public NHibernate.Cfg.Configuration AddNamedQuery(string queryIdentifier, System.Action<NHibernate.Cfg.Loquacious.NamedQueryDefinitionBuilder> namedQueryDefinition) => throw null;
            public NHibernate.Cfg.Configuration AddProperties(System.Collections.Generic.IDictionary<string, string> additionalProperties) => throw null;
            public NHibernate.Cfg.Configuration AddResource(string path, System.Reflection.Assembly assembly) => throw null;
            public NHibernate.Cfg.Configuration AddResources(System.Collections.Generic.IEnumerable<string> paths, System.Reflection.Assembly assembly) => throw null;
            public void AddSqlFunction(string functionName, NHibernate.Dialect.Function.ISQLFunction sqlFunction) => throw null;
            public NHibernate.Cfg.Configuration AddUrl(string url) => throw null;
            public NHibernate.Cfg.Configuration AddUrl(System.Uri url) => throw null;
            public NHibernate.Cfg.Configuration AddXml(string xml) => throw null;
            public NHibernate.Cfg.Configuration AddXml(string xml, string name) => throw null;
            public NHibernate.Cfg.Configuration AddXmlFile(string xmlFile) => throw null;
            public NHibernate.Cfg.Configuration AddXmlReader(System.Xml.XmlReader hbmReader) => throw null;
            public NHibernate.Cfg.Configuration AddXmlReader(System.Xml.XmlReader hbmReader, string name) => throw null;
            public NHibernate.Cfg.Configuration AddXmlString(string xml) => throw null;
            public event System.EventHandler<NHibernate.Cfg.BindMappingEventArgs> AfterBindMapping;
            public void AppendListeners(NHibernate.Event.ListenerType type, object[] listeners) => throw null;
            protected System.Collections.Generic.IList<NHibernate.Mapping.IAuxiliaryDatabaseObject> auxiliaryDatabaseObjects;
            public event System.EventHandler<NHibernate.Cfg.BindMappingEventArgs> BeforeBindMapping;
            public virtual NHibernate.Engine.IMapping BuildMapping() => throw null;
            public virtual NHibernate.Engine.IMapping BuildMapping(NHibernate.Dialect.Dialect dialect) => throw null;
            public virtual void BuildMappings() => throw null;
            public NHibernate.ISessionFactory BuildSessionFactory() => throw null;
            public NHibernate.Cfg.Configuration Cache(System.Action<NHibernate.Cfg.Loquacious.CacheConfigurationProperties> cacheProperties) => throw null;
            protected System.Collections.Generic.IDictionary<string, NHibernate.Mapping.PersistentClass> classes;
            public System.Collections.Generic.ICollection<NHibernate.Mapping.PersistentClass> ClassMappings { get => throw null; }
            public System.Collections.Generic.ICollection<NHibernate.Mapping.Collection> CollectionMappings { get => throw null; }
            protected System.Collections.Generic.IDictionary<string, NHibernate.Mapping.Collection> collections;
            public NHibernate.Cfg.Configuration CollectionTypeFactory<TCollectionsFactory>() => throw null;
            protected System.Collections.Generic.IDictionary<NHibernate.Mapping.Table, NHibernate.Cfg.Mappings.ColumnNames> columnNameBindingPerTable;
            public NHibernate.Cfg.Configuration Configure() => throw null;
            public NHibernate.Cfg.Configuration Configure(string fileName) => throw null;
            public NHibernate.Cfg.Configuration Configure(System.Reflection.Assembly assembly, string resourceName) => throw null;
            public NHibernate.Cfg.Configuration Configure(System.Xml.XmlReader textReader) => throw null;
            protected virtual void ConfigureProxyFactoryFactory() => throw null;
            public NHibernate.Cfg.Mappings CreateMappings(NHibernate.Dialect.Dialect dialect) => throw null;
            public NHibernate.Cfg.Mappings CreateMappings() => throw null;
            public Configuration(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            protected Configuration(NHibernate.Cfg.SettingsFactory settingsFactory) => throw null;
            public Configuration() => throw null;
            public NHibernate.Cfg.Configuration CurrentSessionContext<TCurrentSessionContext>() where TCurrentSessionContext : NHibernate.Context.ICurrentSessionContext => throw null;
            public NHibernate.Cfg.Configuration DataBaseIntegration(System.Action<NHibernate.Cfg.Loquacious.DbIntegrationConfigurationProperties> dataBaseIntegration) => throw null;
            public const string DefaultHibernateCfgFileName = default;
            protected NHibernate.Cfg.Configuration DoConfigure(NHibernate.Cfg.ISessionFactoryConfiguration factoryConfiguration) => throw null;
            public NHibernate.Cfg.Configuration EntityCache<TEntity>(System.Action<NHibernate.Cfg.Loquacious.EntityCacheConfigurationProperties<TEntity>> entityCacheConfiguration) where TEntity : class => throw null;
            public NHibernate.Proxy.IEntityNotFoundDelegate EntityNotFoundDelegate { get => throw null; set { } }
            public NHibernate.Event.EventListeners EventListeners { get => throw null; }
            protected System.Collections.Generic.ISet<NHibernate.Cfg.ExtendsQueueEntry> extendsQueue;
            public System.Collections.Generic.IDictionary<string, NHibernate.Engine.FilterDefinition> FilterDefinitions { get => throw null; set { } }
            protected System.Collections.Generic.Queue<NHibernate.Cfg.FilterSecondPassArgs> filtersSecondPasses;
            public string[] GenerateDropSchemaScript(NHibernate.Dialect.Dialect dialect) => throw null;
            public string[] GenerateSchemaCreationScript(NHibernate.Dialect.Dialect dialect) => throw null;
            public string[] GenerateSchemaUpdateScript(NHibernate.Dialect.Dialect dialect, NHibernate.Tool.hbm2ddl.IDatabaseMetadata databaseMetadata) => throw null;
            public NHibernate.Mapping.PersistentClass GetClassMapping(System.Type persistentClass) => throw null;
            public NHibernate.Mapping.PersistentClass GetClassMapping(string entityName) => throw null;
            public NHibernate.Mapping.Collection GetCollectionMapping(string role) => throw null;
            protected virtual string GetDefaultConfigurationFilePath() => throw null;
            public System.Collections.Generic.IDictionary<string, string> GetDerivedProperties() => throw null;
            public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public string GetProperty(string name) => throw null;
            public NHibernate.Cfg.Configuration HqlQueryTranslator<TQueryTranslator>() where TQueryTranslator : NHibernate.Hql.IQueryTranslatorFactory => throw null;
            public System.Collections.Generic.IDictionary<string, string> Imports { get => throw null; set { } }
            public static bool IncludeAction(NHibernate.Mapping.SchemaAction actionsSource, NHibernate.Mapping.SchemaAction includedAction) => throw null;
            public NHibernate.IInterceptor Interceptor { get => throw null; set { } }
            public NHibernate.Cfg.Configuration LinqQueryProvider<TQueryProvider>() where TQueryProvider : NHibernate.Linq.INhQueryProvider => throw null;
            public NHibernate.Cfg.Configuration LinqToHqlGeneratorsRegistry<TLinqToHqlGeneratorsRegistry>() where TLinqToHqlGeneratorsRegistry : NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry => throw null;
            public NHibernate.Cfg.NamedXmlDocument LoadMappingDocument(System.Xml.XmlReader hbmReader, string name) => throw null;
            public NHibernate.Cfg.Configuration Mappings(System.Action<NHibernate.Cfg.Loquacious.MappingsConfigurationProperties> mappingsProperties) => throw null;
            public System.Collections.Generic.IDictionary<string, NHibernate.Engine.NamedQueryDefinition> NamedQueries { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, NHibernate.Engine.NamedSQLQueryDefinition> NamedSQLQueries { get => throw null; set { } }
            public NHibernate.Cfg.INamingStrategy NamingStrategy { get => throw null; }
            public System.Collections.Generic.IDictionary<string, string> Properties { get => throw null; set { } }
            protected System.Collections.Generic.IList<NHibernate.Cfg.Mappings.PropertyReference> propertyReferences;
            public NHibernate.Cfg.Configuration Proxy(System.Action<NHibernate.Cfg.Loquacious.ProxyConfigurationProperties> proxyProperties) => throw null;
            protected void Reset() => throw null;
            protected System.Collections.Generic.IList<NHibernate.Cfg.SecondPassCommand> secondPasses;
            public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration SessionFactory() => throw null;
            public NHibernate.Cfg.Configuration SessionFactory(System.Action<NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration> configure) => throw null;
            public NHibernate.Cfg.Configuration SessionFactoryName(string sessionFactoryName) => throw null;
            public NHibernate.Cfg.Configuration SetCacheConcurrencyStrategy(string clazz, string concurrencyStrategy) => throw null;
            public void SetCacheConcurrencyStrategy(string clazz, string concurrencyStrategy, string region) => throw null;
            public NHibernate.Cfg.Configuration SetCollectionCacheConcurrencyStrategy(string collectionRole, string concurrencyStrategy) => throw null;
            public NHibernate.Cfg.Configuration SetDefaultAssembly(string newDefaultAssembly) => throw null;
            public NHibernate.Cfg.Configuration SetDefaultNamespace(string newDefaultNamespace) => throw null;
            public NHibernate.Cfg.Configuration SetInterceptor(NHibernate.IInterceptor newInterceptor) => throw null;
            public void SetListener(NHibernate.Event.ListenerType type, object listener) => throw null;
            public void SetListeners(NHibernate.Event.ListenerType type, string[] listenerClasses) => throw null;
            public void SetListeners(NHibernate.Event.ListenerType type, object[] listeners) => throw null;
            public NHibernate.Cfg.Configuration SetNamingStrategy(NHibernate.Cfg.INamingStrategy newNamingStrategy) => throw null;
            public NHibernate.Cfg.Configuration SetProperties(System.Collections.Generic.IDictionary<string, string> newProperties) => throw null;
            public NHibernate.Cfg.Configuration SetProperty(string name, string value) => throw null;
            protected NHibernate.Cfg.SettingsFactory settingsFactory;
            public System.Collections.Generic.IDictionary<string, NHibernate.Dialect.Function.ISQLFunction> SqlFunctions { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, NHibernate.Engine.ResultSetMappingDefinition> SqlResultSetMappings { get => throw null; set { } }
            protected System.Collections.Generic.IDictionary<string, NHibernate.Cfg.Mappings.TableDescription> tableNameBinding;
            protected System.Collections.Generic.IDictionary<string, NHibernate.Mapping.Table> tables;
            public NHibernate.Cfg.Configuration TypeDefinition<TDef>(System.Action<NHibernate.Cfg.Loquacious.TypeDefConfigurationProperties> typeDefConfiguration) where TDef : class => throw null;
            protected System.Collections.Generic.IDictionary<string, NHibernate.Mapping.TypeDef> typeDefs;
            public void ValidateSchema(NHibernate.Dialect.Dialect dialect, NHibernate.Tool.hbm2ddl.IDatabaseMetadata databaseMetadata) => throw null;
        }
        public static partial class ConfigurationExtensions
        {
            public static NHibernate.Cfg.Configuration AddNamedQuery(this NHibernate.Cfg.Configuration configuration, string queryIdentifier, System.Action<NHibernate.Cfg.Loquacious.INamedQueryDefinitionBuilder> namedQueryDefinition) => throw null;
            public static NHibernate.Cfg.Configuration Cache(this NHibernate.Cfg.Configuration configuration, System.Action<NHibernate.Cfg.Loquacious.ICacheConfigurationProperties> cacheProperties) => throw null;
            public static NHibernate.Cfg.Configuration CollectionTypeFactory<TCollecionsFactory>(this NHibernate.Cfg.Configuration configuration) => throw null;
            public static NHibernate.Cfg.Configuration CurrentSessionContext<TCurrentSessionContext>(this NHibernate.Cfg.Configuration configuration) where TCurrentSessionContext : NHibernate.Context.ICurrentSessionContext => throw null;
            public static NHibernate.Cfg.Configuration DataBaseIntegration(this NHibernate.Cfg.Configuration configuration, System.Action<NHibernate.Cfg.Loquacious.IDbIntegrationConfigurationProperties> dataBaseIntegration) => throw null;
            public static NHibernate.Cfg.Configuration EntityCache<TEntity>(this NHibernate.Cfg.Configuration configuration, System.Action<NHibernate.Cfg.Loquacious.IEntityCacheConfigurationProperties<TEntity>> entityCacheConfiguration) where TEntity : class => throw null;
            public static NHibernate.Cfg.Configuration HqlQueryTranslator<TQueryTranslator>(this NHibernate.Cfg.Configuration configuration) where TQueryTranslator : NHibernate.Hql.IQueryTranslatorFactory => throw null;
            public static NHibernate.Cfg.Configuration LinqQueryProvider<TQueryProvider>(this NHibernate.Cfg.Configuration configuration) where TQueryProvider : NHibernate.Linq.INhQueryProvider => throw null;
            public static NHibernate.Cfg.Configuration LinqToHqlGeneratorsRegistry<TLinqToHqlGeneratorsRegistry>(this NHibernate.Cfg.Configuration configuration) where TLinqToHqlGeneratorsRegistry : NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry => throw null;
            public static NHibernate.Cfg.Configuration Mappings(this NHibernate.Cfg.Configuration configuration, System.Action<NHibernate.Cfg.Loquacious.IMappingsConfigurationProperties> mappingsProperties) => throw null;
            public static NHibernate.Cfg.Configuration Proxy(this NHibernate.Cfg.Configuration configuration, System.Action<NHibernate.Cfg.Loquacious.IProxyConfigurationProperties> proxyProperties) => throw null;
            public static NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration SessionFactory(this NHibernate.Cfg.Configuration configuration) => throw null;
            public static NHibernate.Cfg.Configuration SessionFactoryName(this NHibernate.Cfg.Configuration configuration, string sessionFactoryName) => throw null;
            public static NHibernate.Cfg.Configuration TypeDefinition<TDef>(this NHibernate.Cfg.Configuration configuration, System.Action<NHibernate.Cfg.Loquacious.ITypeDefConfigurationProperties> typeDefConfiguration) where TDef : class => throw null;
        }
        public abstract class ConfigurationProvider
        {
            protected ConfigurationProvider() => throw null;
            public static NHibernate.Cfg.ConfigurationProvider Current { get => throw null; set { } }
            public abstract NHibernate.Cfg.IHibernateConfiguration GetConfiguration();
            public abstract string GetLoggerFactoryClassName();
            public abstract string GetNamedConnectionString(string name);
        }
        namespace ConfigurationSchema
        {
            public enum BytecodeProviderType
            {
                Lcg = 0,
                Null = 1,
            }
            public static class CfgXmlHelper
            {
                public static readonly System.Xml.XPath.XPathExpression ByteCodeProviderExpression;
                public const string CfgNamespacePrefix = default;
                public const string CfgSchemaXMLNS = default;
                public const string CfgSectionName = default;
                public static NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude ClassCacheIncludeConvertFrom(string include) => throw null;
                public static NHibernate.Event.ListenerType ListenerTypeConvertFrom(string listenerType) => throw null;
                public static readonly System.Xml.XPath.XPathExpression ObjectsFactoryExpression;
                public static readonly System.Xml.XPath.XPathExpression ReflectionOptimizerExpression;
                public static readonly System.Xml.XPath.XPathExpression SessionFactoryClassesCacheExpression;
                public static readonly System.Xml.XPath.XPathExpression SessionFactoryCollectionsCacheExpression;
                public static readonly System.Xml.XPath.XPathExpression SessionFactoryEventsExpression;
                public static readonly System.Xml.XPath.XPathExpression SessionFactoryExpression;
                public static readonly System.Xml.XPath.XPathExpression SessionFactoryListenersExpression;
                public static readonly System.Xml.XPath.XPathExpression SessionFactoryMappingsExpression;
                public static readonly System.Xml.XPath.XPathExpression SessionFactoryPropertiesExpression;
            }
            public class ClassCacheConfiguration
            {
                public string Class { get => throw null; }
                public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage) => throw null;
                public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage, NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude include) => throw null;
                public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage, string region) => throw null;
                public ClassCacheConfiguration(string clazz, NHibernate.Cfg.EntityCacheUsage usage, NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude include, string region) => throw null;
                public NHibernate.Cfg.ConfigurationSchema.ClassCacheInclude Include { get => throw null; }
                public string Region { get => throw null; }
                public NHibernate.Cfg.EntityCacheUsage Usage { get => throw null; }
            }
            public enum ClassCacheInclude
            {
                All = 0,
                NonLazy = 1,
            }
            public class CollectionCacheConfiguration
            {
                public string Collection { get => throw null; }
                public CollectionCacheConfiguration(string collection, NHibernate.Cfg.EntityCacheUsage usage) => throw null;
                public CollectionCacheConfiguration(string collection, NHibernate.Cfg.EntityCacheUsage usage, string region) => throw null;
                public string Region { get => throw null; }
                public NHibernate.Cfg.EntityCacheUsage Usage { get => throw null; }
            }
            public class EventConfiguration
            {
                public EventConfiguration(NHibernate.Cfg.ConfigurationSchema.ListenerConfiguration listener, NHibernate.Event.ListenerType type) => throw null;
                public System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.ListenerConfiguration> Listeners { get => throw null; }
                public NHibernate.Event.ListenerType Type { get => throw null; }
            }
            public class HibernateConfiguration : NHibernate.Cfg.IHibernateConfiguration
            {
                public string ByteCodeProviderType { get => throw null; }
                public HibernateConfiguration(System.Xml.XmlReader hbConfigurationReader) => throw null;
                public static NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration FromAppConfig(System.Xml.XmlNode node) => throw null;
                public static NHibernate.Cfg.ConfigurationSchema.HibernateConfiguration FromAppConfig(string xml) => throw null;
                public string ObjectsFactoryType { get => throw null; }
                public NHibernate.Cfg.ISessionFactoryConfiguration SessionFactory { get => throw null; }
                public bool UseReflectionOptimizer { get => throw null; }
            }
            public class ListenerConfiguration
            {
                public string Class { get => throw null; }
                public ListenerConfiguration(string clazz) => throw null;
                public ListenerConfiguration(string clazz, NHibernate.Event.ListenerType type) => throw null;
                public NHibernate.Event.ListenerType Type { get => throw null; }
            }
            public class MappingConfiguration : System.IEquatable<NHibernate.Cfg.ConfigurationSchema.MappingConfiguration>
            {
                public string Assembly { get => throw null; }
                public MappingConfiguration(string file) => throw null;
                public MappingConfiguration(string assembly, string resource) => throw null;
                public bool Equals(NHibernate.Cfg.ConfigurationSchema.MappingConfiguration other) => throw null;
                public string File { get => throw null; }
                public bool IsEmpty() => throw null;
                public string Resource { get => throw null; }
                public override string ToString() => throw null;
            }
            public class SessionFactoryConfiguration : NHibernate.Cfg.SessionFactoryConfigurationBase
            {
                public SessionFactoryConfiguration(string name) => throw null;
            }
        }
        public class ConfigurationSectionHandler : System.Configuration.IConfigurationSectionHandler
        {
            object System.Configuration.IConfigurationSectionHandler.Create(object parent, object configContext, System.Xml.XmlNode section) => throw null;
            public ConfigurationSectionHandler() => throw null;
        }
        public class DefaultNamingStrategy : NHibernate.Cfg.INamingStrategy
        {
            public string ClassToTableName(string className) => throw null;
            public string ColumnName(string columnName) => throw null;
            public static readonly NHibernate.Cfg.INamingStrategy Instance;
            public string LogicalColumnName(string columnName, string propertyName) => throw null;
            public string PropertyToColumnName(string propertyName) => throw null;
            public string PropertyToTableName(string className, string propertyName) => throw null;
            public string TableName(string tableName) => throw null;
        }
        public enum EntityCacheUsage
        {
            Readonly = 0,
            ReadWrite = 1,
            NonStrictReadWrite = 2,
            Transactional = 3,
            Never = 4,
        }
        public static class EntityCacheUsageParser
        {
            public static NHibernate.Cfg.EntityCacheUsage Parse(string value) => throw null;
            public static string ToString(NHibernate.Cfg.EntityCacheUsage value) => throw null;
        }
        public static class Environment
        {
            public const string AutoJoinTransaction = default;
            public const string BatchFetchStyle = default;
            public const string BatchSize = default;
            public const string BatchStrategy = default;
            public const string BatchVersionedData = default;
            public static NHibernate.Bytecode.IBytecodeProvider BuildBytecodeProvider(System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public static NHibernate.Bytecode.IObjectsFactory BuildObjectsFactory(System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public static NHibernate.Bytecode.IBytecodeProvider BytecodeProvider { get => throw null; set { } }
            public const string CacheDefaultExpiration = default;
            public const string CacheProvider = default;
            public const string CacheReadWriteLockFactory = default;
            public const string CacheRegionPrefix = default;
            public const string CollectionTypeFactoryClass = default;
            public const string CommandTimeout = default;
            public const string ConnectionDriver = default;
            public const string ConnectionProvider = default;
            public const string ConnectionString = default;
            public const string ConnectionStringName = default;
            public const string CurrentSessionContextClass = default;
            public const string DefaultBatchFetchSize = default;
            public const string DefaultCatalog = default;
            public const string DefaultEntityMode = default;
            public const string DefaultFlushMode = default;
            public const string DefaultSchema = default;
            public const string DetectFetchLoops = default;
            public const string Dialect = default;
            public const string EscapeBackslashInStrings = default;
            public const string FirebirdDisableParameterCasting = default;
            public const string FormatSql = default;
            public const string GenerateStatistics = default;
            public const string Hbm2ddlAuto = default;
            public const string Hbm2ddlKeyWords = default;
            public const string Hbm2ddlThrowOnUpdate = default;
            public static void InitializeGlobalProperties(NHibernate.Cfg.IHibernateConfiguration config) => throw null;
            public const string Isolation = default;
            public const string LinqToHqlFallbackOnPreEvaluation = default;
            public const string LinqToHqlGeneratorsRegistry = default;
            public const string LinqToHqlLegacyPreEvaluation = default;
            public const string MaxFetchDepth = default;
            public const string MultiTenancy = default;
            public const string MultiTenancyConnectionProvider = default;
            public static NHibernate.Bytecode.IObjectsFactory ObjectsFactory { get => throw null; set { } }
            public const string OdbcDateTimeScale = default;
            public const string OracleSuppressDecimalInvalidCastException = default;
            public const string OracleUseBinaryFloatingPointTypes = default;
            public const string OracleUseNPrefixedTypesForUnicode = default;
            public const string OrderInserts = default;
            public const string OrderUpdates = default;
            public const string OutputStylesheet = default;
            public const string PreferPooledValuesLo = default;
            public const string PrepareSql = default;
            public const string PreTransformerRegistrar = default;
            public static System.Collections.Generic.IDictionary<string, string> Properties { get => throw null; }
            public const string PropertyBytecodeProvider = default;
            public const string PropertyObjectsFactory = default;
            public const string PropertyUseReflectionOptimizer = default;
            public const string ProxyFactoryFactoryClass = default;
            public const string QueryCacheFactory = default;
            public const string QueryDefaultCastLength = default;
            public const string QueryDefaultCastPrecision = default;
            public const string QueryDefaultCastScale = default;
            public const string QueryImports = default;
            public const string QueryLinqProvider = default;
            public const string QueryModelRewriterFactory = default;
            public const string QueryPlanCacheMaxSize = default;
            public const string QueryPlanCacheParameterMetadataMaxSize = default;
            public const string QueryStartupChecking = default;
            public const string QuerySubstitutions = default;
            public const string QueryThrowNeverCached = default;
            public const string QueryTranslator = default;
            public const string ReleaseConnections = default;
            public const string SessionFactoryName = default;
            public const string ShowSql = default;
            public const string SqlExceptionConverter = default;
            public const string SqliteBinaryGuid = default;
            public const string SqlTypesKeepDateTime = default;
            public const string StatementFetchSize = default;
            public const string SystemTransactionCompletionLockTimeout = default;
            public const string TrackSessionId = default;
            public const string TransactionManagerStrategy = default;
            public const string TransactionStrategy = default;
            public const string UseConnectionOnSystemTransactionPrepare = default;
            public const string UseGetGeneratedKeys = default;
            public const string UseIdentifierRollBack = default;
            public const string UseMinimalPuts = default;
            public const string UseProxyValidator = default;
            public const string UseQueryCache = default;
            public static bool UseReflectionOptimizer { get => throw null; set { } }
            public const string UseSecondLevelCache = default;
            public const string UseSqlComments = default;
            public static void VerifyProperties(System.Collections.Generic.IDictionary<string, string> props) => throw null;
            public static string Version { get => throw null; }
            public const string WrapResultSets = default;
        }
        public class ExtendsQueueEntry
        {
            public ExtendsQueueEntry(string explicitName, string mappingPackage, System.Xml.XmlDocument document) => throw null;
            public System.Xml.XmlDocument Document { get => throw null; }
            public string ExplicitName { get => throw null; }
            public string MappingPackage { get => throw null; }
        }
        public class FilterSecondPassArgs
        {
            public FilterSecondPassArgs(NHibernate.Mapping.IFilterable filterable, string filterName) => throw null;
            public NHibernate.Mapping.IFilterable Filterable { get => throw null; }
            public string FilterName { get => throw null; }
        }
        public class Hbm2DDLKeyWords
        {
            public static NHibernate.Cfg.Hbm2DDLKeyWords AutoQuote;
            public override bool Equals(object obj) => throw null;
            public bool Equals(string other) => throw null;
            public bool Equals(NHibernate.Cfg.Hbm2DDLKeyWords other) => throw null;
            public override int GetHashCode() => throw null;
            public static NHibernate.Cfg.Hbm2DDLKeyWords Keywords;
            public static NHibernate.Cfg.Hbm2DDLKeyWords None;
            public static bool operator ==(string a, NHibernate.Cfg.Hbm2DDLKeyWords b) => throw null;
            public static bool operator ==(NHibernate.Cfg.Hbm2DDLKeyWords a, string b) => throw null;
            public static bool operator !=(NHibernate.Cfg.Hbm2DDLKeyWords a, string b) => throw null;
            public static bool operator !=(string a, NHibernate.Cfg.Hbm2DDLKeyWords b) => throw null;
            public override string ToString() => throw null;
        }
        public class HbmConstants
        {
            public HbmConstants() => throw null;
            public const string nsClass = default;
            public const string nsCollectionId = default;
            public const string nsColumn = default;
            public const string nsCreate = default;
            public const string nsDatabaseObject = default;
            public const string nsDefinition = default;
            public const string nsDialectScope = default;
            public const string nsDrop = default;
            public const string nsFilter = default;
            public const string nsFilterDef = default;
            public const string nsFilterParam = default;
            public const string nsFormula = default;
            public const string nsGenerator = default;
            public const string nsImport = default;
            public const string nsIndex = default;
            public const string nsJoinedSubclass = default;
            public const string nsKey = default;
            public const string nsListIndex = default;
            public const string nsLoader = default;
            public const string nsMeta = default;
            public const string nsMetaValue = default;
            public const string nsOneToMany = default;
            public const string nsParam = default;
            public const string nsPrefix = default;
            public const string nsQuery = default;
            public const string nsQueryParam = default;
            public const string nsResultset = default;
            public const string nsReturnColumn = default;
            public const string nsReturnDiscriminator = default;
            public const string nsReturnProperty = default;
            public const string nsSqlDelete = default;
            public const string nsSqlDeleteAll = default;
            public const string nsSqlInsert = default;
            public const string nsSqlQuery = default;
            public const string nsSqlUpdate = default;
            public const string nsSubclass = default;
            public const string nsSynchronize = default;
            public const string nsTuplizer = default;
            public const string nsType = default;
            public const string nsUnionSubclass = default;
        }
        public class HibernateConfigException : NHibernate.MappingException
        {
            public HibernateConfigException() : base(default(string)) => throw null;
            public HibernateConfigException(System.Exception innerException) : base(default(string)) => throw null;
            public HibernateConfigException(string message) : base(default(string)) => throw null;
            public HibernateConfigException(string message, System.Exception innerException) : base(default(string)) => throw null;
            protected HibernateConfigException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
        }
        public interface IHibernateConfiguration
        {
            string ByteCodeProviderType { get; }
            NHibernate.Cfg.ISessionFactoryConfiguration SessionFactory { get; }
            bool UseReflectionOptimizer { get; }
        }
        public class ImprovedNamingStrategy : NHibernate.Cfg.INamingStrategy
        {
            public string ClassToTableName(string className) => throw null;
            public string ColumnName(string columnName) => throw null;
            public static readonly NHibernate.Cfg.INamingStrategy Instance;
            public string LogicalColumnName(string columnName, string propertyName) => throw null;
            public string PropertyToColumnName(string propertyName) => throw null;
            public string PropertyToTableName(string className, string propertyName) => throw null;
            public string TableName(string tableName) => throw null;
        }
        public interface INamingStrategy
        {
            string ClassToTableName(string className);
            string ColumnName(string columnName);
            string LogicalColumnName(string columnName, string propertyName);
            string PropertyToColumnName(string propertyName);
            string PropertyToTableName(string className, string propertyName);
            string TableName(string tableName);
        }
        public interface ISessionFactoryConfiguration
        {
            System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.ClassCacheConfiguration> ClassesCache { get; }
            System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.CollectionCacheConfiguration> CollectionsCache { get; }
            System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.EventConfiguration> Events { get; }
            System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.ListenerConfiguration> Listeners { get; }
            System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.MappingConfiguration> Mappings { get; }
            string Name { get; }
            System.Collections.Generic.IDictionary<string, string> Properties { get; }
        }
        namespace Loquacious
        {
            public class BatcherConfiguration : NHibernate.Cfg.Loquacious.IBatcherConfiguration
            {
                public BatcherConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null;
                public NHibernate.Cfg.Loquacious.BatcherConfiguration DisablingInsertsOrdering() => throw null;
                NHibernate.Cfg.Loquacious.IBatcherConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.DisablingInsertsOrdering() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Each(short batchSize) => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.Each(short batchSize) => throw null;
                public NHibernate.Cfg.Loquacious.BatcherConfiguration OrderingInserts() => throw null;
                NHibernate.Cfg.Loquacious.IBatcherConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.OrderingInserts() => throw null;
                public NHibernate.Cfg.Loquacious.BatcherConfiguration Through<TBatcher>() where TBatcher : NHibernate.AdoNet.IBatcherFactory => throw null;
                NHibernate.Cfg.Loquacious.IBatcherConfiguration NHibernate.Cfg.Loquacious.IBatcherConfiguration.Through<TBatcher>() => throw null;
            }
            public class CacheConfiguration : NHibernate.Cfg.Loquacious.ICacheConfiguration
            {
                public CacheConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null;
                public NHibernate.Cfg.Loquacious.CacheConfiguration PrefixingRegionsWith(string regionPrefix) => throw null;
                NHibernate.Cfg.Loquacious.ICacheConfiguration NHibernate.Cfg.Loquacious.ICacheConfiguration.PrefixingRegionsWith(string regionPrefix) => throw null;
                public NHibernate.Cfg.Loquacious.QueryCacheConfiguration Queries { get => throw null; }
                NHibernate.Cfg.Loquacious.IQueryCacheConfiguration NHibernate.Cfg.Loquacious.ICacheConfiguration.Queries { get => throw null; }
                public NHibernate.Cfg.Loquacious.CacheConfiguration Through<TProvider>() where TProvider : NHibernate.Cache.ICacheProvider => throw null;
                NHibernate.Cfg.Loquacious.ICacheConfiguration NHibernate.Cfg.Loquacious.ICacheConfiguration.Through<TProvider>() => throw null;
                public NHibernate.Cfg.Loquacious.CacheConfiguration UsingMinimalPuts() => throw null;
                NHibernate.Cfg.Loquacious.ICacheConfiguration NHibernate.Cfg.Loquacious.ICacheConfiguration.UsingMinimalPuts() => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration WithDefaultExpiration(int seconds) => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.ICacheConfiguration.WithDefaultExpiration(int seconds) => throw null;
            }
            public class CacheConfigurationProperties : NHibernate.Cfg.Loquacious.ICacheConfigurationProperties
            {
                public CacheConfigurationProperties(NHibernate.Cfg.Configuration cfg) => throw null;
                public int DefaultExpiration { set { } }
                public void Provider<TProvider>() where TProvider : NHibernate.Cache.ICacheProvider => throw null;
                public void QueryCache<TFactory>() where TFactory : NHibernate.Cache.IQueryCache => throw null;
                public void QueryCacheFactory<TFactory>() where TFactory : NHibernate.Cache.IQueryCacheFactory => throw null;
                public string RegionsPrefix { set { } }
                public bool UseMinimalPuts { set { } }
                public bool UseQueryCache { set { } }
            }
            public static partial class CacheConfigurationPropertiesExtensions
            {
                public static void QueryCacheFactory<TFactory>(this NHibernate.Cfg.Loquacious.ICacheConfigurationProperties config) where TFactory : NHibernate.Cache.IQueryCacheFactory => throw null;
            }
            public class CollectionFactoryConfiguration : NHibernate.Cfg.Loquacious.ICollectionFactoryConfiguration
            {
                public CollectionFactoryConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration Through<TCollectionsFactory>() where TCollectionsFactory : NHibernate.Bytecode.ICollectionTypeFactory => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.ICollectionFactoryConfiguration.Through<TCollecionsFactory>() => throw null;
            }
            public class CommandsConfiguration : NHibernate.Cfg.Loquacious.ICommandsConfiguration
            {
                public NHibernate.Cfg.Loquacious.CommandsConfiguration AutoCommentingSql() => throw null;
                NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.AutoCommentingSql() => throw null;
                public NHibernate.Cfg.Loquacious.CommandsConfiguration ConvertingExceptionsThrough<TExceptionConverter>() where TExceptionConverter : NHibernate.Exceptions.ISQLExceptionConverter => throw null;
                NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.ConvertingExceptionsThrough<TExceptionConverter>() => throw null;
                public CommandsConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null;
                public NHibernate.Cfg.Loquacious.CommandsConfiguration Preparing() => throw null;
                NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.Preparing() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration WithDefaultHqlToSqlSubstitutions() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithDefaultHqlToSqlSubstitutions() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration WithHqlToSqlSubstitutions(string csvQuerySubstitutions) => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithHqlToSqlSubstitutions(string csvQuerySubstitutions) => throw null;
                public NHibernate.Cfg.Loquacious.CommandsConfiguration WithMaximumDepthOfOuterJoinFetching(byte maxFetchDepth) => throw null;
                NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithMaximumDepthOfOuterJoinFetching(byte maxFetchDepth) => throw null;
                public NHibernate.Cfg.Loquacious.CommandsConfiguration WithTimeout(byte seconds) => throw null;
                NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.ICommandsConfiguration.WithTimeout(byte seconds) => throw null;
            }
            public class ConnectionConfiguration : NHibernate.Cfg.Loquacious.IConnectionConfiguration
            {
                public NHibernate.Cfg.Loquacious.ConnectionConfiguration By<TDriver>() where TDriver : NHibernate.Driver.IDriver => throw null;
                NHibernate.Cfg.Loquacious.IConnectionConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.By<TDriver>() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration ByAppConfing(string connectionStringName) => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.ByAppConfing(string connectionStringName) => throw null;
                public ConnectionConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null;
                public NHibernate.Cfg.Loquacious.ConnectionConfiguration Releasing(NHibernate.ConnectionReleaseMode releaseMode) => throw null;
                NHibernate.Cfg.Loquacious.IConnectionConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.Releasing(NHibernate.ConnectionReleaseMode releaseMode) => throw null;
                public NHibernate.Cfg.Loquacious.ConnectionConfiguration Through<TProvider>() where TProvider : NHibernate.Connection.IConnectionProvider => throw null;
                NHibernate.Cfg.Loquacious.IConnectionConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.Through<TProvider>() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Using(string connectionString) => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Using(System.Data.Common.DbConnectionStringBuilder connectionStringBuilder) => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.Using(string connectionString) => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.Using(System.Data.Common.DbConnectionStringBuilder connectionStringBuilder) => throw null;
                public NHibernate.Cfg.Loquacious.ConnectionConfiguration With(System.Data.IsolationLevel level) => throw null;
                NHibernate.Cfg.Loquacious.IConnectionConfiguration NHibernate.Cfg.Loquacious.IConnectionConfiguration.With(System.Data.IsolationLevel level) => throw null;
            }
            public class DbIntegrationConfiguration : NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration
            {
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration AutoQuoteKeywords() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.AutoQuoteKeywords() => throw null;
                public NHibernate.Cfg.Loquacious.BatcherConfiguration BatchingQueries { get => throw null; }
                NHibernate.Cfg.Loquacious.IBatcherConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.BatchingQueries { get => throw null; }
                public NHibernate.Cfg.Configuration Configuration { get => throw null; }
                public NHibernate.Cfg.Loquacious.ConnectionConfiguration Connected { get => throw null; }
                NHibernate.Cfg.Loquacious.IConnectionConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.Connected { get => throw null; }
                public NHibernate.Cfg.Loquacious.CommandsConfiguration CreateCommands { get => throw null; }
                NHibernate.Cfg.Loquacious.ICommandsConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.CreateCommands { get => throw null; }
                public DbIntegrationConfiguration(NHibernate.Cfg.Configuration configuration) => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration DisableKeywordsAutoImport() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.DisableKeywordsAutoImport() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration EnableLogFormattedSql() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.EnableLogFormattedSql() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration LogSqlInConsole() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.LogSqlInConsole() => throw null;
                public NHibernate.Cfg.Loquacious.DbSchemaIntegrationConfiguration Schema { get => throw null; }
                NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.Schema { get => throw null; }
                public NHibernate.Cfg.Loquacious.TransactionConfiguration Transactions { get => throw null; }
                NHibernate.Cfg.Loquacious.ITransactionConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.Transactions { get => throw null; }
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Using<TDialect>() where TDialect : NHibernate.Dialect.Dialect => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration.Using<TDialect>() => throw null;
            }
            public class DbIntegrationConfigurationProperties : NHibernate.Cfg.Loquacious.IDbIntegrationConfigurationProperties
            {
                public bool AutoCommentSql { set { } }
                public void Batcher<TBatcher>() where TBatcher : NHibernate.AdoNet.IBatcherFactory => throw null;
                public short BatchSize { set { } }
                public void ConnectionProvider<TProvider>() where TProvider : NHibernate.Connection.IConnectionProvider => throw null;
                public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { set { } }
                public string ConnectionString { set { } }
                public string ConnectionStringName { set { } }
                public DbIntegrationConfigurationProperties(NHibernate.Cfg.Configuration configuration) => throw null;
                public void Dialect<TDialect>() where TDialect : NHibernate.Dialect.Dialect => throw null;
                public void Driver<TDriver>() where TDriver : NHibernate.Driver.IDriver => throw null;
                public void ExceptionConverter<TExceptionConverter>() where TExceptionConverter : NHibernate.Exceptions.ISQLExceptionConverter => throw null;
                public string HqlToSqlSubstitutions { set { } }
                public System.Data.IsolationLevel IsolationLevel { set { } }
                public NHibernate.Cfg.Hbm2DDLKeyWords KeywordsAutoImport { set { } }
                public bool LogFormattedSql { set { } }
                public bool LogSqlInConsole { set { } }
                public byte MaximumDepthOfOuterJoinFetching { set { } }
                public NHibernate.MultiTenancy.MultiTenancyStrategy MultiTenancy { set { } }
                public void MultiTenancyConnectionProvider<TProvider>() where TProvider : NHibernate.MultiTenancy.IMultiTenancyConnectionProvider => throw null;
                public bool OrderInserts { set { } }
                public bool PrepareCommands { set { } }
                public void PreTransformerRegistrar<TRegistrar>() where TRegistrar : NHibernate.Linq.Visitors.IExpressionTransformerRegistrar => throw null;
                public void QueryModelRewriterFactory<TFactory>() where TFactory : NHibernate.Linq.Visitors.IQueryModelRewriterFactory => throw null;
                public NHibernate.Cfg.SchemaAutoAction SchemaAction { set { } }
                public bool ThrowOnSchemaUpdate { set { } }
                public byte Timeout { set { } }
                public void TransactionFactory<TFactory>() where TFactory : NHibernate.Transaction.ITransactionFactory => throw null;
            }
            public class DbSchemaIntegrationConfiguration : NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration
            {
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Creating() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration.Creating() => throw null;
                public DbSchemaIntegrationConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Recreating() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration.Recreating() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration ThrowOnSchemaUpdate(bool @throw) => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Updating() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration.Updating() => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Validating() => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration.Validating() => throw null;
            }
            public class EntityCacheConfigurationProperties<TEntity> : NHibernate.Cfg.Loquacious.IEntityCacheConfigurationProperties<TEntity> where TEntity : class
            {
                public void Collection<TCollection>(System.Linq.Expressions.Expression<System.Func<TEntity, TCollection>> collectionProperty, System.Action<NHibernate.Cfg.Loquacious.EntityCollectionCacheConfigurationProperties> collectionCacheConfiguration) where TCollection : System.Collections.IEnumerable => throw null;
                void NHibernate.Cfg.Loquacious.IEntityCacheConfigurationProperties<TEntity>.Collection<TCollection>(System.Linq.Expressions.Expression<System.Func<TEntity, TCollection>> collectionProperty, System.Action<NHibernate.Cfg.Loquacious.IEntityCollectionCacheConfigurationProperties> collectionCacheConfiguration) => throw null;
                public EntityCacheConfigurationProperties() => throw null;
                public string RegionName { get => throw null; set { } }
                public NHibernate.Cfg.EntityCacheUsage? Strategy { get => throw null; set { } }
            }
            public class EntityCollectionCacheConfigurationProperties : NHibernate.Cfg.Loquacious.IEntityCollectionCacheConfigurationProperties
            {
                public EntityCollectionCacheConfigurationProperties() => throw null;
                public string RegionName { get => throw null; set { } }
                public NHibernate.Cfg.EntityCacheUsage Strategy { get => throw null; set { } }
            }
            public class FluentSessionFactoryConfiguration : NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration
            {
                public NHibernate.Cfg.Loquacious.CacheConfiguration Caching { get => throw null; }
                NHibernate.Cfg.Loquacious.ICacheConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.Caching { get => throw null; }
                public FluentSessionFactoryConfiguration(NHibernate.Cfg.Configuration configuration) => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration DefaultFlushMode(NHibernate.FlushMode flushMode) => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.DefaultFlushMode(NHibernate.FlushMode flushMode) => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration GenerateStatistics() => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.GenerateStatistics() => throw null;
                public NHibernate.Cfg.Loquacious.CollectionFactoryConfiguration GeneratingCollections { get => throw null; }
                NHibernate.Cfg.Loquacious.ICollectionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.GeneratingCollections { get => throw null; }
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Integrate { get => throw null; }
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.Integrate { get => throw null; }
                public NHibernate.Cfg.Loquacious.MappingsConfiguration Mapping { get => throw null; }
                NHibernate.Cfg.Loquacious.IMappingsConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.Mapping { get => throw null; }
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration Named(string sessionFactoryName) => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.Named(string sessionFactoryName) => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration ParsingHqlThrough<TQueryTranslator>() where TQueryTranslator : NHibernate.Hql.IQueryTranslatorFactory => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.ParsingHqlThrough<TQueryTranslator>() => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration ParsingLinqThrough<TQueryProvider>() where TQueryProvider : NHibernate.Linq.INhQueryProvider => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.ParsingLinqThrough<TQueryProvider>() => throw null;
                public NHibernate.Cfg.Loquacious.ProxyConfiguration Proxy { get => throw null; }
                NHibernate.Cfg.Loquacious.IProxyConfiguration NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration.Proxy { get => throw null; }
            }
            public interface IBatcherConfiguration
            {
                NHibernate.Cfg.Loquacious.IBatcherConfiguration DisablingInsertsOrdering();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Each(short batchSize);
                NHibernate.Cfg.Loquacious.IBatcherConfiguration OrderingInserts();
                NHibernate.Cfg.Loquacious.IBatcherConfiguration Through<TBatcher>() where TBatcher : NHibernate.AdoNet.IBatcherFactory;
            }
            public interface ICacheConfiguration
            {
                NHibernate.Cfg.Loquacious.ICacheConfiguration PrefixingRegionsWith(string regionPrefix);
                NHibernate.Cfg.Loquacious.IQueryCacheConfiguration Queries { get; }
                NHibernate.Cfg.Loquacious.ICacheConfiguration Through<TProvider>() where TProvider : NHibernate.Cache.ICacheProvider;
                NHibernate.Cfg.Loquacious.ICacheConfiguration UsingMinimalPuts();
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration WithDefaultExpiration(int seconds);
            }
            public interface ICacheConfigurationProperties
            {
                int DefaultExpiration { set; }
                void Provider<TProvider>() where TProvider : NHibernate.Cache.ICacheProvider;
                void QueryCache<TFactory>() where TFactory : NHibernate.Cache.IQueryCache;
                string RegionsPrefix { set; }
                bool UseMinimalPuts { set; }
                bool UseQueryCache { set; }
            }
            public interface ICollectionFactoryConfiguration
            {
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration Through<TCollecionsFactory>() where TCollecionsFactory : NHibernate.Bytecode.ICollectionTypeFactory;
            }
            public interface ICommandsConfiguration
            {
                NHibernate.Cfg.Loquacious.ICommandsConfiguration AutoCommentingSql();
                NHibernate.Cfg.Loquacious.ICommandsConfiguration ConvertingExceptionsThrough<TExceptionConverter>() where TExceptionConverter : NHibernate.Exceptions.ISQLExceptionConverter;
                NHibernate.Cfg.Loquacious.ICommandsConfiguration Preparing();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration WithDefaultHqlToSqlSubstitutions();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration WithHqlToSqlSubstitutions(string csvQuerySubstitutions);
                NHibernate.Cfg.Loquacious.ICommandsConfiguration WithMaximumDepthOfOuterJoinFetching(byte maxFetchDepth);
                NHibernate.Cfg.Loquacious.ICommandsConfiguration WithTimeout(byte seconds);
            }
            public interface IConnectionConfiguration
            {
                NHibernate.Cfg.Loquacious.IConnectionConfiguration By<TDriver>() where TDriver : NHibernate.Driver.IDriver;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration ByAppConfing(string connectionStringName);
                NHibernate.Cfg.Loquacious.IConnectionConfiguration Releasing(NHibernate.ConnectionReleaseMode releaseMode);
                NHibernate.Cfg.Loquacious.IConnectionConfiguration Through<TProvider>() where TProvider : NHibernate.Connection.IConnectionProvider;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Using(string connectionString);
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Using(System.Data.Common.DbConnectionStringBuilder connectionStringBuilder);
                NHibernate.Cfg.Loquacious.IConnectionConfiguration With(System.Data.IsolationLevel level);
            }
            public interface IDbIntegrationConfiguration
            {
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration AutoQuoteKeywords();
                NHibernate.Cfg.Loquacious.IBatcherConfiguration BatchingQueries { get; }
                NHibernate.Cfg.Loquacious.IConnectionConfiguration Connected { get; }
                NHibernate.Cfg.Loquacious.ICommandsConfiguration CreateCommands { get; }
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration DisableKeywordsAutoImport();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration EnableLogFormattedSql();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration LogSqlInConsole();
                NHibernate.Cfg.Loquacious.IDbSchemaIntegrationConfiguration Schema { get; }
                NHibernate.Cfg.Loquacious.ITransactionConfiguration Transactions { get; }
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Using<TDialect>() where TDialect : NHibernate.Dialect.Dialect;
            }
            public interface IDbIntegrationConfigurationProperties
            {
                bool AutoCommentSql { set; }
                void Batcher<TBatcher>() where TBatcher : NHibernate.AdoNet.IBatcherFactory;
                short BatchSize { set; }
                void ConnectionProvider<TProvider>() where TProvider : NHibernate.Connection.IConnectionProvider;
                NHibernate.ConnectionReleaseMode ConnectionReleaseMode { set; }
                string ConnectionString { set; }
                string ConnectionStringName { set; }
                void Dialect<TDialect>() where TDialect : NHibernate.Dialect.Dialect;
                void Driver<TDriver>() where TDriver : NHibernate.Driver.IDriver;
                void ExceptionConverter<TExceptionConverter>() where TExceptionConverter : NHibernate.Exceptions.ISQLExceptionConverter;
                string HqlToSqlSubstitutions { set; }
                System.Data.IsolationLevel IsolationLevel { set; }
                NHibernate.Cfg.Hbm2DDLKeyWords KeywordsAutoImport { set; }
                bool LogFormattedSql { set; }
                bool LogSqlInConsole { set; }
                byte MaximumDepthOfOuterJoinFetching { set; }
                bool OrderInserts { set; }
                bool PrepareCommands { set; }
                void QueryModelRewriterFactory<TFactory>() where TFactory : NHibernate.Linq.Visitors.IQueryModelRewriterFactory;
                NHibernate.Cfg.SchemaAutoAction SchemaAction { set; }
                byte Timeout { set; }
                void TransactionFactory<TFactory>() where TFactory : NHibernate.Transaction.ITransactionFactory;
            }
            public interface IDbSchemaIntegrationConfiguration
            {
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Creating();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Recreating();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Updating();
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Validating();
            }
            public interface IEntityCacheConfigurationProperties<TEntity> where TEntity : class
            {
                void Collection<TCollection>(System.Linq.Expressions.Expression<System.Func<TEntity, TCollection>> collectionProperty, System.Action<NHibernate.Cfg.Loquacious.IEntityCollectionCacheConfigurationProperties> collectionCacheConfiguration) where TCollection : System.Collections.IEnumerable;
                string RegionName { get; set; }
                NHibernate.Cfg.EntityCacheUsage? Strategy { get; set; }
            }
            public interface IEntityCollectionCacheConfigurationProperties
            {
                string RegionName { get; set; }
                NHibernate.Cfg.EntityCacheUsage Strategy { get; set; }
            }
            public interface IFluentSessionFactoryConfiguration
            {
                NHibernate.Cfg.Loquacious.ICacheConfiguration Caching { get; }
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration DefaultFlushMode(NHibernate.FlushMode flushMode);
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration GenerateStatistics();
                NHibernate.Cfg.Loquacious.ICollectionFactoryConfiguration GeneratingCollections { get; }
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Integrate { get; }
                NHibernate.Cfg.Loquacious.IMappingsConfiguration Mapping { get; }
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration Named(string sessionFactoryName);
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration ParsingHqlThrough<TQueryTranslator>() where TQueryTranslator : NHibernate.Hql.IQueryTranslatorFactory;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration ParsingLinqThrough<TQueryProvider>() where TQueryProvider : NHibernate.Linq.INhQueryProvider;
                NHibernate.Cfg.Loquacious.IProxyConfiguration Proxy { get; }
            }
            public interface IMappingsConfiguration
            {
                NHibernate.Cfg.Loquacious.IMappingsConfiguration UsingDefaultCatalog(string defaultCatalogName);
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration UsingDefaultSchema(string defaultSchemaName);
            }
            public interface IMappingsConfigurationProperties
            {
                string DefaultCatalog { set; }
                string DefaultSchema { set; }
            }
            public interface INamedQueryDefinitionBuilder
            {
                NHibernate.CacheMode? CacheMode { get; set; }
                string CacheRegion { get; set; }
                string Comment { get; set; }
                int FetchSize { get; set; }
                NHibernate.FlushMode FlushMode { get; set; }
                bool IsCacheable { get; set; }
                bool IsReadOnly { get; set; }
                string Query { get; set; }
                int Timeout { get; set; }
            }
            public interface IProxyConfiguration
            {
                NHibernate.Cfg.Loquacious.IProxyConfiguration DisableValidation();
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration Through<TProxyFactoryFactory>() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory;
            }
            public interface IProxyConfigurationProperties
            {
                void ProxyFactoryFactory<TProxyFactoryFactory>() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory;
                bool Validation { set; }
            }
            public interface IQueryCacheConfiguration
            {
                NHibernate.Cfg.Loquacious.ICacheConfiguration Through<TFactory>();
            }
            public interface ITransactionConfiguration
            {
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration Through<TFactory>() where TFactory : NHibernate.Transaction.ITransactionFactory;
            }
            public interface ITypeDefConfigurationProperties
            {
                string Alias { get; set; }
                object Properties { get; set; }
            }
            public class MappingsConfiguration : NHibernate.Cfg.Loquacious.IMappingsConfiguration
            {
                public MappingsConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null;
                public NHibernate.Cfg.Loquacious.MappingsConfiguration UsingDefaultCatalog(string defaultCatalogName) => throw null;
                NHibernate.Cfg.Loquacious.IMappingsConfiguration NHibernate.Cfg.Loquacious.IMappingsConfiguration.UsingDefaultCatalog(string defaultCatalogName) => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration UsingDefaultSchema(string defaultSchemaName) => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IMappingsConfiguration.UsingDefaultSchema(string defaultSchemaName) => throw null;
            }
            public class MappingsConfigurationProperties : NHibernate.Cfg.Loquacious.IMappingsConfigurationProperties
            {
                public MappingsConfigurationProperties(NHibernate.Cfg.Configuration configuration) => throw null;
                public string DefaultCatalog { set { } }
                public string DefaultSchema { set { } }
            }
            public class NamedQueryDefinitionBuilder : NHibernate.Cfg.Loquacious.INamedQueryDefinitionBuilder
            {
                public NHibernate.CacheMode? CacheMode { get => throw null; set { } }
                public string CacheRegion { get => throw null; set { } }
                public string Comment { get => throw null; set { } }
                public NamedQueryDefinitionBuilder() => throw null;
                public int FetchSize { get => throw null; set { } }
                public NHibernate.FlushMode FlushMode { get => throw null; set { } }
                public bool IsCacheable { get => throw null; set { } }
                public bool IsReadOnly { get => throw null; set { } }
                public string Query { get => throw null; set { } }
                public int Timeout { get => throw null; set { } }
            }
            public class ProxyConfiguration : NHibernate.Cfg.Loquacious.IProxyConfiguration
            {
                public ProxyConfiguration(NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration parent) => throw null;
                public NHibernate.Cfg.Loquacious.ProxyConfiguration DisableValidation() => throw null;
                NHibernate.Cfg.Loquacious.IProxyConfiguration NHibernate.Cfg.Loquacious.IProxyConfiguration.DisableValidation() => throw null;
                public NHibernate.Cfg.Loquacious.FluentSessionFactoryConfiguration Through<TProxyFactoryFactory>() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory => throw null;
                NHibernate.Cfg.Loquacious.IFluentSessionFactoryConfiguration NHibernate.Cfg.Loquacious.IProxyConfiguration.Through<TProxyFactoryFactory>() => throw null;
            }
            public class ProxyConfigurationProperties : NHibernate.Cfg.Loquacious.IProxyConfigurationProperties
            {
                public ProxyConfigurationProperties(NHibernate.Cfg.Configuration configuration) => throw null;
                public void ProxyFactoryFactory<TProxyFactoryFactory>() where TProxyFactoryFactory : NHibernate.Bytecode.IProxyFactoryFactory => throw null;
                public bool Validation { set { } }
            }
            public class QueryCacheConfiguration : NHibernate.Cfg.Loquacious.IQueryCacheConfiguration
            {
                public QueryCacheConfiguration(NHibernate.Cfg.Loquacious.CacheConfiguration cc) => throw null;
                public NHibernate.Cfg.Loquacious.CacheConfiguration Through<TFactory>() => throw null;
                NHibernate.Cfg.Loquacious.ICacheConfiguration NHibernate.Cfg.Loquacious.IQueryCacheConfiguration.Through<TFactory>() => throw null;
            }
            public class TransactionConfiguration : NHibernate.Cfg.Loquacious.ITransactionConfiguration
            {
                public TransactionConfiguration(NHibernate.Cfg.Loquacious.DbIntegrationConfiguration dbc) => throw null;
                public NHibernate.Cfg.Loquacious.DbIntegrationConfiguration Through<TFactory>() where TFactory : NHibernate.Transaction.ITransactionFactory => throw null;
                NHibernate.Cfg.Loquacious.IDbIntegrationConfiguration NHibernate.Cfg.Loquacious.ITransactionConfiguration.Through<TFactory>() => throw null;
            }
            public class TypeDefConfigurationProperties : NHibernate.Cfg.Loquacious.ITypeDefConfigurationProperties
            {
                public string Alias { get => throw null; set { } }
                public TypeDefConfigurationProperties() => throw null;
                public object Properties { get => throw null; set { } }
            }
        }
        public class Mappings
        {
            public void AddAuxiliaryDatabaseObject(NHibernate.Mapping.IAuxiliaryDatabaseObject auxiliaryDatabaseObject) => throw null;
            public void AddClass(NHibernate.Mapping.PersistentClass persistentClass) => throw null;
            public void AddCollection(NHibernate.Mapping.Collection collection) => throw null;
            public void AddColumnBinding(string logicalName, NHibernate.Mapping.Column finalColumn, NHibernate.Mapping.Table table) => throw null;
            public NHibernate.Mapping.Table AddDenormalizedTable(string schema, string catalog, string name, bool isAbstract, string subselect, NHibernate.Mapping.Table includedTable) => throw null;
            public void AddFilterDefinition(NHibernate.Engine.FilterDefinition definition) => throw null;
            public void AddImport(string className, string rename) => throw null;
            public void AddPropertyReference(string referencedClass, string propertyName) => throw null;
            public void AddQuery(string name, NHibernate.Engine.NamedQueryDefinition query) => throw null;
            public void AddResultSetMapping(NHibernate.Engine.ResultSetMappingDefinition sqlResultSetMapping) => throw null;
            public void AddSecondPass(NHibernate.Cfg.SecondPassCommand command) => throw null;
            public void AddSecondPass(NHibernate.Cfg.SecondPassCommand command, bool onTopOfTheQueue) => throw null;
            public void AddSQLQuery(string name, NHibernate.Engine.NamedSQLQueryDefinition query) => throw null;
            public NHibernate.Mapping.Table AddTable(string schema, string catalog, string name, string subselect, bool isAbstract, string schemaAction) => throw null;
            public void AddTableBinding(string schema, string catalog, string logicalName, string physicalName, NHibernate.Mapping.Table denormalizedSuperTable) => throw null;
            public void AddToExtendsQueue(NHibernate.Cfg.ExtendsQueueEntry entry) => throw null;
            public void AddTypeDef(string typeName, string typeClass, System.Collections.Generic.IDictionary<string, string> paramMap) => throw null;
            public void AddUniquePropertyReference(string referencedClass, string propertyName) => throw null;
            public string CatalogName { get => throw null; set { } }
            protected System.Collections.Generic.IDictionary<NHibernate.Mapping.Table, NHibernate.Cfg.Mappings.ColumnNames> columnNameBindingPerTable;
            public class ColumnNames
            {
                public ColumnNames() => throw null;
                public readonly System.Collections.Generic.IDictionary<string, string> logicalToPhysical;
                public readonly System.Collections.Generic.IDictionary<string, string> physicalToLogical;
            }
            protected Mappings(System.Collections.Generic.IDictionary<string, NHibernate.Mapping.PersistentClass> classes, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.Collection> collections, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.Table> tables, System.Collections.Generic.IDictionary<string, NHibernate.Engine.NamedQueryDefinition> queries, System.Collections.Generic.IDictionary<string, NHibernate.Engine.NamedSQLQueryDefinition> sqlqueries, System.Collections.Generic.IDictionary<string, NHibernate.Engine.ResultSetMappingDefinition> resultSetMappings, System.Collections.Generic.IDictionary<string, string> imports, System.Collections.Generic.IList<NHibernate.Cfg.SecondPassCommand> secondPasses, System.Collections.Generic.Queue<NHibernate.Cfg.FilterSecondPassArgs> filtersSecondPasses, System.Collections.Generic.IList<NHibernate.Cfg.Mappings.PropertyReference> propertyReferences, NHibernate.Cfg.INamingStrategy namingStrategy, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.TypeDef> typeDefs, System.Collections.Generic.IDictionary<string, NHibernate.Engine.FilterDefinition> filterDefinitions, System.Collections.Generic.ISet<NHibernate.Cfg.ExtendsQueueEntry> extendsQueue, System.Collections.Generic.IList<NHibernate.Mapping.IAuxiliaryDatabaseObject> auxiliaryDatabaseObjects, System.Collections.Generic.IDictionary<string, NHibernate.Cfg.Mappings.TableDescription> tableNameBinding, System.Collections.Generic.IDictionary<NHibernate.Mapping.Table, NHibernate.Cfg.Mappings.ColumnNames> columnNameBindingPerTable, string defaultAssembly, string defaultNamespace, string defaultCatalog, string defaultSchema, string preferPooledValuesLo, NHibernate.Dialect.Dialect dialect) => throw null;
            protected Mappings(System.Collections.Generic.IDictionary<string, NHibernate.Mapping.PersistentClass> classes, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.Collection> collections, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.Table> tables, System.Collections.Generic.IDictionary<string, NHibernate.Engine.NamedQueryDefinition> queries, System.Collections.Generic.IDictionary<string, NHibernate.Engine.NamedSQLQueryDefinition> sqlqueries, System.Collections.Generic.IDictionary<string, NHibernate.Engine.ResultSetMappingDefinition> resultSetMappings, System.Collections.Generic.IDictionary<string, string> imports, System.Collections.Generic.IList<NHibernate.Cfg.SecondPassCommand> secondPasses, System.Collections.Generic.Queue<NHibernate.Cfg.FilterSecondPassArgs> filtersSecondPasses, System.Collections.Generic.IList<NHibernate.Cfg.Mappings.PropertyReference> propertyReferences, NHibernate.Cfg.INamingStrategy namingStrategy, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.TypeDef> typeDefs, System.Collections.Generic.IDictionary<string, NHibernate.Engine.FilterDefinition> filterDefinitions, System.Collections.Generic.ISet<NHibernate.Cfg.ExtendsQueueEntry> extendsQueue, System.Collections.Generic.IList<NHibernate.Mapping.IAuxiliaryDatabaseObject> auxiliaryDatabaseObjects, System.Collections.Generic.IDictionary<string, NHibernate.Cfg.Mappings.TableDescription> tableNameBinding, System.Collections.Generic.IDictionary<NHibernate.Mapping.Table, NHibernate.Cfg.Mappings.ColumnNames> columnNameBindingPerTable, string defaultAssembly, string defaultNamespace, string defaultCatalog, string defaultSchema, string preferPooledValuesLo) => throw null;
            public string DefaultAccess { get => throw null; set { } }
            public string DefaultAssembly { get => throw null; set { } }
            public string DefaultCascade { get => throw null; set { } }
            public string DefaultCatalog { get => throw null; set { } }
            public bool DefaultLazy { get => throw null; set { } }
            public string DefaultNamespace { get => throw null; set { } }
            public string DefaultSchema { get => throw null; set { } }
            public NHibernate.Dialect.Dialect Dialect { get => throw null; }
            public void ExpectedFilterDefinition(NHibernate.Mapping.IFilterable filterable, string filterName, string condition) => throw null;
            protected System.Collections.Generic.ISet<NHibernate.Cfg.ExtendsQueueEntry> extendsQueue;
            public System.Collections.Generic.IDictionary<string, NHibernate.Engine.FilterDefinition> FilterDefinitions { get => throw null; }
            public NHibernate.Mapping.PersistentClass GetClass(string className) => throw null;
            public NHibernate.Mapping.Collection GetCollection(string role) => throw null;
            public NHibernate.Engine.FilterDefinition GetFilterDefinition(string name) => throw null;
            public string GetLogicalColumnName(string physicalName, NHibernate.Mapping.Table table) => throw null;
            public string GetLogicalTableName(NHibernate.Mapping.Table table) => throw null;
            public string GetPhysicalColumnName(string logicalName, NHibernate.Mapping.Table table) => throw null;
            public NHibernate.Engine.NamedQueryDefinition GetQuery(string name) => throw null;
            public NHibernate.Engine.ResultSetMappingDefinition GetResultSetMapping(string name) => throw null;
            public NHibernate.Mapping.Table GetTable(string schema, string catalog, string name) => throw null;
            public NHibernate.Mapping.TypeDef GetTypeDef(string typeName) => throw null;
            public bool IsAutoImport { get => throw null; set { } }
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.Collection> IterateCollections { get => throw null; }
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.Table> IterateTables { get => throw null; }
            public NHibernate.Mapping.PersistentClass LocatePersistentClassByEntityName(string entityName) => throw null;
            public NHibernate.Cfg.INamingStrategy NamingStrategy { get => throw null; }
            public string PreferPooledValuesLo { get => throw null; set { } }
            public sealed class PropertyReference
            {
                public PropertyReference() => throw null;
                public string propertyName;
                public string referencedClass;
                public bool unique;
            }
            public string SchemaName { get => throw null; set { } }
            public class TableDescription
            {
                public TableDescription(string logicalName, NHibernate.Mapping.Table denormalizedSupertable) => throw null;
                public readonly NHibernate.Mapping.Table denormalizedSupertable;
                public readonly string logicalName;
            }
            protected System.Collections.Generic.IDictionary<string, NHibernate.Cfg.Mappings.TableDescription> tableNameBinding;
            protected System.Collections.Generic.IDictionary<string, NHibernate.Mapping.TypeDef> typeDefs;
        }
        namespace MappingSchema
        {
            public abstract class AbstractDecoratable : NHibernate.Cfg.MappingSchema.IDecoratable
            {
                protected void CreateMappedMetadata(NHibernate.Cfg.MappingSchema.HbmMeta[] metadatas) => throw null;
                protected AbstractDecoratable() => throw null;
                public System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> InheritableMetaData { get => throw null; }
                public virtual System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> MappedMetaData { get => throw null; }
                protected abstract NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get; }
            }
            public class EndsWithHbmXmlFilter : NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter
            {
                public EndsWithHbmXmlFilter() => throw null;
                public bool ShouldParse(string resourceName) => throw null;
            }
            public class HbmAny : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IAnyMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public string cascade;
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmAny() => throw null;
                public string idtype;
                public string index;
                public bool insert;
                public bool IsLazyProperty { get => throw null; }
                public bool lazy;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string metatype;
                public string MetaType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmMetaValue[] metavalue;
                public System.Collections.Generic.ICollection<NHibernate.Cfg.MappingSchema.HbmMetaValue> MetaValues { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public bool update;
            }
            public class HbmArray : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public int batchsize;
                public int? BatchSize { get => throw null; }
                public bool batchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; }
                public string cascade;
                public string Cascade { get => throw null; }
                public string catalog;
                public string Catalog { get => throw null; }
                public string check;
                public string Check { get => throw null; }
                public string collectiontype;
                public string CollectionType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmArray() => throw null;
                public string elementclass;
                public object ElementRelationship { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch;
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; }
                public bool fetchSpecified;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get => throw null; }
                public bool? Generic { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmIndex Index { get => throw null; }
                public bool inverse;
                public bool Inverse { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object Item;
                public object Item1;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public bool Mutable { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string OrderBy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; }
                public bool outerjoinSpecified;
                public string persister;
                public string PersisterQualifiedName { get => throw null; }
                public string schema;
                public string Schema { get => throw null; }
                public string Sort { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public string table;
                public string Table { get => throw null; }
                public string where;
                public string Where { get => throw null; }
            }
            public class HbmBag : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public int batchsize;
                public int? BatchSize { get => throw null; }
                public bool batchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; }
                public string cascade;
                public string Cascade { get => throw null; }
                public string catalog;
                public string Catalog { get => throw null; }
                public string check;
                public string Check { get => throw null; }
                public string collectiontype;
                public string CollectionType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmBag() => throw null;
                public object ElementRelationship { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch;
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; }
                public bool fetchSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get => throw null; }
                public bool generic;
                public bool? Generic { get => throw null; }
                public bool genericSpecified;
                public bool inverse;
                public bool Inverse { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object Item;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy;
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public bool Mutable { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string orderby;
                public string OrderBy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; }
                public bool outerjoinSpecified;
                public string persister;
                public string PersisterQualifiedName { get => throw null; }
                public string schema;
                public string Schema { get => throw null; }
                public string Sort { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public string table;
                public string Table { get => throw null; }
                public string where;
                public string Where { get => throw null; }
            }
            public abstract class HbmBase
            {
                protected HbmBase() => throw null;
                protected static T Find<T>(object[] array) => throw null;
                protected static T[] FindAll<T>(object[] array) => throw null;
                protected static string JoinString(string[] text) => throw null;
            }
            public class HbmCache
            {
                public HbmCache() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmCacheInclude include;
                public string region;
                public NHibernate.Cfg.MappingSchema.HbmCacheUsage usage;
            }
            public enum HbmCacheInclude
            {
                All = 0,
                NonLazy = 1,
            }
            public enum HbmCacheMode
            {
                Get = 0,
                Ignore = 1,
                Normal = 2,
                Put = 3,
                Refresh = 4,
            }
            public enum HbmCacheUsage
            {
                ReadOnly = 0,
                ReadWrite = 1,
                NonstrictReadWrite = 2,
                Transactional = 3,
                Never = 4,
            }
            public class HbmClass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityDiscriminableMapping, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public bool @abstract;
                public bool abstractSpecified;
                public int batchsize;
                public int? BatchSize { get => throw null; }
                public bool batchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public string catalog;
                public string check;
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public NHibernate.Cfg.MappingSchema.HbmCompositeId CompositeId { get => throw null; }
                public HbmClass() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminator;
                public string discriminatorvalue;
                public string DiscriminatorValue { get => throw null; }
                public bool dynamicinsert;
                public bool DynamicInsert { get => throw null; }
                public bool dynamicupdate;
                public bool DynamicUpdate { get => throw null; }
                public string entityname;
                public string EntityName { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public NHibernate.Cfg.MappingSchema.HbmId Id { get => throw null; }
                public bool? IsAbstract { get => throw null; }
                public object Item;
                public object Item1;
                public object[] Items;
                public object[] Items1;
                public object[] Items2;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmJoinedSubclass> JoinedSubclasses { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmJoin> Joins { get => throw null; }
                public bool lazy;
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public string name;
                public string Name { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmNaturalId naturalid;
                public string node;
                public string Node { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOptimisticLockMode optimisticlock;
                public string persister;
                public string Persister { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmPolymorphismType polymorphism;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public string proxy;
                public string Proxy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset;
                public string rowid;
                public string schema;
                public string schemaaction;
                public bool selectbeforeupdate;
                public bool SelectBeforeUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmSubclass> Subclasses { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; }
                public string table;
                public NHibernate.Cfg.MappingSchema.HbmTimestamp Timestamp { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer;
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmUnionSubclass> UnionSubclasses { get => throw null; }
                public bool? UseLazy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmVersion Version { get => throw null; }
                public string where;
            }
            public enum HbmCollectionFetchMode
            {
                Select = 0,
                Join = 1,
                Subselect = 2,
            }
            public class HbmCollectionId : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping
            {
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmCollectionId() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmGenerator generator;
                public string length;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                public string type;
                public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; }
            }
            public enum HbmCollectionLazy
            {
                True = 0,
                False = 1,
                Extra = 2,
            }
            public class HbmColumn
            {
                public string check;
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmColumn() => throw null;
                public string @default;
                public string index;
                public string length;
                public string name;
                public bool notnull;
                public bool notnullSpecified;
                public string precision;
                public string scale;
                public string sqltype;
                public bool unique;
                public string uniquekey;
                public bool uniqueSpecified;
            }
            public class HbmComment
            {
                public HbmComment() => throw null;
                public string[] Text;
            }
            public class HbmComponent : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string access;
                public string Access { get => throw null; }
                public string @class;
                public string Class { get => throw null; }
                public HbmComponent() => throw null;
                public string EmbeddedNode { get => throw null; }
                public bool insert;
                public bool IsLazyProperty { get => throw null; }
                public object[] Items;
                public bool lazy;
                public string lazygroup;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmParent parent;
                public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer;
                public bool unique;
                public bool update;
            }
            public class HbmCompositeElement : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string @class;
                public string Class { get => throw null; }
                public HbmCompositeElement() => throw null;
                public string EmbeddedNode { get => throw null; }
                public object[] Items;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string Name { get => throw null; }
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmParent parent;
                public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
            }
            public class HbmCompositeId
            {
                public string access;
                public string @class;
                public HbmCompositeId() => throw null;
                public object[] Items;
                public bool mapped;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                public string name;
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmUnsavedValueType unsavedvalue;
            }
            public class HbmCompositeIndex : NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string @class;
                public string Class { get => throw null; }
                public HbmCompositeIndex() => throw null;
                public string EmbeddedNode { get => throw null; }
                public object[] Items;
                public string Name { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
            }
            public class HbmCompositeMapKey : NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string @class;
                public string Class { get => throw null; }
                public HbmCompositeMapKey() => throw null;
                public string EmbeddedNode { get => throw null; }
                public object[] Items;
                public string Name { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
            }
            public class HbmCreate
            {
                public HbmCreate() => throw null;
                public string[] Text;
            }
            public class HbmCustomSQL
            {
                public bool callable;
                public bool callableSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQLCheck check;
                public bool checkSpecified;
                public HbmCustomSQL() => throw null;
                public string[] Text;
            }
            public enum HbmCustomSQLCheck
            {
                None = 0,
                Rowcount = 1,
                Param = 2,
            }
            public class HbmDatabaseObject : NHibernate.Cfg.MappingSchema.HbmBase
            {
                public HbmDatabaseObject() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmDialectScope[] dialectscope;
                public string FindCreateText() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmDefinition FindDefinition() => throw null;
                public System.Collections.Generic.IList<string> FindDialectScopeNames() => throw null;
                public string FindDropText() => throw null;
                public bool HasDefinition() => throw null;
                public object[] Items;
            }
            public class HbmDefinition : NHibernate.Cfg.MappingSchema.HbmBase
            {
                public string @class;
                public HbmDefinition() => throw null;
                public System.Collections.Generic.IDictionary<string, string> FindParameterValues() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmParam[] param;
            }
            public class HbmDialectScope
            {
                public HbmDialectScope() => throw null;
                public string name;
                public string[] Text;
            }
            public class HbmDiscriminator : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping
            {
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmDiscriminator() => throw null;
                public bool force;
                public string formula;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public bool insert;
                public object Item;
                public string length;
                public bool notnull;
                public string type;
            }
            public class HbmDrop
            {
                public HbmDrop() => throw null;
                public string[] Text;
            }
            public class HbmDynamicComponent : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string access;
                public string Access { get => throw null; }
                public string Class { get => throw null; }
                public HbmDynamicComponent() => throw null;
                public string EmbeddedNode { get => throw null; }
                public bool insert;
                public bool IsLazyProperty { get => throw null; }
                public object[] Items;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public bool unique;
                public bool update;
            }
            public class HbmElement : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.ITypeMapping
            {
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public System.Collections.Generic.IEnumerable<object> ColumnsAndFormulas { get => throw null; }
                public HbmElement() => throw null;
                public string formula;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public object[] Items;
                public string length;
                public string node;
                public bool notnull;
                public string precision;
                public string scale;
                public NHibernate.Cfg.MappingSchema.HbmType type;
                public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; }
                public string type1;
                public bool unique;
            }
            public static partial class HbmExtensions
            {
                public static string JoinString(this string[] source) => throw null;
                public static string ToCacheConcurrencyStrategy(this NHibernate.Cfg.MappingSchema.HbmCacheUsage cacheUsage) => throw null;
                public static NHibernate.CacheMode? ToCacheMode(this NHibernate.Cfg.MappingSchema.HbmCacheMode cacheMode) => throw null;
                public static string ToNullValue(this NHibernate.Cfg.MappingSchema.HbmUnsavedValueType unsavedValueType) => throw null;
                public static NHibernate.Engine.Versioning.OptimisticLock ToOptimisticLock(this NHibernate.Cfg.MappingSchema.HbmOptimisticLockMode hbmOptimisticLockMode) => throw null;
            }
            public enum HbmFetchMode
            {
                Select = 0,
                Join = 1,
            }
            public class HbmFilter
            {
                public string condition;
                public HbmFilter() => throw null;
                public string name;
                public string[] Text;
            }
            public class HbmFilterDef : NHibernate.Cfg.MappingSchema.HbmBase
            {
                public string condition;
                public HbmFilterDef() => throw null;
                public string GetDefaultCondition() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmFilterParam[] Items;
                public NHibernate.Cfg.MappingSchema.HbmFilterParam[] ListParameters() => throw null;
                public string name;
                public string[] Text;
                public bool usemanytoone;
            }
            public class HbmFilterParam
            {
                public HbmFilterParam() => throw null;
                public string name;
                public string type;
            }
            public enum HbmFlushMode
            {
                Auto = 0,
                Manual = 1,
                Always = 2,
                Never = 3,
            }
            public class HbmFormula
            {
                public HbmFormula() => throw null;
                public string[] Text;
            }
            public class HbmGenerator
            {
                public string @class;
                public HbmGenerator() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmParam[] param;
            }
            public class HbmId : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping
            {
                public string access;
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmId() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmGenerator generator;
                public string generator1;
                public string length;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmType type;
                public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; }
                public string type1;
                public string unsavedvalue;
            }
            public class HbmIdbag : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public int batchsize;
                public int? BatchSize { get => throw null; }
                public bool batchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; }
                public string cascade;
                public string Cascade { get => throw null; }
                public string catalog;
                public string Catalog { get => throw null; }
                public string check;
                public string Check { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionId collectionid;
                public string collectiontype;
                public string CollectionType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmIdbag() => throw null;
                public object ElementRelationship { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch;
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; }
                public bool fetchSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get => throw null; }
                public bool generic;
                public bool? Generic { get => throw null; }
                public bool genericSpecified;
                public bool inverse;
                public bool Inverse { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object Item;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy;
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public bool Mutable { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string orderby;
                public string OrderBy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; }
                public bool outerjoinSpecified;
                public string persister;
                public string PersisterQualifiedName { get => throw null; }
                public string schema;
                public string Schema { get => throw null; }
                public string Sort { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public string table;
                public string Table { get => throw null; }
                public string where;
                public string Where { get => throw null; }
            }
            public class HbmImport
            {
                public string @class;
                public HbmImport() => throw null;
                public string rename;
            }
            public class HbmIndex : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping
            {
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmIndex() => throw null;
                public string length;
                public string type;
                public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; }
            }
            public class HbmIndexManyToAny : NHibernate.Cfg.MappingSchema.IAnyMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping
            {
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmIndexManyToAny() => throw null;
                public string idtype;
                public string metatype;
                public string MetaType { get => throw null; }
                public System.Collections.Generic.ICollection<NHibernate.Cfg.MappingSchema.HbmMetaValue> MetaValues { get => throw null; }
            }
            public class HbmIndexManyToMany : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IRelationship
            {
                public string @class;
                public string Class { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmIndexManyToMany() => throw null;
                public string entityname;
                public string EntityName { get => throw null; }
                public string foreignkey;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; }
            }
            public class HbmJoin : NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string catalog;
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmJoin() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmJoinFetch fetch;
                public bool inverse;
                public object[] Items;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public bool optional;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public string schema;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public string table;
            }
            public class HbmJoinedSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public bool @abstract;
                public bool abstractSpecified;
                public string batchsize;
                public int? BatchSize { get => throw null; }
                public string catalog;
                public string check;
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmJoinedSubclass() => throw null;
                public bool dynamicinsert;
                public bool DynamicInsert { get => throw null; }
                public bool dynamicupdate;
                public bool DynamicUpdate { get => throw null; }
                public string entityname;
                public string EntityName { get => throw null; }
                public string extends;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public bool? IsAbstract { get => throw null; }
                public object[] Items;
                public object[] Items1;
                public NHibernate.Cfg.MappingSchema.HbmJoinedSubclass[] joinedsubclass1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmJoinedSubclass> JoinedSubclasses { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public bool lazy;
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public string Node { get => throw null; }
                public string persister;
                public string Persister { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public string proxy;
                public string Proxy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset;
                public string schema;
                public string schemaaction;
                public bool selectbeforeupdate;
                public bool SelectBeforeUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; }
                public string table;
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer;
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; }
                public bool? UseLazy { get => throw null; }
            }
            public enum HbmJoinFetch
            {
                Join = 0,
                Select = 1,
            }
            public class HbmKey : NHibernate.Cfg.MappingSchema.IColumnsMapping
            {
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmKey() => throw null;
                public string foreignkey;
                public bool? IsNullable { get => throw null; }
                public bool? IsUpdatable { get => throw null; }
                public bool notnull;
                public bool notnullSpecified;
                public NHibernate.Cfg.MappingSchema.HbmOndelete ondelete;
                public string propertyref;
                public bool unique;
                public bool uniqueSpecified;
                public bool update;
                public bool updateSpecified;
            }
            public class HbmKeyManyToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IRelationship
            {
                public string access;
                public string Access { get => throw null; }
                public string @class;
                public string Class { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmKeyManyToOne() => throw null;
                public string entityname;
                public string EntityName { get => throw null; }
                public string foreignkey;
                public bool IsLazyProperty { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness lazy;
                public NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; }
                public bool OptimisticLock { get => throw null; }
            }
            public class HbmKeyProperty : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.ITypeMapping
            {
                public string access;
                public string Access { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmKeyProperty() => throw null;
                public bool IsLazyProperty { get => throw null; }
                public string length;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool OptimisticLock { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmType type;
                public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; }
                public string type1;
            }
            public enum HbmLaziness
            {
                False = 0,
                Proxy = 1,
                NoProxy = 2,
            }
            public class HbmList : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public int batchsize;
                public int? BatchSize { get => throw null; }
                public bool batchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; }
                public string cascade;
                public string Cascade { get => throw null; }
                public string catalog;
                public string Catalog { get => throw null; }
                public string check;
                public string Check { get => throw null; }
                public string collectiontype;
                public string CollectionType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmList() => throw null;
                public object ElementRelationship { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch;
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; }
                public bool fetchSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get => throw null; }
                public bool generic;
                public bool? Generic { get => throw null; }
                public bool genericSpecified;
                public NHibernate.Cfg.MappingSchema.HbmIndex Index { get => throw null; }
                public bool inverse;
                public bool Inverse { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object Item;
                public object Item1;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy;
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public bool Mutable { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string orderby;
                public string OrderBy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; }
                public bool outerjoinSpecified;
                public string persister;
                public string PersisterQualifiedName { get => throw null; }
                public string schema;
                public string Schema { get => throw null; }
                public string Sort { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public string table;
                public string Table { get => throw null; }
                public string where;
                public string Where { get => throw null; }
            }
            public class HbmListIndex : NHibernate.Cfg.MappingSchema.IColumnsMapping
            {
                public string @base;
                public NHibernate.Cfg.MappingSchema.HbmColumn column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmListIndex() => throw null;
            }
            public class HbmLoadCollection
            {
                public string alias;
                public HbmLoadCollection() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmLockMode lockmode;
                public NHibernate.Cfg.MappingSchema.HbmReturnProperty[] returnproperty;
                public string role;
            }
            public class HbmLoader
            {
                public HbmLoader() => throw null;
                public string queryref;
            }
            public enum HbmLockMode
            {
                None = 0,
                Read = 1,
                Upgrade = 2,
                UpgradeNowait = 3,
                Write = 4,
            }
            public class HbmManyToAny : NHibernate.Cfg.MappingSchema.IAnyMapping, NHibernate.Cfg.MappingSchema.IColumnsMapping
            {
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmManyToAny() => throw null;
                public string idtype;
                public string metatype;
                public string MetaType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmMetaValue[] metavalue;
                public System.Collections.Generic.ICollection<NHibernate.Cfg.MappingSchema.HbmMetaValue> MetaValues { get => throw null; }
            }
            public class HbmManyToMany : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship
            {
                public string @class;
                public string Class { get => throw null; }
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public System.Collections.Generic.IEnumerable<object> ColumnsAndFormulas { get => throw null; }
                public HbmManyToMany() => throw null;
                public string entityname;
                public string EntityName { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmFetchMode fetch;
                public bool fetchSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public string foreignkey;
                public string formula;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public object[] Items;
                public NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness lazy;
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; }
                public string orderby;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public bool outerjoinSpecified;
                public string propertyref;
                public bool unique;
                public string where;
            }
            public class HbmManyToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship
            {
                public string access;
                public string Access { get => throw null; }
                public string cascade;
                public string @class;
                public string Class { get => throw null; }
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public System.Collections.Generic.IEnumerable<object> ColumnsAndFormulas { get => throw null; }
                public HbmManyToOne() => throw null;
                public string entityname;
                public string EntityName { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmFetchMode fetch;
                public bool fetchSpecified;
                public string foreignkey;
                public string formula;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public string index;
                public bool insert;
                public bool IsLazyProperty { get => throw null; }
                public object[] Items;
                public NHibernate.Cfg.MappingSchema.HbmLaziness lazy;
                public NHibernate.Cfg.MappingSchema.HbmLaziness? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; }
                public bool notnull;
                public bool notnullSpecified;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public bool outerjoinSpecified;
                public string propertyref;
                public bool unique;
                public string uniquekey;
                public bool update;
            }
            public class HbmMap : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public int batchsize;
                public int? BatchSize { get => throw null; }
                public bool batchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; }
                public string cascade;
                public string Cascade { get => throw null; }
                public string catalog;
                public string Catalog { get => throw null; }
                public string check;
                public string Check { get => throw null; }
                public string collectiontype;
                public string CollectionType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmMap() => throw null;
                public object ElementRelationship { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch;
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; }
                public bool fetchSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get => throw null; }
                public bool generic;
                public bool? Generic { get => throw null; }
                public bool genericSpecified;
                public bool inverse;
                public bool Inverse { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object Item;
                public object Item1;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy;
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public bool Mutable { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string orderby;
                public string OrderBy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; }
                public bool outerjoinSpecified;
                public string persister;
                public string PersisterQualifiedName { get => throw null; }
                public string schema;
                public string Schema { get => throw null; }
                public string sort;
                public string Sort { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public string table;
                public string Table { get => throw null; }
                public string where;
                public string Where { get => throw null; }
            }
            public class HbmMapKey : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.ITypeMapping
            {
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public System.Collections.Generic.IEnumerable<object> ColumnsAndFormulas { get => throw null; }
                public HbmMapKey() => throw null;
                public string formula;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public object[] Items;
                public string length;
                public string node;
                public string type;
                public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; }
            }
            public class HbmMapKeyManyToMany : NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship
            {
                public string @class;
                public string Class { get => throw null; }
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public System.Collections.Generic.IEnumerable<object> ColumnsAndFormulas { get => throw null; }
                public HbmMapKeyManyToMany() => throw null;
                public string entityname;
                public string EntityName { get => throw null; }
                public string foreignkey;
                public string formula;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public object[] Items;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; }
            }
            public class HbmMapping : NHibernate.Cfg.MappingSchema.AbstractDecoratable
            {
                public string assembly;
                public bool autoimport;
                public string catalog;
                public HbmMapping() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmDatabaseObject[] databaseobject;
                public NHibernate.Cfg.MappingSchema.HbmDatabaseObject[] DatabaseObjects { get => throw null; }
                public string defaultaccess;
                public string defaultcascade;
                public bool defaultlazy;
                public NHibernate.Cfg.MappingSchema.HbmFilterDef[] filterdef;
                public NHibernate.Cfg.MappingSchema.HbmFilterDef[] FilterDefinitions { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmQuery[] HqlQueries { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmImport[] import;
                public NHibernate.Cfg.MappingSchema.HbmImport[] Imports { get => throw null; }
                public object[] Items;
                public object[] Items1;
                public NHibernate.Cfg.MappingSchema.HbmJoinedSubclass[] JoinedSubclasses { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string @namespace;
                public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset;
                public NHibernate.Cfg.MappingSchema.HbmResultSet[] ResultSets { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmClass[] RootClasses { get => throw null; }
                public string schema;
                public NHibernate.Cfg.MappingSchema.HbmSqlQuery[] SqlQueries { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubclass[] SubClasses { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmTypedef[] typedef;
                public NHibernate.Cfg.MappingSchema.HbmTypedef[] TypeDefinitions { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmUnionSubclass[] UnionSubclasses { get => throw null; }
            }
            public class HbmMeta : NHibernate.Cfg.MappingSchema.HbmBase
            {
                public string attribute;
                public HbmMeta() => throw null;
                public string GetText() => throw null;
                public bool inherit;
                public string[] Text;
            }
            public class HbmMetaValue
            {
                public string @class;
                public HbmMetaValue() => throw null;
                public string value;
            }
            public class HbmNaturalId : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public HbmNaturalId() => throw null;
                public object[] Items;
                public bool mutable;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
            }
            public class HbmNestedCompositeElement : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string access;
                public string Access { get => throw null; }
                public string @class;
                public string Class { get => throw null; }
                public HbmNestedCompositeElement() => throw null;
                public string EmbeddedNode { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object[] Items;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool OptimisticLock { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmParent parent;
                public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
            }
            public enum HbmNotFoundMode
            {
                Ignore = 0,
                Exception = 1,
            }
            public enum HbmOndelete
            {
                Cascade = 0,
                Noaction = 1,
            }
            public class HbmOneToMany : NHibernate.Cfg.MappingSchema.IRelationship
            {
                public string @class;
                public string Class { get => throw null; }
                public HbmOneToMany() => throw null;
                public string entityname;
                public string EntityName { get => throw null; }
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode notfound;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; }
            }
            public class HbmOneToOne : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.IRelationship
            {
                public string access;
                public string Access { get => throw null; }
                public string cascade;
                public string @class;
                public string Class { get => throw null; }
                public bool constrained;
                public HbmOneToOne() => throw null;
                public string entityname;
                public string EntityName { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmFetchMode fetch;
                public bool fetchSpecified;
                public string foreignkey;
                public NHibernate.Cfg.MappingSchema.HbmFormula[] formula;
                public string formula1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLaziness lazy;
                public NHibernate.Cfg.MappingSchema.HbmLaziness? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get => throw null; }
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; set { } }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public bool outerjoinSpecified;
                public string propertyref;
            }
            public enum HbmOptimisticLockMode
            {
                None = 0,
                Version = 1,
                Dirty = 2,
                All = 3,
            }
            public enum HbmOuterJoinStrategy
            {
                Auto = 0,
                True = 1,
                False = 2,
            }
            public class HbmParam : NHibernate.Cfg.MappingSchema.HbmBase
            {
                public HbmParam() => throw null;
                public string GetText() => throw null;
                public string name;
                public string[] Text;
            }
            public class HbmParent
            {
                public string access;
                public HbmParent() => throw null;
                public string name;
            }
            public enum HbmPolymorphismType
            {
                Implicit = 0,
                Explicit = 1,
            }
            public class HbmPrimitiveArray : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IIndexedCollectionMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public string batchsize;
                public int? BatchSize { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; }
                public string Cascade { get => throw null; }
                public string catalog;
                public string Catalog { get => throw null; }
                public string check;
                public string Check { get => throw null; }
                public string collectiontype;
                public string CollectionType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmPrimitiveArray() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmElement element;
                public object ElementRelationship { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmPrimitivearrayFetch fetch;
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; }
                public bool fetchSpecified;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get => throw null; }
                public bool? Generic { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmIndex Index { get => throw null; }
                public bool Inverse { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object Item;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public bool Mutable { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string OrderBy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmPrimitivearrayOuterjoin outerjoin;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; }
                public bool outerjoinSpecified;
                public string persister;
                public string PersisterQualifiedName { get => throw null; }
                public string schema;
                public string Schema { get => throw null; }
                public string Sort { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public string table;
                public string Table { get => throw null; }
                public string where;
                public string Where { get => throw null; }
            }
            public enum HbmPrimitivearrayFetch
            {
                Join = 0,
                Select = 1,
                Subselect = 2,
            }
            public enum HbmPrimitivearrayOuterjoin
            {
                True = 0,
                False = 1,
                Auto = 2,
            }
            public class HbmProperties : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IComponentMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public string Access { get => throw null; }
                public string Class { get => throw null; }
                public HbmProperties() => throw null;
                public string EmbeddedNode { get => throw null; }
                public bool insert;
                public bool IsLazyProperty { get => throw null; }
                public object[] Items;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmParent Parent { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public bool unique;
                public bool update;
            }
            public class HbmProperty : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IFormulasMapping, NHibernate.Cfg.MappingSchema.ITypeMapping
            {
                public string access;
                public string Access { get => throw null; }
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public System.Collections.Generic.IEnumerable<object> ColumnsAndFormulas { get => throw null; }
                public HbmProperty() => throw null;
                public string FetchGroup { get => throw null; }
                public string formula;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmPropertyGeneration generated;
                public string index;
                public bool insert;
                public bool insertSpecified;
                public bool IsLazyProperty { get => throw null; }
                public object[] Items;
                public bool lazy;
                public string lazygroup;
                public string length;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool notnull;
                public bool notnullSpecified;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string precision;
                public string scale;
                public NHibernate.Cfg.MappingSchema.HbmType type;
                public NHibernate.Cfg.MappingSchema.HbmType Type { get => throw null; }
                public string type1;
                public bool unique;
                public string uniquekey;
                public bool update;
                public bool updateSpecified;
            }
            public enum HbmPropertyGeneration
            {
                Never = 0,
                Insert = 1,
                Always = 2,
            }
            public class HbmQuery : NHibernate.Cfg.MappingSchema.HbmBase
            {
                public bool cacheable;
                public NHibernate.Cfg.MappingSchema.HbmCacheMode cachemode;
                public bool cachemodeSpecified;
                public string cacheregion;
                public string comment;
                public HbmQuery() => throw null;
                public int fetchsize;
                public bool fetchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFlushMode flushmode;
                public bool flushmodeSpecified;
                public string GetText() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmQueryParam[] Items;
                public string name;
                public bool @readonly;
                public bool readonlySpecified;
                public string[] Text;
                public string timeout;
            }
            public class HbmQueryParam
            {
                public HbmQueryParam() => throw null;
                public string name;
                public string type;
            }
            public enum HbmRestrictedLaziness
            {
                False = 0,
                Proxy = 1,
            }
            public class HbmResultSet
            {
                public HbmResultSet() => throw null;
                public object[] Items;
                public string name;
            }
            public class HbmReturn
            {
                public string alias;
                public string @class;
                public HbmReturn() => throw null;
                public string entityname;
                public NHibernate.Cfg.MappingSchema.HbmLockMode lockmode;
                public NHibernate.Cfg.MappingSchema.HbmReturnDiscriminator returndiscriminator;
                public NHibernate.Cfg.MappingSchema.HbmReturnProperty[] returnproperty;
            }
            public class HbmReturnColumn
            {
                public HbmReturnColumn() => throw null;
                public string name;
            }
            public class HbmReturnDiscriminator
            {
                public string column;
                public HbmReturnDiscriminator() => throw null;
            }
            public class HbmReturnJoin
            {
                public string alias;
                public HbmReturnJoin() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmLockMode lockmode;
                public string property;
                public NHibernate.Cfg.MappingSchema.HbmReturnProperty[] returnproperty;
            }
            public class HbmReturnProperty
            {
                public string column;
                public HbmReturnProperty() => throw null;
                public string name;
                public NHibernate.Cfg.MappingSchema.HbmReturnColumn[] returncolumn;
            }
            public class HbmReturnScalar
            {
                public string column;
                public HbmReturnScalar() => throw null;
                public string type;
            }
            public class HbmSet : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping, NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                public string access;
                public string Access { get => throw null; }
                public int batchsize;
                public int? BatchSize { get => throw null; }
                public bool batchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmCache cache;
                public NHibernate.Cfg.MappingSchema.HbmCache Cache { get => throw null; }
                public string cascade;
                public string Cascade { get => throw null; }
                public string catalog;
                public string Catalog { get => throw null; }
                public string check;
                public string Check { get => throw null; }
                public string collectiontype;
                public string CollectionType { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmSet() => throw null;
                public object ElementRelationship { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode fetch;
                public NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get => throw null; }
                public bool fetchSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get => throw null; }
                public bool generic;
                public bool? Generic { get => throw null; }
                public bool genericSpecified;
                public bool inverse;
                public bool Inverse { get => throw null; }
                public bool IsLazyProperty { get => throw null; }
                public object Item;
                public NHibernate.Cfg.MappingSchema.HbmKey key;
                public NHibernate.Cfg.MappingSchema.HbmKey Key { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy lazy;
                public NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get => throw null; }
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public bool mutable;
                public bool Mutable { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public bool optimisticlock;
                public bool OptimisticLock { get => throw null; }
                public string orderby;
                public string OrderBy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerjoin;
                public NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get => throw null; }
                public bool outerjoinSpecified;
                public string persister;
                public string PersisterQualifiedName { get => throw null; }
                public string schema;
                public string Schema { get => throw null; }
                public string sort;
                public string Sort { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldeleteall;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public string table;
                public string Table { get => throw null; }
                public string where;
                public string Where { get => throw null; }
            }
            public class HbmSqlQuery : NHibernate.Cfg.MappingSchema.HbmBase
            {
                public bool cacheable;
                public NHibernate.Cfg.MappingSchema.HbmCacheMode cachemode;
                public bool cachemodeSpecified;
                public string cacheregion;
                public bool callable;
                public string comment;
                public HbmSqlQuery() => throw null;
                public int fetchsize;
                public bool fetchsizeSpecified;
                public NHibernate.Cfg.MappingSchema.HbmFlushMode flushmode;
                public bool flushmodeSpecified;
                public string GetText() => throw null;
                public object[] Items;
                public string name;
                public bool @readonly;
                public bool readonlySpecified;
                public string resultsetref;
                public string[] Text;
                public string timeout;
            }
            public class HbmSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityDiscriminableMapping, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public bool @abstract;
                public bool abstractSpecified;
                public string batchsize;
                public int? BatchSize { get => throw null; }
                public HbmSubclass() => throw null;
                public string discriminatorvalue;
                public string DiscriminatorValue { get => throw null; }
                public bool dynamicinsert;
                public bool DynamicInsert { get => throw null; }
                public bool dynamicupdate;
                public bool DynamicUpdate { get => throw null; }
                public string entityname;
                public string EntityName { get => throw null; }
                public string extends;
                public NHibernate.Cfg.MappingSchema.HbmFilter[] filter;
                public bool? IsAbstract { get => throw null; }
                public object[] Items;
                public object[] Items1;
                public NHibernate.Cfg.MappingSchema.HbmJoin[] join;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmJoin> Joins { get => throw null; }
                public bool lazy;
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public string Node { get => throw null; }
                public string persister;
                public string Persister { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public string proxy;
                public string Proxy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset;
                public bool selectbeforeupdate;
                public bool SelectBeforeUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubclass[] subclass1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmSubclass> Subclasses { get => throw null; }
                public string Subselect { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer;
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; }
                public bool? UseLazy { get => throw null; }
            }
            public class HbmSubselect
            {
                public HbmSubselect() => throw null;
                public string[] Text;
            }
            public class HbmSynchronize
            {
                public HbmSynchronize() => throw null;
                public string table;
            }
            public class HbmTimestamp : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping
            {
                public string access;
                public string column;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmTimestamp() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmVersionGeneration generated;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string node;
                public NHibernate.Cfg.MappingSchema.HbmTimestampSource source;
                public NHibernate.Cfg.MappingSchema.HbmTimestampUnsavedvalue unsavedvalue;
                public bool unsavedvalueSpecified;
            }
            public enum HbmTimestampSource
            {
                Vm = 0,
                Db = 1,
            }
            public enum HbmTimestampUnsavedvalue
            {
                Null = 0,
                Undefined = 1,
            }
            public class HbmTuplizer
            {
                public string @class;
                public HbmTuplizer() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmTuplizerEntitymode entitymode;
                public bool entitymodeSpecified;
            }
            public enum HbmTuplizerEntitymode
            {
                Poco = 0,
                DynamicMap = 1,
            }
            public class HbmType
            {
                public HbmType() => throw null;
                public string name;
                public NHibernate.Cfg.MappingSchema.HbmParam[] param;
            }
            public class HbmTypedef
            {
                public string @class;
                public HbmTypedef() => throw null;
                public string name;
                public NHibernate.Cfg.MappingSchema.HbmParam[] param;
            }
            public class HbmUnionSubclass : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityMapping, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                public bool @abstract;
                public bool abstractSpecified;
                public string batchsize;
                public int? BatchSize { get => throw null; }
                public string catalog;
                public string check;
                public NHibernate.Cfg.MappingSchema.HbmComment comment;
                public HbmUnionSubclass() => throw null;
                public bool dynamicinsert;
                public bool DynamicInsert { get => throw null; }
                public bool dynamicupdate;
                public bool DynamicUpdate { get => throw null; }
                public string entityname;
                public string EntityName { get => throw null; }
                public string extends;
                public bool? IsAbstract { get => throw null; }
                public object[] Items;
                public object[] Items1;
                public bool lazy;
                public bool lazySpecified;
                public NHibernate.Cfg.MappingSchema.HbmLoader loader;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string Name { get => throw null; }
                public string node;
                public string Node { get => throw null; }
                public string persister;
                public string Persister { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get => throw null; }
                public string proxy;
                public string Proxy { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmResultSet[] resultset;
                public string schema;
                public bool selectbeforeupdate;
                public bool SelectBeforeUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqldelete;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlinsert;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL sqlupdate;
                public NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmSubselect subselect;
                public string Subselect { get => throw null; }
                public string subselect1;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] synchronize;
                public NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get => throw null; }
                public string table;
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] tuplizer;
                public NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get => throw null; }
                public NHibernate.Cfg.MappingSchema.HbmUnionSubclass[] unionsubclass1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmUnionSubclass> UnionSubclasses { get => throw null; }
                public bool? UseLazy { get => throw null; }
            }
            public enum HbmUnsavedValueType
            {
                Undefined = 0,
                Any = 1,
                None = 2,
            }
            public class HbmVersion : NHibernate.Cfg.MappingSchema.AbstractDecoratable, NHibernate.Cfg.MappingSchema.IColumnsMapping
            {
                public string access;
                public NHibernate.Cfg.MappingSchema.HbmColumn[] column;
                public string column1;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get => throw null; }
                public HbmVersion() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmVersionGeneration generated;
                public bool insert;
                public bool insertSpecified;
                public NHibernate.Cfg.MappingSchema.HbmMeta[] meta;
                protected override NHibernate.Cfg.MappingSchema.HbmMeta[] Metadatas { get => throw null; }
                public string name;
                public string node;
                public string type;
                public string unsavedvalue;
            }
            public enum HbmVersionGeneration
            {
                Never = 0,
                Always = 1,
            }
            public interface IAnyMapping
            {
                string MetaType { get; }
                System.Collections.Generic.ICollection<NHibernate.Cfg.MappingSchema.HbmMetaValue> MetaValues { get; }
            }
            public interface IAssemblyResourceFilter
            {
                bool ShouldParse(string resourceName);
            }
            public interface ICollectionPropertiesMapping : NHibernate.Cfg.MappingSchema.ICollectionSqlsMapping, NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntityPropertyMapping, NHibernate.Cfg.MappingSchema.IReferencePropertyMapping
            {
                int? BatchSize { get; }
                NHibernate.Cfg.MappingSchema.HbmCache Cache { get; }
                string Catalog { get; }
                string Check { get; }
                string CollectionType { get; }
                object ElementRelationship { get; }
                NHibernate.Cfg.MappingSchema.HbmCollectionFetchMode? FetchMode { get; }
                System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> Filters { get; }
                bool? Generic { get; }
                bool Inverse { get; }
                NHibernate.Cfg.MappingSchema.HbmKey Key { get; }
                NHibernate.Cfg.MappingSchema.HbmCollectionLazy? Lazy { get; }
                bool Mutable { get; }
                string OrderBy { get; }
                NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy? OuterJoin { get; }
                string PersisterQualifiedName { get; }
                string Schema { get; }
                string Sort { get; }
                string Table { get; }
                string Where { get; }
            }
            public interface ICollectionSqlsMapping
            {
                NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get; }
                NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDeleteAll { get; }
                NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get; }
                NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get; }
                NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get; }
                string Subselect { get; }
            }
            public interface IColumnsMapping
            {
                System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> Columns { get; }
            }
            public interface IComponentMapping : NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                string Class { get; }
                string EmbeddedNode { get; }
                string Name { get; }
                NHibernate.Cfg.MappingSchema.HbmParent Parent { get; }
            }
            public interface IDecoratable
            {
                System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> InheritableMetaData { get; }
                System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> MappedMetaData { get; }
            }
            public interface IEntityDiscriminableMapping
            {
                string DiscriminatorValue { get; }
            }
            public interface IEntityMapping : NHibernate.Cfg.MappingSchema.IDecoratable, NHibernate.Cfg.MappingSchema.IEntitySqlsMapping, NHibernate.Cfg.MappingSchema.IPropertiesContainerMapping
            {
                int? BatchSize { get; }
                bool DynamicInsert { get; }
                bool DynamicUpdate { get; }
                string EntityName { get; }
                bool? IsAbstract { get; }
                string Name { get; }
                string Node { get; }
                string Persister { get; }
                string Proxy { get; }
                bool SelectBeforeUpdate { get; }
                NHibernate.Cfg.MappingSchema.HbmSynchronize[] Synchronize { get; }
                NHibernate.Cfg.MappingSchema.HbmTuplizer[] Tuplizers { get; }
                bool? UseLazy { get; }
            }
            public interface IEntityPropertyMapping : NHibernate.Cfg.MappingSchema.IDecoratable
            {
                string Access { get; }
                bool IsLazyProperty { get; }
                string Name { get; }
                bool OptimisticLock { get; }
            }
            public interface IEntitySqlsMapping
            {
                NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlDelete { get; }
                NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlInsert { get; }
                NHibernate.Cfg.MappingSchema.HbmLoader SqlLoader { get; }
                NHibernate.Cfg.MappingSchema.HbmCustomSQL SqlUpdate { get; }
                string Subselect { get; }
            }
            public interface IFormulasMapping
            {
                System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFormula> Formulas { get; }
            }
            public interface IIndexedCollectionMapping
            {
                NHibernate.Cfg.MappingSchema.HbmIndex Index { get; }
                NHibernate.Cfg.MappingSchema.HbmListIndex ListIndex { get; }
            }
            public interface IMappingDocumentParser
            {
                NHibernate.Cfg.MappingSchema.HbmMapping Parse(System.IO.Stream stream);
            }
            public interface IPropertiesContainerMapping
            {
                System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> Properties { get; }
            }
            public interface IReferencePropertyMapping
            {
                string Cascade { get; }
            }
            public interface IRelationship
            {
                string Class { get; }
                string EntityName { get; }
                NHibernate.Cfg.MappingSchema.HbmNotFoundMode NotFoundMode { get; }
            }
            public interface ITypeMapping
            {
                NHibernate.Cfg.MappingSchema.HbmType Type { get; }
            }
            public class MappingDocumentAggregator
            {
                public void Add(NHibernate.Cfg.MappingSchema.HbmMapping document) => throw null;
                public void Add(System.IO.Stream stream) => throw null;
                public void Add(System.Reflection.Assembly assembly, string resourceName) => throw null;
                public void Add(System.Reflection.Assembly assembly, NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter filter) => throw null;
                public void Add(System.Reflection.Assembly assembly) => throw null;
                public void Add(System.IO.FileInfo file) => throw null;
                public void Add(string fileName) => throw null;
                public MappingDocumentAggregator() => throw null;
                public MappingDocumentAggregator(NHibernate.Cfg.MappingSchema.IMappingDocumentParser parser, NHibernate.Cfg.MappingSchema.IAssemblyResourceFilter defaultFilter) => throw null;
                public System.Collections.Generic.IList<NHibernate.Cfg.MappingSchema.HbmMapping> List() => throw null;
            }
            public class MappingDocumentParser : NHibernate.Cfg.MappingSchema.IMappingDocumentParser
            {
                public MappingDocumentParser() => throw null;
                public NHibernate.Cfg.MappingSchema.HbmMapping Parse(System.IO.Stream stream) => throw null;
            }
            public static partial class MappingExtensions
            {
                public static NHibernate.EntityMode ToEntityMode(this NHibernate.Cfg.MappingSchema.HbmTuplizerEntitymode source) => throw null;
            }
        }
        public class MappingsQueue
        {
            public void AddDocument(NHibernate.Cfg.NamedXmlDocument document) => throw null;
            public void CheckNoUnavailableEntries() => throw null;
            public MappingsQueue() => throw null;
            public NHibernate.Cfg.NamedXmlDocument GetNextAvailableResource() => throw null;
        }
        public class MappingsQueueEntry
        {
            public System.Collections.Generic.ICollection<string> ContainedClassNames { get => throw null; }
            public MappingsQueueEntry(NHibernate.Cfg.NamedXmlDocument document, System.Collections.Generic.IEnumerable<NHibernate.Cfg.ClassExtractor.ClassEntry> classEntries) => throw null;
            public NHibernate.Cfg.NamedXmlDocument Document { get => throw null; }
            public System.Collections.Generic.ICollection<NHibernate.Cfg.MappingsQueueEntry.RequiredEntityName> RequiredClassNames { get => throw null; }
            public class RequiredEntityName
            {
                public RequiredEntityName(string entityName, string fullClassName) => throw null;
                public string EntityName { get => throw null; }
                public bool Equals(NHibernate.Cfg.MappingsQueueEntry.RequiredEntityName obj) => throw null;
                public override bool Equals(object obj) => throw null;
                public string FullClassName { get => throw null; }
                public override int GetHashCode() => throw null;
                public override string ToString() => throw null;
            }
        }
        public class NamedXmlDocument
        {
            public NamedXmlDocument(string name, System.Xml.XmlDocument document) => throw null;
            public NamedXmlDocument(string name, System.Xml.XmlDocument document, System.Xml.Serialization.XmlSerializer serializer) => throw null;
            public NHibernate.Cfg.MappingSchema.HbmMapping Document { get => throw null; }
            public string Name { get => throw null; }
        }
        public class SchemaAutoAction
        {
            public static NHibernate.Cfg.SchemaAutoAction Create;
            public override bool Equals(object obj) => throw null;
            public bool Equals(string other) => throw null;
            public bool Equals(NHibernate.Cfg.SchemaAutoAction other) => throw null;
            public override int GetHashCode() => throw null;
            public static bool operator ==(string a, NHibernate.Cfg.SchemaAutoAction b) => throw null;
            public static bool operator ==(NHibernate.Cfg.SchemaAutoAction a, string b) => throw null;
            public static bool operator !=(NHibernate.Cfg.SchemaAutoAction a, string b) => throw null;
            public static bool operator !=(string a, NHibernate.Cfg.SchemaAutoAction b) => throw null;
            public static NHibernate.Cfg.SchemaAutoAction Recreate;
            public override string ToString() => throw null;
            public static NHibernate.Cfg.SchemaAutoAction Update;
            public static NHibernate.Cfg.SchemaAutoAction Validate;
        }
        public delegate void SecondPassCommand(System.Collections.Generic.IDictionary<string, NHibernate.Mapping.PersistentClass> persistentClasses);
        public class SessionFactoryConfigurationBase : NHibernate.Cfg.ISessionFactoryConfiguration
        {
            public System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.ClassCacheConfiguration> ClassesCache { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.CollectionCacheConfiguration> CollectionsCache { get => throw null; }
            public SessionFactoryConfigurationBase() => throw null;
            public System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.EventConfiguration> Events { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.ListenerConfiguration> Listeners { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Cfg.ConfigurationSchema.MappingConfiguration> Mappings { get => throw null; }
            public string Name { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, string> Properties { get => throw null; }
        }
        public sealed class Settings
        {
            public int AdoBatchSize { get => throw null; }
            public bool AutoJoinTransaction { get => throw null; }
            public NHibernate.AdoNet.IBatcherFactory BatcherFactory { get => throw null; }
            public NHibernate.Loader.BatchFetchStyle BatchFetchStyle { get => throw null; }
            public NHibernate.Loader.Collection.BatchingCollectionInitializerBuilder BatchingCollectionInitializationBuilder { get => throw null; }
            public NHibernate.Loader.Entity.BatchingEntityLoaderBuilder BatchingEntityLoaderBuilder { get => throw null; }
            public NHibernate.Cache.ICacheProvider CacheProvider { get => throw null; }
            public NHibernate.Cache.ICacheReadWriteLockFactory CacheReadWriteLockFactory { get => throw null; }
            public string CacheRegionPrefix { get => throw null; }
            public NHibernate.Connection.IConnectionProvider ConnectionProvider { get => throw null; }
            public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { get => throw null; }
            public Settings() => throw null;
            public int DefaultBatchFetchSize { get => throw null; }
            public string DefaultCatalogName { get => throw null; }
            public NHibernate.FlushMode DefaultFlushMode { get => throw null; }
            public string DefaultSchemaName { get => throw null; set { } }
            public bool DetectFetchLoops { get => throw null; }
            public NHibernate.Dialect.Dialect Dialect { get => throw null; }
            public bool IsAutoCloseSessionEnabled { get => throw null; }
            public bool IsAutoCreateSchema { get => throw null; }
            public bool IsAutoDropSchema { get => throw null; }
            public bool IsAutoQuoteEnabled { get => throw null; }
            public bool IsAutoUpdateSchema { get => throw null; }
            public bool IsAutoValidateSchema { get => throw null; }
            public bool IsBatchVersionedDataEnabled { get => throw null; }
            public bool IsCommentsEnabled { get => throw null; }
            public bool IsDataDefinitionImplicitCommit { get => throw null; }
            public bool IsDataDefinitionInTransactionSupported { get => throw null; }
            public bool IsFlushBeforeCompletionEnabled { get => throw null; }
            public bool IsGetGeneratedKeysEnabled { get => throw null; }
            public bool IsIdentifierRollbackEnabled { get => throw null; }
            public bool IsKeywordsImportEnabled { get => throw null; }
            public bool IsMinimalPutsEnabled { get => throw null; }
            public bool IsNamedQueryStartupCheckingEnabled { get => throw null; }
            public System.Data.IsolationLevel IsolationLevel { get => throw null; }
            public bool IsOrderInsertsEnabled { get => throw null; }
            public bool IsOrderUpdatesEnabled { get => throw null; }
            public bool IsOuterJoinFetchEnabled { get => throw null; }
            public bool IsQueryCacheEnabled { get => throw null; }
            public bool IsScrollableResultSetsEnabled { get => throw null; }
            public bool IsSecondLevelCacheEnabled { get => throw null; }
            public bool IsStatisticsEnabled { get => throw null; }
            public bool IsStructuredCacheEntriesEnabled { get => throw null; }
            public bool IsWrapResultSetsEnabled { get => throw null; }
            public System.Type LinqQueryProviderType { get => throw null; }
            public bool LinqToHqlFallbackOnPreEvaluation { get => throw null; }
            public NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry LinqToHqlGeneratorsRegistry { get => throw null; }
            public bool LinqToHqlLegacyPreEvaluation { get => throw null; }
            public int MaximumFetchDepth { get => throw null; }
            public NHibernate.MultiTenancy.IMultiTenancyConnectionProvider MultiTenancyConnectionProvider { get => throw null; }
            public NHibernate.MultiTenancy.MultiTenancyStrategy MultiTenancyStrategy { get => throw null; }
            public NHibernate.Linq.Visitors.IExpressionTransformerRegistrar PreTransformerRegistrar { get => throw null; }
            public NHibernate.Cache.IQueryCacheFactory QueryCacheFactory { get => throw null; }
            public NHibernate.Linq.Visitors.IQueryModelRewriterFactory QueryModelRewriterFactory { get => throw null; }
            public int QueryPlanCacheMaxSize { get => throw null; }
            public int QueryPlanCacheParameterMetadataMaxSize { get => throw null; }
            public System.Collections.Generic.IDictionary<string, string> QuerySubstitutions { get => throw null; }
            public bool QueryThrowNeverCached { get => throw null; }
            public NHibernate.Hql.IQueryTranslatorFactory QueryTranslatorFactory { get => throw null; }
            public string SessionFactoryName { get => throw null; }
            public NHibernate.Exceptions.ISQLExceptionConverter SqlExceptionConverter { get => throw null; }
            public NHibernate.AdoNet.Util.SqlStatementLogger SqlStatementLogger { get => throw null; }
            public bool ThrowOnSchemaUpdate { get => throw null; }
            public bool TrackSessionId { get => throw null; }
            public NHibernate.Transaction.ITransactionFactory TransactionFactory { get => throw null; }
        }
        public sealed class SettingsFactory
        {
            public NHibernate.Cfg.Settings BuildSettings(System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public SettingsFactory() => throw null;
        }
        public class SystemConfigurationProvider : NHibernate.Cfg.ConfigurationProvider
        {
            public SystemConfigurationProvider(System.Configuration.Configuration configuration) => throw null;
            public override NHibernate.Cfg.IHibernateConfiguration GetConfiguration() => throw null;
            public override string GetLoggerFactoryClassName() => throw null;
            public override string GetNamedConnectionString(string name) => throw null;
        }
        namespace XmlHbmBinding
        {
            public abstract class Binder
            {
                protected static System.Type ClassForFullNameChecked(string fullName, string errorMessage) => throw null;
                protected static System.Type ClassForNameChecked(string name, NHibernate.Cfg.Mappings mappings, string errorMessage) => throw null;
                protected Binder(NHibernate.Cfg.Mappings mappings) => throw null;
                protected static readonly System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> EmptyMeta;
                protected static string FullClassName(string className, NHibernate.Cfg.Mappings mappings) => throw null;
                protected static string FullQualifiedClassName(string className, NHibernate.Cfg.Mappings mappings) => throw null;
                protected static string GetClassName(string unqualifiedName, NHibernate.Cfg.Mappings mappings) => throw null;
                public static System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> GetMetas(NHibernate.Cfg.MappingSchema.IDecoratable decoratable, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMeta) => throw null;
                public static System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> GetMetas(NHibernate.Cfg.MappingSchema.IDecoratable decoratable, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMeta, bool onlyInheritable) => throw null;
                protected static string GetQualifiedClassName(string unqualifiedName, NHibernate.Cfg.Mappings mappings) => throw null;
                protected static readonly NHibernate.INHibernateLogger log;
                protected readonly NHibernate.Cfg.Mappings mappings;
                public NHibernate.Cfg.Mappings Mappings { get => throw null; }
                protected static bool NeedQualifiedClassName(string className) => throw null;
            }
            public abstract class ClassBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                protected void BindAny(NHibernate.Cfg.MappingSchema.HbmAny node, NHibernate.Mapping.Any model, bool isNullable) => throw null;
                protected void BindAnyMeta(NHibernate.Cfg.MappingSchema.IAnyMapping anyMapping, NHibernate.Mapping.Any model) => throw null;
                protected void BindClass(NHibernate.Cfg.MappingSchema.IEntityMapping classMapping, NHibernate.Mapping.PersistentClass model, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                protected void BindComponent(NHibernate.Cfg.MappingSchema.IComponentMapping componentMapping, NHibernate.Mapping.Component model, System.Type reflectedClass, string className, string path, bool isNullable, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                protected void BindForeignKey(string foreignKey, NHibernate.Mapping.SimpleValue value) => throw null;
                protected void BindJoinedSubclasses(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmJoinedSubclass> joinedSubclasses, NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                protected void BindJoins(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmJoin> joins, NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                protected void BindOneToOne(NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOneMapping, NHibernate.Mapping.OneToOne model) => throw null;
                protected void BindSubclasses(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmSubclass> subclasses, NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                protected void BindUnionSubclasses(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmUnionSubclass> unionSubclasses, NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                protected ClassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null;
                protected ClassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.Mappings)) => throw null;
                protected ClassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
                protected readonly NHibernate.Dialect.Dialect dialect;
                protected string GetClassTableName(NHibernate.Mapping.PersistentClass model, string mappedTableName) => throw null;
                protected static string GetEntityName(NHibernate.Cfg.MappingSchema.IRelationship relationship, NHibernate.Cfg.Mappings mappings) => throw null;
                protected NHibernate.FetchMode GetFetchStyle(NHibernate.Cfg.MappingSchema.HbmFetchMode fetchModeMapping) => throw null;
                protected NHibernate.FetchMode GetFetchStyle(NHibernate.Cfg.MappingSchema.HbmOuterJoinStrategy outerJoinStrategyMapping) => throw null;
                protected static NHibernate.Engine.ExecuteUpdateResultCheckStyle GetResultCheckStyle(NHibernate.Cfg.MappingSchema.HbmCustomSQL customSQL) => throw null;
                protected NHibernate.Mapping.PersistentClass GetSuperclass(string extendsName) => throw null;
                protected static void InitLaziness(NHibernate.Cfg.MappingSchema.HbmRestrictedLaziness? restrictedLaziness, NHibernate.Mapping.ToOne fetchable, bool defaultLazy) => throw null;
                protected static void InitLaziness(NHibernate.Cfg.MappingSchema.HbmLaziness? laziness, NHibernate.Mapping.ToOne fetchable, bool defaultLazy) => throw null;
                protected void InitOuterJoinFetchSetting(NHibernate.Cfg.MappingSchema.HbmManyToMany manyToMany, NHibernate.Mapping.IFetchable model) => throw null;
                protected void InitOuterJoinFetchSetting(NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne, NHibernate.Mapping.OneToOne model) => throw null;
            }
            public class ClassCompositeIdBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public void BindCompositeId(NHibernate.Cfg.MappingSchema.HbmCompositeId idSchema, NHibernate.Mapping.PersistentClass rootClass) => throw null;
                public ClassCompositeIdBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public ClassCompositeIdBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
            }
            public class ClassDiscriminatorBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void BindDiscriminator(NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminatorSchema, NHibernate.Mapping.Table table) => throw null;
                public ClassDiscriminatorBinder(NHibernate.Mapping.PersistentClass rootClass, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class ClassIdBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public void BindId(NHibernate.Cfg.MappingSchema.HbmId idSchema, NHibernate.Mapping.PersistentClass rootClass, NHibernate.Mapping.Table table) => throw null;
                public ClassIdBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public ClassIdBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
            }
            public class CollectionBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public NHibernate.Mapping.Collection Create(NHibernate.Cfg.MappingSchema.ICollectionPropertiesMapping collectionMapping, string className, string propertyFullPath, NHibernate.Mapping.PersistentClass owner, System.Type containingType, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                public CollectionBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public CollectionBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
            }
            public class ColumnsBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void Bind(NHibernate.Cfg.MappingSchema.HbmColumn column, bool isNullable) => throw null;
                public void Bind(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmColumn> columns, bool isNullable, System.Func<NHibernate.Cfg.MappingSchema.HbmColumn> defaultColumnDelegate) => throw null;
                public ColumnsBinder(NHibernate.Mapping.SimpleValue value, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class FilterDefinitionFactory
            {
                public static NHibernate.Engine.FilterDefinition CreateFilterDefinition(NHibernate.Cfg.MappingSchema.HbmFilterDef filterDefSchema) => throw null;
                public FilterDefinitionFactory() => throw null;
            }
            public class FiltersBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void Bind(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> filters) => throw null;
                public void Bind(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmFilter> filters, System.Action<string, string> addFilterDelegate) => throw null;
                public FiltersBinder(NHibernate.Mapping.IFilterable filterable, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class IdGeneratorBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void BindGenerator(NHibernate.Mapping.SimpleValue id, NHibernate.Cfg.MappingSchema.HbmGenerator generatorMapping) => throw null;
                public IdGeneratorBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class JoinedSubclassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public void Bind(NHibernate.Cfg.MappingSchema.HbmJoinedSubclass joinedSubclassMapping, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                public JoinedSubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public JoinedSubclassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public JoinedSubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public void HandleJoinedSubclass(NHibernate.Mapping.PersistentClass model, NHibernate.Cfg.MappingSchema.HbmJoinedSubclass joinedSubclassMapping, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
            }
            public static partial class MappingLogExtensions
            {
                public static void LogMapped(this NHibernate.Mapping.Property property, NHibernate.INHibernateLogger log) => throw null;
            }
            public class MappingRootBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void AddImports(NHibernate.Cfg.MappingSchema.HbmMapping mappingSchema) => throw null;
                public void AddTypeDefs(NHibernate.Cfg.MappingSchema.HbmMapping mappingSchema) => throw null;
                public void Bind(NHibernate.Cfg.MappingSchema.HbmMapping mappingSchema) => throw null;
                public MappingRootBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.Mappings)) => throw null;
                public MappingRootBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class NamedQueryBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void AddQuery(NHibernate.Cfg.MappingSchema.HbmQuery querySchema) => throw null;
                public NamedQueryBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class NamedSQLQueryBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void AddSqlQuery(NHibernate.Cfg.MappingSchema.HbmSqlQuery querySchema) => throw null;
                public NamedSQLQueryBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class PropertiesBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public void Bind(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> properties, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                public void Bind(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> properties, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas, System.Action<NHibernate.Mapping.Property> modifier) => throw null;
                public void Bind(System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.IEntityPropertyMapping> properties, NHibernate.Mapping.Table table, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas, System.Action<NHibernate.Mapping.Property> modifier, System.Action<NHibernate.Mapping.Property> addToModelAction) => throw null;
                public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.Component component, string className, string path, bool isNullable, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.PersistentClass persistentClass) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public PropertiesBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Mapping.Component component, string className, string path, bool isNullable) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
            }
            public class ResultSetMappingBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public NHibernate.Engine.ResultSetMappingDefinition Create(NHibernate.Cfg.MappingSchema.HbmResultSet resultSetSchema) => throw null;
                public NHibernate.Engine.ResultSetMappingDefinition Create(NHibernate.Cfg.MappingSchema.HbmSqlQuery sqlQuerySchema) => throw null;
                public ResultSetMappingBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class RootClassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public void Bind(NHibernate.Cfg.MappingSchema.HbmClass classSchema, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                public RootClassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public RootClassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
            }
            public class SubclassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public void Bind(NHibernate.Cfg.MappingSchema.HbmSubclass subClassMapping, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.Binder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public SubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.Binder parent, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public SubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public void HandleSubclass(NHibernate.Mapping.PersistentClass model, NHibernate.Cfg.MappingSchema.HbmSubclass subClassMapping, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
            }
            public class TypeBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void Bind(string typeName) => throw null;
                public void Bind(NHibernate.Cfg.MappingSchema.HbmType typeMapping) => throw null;
                public TypeBinder(NHibernate.Mapping.SimpleValue value, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
            public class UnionSubclassBinder : NHibernate.Cfg.XmlHbmBinding.ClassBinder
            {
                public void Bind(NHibernate.Cfg.MappingSchema.HbmUnionSubclass unionSubclassMapping, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
                public UnionSubclassBinder(NHibernate.Cfg.Mappings mappings, NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public UnionSubclassBinder(NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public UnionSubclassBinder(NHibernate.Cfg.XmlHbmBinding.ClassBinder parent) : base(default(NHibernate.Cfg.XmlHbmBinding.ClassBinder)) => throw null;
                public void HandleUnionSubclass(NHibernate.Mapping.PersistentClass model, NHibernate.Cfg.MappingSchema.HbmUnionSubclass unionSubclassMapping, System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> inheritedMetas) => throw null;
            }
            public class ValuePropertyBinder : NHibernate.Cfg.XmlHbmBinding.Binder
            {
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmElement element, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmKey propertyMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmManyToMany manyToManyMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmCollectionId collectionIdMapping, string propertyPath) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmListIndex listIndexMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmIndex indexMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmMapKey mapKeyMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOneMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmIndexManyToMany indexManyToManyMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany mapKeyManyToManyMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmKeyProperty mapKeyManyToManyMapping, string propertyPath, bool isNullable) => throw null;
                public void BindSimpleValue(NHibernate.Cfg.MappingSchema.HbmKeyManyToOne mapKeyManyToManyMapping, string propertyPath, bool isNullable) => throw null;
                public ValuePropertyBinder(NHibernate.Mapping.SimpleValue value, NHibernate.Cfg.Mappings mappings) : base(default(NHibernate.Cfg.Mappings)) => throw null;
            }
        }
    }
    namespace Classic
    {
        public interface ILifecycle
        {
            NHibernate.Classic.LifecycleVeto OnDelete(NHibernate.ISession s);
            void OnLoad(NHibernate.ISession s, object id);
            NHibernate.Classic.LifecycleVeto OnSave(NHibernate.ISession s);
            NHibernate.Classic.LifecycleVeto OnUpdate(NHibernate.ISession s);
        }
        public interface IValidatable
        {
            void Validate();
        }
        public enum LifecycleVeto
        {
            Veto = 0,
            NoVeto = 1,
        }
        public class ValidationFailure : NHibernate.HibernateException
        {
            public ValidationFailure() => throw null;
            public ValidationFailure(string message) => throw null;
            public ValidationFailure(System.Exception innerException) => throw null;
            public ValidationFailure(string message, System.Exception innerException) => throw null;
            protected ValidationFailure(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
    }
    namespace Collection
    {
        public abstract class AbstractPersistentCollection : NHibernate.Collection.ILazyInitializedCollection, NHibernate.Collection.IPersistentCollection
        {
            public virtual bool AfterInitialize(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public virtual void AfterRowInsert(NHibernate.Persister.Collection.ICollectionPersister persister, object entry, int i, object id) => throw null;
            public virtual void ApplyQueuedOperations() => throw null;
            public abstract void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize);
            public virtual void BeginRead() => throw null;
            protected int CachedSize { get => throw null; set { } }
            public void ClearDirty() => throw null;
            protected bool ClearQueueEnabled { get => throw null; }
            protected AbstractPersistentCollection() => throw null;
            protected AbstractPersistentCollection(NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Dirty() => throw null;
            public abstract object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister);
            public abstract System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken);
            public abstract bool Empty { get; }
            public virtual bool EndRead(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public abstract System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister);
            public abstract bool EntryExists(object entry, int i);
            public abstract bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister);
            public abstract System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken);
            public virtual void ForceInitialization() => throw null;
            public virtual System.Threading.Tasks.Task ForceInitializationAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula);
            public abstract System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken);
            public abstract object GetElement(object entry);
            public virtual object GetIdentifier(object entry, int i) => throw null;
            public abstract object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister);
            public abstract System.Collections.ICollection GetOrphans(object snapshot, string entityName);
            protected virtual System.Collections.ICollection GetOrphans(System.Collections.ICollection oldElements, System.Collections.ICollection currentElements, string entityName, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(System.Collections.ICollection oldElements, System.Collections.ICollection currentElements, string entityName, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken);
            public System.Collections.ICollection GetQueuedOrphans(string entityName) => throw null;
            public System.Threading.Tasks.Task<System.Collections.ICollection> GetQueuedOrphansAsync(string entityName, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual object GetSnapshot() => throw null;
            public abstract object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister);
            public abstract object GetSnapshotElement(object entry, int i);
            public virtual object GetValue() => throw null;
            public bool HasQueuedOperations { get => throw null; }
            protected interface IDelayedOperation
            {
                object AddedInstance { get; }
                void Operate();
                object Orphan { get; }
            }
            public void IdentityRemove(System.Collections.IList list, object obj, string entityName, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task IdentityRemoveAsync(System.Collections.IList list, object obj, string entityName, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual void Initialize(bool writing) => throw null;
            protected virtual System.Threading.Tasks.Task InitializeAsync(bool writing, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner);
            public abstract System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken);
            protected bool InverseCollectionNoOrphanDelete { get => throw null; }
            protected bool InverseOneToManyOrNoOrphanDelete { get => throw null; }
            protected bool IsConnectedToSession { get => throw null; }
            public virtual bool IsDirectlyAccessible { get => throw null; set { } }
            public bool IsDirty { get => throw null; }
            protected bool IsInverseCollection { get => throw null; }
            protected bool IsOperationQueueEnabled { get => throw null; }
            public abstract bool IsSnapshotEmpty(object snapshot);
            public bool IsUnreferenced { get => throw null; }
            public abstract bool IsWrapper(object collection);
            public object Key { get => throw null; }
            public abstract bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType);
            public abstract System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken);
            public virtual bool NeedsRecreate(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public abstract bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType);
            public abstract System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken);
            protected static readonly object NotFound;
            public virtual object Owner { get => throw null; set { } }
            protected virtual void PerformQueuedOperations() => throw null;
            public virtual void PostAction() => throw null;
            public virtual void PreInsert(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public virtual System.Threading.Tasks.Task PreInsertAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            protected bool PutQueueEnabled { get => throw null; }
            protected bool QueueAddElement<T>(T element) => throw null;
            protected void QueueAddElementAtIndex<T>(int index, T element) => throw null;
            protected void QueueAddElementByKey<TKey, TValue>(TKey elementKey, TValue element) => throw null;
            protected void QueueClearCollection() => throw null;
            public System.Collections.IEnumerable QueuedAdditionIterator { get => throw null; }
            protected virtual void QueueOperation(NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation element) => throw null;
            protected void QueueRemoveElementAtIndex<T>(int index, T element) => throw null;
            protected bool QueueRemoveElementByKey<TKey, TValue>(TKey elementKey, TValue oldElement, bool? existsInDb) => throw null;
            protected void QueueRemoveExistingElement<T>(T element, bool? existsInDb) => throw null;
            protected void QueueSetElementAtIndex<T>(int index, T element, T oldElement) => throw null;
            protected void QueueSetElementByKey<TKey, TValue>(TKey elementKey, TValue element, TValue oldElement, bool? existsInDb) => throw null;
            public virtual void Read() => throw null;
            protected virtual object ReadElementByIndex(object index) => throw null;
            protected virtual bool? ReadElementExistence(object element) => throw null;
            protected virtual bool? ReadElementExistence<T>(T element, out bool? existsInDb) => throw null;
            public abstract object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner);
            public abstract System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken);
            protected virtual bool? ReadIndexExistence(object index) => throw null;
            protected virtual bool? ReadKeyExistence<TKey, TValue>(TKey elementKey) => throw null;
            protected virtual System.Threading.Tasks.Task<bool?> ReadKeyExistenceAsync<TKey, TValue>(TKey elementKey, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual bool ReadSize() => throw null;
            public string Role { get => throw null; }
            public virtual bool RowUpdatePossible { get => throw null; }
            protected virtual NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public virtual bool SetCurrentSession(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual void SetInitialized() => throw null;
            public void SetSnapshot(object key, string role, object snapshot) => throw null;
            public object StoredSnapshot { get => throw null; }
            protected void ThrowLazyInitializationException(string message) => throw null;
            protected void ThrowLazyInitializationExceptionIfNotConnected() => throw null;
            protected virtual bool? TryReadElementAtIndex<T>(int index, out T element) => throw null;
            protected virtual bool? TryReadElementByKey<TKey, TValue>(TKey elementKey, out TValue element, out bool? existsInDb) => throw null;
            protected static readonly object Unknown;
            public bool UnsetSession(NHibernate.Engine.ISessionImplementor currentSession) => throw null;
            public bool WasInitialized { get => throw null; }
            protected virtual void Write() => throw null;
        }
        namespace Generic
        {
            public class PersistentGenericBag<T> : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.ICollection<T>, System.Collections.ICollection, System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable, System.Collections.Generic.IList<T>, System.Collections.IList, System.Linq.IQueryable<T>, System.Linq.IQueryable, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>
            {
                int System.Collections.IList.Add(object value) => throw null;
                public void Add(T item) => throw null;
                public override void ApplyQueuedOperations() => throw null;
                public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null;
                public void Clear() => throw null;
                bool System.Collections.IList.Contains(object value) => throw null;
                public bool Contains(T item) => throw null;
                void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null;
                public void CopyTo(T[] array, int arrayIndex) => throw null;
                public int Count { get => throw null; }
                public PersistentGenericBag() => throw null;
                public PersistentGenericBag(NHibernate.Engine.ISessionImplementor session) => throw null;
                public PersistentGenericBag(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IEnumerable<T> coll) => throw null;
                public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Type System.Linq.IQueryable.ElementType { get => throw null; }
                public override bool Empty { get => throw null; }
                public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override bool EntryExists(object entry, int i) => throw null;
                public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; }
                public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetElement(object entry) => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                public System.Collections.Generic.IEnumerator<T> GetEnumerator() => throw null;
                public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override object GetSnapshotElement(object entry, int i) => throw null;
                int System.Collections.IList.IndexOf(object value) => throw null;
                public int IndexOf(T item) => throw null;
                public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null;
                public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                void System.Collections.IList.Insert(int index, object value) => throw null;
                public void Insert(int index, T item) => throw null;
                protected System.Collections.Generic.IList<T> InternalBag { get => throw null; set { } }
                bool System.Collections.IList.IsFixedSize { get => throw null; }
                public bool IsReadOnly { get => throw null; }
                public override bool IsSnapshotEmpty(object snapshot) => throw null;
                bool System.Collections.ICollection.IsSynchronized { get => throw null; }
                public override bool IsWrapper(object collection) => throw null;
                object System.Collections.IList.this[int index] { get => throw null; set { } }
                public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                public override bool NeedsRecreate(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; }
                public override object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null;
                public override System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                void System.Collections.IList.Remove(object value) => throw null;
                public bool Remove(T item) => throw null;
                public void RemoveAt(int index) => throw null;
                public override bool RowUpdatePossible { get => throw null; }
                object System.Collections.ICollection.SyncRoot { get => throw null; }
                public T this[int index] { get => throw null; set { } }
                public override string ToString() => throw null;
            }
            public class PersistentGenericList<T> : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.ICollection<T>, System.Collections.ICollection, System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable, System.Collections.Generic.IList<T>, System.Collections.IList, System.Linq.IQueryable<T>, System.Linq.IQueryable, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>
            {
                int System.Collections.IList.Add(object value) => throw null;
                public void Add(T item) => throw null;
                protected sealed class AddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public AddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList<T> enclosingInstance, int index, T value) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                public override void ApplyQueuedOperations() => throw null;
                public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null;
                public void Clear() => throw null;
                protected sealed class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList<T> enclosingInstance) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                bool System.Collections.IList.Contains(object value) => throw null;
                public bool Contains(T item) => throw null;
                void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null;
                public void CopyTo(T[] array, int arrayIndex) => throw null;
                public int Count { get => throw null; }
                public PersistentGenericList() => throw null;
                public PersistentGenericList(NHibernate.Engine.ISessionImplementor session) => throw null;
                public PersistentGenericList(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IList<T> list) => throw null;
                protected virtual T DefaultForType { get => throw null; }
                public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Type System.Linq.IQueryable.ElementType { get => throw null; }
                public override bool Empty { get => throw null; }
                public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override bool EntryExists(object entry, int i) => throw null;
                public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; }
                public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetElement(object entry) => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerable<T>.GetEnumerator() => throw null;
                public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override object GetSnapshotElement(object entry, int i) => throw null;
                int System.Collections.IList.IndexOf(object value) => throw null;
                public int IndexOf(T item) => throw null;
                public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null;
                public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                void System.Collections.IList.Insert(int index, object value) => throw null;
                public void Insert(int index, T item) => throw null;
                bool System.Collections.IList.IsFixedSize { get => throw null; }
                bool System.Collections.IList.IsReadOnly { get => throw null; }
                bool System.Collections.Generic.ICollection<T>.IsReadOnly { get => throw null; }
                public override bool IsSnapshotEmpty(object snapshot) => throw null;
                bool System.Collections.ICollection.IsSynchronized { get => throw null; }
                public override bool IsWrapper(object collection) => throw null;
                object System.Collections.IList.this[int index] { get => throw null; set { } }
                public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; }
                public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null;
                public override System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                void System.Collections.IList.Remove(object value) => throw null;
                public bool Remove(T item) => throw null;
                public void RemoveAt(int index) => throw null;
                protected sealed class RemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public RemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList<T> enclosingInstance, int index, object old) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                protected sealed class SetDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public SetDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList<T> enclosingInstance, int index, T value, object old) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                protected sealed class SimpleAddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public SimpleAddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList<T> enclosingInstance, T value) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                protected sealed class SimpleRemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public SimpleRemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericList<T> enclosingInstance, T value) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                object System.Collections.ICollection.SyncRoot { get => throw null; }
                public T this[int index] { get => throw null; set { } }
                public override string ToString() => throw null;
                protected System.Collections.Generic.IList<T> WrappedList;
            }
            public class PersistentGenericMap<TKey, TValue> : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.ICollection, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable, System.Collections.Generic.IReadOnlyCollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>
            {
                public void Add(TKey key, TValue value) => throw null;
                public void Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
                protected virtual void AddDuringInitialize(object index, object element) => throw null;
                public override void ApplyQueuedOperations() => throw null;
                public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null;
                public void Clear() => throw null;
                protected sealed class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap<TKey, TValue> enclosingInstance) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                public bool Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
                public bool ContainsKey(TKey key) => throw null;
                public void CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) => throw null;
                public void CopyTo(System.Array array, int arrayIndex) => throw null;
                public int Count { get => throw null; }
                public PersistentGenericMap() => throw null;
                public PersistentGenericMap(NHibernate.Engine.ISessionImplementor session) => throw null;
                public PersistentGenericMap(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IDictionary<TKey, TValue> map) => throw null;
                public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                public override bool Empty { get => throw null; }
                public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override bool EntryExists(object entry, int i) => throw null;
                public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetElement(object entry) => throw null;
                System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>.GetEnumerator() => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override object GetSnapshotElement(object entry, int i) => throw null;
                public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null;
                public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                public bool IsReadOnly { get => throw null; }
                public override bool IsSnapshotEmpty(object snapshot) => throw null;
                public bool IsSynchronized { get => throw null; }
                public override bool IsWrapper(object collection) => throw null;
                public System.Collections.Generic.ICollection<TKey> Keys { get => throw null; }
                System.Collections.Generic.IEnumerable<TKey> System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>.Keys { get => throw null; }
                public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                protected sealed class PutDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public PutDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap<TKey, TValue> enclosingInstance, TKey index, TValue value, object old) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null;
                public override System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                public bool Remove(TKey key) => throw null;
                public bool Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
                protected sealed class RemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public RemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericMap<TKey, TValue> enclosingInstance, TKey index, object old) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                public object SyncRoot { get => throw null; }
                public TValue this[TKey key] { get => throw null; set { } }
                public override string ToString() => throw null;
                public bool TryGetValue(TKey key, out TValue value) => throw null;
                public System.Collections.Generic.ICollection<TValue> Values { get => throw null; }
                System.Collections.Generic.IEnumerable<TValue> System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>.Values { get => throw null; }
                protected System.Collections.Generic.IDictionary<TKey, TValue> WrappedMap;
            }
            public class PersistentGenericSet<T> : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.ICollection<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable, System.Linq.IQueryable<T>, System.Linq.IQueryable, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.ISet<T>
            {
                public bool Add(T o) => throw null;
                void System.Collections.Generic.ICollection<T>.Add(T item) => throw null;
                public override void ApplyQueuedOperations() => throw null;
                public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null;
                public override void BeginRead() => throw null;
                public void Clear() => throw null;
                protected sealed class ClearDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public ClearDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet<T> enclosingInstance) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                public bool Contains(T item) => throw null;
                public void CopyTo(T[] array, int arrayIndex) => throw null;
                public int Count { get => throw null; }
                public PersistentGenericSet() => throw null;
                public PersistentGenericSet(NHibernate.Engine.ISessionImplementor session) => throw null;
                public PersistentGenericSet(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet<T> original) => throw null;
                public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Type System.Linq.IQueryable.ElementType { get => throw null; }
                public override bool Empty { get => throw null; }
                public override bool EndRead(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override bool EntryExists(object entry, int i) => throw null;
                public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                public void ExceptWith(System.Collections.Generic.IEnumerable<T> other) => throw null;
                System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; }
                public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetElement(object entry) => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                public System.Collections.Generic.IEnumerator<T> GetEnumerator() => throw null;
                public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override object GetSnapshotElement(object entry, int i) => throw null;
                public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null;
                public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                public void IntersectWith(System.Collections.Generic.IEnumerable<T> other) => throw null;
                public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable<T> other) => throw null;
                public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable<T> other) => throw null;
                public bool IsReadOnly { get => throw null; }
                public override bool IsSnapshotEmpty(object snapshot) => throw null;
                public bool IsSubsetOf(System.Collections.Generic.IEnumerable<T> other) => throw null;
                public bool IsSupersetOf(System.Collections.Generic.IEnumerable<T> other) => throw null;
                public bool IsSynchronized { get => throw null; }
                public override bool IsWrapper(object collection) => throw null;
                public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                public bool Overlaps(System.Collections.Generic.IEnumerable<T> other) => throw null;
                System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; }
                public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null;
                public override System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                public bool Remove(T o) => throw null;
                public override bool RowUpdatePossible { get => throw null; }
                public bool SetEquals(System.Collections.Generic.IEnumerable<T> other) => throw null;
                protected sealed class SimpleAddDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public SimpleAddDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet<T> enclosingInstance, T value) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                protected sealed class SimpleRemoveDelayedOperation : NHibernate.Collection.AbstractPersistentCollection.IDelayedOperation
                {
                    public object AddedInstance { get => throw null; }
                    public SimpleRemoveDelayedOperation(NHibernate.Collection.Generic.PersistentGenericSet<T> enclosingInstance, T value) => throw null;
                    public void Operate() => throw null;
                    public object Orphan { get => throw null; }
                }
                public void SymmetricExceptWith(System.Collections.Generic.IEnumerable<T> other) => throw null;
                public object SyncRoot { get => throw null; }
                public override string ToString() => throw null;
                public void UnionWith(System.Collections.Generic.IEnumerable<T> other) => throw null;
                protected System.Collections.Generic.ISet<T> WrappedSet;
            }
            public class PersistentIdentifierBag<T> : NHibernate.Collection.AbstractPersistentCollection, System.Collections.Generic.ICollection<T>, System.Collections.ICollection, System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable, System.Collections.Generic.IList<T>, System.Collections.IList, System.Linq.IQueryable<T>, System.Linq.IQueryable, System.Collections.Generic.IReadOnlyCollection<T>, System.Collections.Generic.IReadOnlyList<T>
            {
                int System.Collections.IList.Add(object value) => throw null;
                public void Add(T item) => throw null;
                public override void AfterRowInsert(NHibernate.Persister.Collection.ICollectionPersister persister, object entry, int i, object id) => throw null;
                public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null;
                protected void BeforeInsert(int index) => throw null;
                protected void BeforeRemove(int index) => throw null;
                public void Clear() => throw null;
                bool System.Collections.IList.Contains(object value) => throw null;
                public bool Contains(T item) => throw null;
                void System.Collections.ICollection.CopyTo(System.Array array, int arrayIndex) => throw null;
                public void CopyTo(T[] array, int arrayIndex) => throw null;
                public int Count { get => throw null; }
                public PersistentIdentifierBag() => throw null;
                public PersistentIdentifierBag(NHibernate.Engine.ISessionImplementor session) => throw null;
                public PersistentIdentifierBag(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.IEnumerable<T> coll) => throw null;
                public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Type System.Linq.IQueryable.ElementType { get => throw null; }
                public override bool Empty { get => throw null; }
                public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override bool EntryExists(object entry, int i) => throw null;
                public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Linq.Expressions.Expression System.Linq.IQueryable.Expression { get => throw null; }
                public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetElement(object entry) => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                public System.Collections.Generic.IEnumerator<T> GetEnumerator() => throw null;
                public override object GetIdentifier(object entry, int i) => throw null;
                public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null;
                public override System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null;
                public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override object GetSnapshotElement(object entry, int i) => throw null;
                int System.Collections.IList.IndexOf(object value) => throw null;
                public int IndexOf(T item) => throw null;
                public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null;
                public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                void System.Collections.IList.Insert(int index, object value) => throw null;
                public void Insert(int index, T item) => throw null;
                protected System.Collections.Generic.IList<T> InternalValues { get => throw null; set { } }
                bool System.Collections.IList.IsFixedSize { get => throw null; }
                public bool IsReadOnly { get => throw null; }
                public override bool IsSnapshotEmpty(object snapshot) => throw null;
                bool System.Collections.ICollection.IsSynchronized { get => throw null; }
                public override bool IsWrapper(object collection) => throw null;
                object System.Collections.IList.this[int index] { get => throw null; set { } }
                public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null;
                public override System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
                public override void PreInsert(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public override System.Threading.Tasks.Task PreInsertAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                System.Linq.IQueryProvider System.Linq.IQueryable.Provider { get => throw null; }
                public override object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null;
                public override System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
                void System.Collections.IList.Remove(object value) => throw null;
                public bool Remove(T item) => throw null;
                public void RemoveAt(int index) => throw null;
                object System.Collections.ICollection.SyncRoot { get => throw null; }
                public T this[int index] { get => throw null; set { } }
            }
        }
        public interface ILazyInitializedCollection
        {
            void ForceInitialization();
            System.Threading.Tasks.Task ForceInitializationAsync(System.Threading.CancellationToken cancellationToken);
            bool WasInitialized { get; }
        }
        public interface IPersistentCollection
        {
            bool AfterInitialize(NHibernate.Persister.Collection.ICollectionPersister persister);
            void AfterRowInsert(NHibernate.Persister.Collection.ICollectionPersister persister, object entry, int i, object id);
            void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize);
            void BeginRead();
            void ClearDirty();
            void Dirty();
            object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister);
            System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken);
            bool Empty { get; }
            bool EndRead(NHibernate.Persister.Collection.ICollectionPersister persister);
            System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister);
            bool EntryExists(object entry, int i);
            bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister);
            System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken);
            void ForceInitialization();
            System.Threading.Tasks.Task ForceInitializationAsync(System.Threading.CancellationToken cancellationToken);
            System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula);
            System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken);
            object GetElement(object entry);
            object GetIdentifier(object entry, int i);
            object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister);
            System.Collections.ICollection GetOrphans(object snapshot, string entityName);
            System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken);
            System.Collections.ICollection GetQueuedOrphans(string entityName);
            System.Threading.Tasks.Task<System.Collections.ICollection> GetQueuedOrphansAsync(string entityName, System.Threading.CancellationToken cancellationToken);
            object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister);
            object GetSnapshotElement(object entry, int i);
            object GetValue();
            bool HasQueuedOperations { get; }
            void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner);
            System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken);
            bool IsDirectlyAccessible { get; }
            bool IsDirty { get; }
            bool IsSnapshotEmpty(object snapshot);
            bool IsUnreferenced { get; }
            bool IsWrapper(object collection);
            object Key { get; }
            bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType);
            System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken);
            bool NeedsRecreate(NHibernate.Persister.Collection.ICollectionPersister persister);
            bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType);
            System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken);
            object Owner { get; set; }
            void PostAction();
            void PreInsert(NHibernate.Persister.Collection.ICollectionPersister persister);
            System.Threading.Tasks.Task PreInsertAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken);
            System.Collections.IEnumerable QueuedAdditionIterator { get; }
            object ReadFrom(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner);
            System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader reader, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken);
            string Role { get; }
            bool RowUpdatePossible { get; }
            bool SetCurrentSession(NHibernate.Engine.ISessionImplementor session);
            void SetSnapshot(object key, string role, object snapshot);
            object StoredSnapshot { get; }
            bool UnsetSession(NHibernate.Engine.ISessionImplementor currentSession);
            bool WasInitialized { get; }
        }
        public class PersistentArrayHolder : NHibernate.Collection.AbstractPersistentCollection, System.Collections.ICollection, System.Collections.IEnumerable
        {
            public object Array { get => throw null; set { } }
            public override void BeforeInitialize(NHibernate.Persister.Collection.ICollectionPersister persister, int anticipatedSize) => throw null;
            public override void BeginRead() => throw null;
            void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null;
            int System.Collections.ICollection.Count { get => throw null; }
            public PersistentArrayHolder(NHibernate.Engine.ISessionImplementor session, object array) => throw null;
            public PersistentArrayHolder(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public override object Disassemble(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Collections.ICollection Elements() => throw null;
            public override bool Empty { get => throw null; }
            public override bool EndRead(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public override System.Collections.IEnumerable Entries(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public override bool EntryExists(object entry, int i) => throw null;
            public override bool EqualsSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public override System.Threading.Tasks.Task<bool> EqualsSnapshotAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Collections.IEnumerable GetDeletes(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> GetDeletesAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool indexIsFormula, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object GetElement(object entry) => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            public override object GetIndex(object entry, int i, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public override System.Collections.ICollection GetOrphans(object snapshot, string entityName) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(object snapshot, string entityName, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object GetSnapshot(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            public override object GetSnapshotElement(object entry, int i) => throw null;
            public override object GetValue() => throw null;
            public override void InitializeFromCache(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner) => throw null;
            public override System.Threading.Tasks.Task InitializeFromCacheAsync(NHibernate.Persister.Collection.ICollectionPersister persister, object disassembled, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsDirectlyAccessible { get => throw null; }
            public override bool IsSnapshotEmpty(object snapshot) => throw null;
            bool System.Collections.ICollection.IsSynchronized { get => throw null; }
            public override bool IsWrapper(object collection) => throw null;
            public override bool NeedsInserting(object entry, int i, NHibernate.Type.IType elemType) => throw null;
            public override System.Threading.Tasks.Task<bool> NeedsInsertingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool NeedsUpdating(object entry, int i, NHibernate.Type.IType elemType) => throw null;
            public override System.Threading.Tasks.Task<bool> NeedsUpdatingAsync(object entry, int i, NHibernate.Type.IType elemType, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object ReadFrom(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> ReadFromAsync(System.Data.Common.DbDataReader rs, NHibernate.Persister.Collection.ICollectionPersister role, NHibernate.Loader.ICollectionAliases descriptor, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            object System.Collections.ICollection.SyncRoot { get => throw null; }
        }
        public static partial class PersistentCollectionExtensions
        {
            public static void ApplyQueuedOperations(this NHibernate.Collection.IPersistentCollection collection) => throw null;
        }
    }
    namespace Connection
    {
        public abstract class ConnectionProvider : NHibernate.Connection.IConnectionProvider, System.IDisposable
        {
            public virtual void CloseConnection(System.Data.Common.DbConnection conn) => throw null;
            public virtual void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            protected virtual void ConfigureDriver(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            protected virtual string ConnectionString { get => throw null; }
            protected ConnectionProvider() => throw null;
            public void Dispose() => throw null;
            protected virtual void Dispose(bool isDisposing) => throw null;
            public NHibernate.Driver.IDriver Driver { get => throw null; }
            public virtual System.Data.Common.DbConnection GetConnection() => throw null;
            public virtual System.Data.Common.DbConnection GetConnection(string connectionString) => throw null;
            public virtual System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetConnectionAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetConnectionAsync(string connectionString, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual string GetNamedConnectionString(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
        }
        public static partial class ConnectionProviderExtensions
        {
            public static string GetConnectionString(this NHibernate.Connection.IConnectionProvider connectionProvider) => throw null;
        }
        public static class ConnectionProviderFactory
        {
            public static NHibernate.Connection.IConnectionProvider NewConnectionProvider(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
        }
        public class DriverConnectionProvider : NHibernate.Connection.ConnectionProvider
        {
            public override void CloseConnection(System.Data.Common.DbConnection conn) => throw null;
            public DriverConnectionProvider() => throw null;
            public override System.Data.Common.DbConnection GetConnection(string connectionString) => throw null;
            public override System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetConnectionAsync(string connectionString, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public interface IConnectionAccess
        {
            void CloseConnection(System.Data.Common.DbConnection connection);
            string ConnectionString { get; }
            System.Data.Common.DbConnection GetConnection();
            System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetConnectionAsync(System.Threading.CancellationToken cancellationToken);
        }
        public interface IConnectionProvider : System.IDisposable
        {
            void CloseConnection(System.Data.Common.DbConnection conn);
            void Configure(System.Collections.Generic.IDictionary<string, string> settings);
            NHibernate.Driver.IDriver Driver { get; }
            System.Data.Common.DbConnection GetConnection();
            System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetConnectionAsync(System.Threading.CancellationToken cancellationToken);
        }
        public class UserSuppliedConnectionProvider : NHibernate.Connection.ConnectionProvider
        {
            public override void CloseConnection(System.Data.Common.DbConnection conn) => throw null;
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public UserSuppliedConnectionProvider() => throw null;
            public override System.Data.Common.DbConnection GetConnection(string connectionString) => throw null;
            public override System.Threading.Tasks.Task<System.Data.Common.DbConnection> GetConnectionAsync(string connectionString, System.Threading.CancellationToken cancellationToken) => throw null;
        }
    }
    public enum ConnectionReleaseMode
    {
        AfterStatement = 0,
        AfterTransaction = 1,
        OnClose = 2,
    }
    public static class ConnectionReleaseModeParser
    {
        public static NHibernate.ConnectionReleaseMode Convert(string value) => throw null;
        public static string ToString(NHibernate.ConnectionReleaseMode value) => throw null;
    }
    namespace Context
    {
        public class AsyncLocalSessionContext : NHibernate.Context.CurrentSessionContext
        {
            public AsyncLocalSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            protected override NHibernate.ISession Session { get => throw null; set { } }
        }
        public class CallSessionContext : NHibernate.Context.MapBasedSessionContext
        {
            public CallSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            protected override System.Collections.IDictionary GetMap() => throw null;
            protected override void SetMap(System.Collections.IDictionary value) => throw null;
        }
        public abstract class CurrentSessionContext : NHibernate.Context.ICurrentSessionContext
        {
            public static void Bind(NHibernate.ISession session) => throw null;
            protected CurrentSessionContext() => throw null;
            public virtual NHibernate.ISession CurrentSession() => throw null;
            public static bool HasBind(NHibernate.ISessionFactory factory) => throw null;
            protected abstract NHibernate.ISession Session { get; set; }
            public static NHibernate.ISession Unbind(NHibernate.ISessionFactory factory) => throw null;
        }
        public interface ICurrentSessionContext
        {
            NHibernate.ISession CurrentSession();
        }
        public interface ISessionFactoryAwareCurrentSessionContext : NHibernate.Context.ICurrentSessionContext
        {
            void SetFactory(NHibernate.Engine.ISessionFactoryImplementor factory);
        }
        public abstract class MapBasedSessionContext : NHibernate.Context.CurrentSessionContext
        {
            protected MapBasedSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            protected abstract System.Collections.IDictionary GetMap();
            protected override NHibernate.ISession Session { get => throw null; set { } }
            protected abstract void SetMap(System.Collections.IDictionary value);
        }
        public static class ReflectiveHttpContext
        {
            public static System.Func<object> HttpContextCurrentGetter { get => throw null; }
            public static System.Collections.IDictionary HttpContextCurrentItems { get => throw null; }
            public static System.Func<object, System.Collections.IDictionary> HttpContextItemsGetter { get => throw null; }
        }
        public class ThreadLocalSessionContext : NHibernate.Context.ICurrentSessionContext
        {
            public static void Bind(NHibernate.ISession session) => throw null;
            public static System.Threading.Tasks.Task BindAsync(NHibernate.ISession session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected NHibernate.ISession BuildOrObtainSession() => throw null;
            protected static System.Collections.Generic.IDictionary<NHibernate.ISessionFactory, NHibernate.ISession> context;
            public ThreadLocalSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.ISession CurrentSession() => throw null;
            protected readonly NHibernate.Engine.ISessionFactoryImplementor factory;
            protected virtual bool IsAutoCloseEnabled() => throw null;
            protected virtual bool IsAutoFlushEnabled() => throw null;
            public static NHibernate.ISession Unbind(NHibernate.ISessionFactory factory) => throw null;
        }
        public class ThreadStaticSessionContext : NHibernate.Context.MapBasedSessionContext
        {
            public ThreadStaticSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            protected override System.Collections.IDictionary GetMap() => throw null;
            protected override void SetMap(System.Collections.IDictionary value) => throw null;
        }
        public class WcfOperationSessionContext : NHibernate.Context.MapBasedSessionContext
        {
            public WcfOperationSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            protected override System.Collections.IDictionary GetMap() => throw null;
            protected override void SetMap(System.Collections.IDictionary value) => throw null;
        }
        public class WebSessionContext : NHibernate.Context.MapBasedSessionContext
        {
            public WebSessionContext(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            protected override System.Collections.IDictionary GetMap() => throw null;
            protected override void SetMap(System.Collections.IDictionary value) => throw null;
        }
    }
    public static class CriteriaTransformer
    {
        public static NHibernate.Criterion.DetachedCriteria Clone(NHibernate.Criterion.DetachedCriteria criteria) => throw null;
        public static NHibernate.ICriteria Clone(NHibernate.ICriteria criteria) => throw null;
        public static NHibernate.Criterion.DetachedCriteria TransformToRowCount(NHibernate.Criterion.DetachedCriteria criteria) => throw null;
        public static NHibernate.ICriteria TransformToRowCount(NHibernate.ICriteria criteria) => throw null;
    }
    namespace Criterion
    {
        public abstract class AbstractCriterion : NHibernate.Criterion.ICriterion
        {
            protected AbstractCriterion() => throw null;
            public abstract NHibernate.Criterion.IProjection[] GetProjections();
            public abstract NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            public static NHibernate.Criterion.AbstractCriterion operator &(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractCriterion rhs) => throw null;
            public static NHibernate.Criterion.AbstractCriterion operator &(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractEmptinessExpression rhs) => throw null;
            public static NHibernate.Criterion.AbstractCriterion operator |(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractCriterion rhs) => throw null;
            public static NHibernate.Criterion.AbstractCriterion operator |(NHibernate.Criterion.AbstractCriterion lhs, NHibernate.Criterion.AbstractEmptinessExpression rhs) => throw null;
            public static bool operator false(NHibernate.Criterion.AbstractCriterion criteria) => throw null;
            public static NHibernate.Criterion.AbstractCriterion operator !(NHibernate.Criterion.AbstractCriterion crit) => throw null;
            public static bool operator true(NHibernate.Criterion.AbstractCriterion criteria) => throw null;
            public abstract NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            public abstract override string ToString();
        }
        public abstract class AbstractEmptinessExpression : NHibernate.Criterion.AbstractCriterion
        {
            protected AbstractEmptinessExpression(string propertyName) => throw null;
            protected abstract bool ExcludeEmpty { get; }
            protected NHibernate.Persister.Collection.IQueryableCollection GetQueryableCollection(string entityName, string actualPropertyName, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override sealed string ToString() => throw null;
        }
        public class AggregateProjection : NHibernate.Criterion.SimpleProjection
        {
            protected readonly string aggregate;
            protected AggregateProjection(string aggregate, string propertyName) => throw null;
            protected AggregateProjection(string aggregate, NHibernate.Criterion.IProjection projection) => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            protected readonly NHibernate.Criterion.IProjection projection;
            protected readonly string propertyName;
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class AliasedProjection : NHibernate.Criterion.IProjection
        {
            public virtual string[] Aliases { get => throw null; }
            protected AliasedProjection(NHibernate.Criterion.IProjection projection, string alias) => throw null;
            public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public bool IsAggregate { get => throw null; }
            public virtual bool IsGrouped { get => throw null; }
            public virtual NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class AndExpression : NHibernate.Criterion.LogicalExpression
        {
            public AndExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) : base(default(NHibernate.Criterion.ICriterion), default(NHibernate.Criterion.ICriterion)) => throw null;
            protected override string Op { get => throw null; }
        }
        public class AvgProjection : NHibernate.Criterion.AggregateProjection
        {
            public AvgProjection(NHibernate.Criterion.IProjection projection) : base(default(string), default(string)) => throw null;
            public AvgProjection(string propertyName) : base(default(string), default(string)) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
        }
        public class BetweenExpression : NHibernate.Criterion.AbstractCriterion
        {
            public BetweenExpression(NHibernate.Criterion.IProjection projection, object lo, object hi) => throw null;
            public BetweenExpression(string propertyName, object lo, object hi) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class CastProjection : NHibernate.Criterion.SimpleProjection
        {
            public CastProjection(NHibernate.Type.IType type, NHibernate.Criterion.IProjection projection) => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
        }
        public class ConditionalProjection : NHibernate.Criterion.SimpleProjection
        {
            public ConditionalProjection(NHibernate.Criterion.ICriterion criterion, NHibernate.Criterion.IProjection whenTrue, NHibernate.Criterion.IProjection whenFalse) => throw null;
            public ConditionalProjection(NHibernate.Criterion.ConditionalProjectionCase[] cases, NHibernate.Criterion.IProjection elseProjection) => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
        }
        public class ConditionalProjectionCase
        {
            public NHibernate.Criterion.ICriterion Criterion { get => throw null; }
            public ConditionalProjectionCase(NHibernate.Criterion.ICriterion criterion, NHibernate.Criterion.IProjection projection) => throw null;
            public NHibernate.Criterion.IProjection Projection { get => throw null; }
        }
        public class Conjunction : NHibernate.Criterion.Junction
        {
            public Conjunction() => throw null;
            protected override NHibernate.SqlCommand.SqlString EmptyExpression { get => throw null; }
            protected override string Op { get => throw null; }
        }
        public class ConstantProjection : NHibernate.Criterion.SimpleProjection
        {
            public ConstantProjection(object value) => throw null;
            public ConstantProjection(object value, NHibernate.Type.IType type) => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Engine.TypedValue TypedValue { get => throw null; }
        }
        public class CountProjection : NHibernate.Criterion.AggregateProjection
        {
            protected CountProjection(string prop) : base(default(string), default(string)) => throw null;
            protected CountProjection(NHibernate.Criterion.IProjection projection) : base(default(string), default(string)) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Criterion.CountProjection SetDistinct() => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public static class CriteriaSpecification
        {
            public static readonly NHibernate.Transform.IResultTransformer AliasToEntityMap;
            public static readonly NHibernate.Transform.IResultTransformer DistinctRootEntity;
            public static readonly NHibernate.SqlCommand.JoinType FullJoin;
            public static readonly NHibernate.SqlCommand.JoinType InnerJoin;
            public static readonly NHibernate.SqlCommand.JoinType LeftJoin;
            public static readonly NHibernate.Transform.IResultTransformer Projection;
            public static readonly string RootAlias;
            public static readonly NHibernate.Transform.IResultTransformer RootEntity;
        }
        public static class CriterionUtil
        {
            public static NHibernate.SqlCommand.SqlString[] GetColumnNames(string propertyName, NHibernate.Criterion.IProjection projection, NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.ICriteria criteria) => throw null;
            public static NHibernate.SqlCommand.SqlString[] GetColumnNamesForSimpleExpression(string propertyName, NHibernate.Criterion.IProjection projection, NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriterion criterion, object value) => throw null;
            public static NHibernate.Engine.TypedValue GetTypedValue(NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.ICriteria criteria, NHibernate.Criterion.IProjection projection, string propertyName, object value) => throw null;
            public static NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.ICriteria criteria, NHibernate.Criterion.IProjection projection, string propertyName, params object[] values) => throw null;
        }
        public class DetachedCriteria
        {
            public NHibernate.Criterion.DetachedCriteria Add(NHibernate.Criterion.ICriterion criterion) => throw null;
            public NHibernate.Criterion.DetachedCriteria AddOrder(NHibernate.Criterion.Order order) => throw null;
            public string Alias { get => throw null; }
            public void ClearOrders() => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias) => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias) => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath) => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.DetachedCriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            protected DetachedCriteria(System.Type entityType) => throw null;
            protected DetachedCriteria(System.Type entityType, string alias) => throw null;
            protected DetachedCriteria(string entityName) => throw null;
            protected DetachedCriteria(string entityName, string alias) => throw null;
            protected DetachedCriteria(NHibernate.Impl.CriteriaImpl impl, NHibernate.ICriteria criteria) => throw null;
            public string EntityOrClassName { get => throw null; }
            public static NHibernate.Criterion.DetachedCriteria For(System.Type entityType) => throw null;
            public static NHibernate.Criterion.DetachedCriteria For<T>() => throw null;
            public static NHibernate.Criterion.DetachedCriteria For<T>(string alias) => throw null;
            public static NHibernate.Criterion.DetachedCriteria For(System.Type entityType, string alias) => throw null;
            public static NHibernate.Criterion.DetachedCriteria ForEntityName(string entityName) => throw null;
            public static NHibernate.Criterion.DetachedCriteria ForEntityName(string entityName, string alias) => throw null;
            public NHibernate.Criterion.DetachedCriteria GetCriteriaByAlias(string alias) => throw null;
            public NHibernate.Criterion.DetachedCriteria GetCriteriaByPath(string path) => throw null;
            protected NHibernate.Impl.CriteriaImpl GetCriteriaImpl() => throw null;
            public NHibernate.ICriteria GetExecutableCriteria(NHibernate.ISession session) => throw null;
            public NHibernate.ICriteria GetExecutableCriteria(NHibernate.IStatelessSession session) => throw null;
            public System.Type GetRootEntityTypeIfAvailable() => throw null;
            public NHibernate.Criterion.DetachedCriteria SetCacheable(bool cacheable) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetCacheRegion(string region) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetFirstResult(int firstResult) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetLockMode(NHibernate.LockMode lockMode) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetMaxResults(int maxResults) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetProjection(NHibernate.Criterion.IProjection projection) => throw null;
            public NHibernate.Criterion.DetachedCriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
            public override string ToString() => throw null;
        }
        public class Disjunction : NHibernate.Criterion.Junction
        {
            public Disjunction() => throw null;
            protected override NHibernate.SqlCommand.SqlString EmptyExpression { get => throw null; }
            protected override string Op { get => throw null; }
        }
        public class Distinct : NHibernate.Criterion.IProjection
        {
            public virtual string[] Aliases { get => throw null; }
            public Distinct(NHibernate.Criterion.IProjection proj) => throw null;
            public virtual string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public bool IsAggregate { get => throw null; }
            public virtual bool IsGrouped { get => throw null; }
            public virtual NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class EntityProjection : NHibernate.Criterion.IProjection
        {
            string[] NHibernate.Criterion.IProjection.Aliases { get => throw null; }
            public EntityProjection() => throw null;
            public EntityProjection(System.Type entityType, string entityAlias) => throw null;
            public bool FetchLazyProperties { get => throw null; set { } }
            public System.Collections.Generic.ICollection<string> FetchLazyPropertyGroups { get => throw null; set { } }
            string[] NHibernate.Criterion.IProjection.GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            string[] NHibernate.Criterion.IProjection.GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            NHibernate.Engine.TypedValue[] NHibernate.Criterion.IProjection.GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            NHibernate.Type.IType[] NHibernate.Criterion.IProjection.GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            NHibernate.Type.IType[] NHibernate.Criterion.IProjection.GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            bool NHibernate.Criterion.IProjection.IsAggregate { get => throw null; }
            bool NHibernate.Criterion.IProjection.IsGrouped { get => throw null; }
            public bool Lazy { get => throw null; set { } }
            public NHibernate.Criterion.EntityProjection SetFetchLazyProperties(bool fetchLazyProperties = default(bool)) => throw null;
            public NHibernate.Criterion.EntityProjection SetFetchLazyPropertyGroups(params string[] lazyPropertyGroups) => throw null;
            public NHibernate.Criterion.EntityProjection SetLazy(bool lazy = default(bool)) => throw null;
            NHibernate.SqlCommand.SqlString NHibernate.Criterion.IProjection.ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            NHibernate.SqlCommand.SqlString NHibernate.Criterion.IProjection.ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
        }
        public class EqPropertyExpression : NHibernate.Criterion.PropertyExpression
        {
            public EqPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public EqPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public EqPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public EqPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            protected override string Op { get => throw null; }
        }
        public class Example : NHibernate.Criterion.AbstractCriterion
        {
            protected void AddComponentTypedValues(string path, object component, NHibernate.Type.IAbstractComponentType type, System.Collections.IList list, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            protected void AddPropertyTypedValue(object value, NHibernate.Type.IType type, System.Collections.IList list) => throw null;
            protected static readonly NHibernate.Criterion.Example.IPropertySelector All;
            protected void AppendComponentCondition(string path, object component, NHibernate.Type.IAbstractComponentType type, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery, NHibernate.SqlCommand.SqlStringBuilder builder) => throw null;
            protected void AppendPropertyCondition(string propertyName, object propertyValue, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery cq, NHibernate.SqlCommand.SqlStringBuilder builder) => throw null;
            public static NHibernate.Criterion.Example Create(object entity) => throw null;
            protected Example(object entity, NHibernate.Criterion.Example.IPropertySelector selector) => throw null;
            public NHibernate.Criterion.Example EnableLike(NHibernate.Criterion.MatchMode matchMode) => throw null;
            public NHibernate.Criterion.Example EnableLike() => throw null;
            public NHibernate.Criterion.Example ExcludeNone() => throw null;
            public NHibernate.Criterion.Example ExcludeNulls() => throw null;
            public NHibernate.Criterion.Example ExcludeProperty(string name) => throw null;
            public NHibernate.Criterion.Example ExcludeZeroes() => throw null;
            protected virtual NHibernate.Criterion.ICriterion GetNotNullPropertyCriterion(object propertyValue, string propertyName) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Criterion.Example IgnoreCase() => throw null;
            public interface IPropertySelector
            {
                bool Include(object propertyValue, string propertyName, NHibernate.Type.IType type);
            }
            protected static readonly NHibernate.Criterion.Example.IPropertySelector NotNullOrEmptyString;
            protected static readonly NHibernate.Criterion.Example.IPropertySelector NotNullOrZero;
            public virtual NHibernate.Criterion.Example SetEscapeCharacter(char? escapeCharacter) => throw null;
            public NHibernate.Criterion.Example SetPropertySelector(NHibernate.Criterion.Example.IPropertySelector selector) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class ExistsSubqueryExpression : NHibernate.Criterion.SubqueryExpression
        {
            protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery outerQuery) => throw null;
            internal ExistsSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { }
        }
        public sealed class Expression : NHibernate.Criterion.Restrictions
        {
            public static NHibernate.Criterion.AbstractCriterion Sql(NHibernate.SqlCommand.SqlString sql, object[] values, NHibernate.Type.IType[] types) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Sql(NHibernate.SqlCommand.SqlString sql, object value, NHibernate.Type.IType type) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Sql(string sql, object value, NHibernate.Type.IType type) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Sql(string sql, object[] values, NHibernate.Type.IType[] types) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Sql(NHibernate.SqlCommand.SqlString sql) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Sql(string sql) => throw null;
        }
        public class GePropertyExpression : NHibernate.Criterion.PropertyExpression
        {
            public GePropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public GePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public GePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public GePropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            protected override string Op { get => throw null; }
        }
        public class GroupedProjection : NHibernate.Criterion.IProjection
        {
            public virtual string[] Aliases { get => throw null; }
            public GroupedProjection(NHibernate.Criterion.IProjection projection) => throw null;
            public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public bool IsAggregate { get => throw null; }
            public virtual bool IsGrouped { get => throw null; }
            public virtual NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class GtPropertyExpression : NHibernate.Criterion.PropertyExpression
        {
            public GtPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public GtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public GtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public GtPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            protected override string Op { get => throw null; }
        }
        public interface ICriteriaQuery
        {
            System.Collections.Generic.ICollection<NHibernate.Param.NamedParameter> CollectedParameters { get; }
            System.Collections.Generic.ICollection<NHibernate.Param.IParameterSpecification> CollectedParameterSpecifications { get; }
            NHibernate.SqlCommand.Parameter CreateSkipParameter(int value);
            NHibernate.SqlCommand.Parameter CreateTakeParameter(int value);
            NHibernate.Engine.ISessionFactoryImplementor Factory { get; }
            string GenerateSQLAlias();
            string GetColumn(NHibernate.ICriteria criteria, string propertyPath);
            string[] GetColumnAliasesUsingProjection(NHibernate.ICriteria criteria, string propertyPath);
            string[] GetColumns(NHibernate.ICriteria criteria, string propertyPath);
            string[] GetColumnsUsingProjection(NHibernate.ICriteria criteria, string propertyPath);
            string GetEntityName(NHibernate.ICriteria criteria);
            string GetEntityName(NHibernate.ICriteria criteria, string propertyPath);
            string[] GetIdentifierColumns(NHibernate.ICriteria subcriteria);
            NHibernate.Type.IType GetIdentifierType(NHibernate.ICriteria subcriteria);
            int GetIndexForAlias();
            string GetPropertyName(string propertyName);
            string GetSQLAlias(NHibernate.ICriteria subcriteria);
            string GetSQLAlias(NHibernate.ICriteria criteria, string propertyPath);
            NHibernate.Type.IType GetType(NHibernate.ICriteria criteria, string propertyPath);
            NHibernate.Engine.TypedValue GetTypedIdentifierValue(NHibernate.ICriteria subcriteria, object value);
            NHibernate.Engine.TypedValue GetTypedValue(NHibernate.ICriteria criteria, string propertyPath, object value);
            NHibernate.Type.IType GetTypeUsingProjection(NHibernate.ICriteria criteria, string propertyPath);
            System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.Parameter> NewQueryParameter(NHibernate.Engine.TypedValue parameter);
        }
        public interface ICriterion
        {
            NHibernate.Criterion.IProjection[] GetProjections();
            NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
        }
        public class IdentifierEqExpression : NHibernate.Criterion.AbstractCriterion
        {
            public IdentifierEqExpression(NHibernate.Criterion.IProjection projection) => throw null;
            public IdentifierEqExpression(object value) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class IdentifierProjection : NHibernate.Criterion.SimpleProjection, NHibernate.Criterion.IPropertyProjection
        {
            protected IdentifierProjection(bool grouped) => throw null;
            protected IdentifierProjection() => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public string PropertyName { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class InExpression : NHibernate.Criterion.AbstractCriterion
        {
            public InExpression(NHibernate.Criterion.IProjection projection, object[] values) => throw null;
            public InExpression(string propertyName, object[] values) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
            public object[] Values { get => throw null; set { } }
        }
        public class InsensitiveLikeExpression : NHibernate.Criterion.AbstractCriterion
        {
            public InsensitiveLikeExpression(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public InsensitiveLikeExpression(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public InsensitiveLikeExpression(string propertyName, object value) => throw null;
            public InsensitiveLikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public NHibernate.Engine.TypedValue GetParameterTypedValue(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public interface IProjection
        {
            string[] Aliases { get; }
            string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            bool IsAggregate { get; }
            bool IsGrouped { get; }
            NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
        }
        public interface IPropertyProjection
        {
            string PropertyName { get; }
        }
        public class IsEmptyExpression : NHibernate.Criterion.AbstractEmptinessExpression
        {
            public IsEmptyExpression(string propertyName) : base(default(string)) => throw null;
            protected override bool ExcludeEmpty { get => throw null; }
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
        }
        public class IsNotEmptyExpression : NHibernate.Criterion.AbstractEmptinessExpression
        {
            public IsNotEmptyExpression(string propertyName) : base(default(string)) => throw null;
            protected override bool ExcludeEmpty { get => throw null; }
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
        }
        public interface ISupportEntityJoinQueryOver<TRoot>
        {
            NHibernate.IQueryOver<TRoot, U> JoinEntityQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName);
        }
        public interface ISupportSelectModeQueryOver<TRoot, TSubType>
        {
            NHibernate.IQueryOver<TRoot, TSubType> Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression<System.Func<TSubType, object>> path);
        }
        public abstract class Junction : NHibernate.Criterion.AbstractCriterion
        {
            public NHibernate.Criterion.Junction Add(NHibernate.Criterion.ICriterion criterion) => throw null;
            public NHibernate.Criterion.Junction Add<T>(System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public NHibernate.Criterion.Junction Add(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            protected Junction() => throw null;
            protected abstract NHibernate.SqlCommand.SqlString EmptyExpression { get; }
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            protected abstract string Op { get; }
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        namespace Lambda
        {
            public class IQueryOverFetchBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase<NHibernate.IQueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public IQueryOverFetchBuilder(NHibernate.IQueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<TRoot, object>> path) : base(default(NHibernate.IQueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TRoot, object>>)) => throw null;
            }
            public class IQueryOverJoinBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase<NHibernate.IQueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public IQueryOverJoinBuilder(NHibernate.IQueryOver<TRoot, TSubType> root, NHibernate.SqlCommand.JoinType joinType) : base(default(NHibernate.IQueryOver<TRoot, TSubType>), default(NHibernate.SqlCommand.JoinType)) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
            }
            public class IQueryOverLockBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverLockBuilderBase<NHibernate.IQueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public IQueryOverLockBuilder(NHibernate.IQueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<object>> alias) : base(default(NHibernate.IQueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<object>>)) => throw null;
            }
            public class IQueryOverOrderBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase<NHibernate.IQueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public IQueryOverOrderBuilder(NHibernate.IQueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) : base(default(NHibernate.IQueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TSubType, object>>)) => throw null;
                public IQueryOverOrderBuilder(NHibernate.IQueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<object>> path, bool isAlias) : base(default(NHibernate.IQueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TSubType, object>>)) => throw null;
                public IQueryOverOrderBuilder(NHibernate.IQueryOver<TRoot, TSubType> root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.IQueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TSubType, object>>)) => throw null;
            }
            public class IQueryOverRestrictionBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<NHibernate.IQueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public IQueryOverRestrictionBuilder(NHibernate.IQueryOver<TRoot, TSubType> root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.IQueryOver<TRoot, TSubType>), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null;
                public NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> Not { get => throw null; }
            }
            public class IQueryOverSubqueryBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase<NHibernate.IQueryOver<TRoot, TSubType>, TRoot, TSubType, NHibernate.Criterion.Lambda.IQueryOverSubqueryPropertyBuilder<TRoot, TSubType>>
            {
                public IQueryOverSubqueryBuilder(NHibernate.IQueryOver<TRoot, TSubType> root) : base(default(NHibernate.IQueryOver<TRoot, TSubType>)) => throw null;
            }
            public class IQueryOverSubqueryPropertyBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase<NHibernate.IQueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public IQueryOverSubqueryPropertyBuilder() => throw null;
            }
            public class LambdaNaturalIdentifierBuilder
            {
                public LambdaNaturalIdentifierBuilder(NHibernate.Criterion.NaturalIdentifier naturalIdentifier, string propertyName) => throw null;
                public NHibernate.Criterion.NaturalIdentifier Is(object value) => throw null;
            }
            public class LambdaRestrictionBuilder
            {
                public LambdaRestrictionBuilder(NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null;
                public NHibernate.Criterion.Lambda.LambdaRestrictionBuilder.LambdaBetweenBuilder IsBetween(object lo) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsEmpty { get => throw null; }
                public NHibernate.Criterion.AbstractCriterion IsIn(System.Collections.ICollection values) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsIn(object[] values) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsInG<T>(System.Collections.Generic.IEnumerable<T> values) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsInsensitiveLike(object value) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsInsensitiveLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsLike(object value) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsLike(string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null;
                public NHibernate.Criterion.AbstractCriterion IsNotEmpty { get => throw null; }
                public NHibernate.Criterion.AbstractCriterion IsNotNull { get => throw null; }
                public NHibernate.Criterion.AbstractCriterion IsNull { get => throw null; }
                public class LambdaBetweenBuilder
                {
                    public NHibernate.Criterion.AbstractCriterion And(object hi) => throw null;
                    public LambdaBetweenBuilder(NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection, object lo, bool isNot) => throw null;
                }
                public NHibernate.Criterion.Lambda.LambdaRestrictionBuilder Not { get => throw null; }
            }
            public class LambdaSubqueryBuilder
            {
                public LambdaSubqueryBuilder(string propertyName, object value) => throw null;
                public NHibernate.Criterion.AbstractCriterion Eq<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion EqAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion Ge<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion GeAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion GeSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion Gt<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion GtAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion GtSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion In<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion Le<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion LeAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion LeSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion Lt<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion LtAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion LtSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion Ne<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public NHibernate.Criterion.AbstractCriterion NotIn<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
            }
            public class QueryOverFetchBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverFetchBuilderBase<NHibernate.Criterion.QueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public QueryOverFetchBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<TRoot, object>> path) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TRoot, object>>)) => throw null;
            }
            public class QueryOverFetchBuilderBase<TReturn, TRoot, TSubType> where TReturn : NHibernate.IQueryOver<TRoot, TSubType>
            {
                protected QueryOverFetchBuilderBase(TReturn root, System.Linq.Expressions.Expression<System.Func<TRoot, object>> path) => throw null;
                public TReturn Default { get => throw null; }
                public TReturn Eager { get => throw null; }
                public TReturn Lazy { get => throw null; }
                protected string path;
                protected TReturn root;
            }
            public class QueryOverJoinBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverJoinBuilderBase<NHibernate.Criterion.QueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public QueryOverJoinBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root, NHibernate.SqlCommand.JoinType joinType) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>), default(NHibernate.SqlCommand.JoinType)) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
            }
            public class QueryOverJoinBuilderBase<TReturn, TRoot, TSubType> where TReturn : NHibernate.IQueryOver<TRoot, TSubType>
            {
                public QueryOverJoinBuilderBase(TReturn root, NHibernate.SqlCommand.JoinType joinType) => throw null;
                public TReturn JoinAlias(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public TReturn JoinAlias(System.Linq.Expressions.Expression<System.Func<object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<U, bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause) => throw null;
                public TReturn JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause) => throw null;
                protected NHibernate.SqlCommand.JoinType joinType;
                protected TReturn root;
            }
            public class QueryOverLockBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverLockBuilderBase<NHibernate.Criterion.QueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public QueryOverLockBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<object>> alias) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<object>>)) => throw null;
            }
            public class QueryOverLockBuilderBase<TReturn, TRoot, TSubType> where TReturn : NHibernate.IQueryOver<TRoot, TSubType>
            {
                protected string alias;
                protected QueryOverLockBuilderBase(TReturn root, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
                public TReturn Force { get => throw null; }
                public TReturn None { get => throw null; }
                public TReturn Read { get => throw null; }
                protected TReturn root;
                public TReturn Upgrade { get => throw null; }
                public TReturn UpgradeNoWait { get => throw null; }
                public TReturn Write { get => throw null; }
            }
            public class QueryOverOrderBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverOrderBuilderBase<NHibernate.Criterion.QueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TSubType, object>>)) => throw null;
                public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root, System.Linq.Expressions.Expression<System.Func<object>> path, bool isAlias) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TSubType, object>>)) => throw null;
                public QueryOverOrderBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>), default(System.Linq.Expressions.Expression<System.Func<TSubType, object>>)) => throw null;
            }
            public class QueryOverOrderBuilderBase<TReturn, TRoot, TSubType> where TReturn : NHibernate.IQueryOver<TRoot, TSubType>
            {
                public TReturn Asc { get => throw null; }
                protected QueryOverOrderBuilderBase(TReturn root, System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) => throw null;
                protected QueryOverOrderBuilderBase(TReturn root, System.Linq.Expressions.Expression<System.Func<object>> path, bool isAlias) => throw null;
                protected QueryOverOrderBuilderBase(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null;
                public TReturn Desc { get => throw null; }
                protected bool isAlias;
                protected System.Linq.Expressions.LambdaExpression path;
                protected NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection;
                protected TReturn root;
            }
            public class QueryOverProjectionBuilder<T>
            {
                public QueryOverProjectionBuilder() => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> Select(NHibernate.Criterion.IProjection projection) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> Select(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> Select(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectAvg(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectAvg(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectCount(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectCount(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectCountDistinct(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectCountDistinct(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectGroup(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectGroup(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectMax(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectMax(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectMin(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectMin(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectSubQuery<U>(NHibernate.Criterion.QueryOver<U> detachedQueryOver) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectSum(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> SelectSum(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> WithAlias(System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<T> WithAlias(string alias) => throw null;
            }
            public class QueryOverRestrictionBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<NHibernate.Criterion.QueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public QueryOverRestrictionBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>), default(NHibernate.Impl.ExpressionProcessor.ProjectionInfo)) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> Not { get => throw null; }
            }
            public class QueryOverRestrictionBuilderBase<TReturn, TRoot, TSubType> where TReturn : NHibernate.IQueryOver<TRoot, TSubType>
            {
                public QueryOverRestrictionBuilderBase(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection) => throw null;
                public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilderBase<TReturn, TRoot, TSubType>.LambdaBetweenBuilder IsBetween(object lo) => throw null;
                public TReturn IsEmpty { get => throw null; }
                public TReturn IsIn(System.Collections.ICollection values) => throw null;
                public TReturn IsIn(object[] values) => throw null;
                public TReturn IsInG<T>(System.Collections.Generic.IEnumerable<T> values) => throw null;
                public TReturn IsInsensitiveLike(object value) => throw null;
                public TReturn IsInsensitiveLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
                public TReturn IsLike(object value) => throw null;
                public TReturn IsLike(string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
                public TReturn IsLike(string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null;
                protected bool isNot;
                public TReturn IsNotEmpty { get => throw null; }
                public TReturn IsNotNull { get => throw null; }
                public TReturn IsNull { get => throw null; }
                public class LambdaBetweenBuilder
                {
                    public TReturn And(object hi) => throw null;
                    public LambdaBetweenBuilder(TReturn root, NHibernate.Impl.ExpressionProcessor.ProjectionInfo projection, bool isNot, object lo) => throw null;
                }
            }
            public class QueryOverSubqueryBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverSubqueryBuilderBase<NHibernate.Criterion.QueryOver<TRoot, TSubType>, TRoot, TSubType, NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilder<TRoot, TSubType>>
            {
                public QueryOverSubqueryBuilder(NHibernate.Criterion.QueryOver<TRoot, TSubType> root) : base(default(NHibernate.Criterion.QueryOver<TRoot, TSubType>)) => throw null;
            }
            public class QueryOverSubqueryBuilderBase<TReturn, TRoot, TSubType, TBuilderType> where TReturn : NHibernate.IQueryOver<TRoot, TSubType> where TBuilderType : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase, new()
            {
                protected QueryOverSubqueryBuilderBase(TReturn root) => throw null;
                protected TReturn root;
                public TReturn Where(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
                public TReturn Where(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
                public TReturn WhereAll(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
                public TReturn WhereAll(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
                public TReturn WhereExists<U>(NHibernate.Criterion.QueryOver<U> detachedQuery) => throw null;
                public TReturn WhereNotExists<U>(NHibernate.Criterion.QueryOver<U> detachedQuery) => throw null;
                public TBuilderType WhereProperty(System.Linq.Expressions.Expression<System.Func<TSubType, object>> expression) => throw null;
                public TBuilderType WhereProperty(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
                public TReturn WhereSome(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
                public TReturn WhereSome(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
                public TBuilderType WhereValue(object value) => throw null;
            }
            public class QueryOverSubqueryPropertyBuilder<TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase<NHibernate.Criterion.QueryOver<TRoot, TSubType>, TRoot, TSubType>
            {
                public QueryOverSubqueryPropertyBuilder() => throw null;
            }
            public abstract class QueryOverSubqueryPropertyBuilderBase
            {
                protected QueryOverSubqueryPropertyBuilderBase() => throw null;
            }
            public class QueryOverSubqueryPropertyBuilderBase<TReturn, TRoot, TSubType> : NHibernate.Criterion.Lambda.QueryOverSubqueryPropertyBuilderBase where TReturn : NHibernate.IQueryOver<TRoot, TSubType>
            {
                protected QueryOverSubqueryPropertyBuilderBase() => throw null;
                public TReturn Eq<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn EqAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn Ge<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn GeAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn GeSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn Gt<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn GtAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn GtSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn In<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn Le<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn LeAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn LeSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn Lt<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn LtAll<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn LtSome<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn Ne<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                public TReturn NotIn<U>(NHibernate.Criterion.QueryOver<U> detachedCriteria) => throw null;
                protected string path;
                protected TReturn root;
                protected object value;
            }
        }
        public class LePropertyExpression : NHibernate.Criterion.PropertyExpression
        {
            public LePropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public LePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public LePropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public LePropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            protected override string Op { get => throw null; }
        }
        public class LikeExpression : NHibernate.Criterion.AbstractCriterion
        {
            public LikeExpression(string propertyName, string value, char? escapeChar, bool ignoreCase) => throw null;
            public LikeExpression(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public LikeExpression(string propertyName, string value) => throw null;
            public LikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public LikeExpression(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar, bool ignoreCase) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public abstract class LogicalExpression : NHibernate.Criterion.AbstractCriterion
        {
            protected LogicalExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            protected NHibernate.Criterion.ICriterion LeftHandSide { get => throw null; }
            protected abstract string Op { get; }
            protected NHibernate.Criterion.ICriterion RightHandSide { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class LtPropertyExpression : NHibernate.Criterion.PropertyExpression
        {
            public LtPropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public LtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public LtPropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            public LtPropertyExpression(string lhsPropertyName, string rhsPropertyName) : base(default(NHibernate.Criterion.IProjection), default(string)) => throw null;
            protected override string Op { get => throw null; }
        }
        public abstract class MatchMode
        {
            public static readonly NHibernate.Criterion.MatchMode Anywhere;
            protected MatchMode(int intCode, string name) => throw null;
            public static readonly NHibernate.Criterion.MatchMode End;
            public static readonly NHibernate.Criterion.MatchMode Exact;
            public static readonly NHibernate.Criterion.MatchMode Start;
            public abstract string ToMatchString(string pattern);
            public override string ToString() => throw null;
        }
        public class NaturalIdentifier : NHibernate.Criterion.ICriterion
        {
            public NaturalIdentifier() => throw null;
            public NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Criterion.NaturalIdentifier Set(string property, object value) => throw null;
            public NHibernate.Criterion.Lambda.LambdaNaturalIdentifierBuilder Set<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public NHibernate.Criterion.Lambda.LambdaNaturalIdentifierBuilder Set(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
        }
        public class NotExpression : NHibernate.Criterion.AbstractCriterion
        {
            public NotExpression(NHibernate.Criterion.ICriterion criterion) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class NotNullExpression : NHibernate.Criterion.AbstractCriterion
        {
            public NotNullExpression(NHibernate.Criterion.IProjection projection) => throw null;
            public NotNullExpression(string propertyName) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class NullExpression : NHibernate.Criterion.AbstractCriterion
        {
            public NullExpression(NHibernate.Criterion.IProjection projection) => throw null;
            public NullExpression(string propertyName) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class NullSubqueryExpression : NHibernate.Criterion.SubqueryExpression
        {
            protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery outerQuery) => throw null;
            internal NullSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { }
        }
        public class Order
        {
            public static NHibernate.Criterion.Order Asc(string propertyName) => throw null;
            public static NHibernate.Criterion.Order Asc(NHibernate.Criterion.IProjection projection) => throw null;
            protected bool ascending;
            public Order(NHibernate.Criterion.IProjection projection, bool ascending) => throw null;
            public Order(string propertyName, bool ascending) => throw null;
            public static NHibernate.Criterion.Order Desc(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.Order Desc(string propertyName) => throw null;
            public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Criterion.Order IgnoreCase() => throw null;
            protected NHibernate.Criterion.IProjection projection;
            protected string propertyName;
            public virtual NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class OrExpression : NHibernate.Criterion.LogicalExpression
        {
            public OrExpression(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) : base(default(NHibernate.Criterion.ICriterion), default(NHibernate.Criterion.ICriterion)) => throw null;
            protected override string Op { get => throw null; }
        }
        public class ProjectionList : NHibernate.Criterion.IProjection
        {
            public NHibernate.Criterion.ProjectionList Add(NHibernate.Criterion.IProjection proj) => throw null;
            public NHibernate.Criterion.ProjectionList Add(NHibernate.Criterion.IProjection projection, string alias) => throw null;
            public NHibernate.Criterion.ProjectionList Add<T>(NHibernate.Criterion.IProjection projection, System.Linq.Expressions.Expression<System.Func<T>> alias) => throw null;
            public string[] Aliases { get => throw null; }
            public NHibernate.Criterion.ProjectionList Create() => throw null;
            protected ProjectionList() => throw null;
            public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public bool IsAggregate { get => throw null; }
            public bool IsGrouped { get => throw null; }
            public int Length { get => throw null; }
            public NHibernate.Criterion.IProjection this[int index] { get => throw null; }
            public NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public static class Projections
        {
            public static NHibernate.Criterion.IProjection Alias(NHibernate.Criterion.IProjection projection, string alias) => throw null;
            public static NHibernate.Criterion.AggregateProjection Avg(string propertyName) => throw null;
            public static NHibernate.Criterion.AggregateProjection Avg(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AggregateProjection Avg<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.AggregateProjection Avg(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.IProjection Cast(NHibernate.Type.IType type, NHibernate.Criterion.IProjection projection) => throw null;
            public static string Concat(params string[] strings) => throw null;
            public static NHibernate.Criterion.IProjection Conditional(NHibernate.Criterion.ICriterion criterion, NHibernate.Criterion.IProjection whenTrue, NHibernate.Criterion.IProjection whenFalse) => throw null;
            public static NHibernate.Criterion.IProjection Conditional(NHibernate.Criterion.ConditionalProjectionCase[] cases, NHibernate.Criterion.IProjection elseProjection) => throw null;
            public static NHibernate.Criterion.IProjection Constant(object obj) => throw null;
            public static NHibernate.Criterion.IProjection Constant(object obj, NHibernate.Type.IType type) => throw null;
            public static NHibernate.Criterion.CountProjection Count(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.CountProjection Count(string propertyName) => throw null;
            public static NHibernate.Criterion.CountProjection Count<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.CountProjection Count(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.CountProjection CountDistinct(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.CountProjection CountDistinct(string propertyName) => throw null;
            public static NHibernate.Criterion.CountProjection CountDistinct<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.CountProjection CountDistinct(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.IProjection Distinct(NHibernate.Criterion.IProjection proj) => throw null;
            public static NHibernate.Criterion.EntityProjection Entity(System.Type type, string alias) => throw null;
            public static NHibernate.Criterion.EntityProjection Entity<T>(string alias) => throw null;
            public static NHibernate.Criterion.EntityProjection Entity<T>(System.Linq.Expressions.Expression<System.Func<T>> alias) => throw null;
            public static NHibernate.Criterion.PropertyProjection Group<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.PropertyProjection Group(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.IProjection GroupProjection<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.IProjection GroupProjection(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.PropertyProjection GroupProperty(string propertyName) => throw null;
            public static NHibernate.Criterion.GroupedProjection GroupProperty(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.IdentifierProjection Id() => throw null;
            public static NHibernate.Criterion.AggregateProjection Max(string propertyName) => throw null;
            public static NHibernate.Criterion.AggregateProjection Max(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AggregateProjection Max<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.AggregateProjection Max(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.AggregateProjection Min(string propertyName) => throw null;
            public static NHibernate.Criterion.AggregateProjection Min(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AggregateProjection Min<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.AggregateProjection Min(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.ProjectionList ProjectionList() => throw null;
            public static NHibernate.Criterion.PropertyProjection Property(string propertyName) => throw null;
            public static NHibernate.Criterion.PropertyProjection Property<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.PropertyProjection Property(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.EntityProjection RootEntity() => throw null;
            public static NHibernate.Criterion.IProjection RowCount() => throw null;
            public static NHibernate.Criterion.IProjection RowCountInt64() => throw null;
            public static NHibernate.Criterion.IProjection Select(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.IProjection Select<TEntity>(System.Linq.Expressions.Expression<System.Func<TEntity, object>> expression) => throw null;
            public static NHibernate.Criterion.IProjection SqlFunction(string functionName, NHibernate.Type.IType type, params NHibernate.Criterion.IProjection[] projections) => throw null;
            public static NHibernate.Criterion.IProjection SqlFunction(NHibernate.Dialect.Function.ISQLFunction function, NHibernate.Type.IType type, params NHibernate.Criterion.IProjection[] projections) => throw null;
            public static NHibernate.Criterion.IProjection SqlGroupProjection(string sql, string groupBy, string[] columnAliases, NHibernate.Type.IType[] types) => throw null;
            public static NHibernate.Criterion.IProjection SqlProjection(string sql, string[] columnAliases, NHibernate.Type.IType[] types) => throw null;
            public static NHibernate.Criterion.IProjection SubQuery(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null;
            public static NHibernate.Criterion.IProjection SubQuery<T>(NHibernate.Criterion.QueryOver<T> detachedQueryOver) => throw null;
            public static NHibernate.Criterion.AggregateProjection Sum(string propertyName) => throw null;
            public static NHibernate.Criterion.AggregateProjection Sum(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AggregateProjection Sum<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.AggregateProjection Sum(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
        }
        public static partial class ProjectionsExtensions
        {
            public static int Abs(this int numericProperty) => throw null;
            public static long Abs(this long numericProperty) => throw null;
            public static double Abs(this double numericProperty) => throw null;
            public static T AsEntity<T>(this T alias) where T : class => throw null;
            public static int BitLength(this string stringProperty) => throw null;
            public static int CharIndex(this string stringProperty, string theChar, int startLocation) => throw null;
            public static T Coalesce<T>(this T objectProperty, T replaceValueIfIsNull) => throw null;
            public static T? Coalesce<T>(this T? objectProperty, T replaceValueIfIsNull) where T : struct => throw null;
            public static string Lower(this string stringProperty) => throw null;
            public static int Mod(this int numericProperty, int divisor) => throw null;
            public static double Sqrt(this double numericProperty) => throw null;
            public static double Sqrt(this int numericProperty) => throw null;
            public static double Sqrt(this long numericProperty) => throw null;
            public static double Sqrt(this decimal numericProperty) => throw null;
            public static double Sqrt(this byte numericProperty) => throw null;
            public static int StrLength(this string stringProperty) => throw null;
            public static string Substr(this string stringProperty, int startIndex, int length) => throw null;
            public static string TrimStr(this string stringProperty) => throw null;
            public static string Upper(this string stringProperty) => throw null;
            public static NHibernate.Criterion.IProjection WithAlias(this NHibernate.Criterion.IProjection projection, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
            public static NHibernate.Criterion.IProjection WithAlias(this NHibernate.Criterion.IProjection projection, string alias) => throw null;
        }
        public class Property : NHibernate.Criterion.PropertyProjection
        {
            public NHibernate.Criterion.Order Asc() => throw null;
            public NHibernate.Criterion.AggregateProjection Avg() => throw null;
            public NHibernate.Criterion.AbstractCriterion Between(object min, object max) => throw null;
            public NHibernate.Criterion.AbstractCriterion Bt(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.CountProjection Count() => throw null;
            public NHibernate.Criterion.Order Desc() => throw null;
            public NHibernate.Criterion.AbstractCriterion Eq(object value) => throw null;
            public NHibernate.Criterion.AbstractCriterion Eq(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion EqAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion EqProperty(NHibernate.Criterion.Property other) => throw null;
            public NHibernate.Criterion.AbstractCriterion EqProperty(string other) => throw null;
            public static NHibernate.Criterion.Property ForName(string propertyName) => throw null;
            public NHibernate.Criterion.AbstractCriterion Ge(object value) => throw null;
            public NHibernate.Criterion.AbstractCriterion Ge(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion GeAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion GeProperty(NHibernate.Criterion.Property other) => throw null;
            public NHibernate.Criterion.AbstractCriterion GeProperty(string other) => throw null;
            public NHibernate.Criterion.AbstractCriterion GeSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.Property GetProperty(string propertyName) => throw null;
            public NHibernate.Criterion.PropertyProjection Group() => throw null;
            public NHibernate.Criterion.AbstractCriterion Gt(object value) => throw null;
            public NHibernate.Criterion.AbstractCriterion GtAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion GtProperty(NHibernate.Criterion.Property other) => throw null;
            public NHibernate.Criterion.AbstractCriterion GtProperty(string other) => throw null;
            public NHibernate.Criterion.AbstractCriterion GtSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion In(System.Collections.ICollection values) => throw null;
            public NHibernate.Criterion.AbstractCriterion In(object[] values) => throw null;
            public NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractEmptinessExpression IsEmpty() => throw null;
            public NHibernate.Criterion.AbstractEmptinessExpression IsNotEmpty() => throw null;
            public NHibernate.Criterion.AbstractCriterion IsNotNull() => throw null;
            public NHibernate.Criterion.AbstractCriterion IsNull() => throw null;
            public NHibernate.Criterion.AbstractCriterion Le(object value) => throw null;
            public NHibernate.Criterion.AbstractCriterion Le(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion LeAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion LeProperty(NHibernate.Criterion.Property other) => throw null;
            public NHibernate.Criterion.AbstractCriterion LeProperty(string other) => throw null;
            public NHibernate.Criterion.AbstractCriterion LeSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion Like(object value) => throw null;
            public NHibernate.Criterion.AbstractCriterion Like(string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public NHibernate.Criterion.AbstractCriterion Lt(object value) => throw null;
            public NHibernate.Criterion.AbstractCriterion Lt(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion LtAll(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion LtProperty(NHibernate.Criterion.Property other) => throw null;
            public NHibernate.Criterion.AbstractCriterion LtProperty(string other) => throw null;
            public NHibernate.Criterion.AbstractCriterion LtSome(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AggregateProjection Max() => throw null;
            public NHibernate.Criterion.AggregateProjection Min() => throw null;
            public NHibernate.Criterion.AbstractCriterion Ne(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            public NHibernate.Criterion.AbstractCriterion NotEqProperty(NHibernate.Criterion.Property other) => throw null;
            public NHibernate.Criterion.AbstractCriterion NotEqProperty(string other) => throw null;
            public NHibernate.Criterion.AbstractCriterion NotIn(NHibernate.Criterion.DetachedCriteria subselect) => throw null;
            internal Property() : base(default(string)) { }
        }
        public abstract class PropertyExpression : NHibernate.Criterion.AbstractCriterion
        {
            protected PropertyExpression(NHibernate.Criterion.IProjection lhsProjection, string rhsPropertyName) => throw null;
            protected PropertyExpression(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            protected PropertyExpression(string lhsPropertyName, string rhsPropertyName) => throw null;
            protected PropertyExpression(string lhsPropertyName, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            protected abstract string Op { get; }
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class PropertyProjection : NHibernate.Criterion.SimpleProjection, NHibernate.Criterion.IPropertyProjection
        {
            protected PropertyProjection(string propertyName, bool grouped) => throw null;
            protected PropertyProjection(string propertyName) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public string PropertyName { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class PropertySubqueryExpression : NHibernate.Criterion.SubqueryExpression
        {
            protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            internal PropertySubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { }
        }
        public abstract class QueryOver<TRoot> : NHibernate.Criterion.QueryOver, NHibernate.IQueryOver<TRoot>, NHibernate.IQueryOver
        {
            public S As<S>() => throw null;
            public NHibernate.Criterion.QueryOver<TRoot> Cacheable() => throw null;
            NHibernate.IQueryOver<TRoot> NHibernate.IQueryOver<TRoot>.Cacheable() => throw null;
            public NHibernate.Criterion.QueryOver<TRoot> CacheMode(NHibernate.CacheMode cacheMode) => throw null;
            NHibernate.IQueryOver<TRoot> NHibernate.IQueryOver<TRoot>.CacheMode(NHibernate.CacheMode cacheMode) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot> CacheRegion(string cacheRegion) => throw null;
            NHibernate.IQueryOver<TRoot> NHibernate.IQueryOver<TRoot>.CacheRegion(string cacheRegion) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot> ClearOrders() => throw null;
            NHibernate.IQueryOver<TRoot> NHibernate.IQueryOver<TRoot>.ClearOrders() => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TRoot> Clone() => throw null;
            NHibernate.IQueryOver<TRoot, TRoot> NHibernate.IQueryOver<TRoot>.Clone() => throw null;
            protected NHibernate.Criterion.QueryOver<TRoot, TSubType> Create<TSubType>(NHibernate.ICriteria criteria) => throw null;
            protected QueryOver() => throw null;
            NHibernate.IFutureEnumerable<TRoot> NHibernate.IQueryOver<TRoot>.Future() => throw null;
            NHibernate.IFutureEnumerable<U> NHibernate.IQueryOver<TRoot>.Future<U>() => throw null;
            NHibernate.IFutureValue<TRoot> NHibernate.IQueryOver<TRoot>.FutureValue() => throw null;
            NHibernate.IFutureValue<U> NHibernate.IQueryOver<TRoot>.FutureValue<U>() => throw null;
            public NHibernate.IQueryOver<TRoot, TRoot> GetExecutableQueryOver(NHibernate.ISession session) => throw null;
            public NHibernate.IQueryOver<TRoot, TRoot> GetExecutableQueryOver(NHibernate.IStatelessSession session) => throw null;
            System.Collections.Generic.IList<TRoot> NHibernate.IQueryOver<TRoot>.List() => throw null;
            System.Collections.Generic.IList<U> NHibernate.IQueryOver<TRoot>.List<U>() => throw null;
            System.Threading.Tasks.Task<System.Collections.Generic.IList<TRoot>> NHibernate.IQueryOver<TRoot>.ListAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            System.Threading.Tasks.Task<System.Collections.Generic.IList<U>> NHibernate.IQueryOver<TRoot>.ListAsync<U>(System.Threading.CancellationToken cancellationToken) => throw null;
            NHibernate.IQueryOver<TRoot> NHibernate.IQueryOver<TRoot>.ReadOnly() => throw null;
            int NHibernate.IQueryOver<TRoot>.RowCount() => throw null;
            System.Threading.Tasks.Task<int> NHibernate.IQueryOver<TRoot>.RowCountAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            long NHibernate.IQueryOver<TRoot>.RowCountInt64() => throw null;
            System.Threading.Tasks.Task<long> NHibernate.IQueryOver<TRoot>.RowCountInt64Async(System.Threading.CancellationToken cancellationToken) => throw null;
            TRoot NHibernate.IQueryOver<TRoot>.SingleOrDefault() => throw null;
            U NHibernate.IQueryOver<TRoot>.SingleOrDefault<U>() => throw null;
            System.Threading.Tasks.Task<TRoot> NHibernate.IQueryOver<TRoot>.SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            System.Threading.Tasks.Task<U> NHibernate.IQueryOver<TRoot>.SingleOrDefaultAsync<U>(System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot> Skip(int firstResult) => throw null;
            NHibernate.IQueryOver<TRoot> NHibernate.IQueryOver<TRoot>.Skip(int firstResult) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot> Take(int maxResults) => throw null;
            NHibernate.IQueryOver<TRoot> NHibernate.IQueryOver<TRoot>.Take(int maxResults) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TRoot> ToRowCountInt64Query() => throw null;
            NHibernate.IQueryOver<TRoot, TRoot> NHibernate.IQueryOver<TRoot>.ToRowCountInt64Query() => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TRoot> ToRowCountQuery() => throw null;
            NHibernate.IQueryOver<TRoot, TRoot> NHibernate.IQueryOver<TRoot>.ToRowCountQuery() => throw null;
        }
        public abstract class QueryOver
        {
            protected NHibernate.ICriteria criteria;
            protected QueryOver() => throw null;
            public NHibernate.Criterion.DetachedCriteria DetachedCriteria { get => throw null; }
            protected NHibernate.Impl.CriteriaImpl impl;
            public static NHibernate.Criterion.QueryOver<T, T> Of<T>() => throw null;
            public static NHibernate.Criterion.QueryOver<T, T> Of<T>(System.Linq.Expressions.Expression<System.Func<T>> alias) => throw null;
            public static NHibernate.Criterion.QueryOver<T, T> Of<T>(string entityName) => throw null;
            public static NHibernate.Criterion.QueryOver<T, T> Of<T>(string entityName, System.Linq.Expressions.Expression<System.Func<T>> alias) => throw null;
            public NHibernate.ICriteria RootCriteria { get => throw null; }
            public NHibernate.ICriteria UnderlyingCriteria { get => throw null; }
        }
        public class QueryOver<TRoot, TSubType> : NHibernate.Criterion.QueryOver<TRoot>, NHibernate.IQueryOver<TRoot, TSubType>, NHibernate.IQueryOver<TRoot>, NHibernate.IQueryOver, NHibernate.Criterion.ISupportEntityJoinQueryOver<TRoot>, NHibernate.Criterion.ISupportSelectModeQueryOver<TRoot, TSubType>
        {
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> And(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> And(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> And(NHibernate.Criterion.ICriterion expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.And(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.And(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.And(NHibernate.Criterion.ICriterion expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> AndNot(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> AndNot(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> AndNot(NHibernate.Criterion.ICriterion expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.AndNot(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.AndNot(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.AndNot(NHibernate.Criterion.ICriterion expression) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> AndRestrictionOn(System.Linq.Expressions.Expression<System.Func<TSubType, object>> expression) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> AndRestrictionOn(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.AndRestrictionOn(System.Linq.Expressions.Expression<System.Func<TSubType, object>> expression) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.AndRestrictionOn(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            protected QueryOver() => throw null;
            protected QueryOver(string entityName) => throw null;
            protected QueryOver(System.Linq.Expressions.Expression<System.Func<TSubType>> alias) => throw null;
            protected QueryOver(string entityName, System.Linq.Expressions.Expression<System.Func<TSubType>> alias) => throw null;
            protected QueryOver(NHibernate.Impl.CriteriaImpl impl) => throw null;
            protected QueryOver(NHibernate.Impl.CriteriaImpl rootImpl, NHibernate.ICriteria criteria) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverFetchBuilder<TRoot, TSubType> Fetch(System.Linq.Expressions.Expression<System.Func<TRoot, object>> path) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverFetchBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Fetch(System.Linq.Expressions.Expression<System.Func<TRoot, object>> path) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.Criterion.ISupportSelectModeQueryOver<TRoot, TSubType>.Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> Fetch(NHibernate.SelectMode mode, System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverJoinBuilder<TRoot, TSubType> Full { get => throw null; }
            NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Full { get => throw null; }
            public NHibernate.Criterion.Lambda.QueryOverJoinBuilder<TRoot, TSubType> Inner { get => throw null; }
            NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Inner { get => throw null; }
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias(System.Linq.Expressions.Expression<System.Func<object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias(System.Linq.Expressions.Expression<System.Func<object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinEntityQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinEntityQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.Criterion.ISupportEntityJoinQueryOver<TRoot>.JoinEntityQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            NHibernate.IQueryOver<TRoot, U> NHibernate.IQueryOver<TRoot, TSubType>.JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverJoinBuilder<TRoot, TSubType> Left { get => throw null; }
            NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Left { get => throw null; }
            public NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> Lock() => throw null;
            public NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> Lock(System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Lock() => throw null;
            NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Lock(System.Linq.Expressions.Expression<System.Func<object>> alias) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> OrderBy(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> OrderBy(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> OrderBy(NHibernate.Criterion.IProjection projection) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.OrderBy(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.OrderBy(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.OrderBy(NHibernate.Criterion.IProjection projection) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> OrderByAlias(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.OrderByAlias(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverJoinBuilder<TRoot, TSubType> Right { get => throw null; }
            NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Right { get => throw null; }
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> Select(params System.Linq.Expressions.Expression<System.Func<TRoot, object>>[] projections) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> Select(params NHibernate.Criterion.IProjection[] projections) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Select(params System.Linq.Expressions.Expression<System.Func<TRoot, object>>[] projections) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Select(params NHibernate.Criterion.IProjection[] projections) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> SelectList(System.Func<NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<TRoot>, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<TRoot>> list) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.SelectList(System.Func<NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<TRoot>, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<TRoot>> list) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> ThenBy(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> ThenBy(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> ThenBy(NHibernate.Criterion.IProjection projection) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.ThenBy(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.ThenBy(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.ThenBy(NHibernate.Criterion.IProjection projection) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> ThenByAlias(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.ThenByAlias(System.Linq.Expressions.Expression<System.Func<object>> path) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> Where(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> Where(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> Where(NHibernate.Criterion.ICriterion expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Where(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Where(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.Where(NHibernate.Criterion.ICriterion expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> WhereNot(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> WhereNot(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public NHibernate.Criterion.QueryOver<TRoot, TSubType> WhereNot(NHibernate.Criterion.ICriterion expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.WhereNot(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.WhereNot(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            NHibernate.IQueryOver<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.WhereNot(NHibernate.Criterion.ICriterion expression) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> WhereRestrictionOn(System.Linq.Expressions.Expression<System.Func<TSubType, object>> expression) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> WhereRestrictionOn(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.WhereRestrictionOn(System.Linq.Expressions.Expression<System.Func<TSubType, object>> expression) => throw null;
            NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.WhereRestrictionOn(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public NHibernate.Criterion.Lambda.QueryOverSubqueryBuilder<TRoot, TSubType> WithSubquery { get => throw null; }
            NHibernate.Criterion.Lambda.IQueryOverSubqueryBuilder<TRoot, TSubType> NHibernate.IQueryOver<TRoot, TSubType>.WithSubquery { get => throw null; }
        }
        public static partial class QueryOverBuilderExtensions
        {
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Asc<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Asc<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Default<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Default<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Desc<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverOrderBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Desc<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Eager<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Eager<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Force<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Force<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> IsEmpty<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> IsEmpty<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> IsNotEmpty<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> IsNotEmpty<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> IsNotNull<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> IsNotNull<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> IsNull<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> IsNull<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Lazy<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverFetchBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Lazy<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverFetchBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> None<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> None<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Read<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Read<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Upgrade<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Upgrade<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> UpgradeNoWait<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> UpgradeNoWait<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Write<TRoot, TSubType>(this NHibernate.Criterion.Lambda.QueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
            public static NHibernate.IQueryOver<TRoot, TSubType> Write<TRoot, TSubType>(this NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> builder) => throw null;
        }
        public static partial class RestrictionExtensions
        {
            public static NHibernate.Criterion.RestrictionExtensions.RestrictionBetweenBuilder IsBetween(this object projection, object lo) => throw null;
            public static bool IsIn(this object projection, object[] values) => throw null;
            public static bool IsIn(this object projection, System.Collections.ICollection values) => throw null;
            public static bool IsInsensitiveLike(this string projection, string comparison) => throw null;
            public static bool IsInsensitiveLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public static bool IsLike(this string projection, string comparison) => throw null;
            public static bool IsLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public static bool IsLike(this string projection, string comparison, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsBetween(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsInArray(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsInCollection(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsInsensitiveLike(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsInsensitiveLikeMatchMode(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsLike(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsLikeMatchMode(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessIsLikeMatchModeEscapeChar(System.Linq.Expressions.MethodCallExpression methodCallExpression) => throw null;
            public class RestrictionBetweenBuilder
            {
                public bool And(object hi) => throw null;
                public RestrictionBetweenBuilder() => throw null;
            }
        }
        public class Restrictions
        {
            public static NHibernate.Criterion.AbstractCriterion AllEq(System.Collections.IDictionary propertyNameValues) => throw null;
            public static NHibernate.Criterion.AbstractCriterion And(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Between(string propertyName, object lo, object hi) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Between(NHibernate.Criterion.IProjection projection, object lo, object hi) => throw null;
            public static NHibernate.Criterion.Conjunction Conjunction() => throw null;
            public static NHibernate.Criterion.Disjunction Disjunction() => throw null;
            public static NHibernate.Criterion.SimpleExpression Eq(string propertyName, object value) => throw null;
            public static NHibernate.Criterion.SimpleExpression Eq(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion EqProperty(string propertyName, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion EqProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion EqProperty(NHibernate.Criterion.IProjection lshProjection, NHibernate.Criterion.IProjection rshProjection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion EqProperty(string propertyName, NHibernate.Criterion.IProjection rshProjection) => throw null;
            public static NHibernate.Criterion.SimpleExpression Ge(string propertyName, object value) => throw null;
            public static NHibernate.Criterion.SimpleExpression Ge(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GeProperty(string propertyName, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GeProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GeProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GeProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.SimpleExpression Gt(string propertyName, object value) => throw null;
            public static NHibernate.Criterion.SimpleExpression Gt(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GtProperty(string propertyName, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GtProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GtProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GtProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IdEq(object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IdEq(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion In(string propertyName, object[] values) => throw null;
            public static NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.IProjection projection, object[] values) => throw null;
            public static NHibernate.Criterion.AbstractCriterion In(NHibernate.Criterion.IProjection projection, System.Collections.ICollection values) => throw null;
            public static NHibernate.Criterion.AbstractCriterion In(string propertyName, System.Collections.ICollection values) => throw null;
            public static NHibernate.Criterion.AbstractCriterion InG<T>(string propertyName, System.Collections.Generic.IEnumerable<T> values) => throw null;
            public static NHibernate.Criterion.AbstractCriterion InG<T>(NHibernate.Criterion.IProjection projection, System.Collections.Generic.IEnumerable<T> values) => throw null;
            public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(string propertyName, object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion InsensitiveLike(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public static NHibernate.Criterion.AbstractEmptinessExpression IsEmpty(string propertyName) => throw null;
            public static NHibernate.Criterion.AbstractEmptinessExpression IsNotEmpty(string propertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IsNotNull(string propertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IsNotNull(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IsNull(string propertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IsNull(NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.SimpleExpression Le(string propertyName, object value) => throw null;
            public static NHibernate.Criterion.SimpleExpression Le(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LeProperty(string propertyName, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LeProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LeProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LeProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            public static NHibernate.Criterion.SimpleExpression Like(string propertyName, object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Like(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode, char? escapeChar) => throw null;
            public static NHibernate.Criterion.SimpleExpression Like(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public static NHibernate.Criterion.SimpleExpression Like(NHibernate.Criterion.IProjection projection, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public static NHibernate.Criterion.SimpleExpression Like(string propertyName, string value, NHibernate.Criterion.MatchMode matchMode) => throw null;
            public static NHibernate.Criterion.SimpleExpression Lt(string propertyName, object value) => throw null;
            public static NHibernate.Criterion.SimpleExpression Lt(NHibernate.Criterion.IProjection projection, object value) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LtProperty(string propertyName, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LtProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LtProperty(string propertyName, NHibernate.Criterion.IProjection projection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LtProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            public static NHibernate.Criterion.NaturalIdentifier NaturalId() => throw null;
            public static NHibernate.Criterion.AbstractCriterion Not(NHibernate.Criterion.ICriterion expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion NotEqProperty(string propertyName, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion NotEqProperty(NHibernate.Criterion.IProjection projection, string otherPropertyName) => throw null;
            public static NHibernate.Criterion.AbstractCriterion NotEqProperty(NHibernate.Criterion.IProjection lhsProjection, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            public static NHibernate.Criterion.AbstractCriterion NotEqProperty(string propertyName, NHibernate.Criterion.IProjection rhsProjection) => throw null;
            public static NHibernate.Criterion.Lambda.LambdaRestrictionBuilder On<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.Lambda.LambdaRestrictionBuilder On(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Or(NHibernate.Criterion.ICriterion lhs, NHibernate.Criterion.ICriterion rhs) => throw null;
            public static NHibernate.Criterion.ICriterion Where<T>(System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public static NHibernate.Criterion.ICriterion Where(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public static NHibernate.Criterion.ICriterion WhereNot<T>(System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public static NHibernate.Criterion.ICriterion WhereNot(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
        }
        public class RowCountInt64Projection : NHibernate.Criterion.RowCountProjection
        {
            public RowCountInt64Projection() => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
        }
        public class RowCountProjection : NHibernate.Criterion.SimpleProjection
        {
            protected RowCountProjection() => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class SelectSubqueryExpression : NHibernate.Criterion.SubqueryExpression
        {
            protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            internal SelectSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { }
        }
        public class SimpleExpression : NHibernate.Criterion.AbstractCriterion
        {
            protected SimpleExpression(NHibernate.Criterion.IProjection projection, object value, string op) => throw null;
            public SimpleExpression(string propertyName, object value, string op) => throw null;
            public SimpleExpression(string propertyName, object value, string op, bool ignoreCase) => throw null;
            public NHibernate.Engine.TypedValue GetParameterTypedValue(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Criterion.SimpleExpression IgnoreCase() => throw null;
            protected virtual string Op { get => throw null; }
            public string PropertyName { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
            public object Value { get => throw null; }
        }
        public abstract class SimpleProjection : NHibernate.Criterion.IProjection
        {
            public virtual string[] Aliases { get => throw null; }
            public NHibernate.Criterion.IProjection As(string alias) => throw null;
            protected SimpleProjection() => throw null;
            protected string GetColumnAlias(int position) => throw null;
            public virtual string[] GetColumnAliases(string alias, int loc) => throw null;
            public virtual string[] GetColumnAliases(int loc) => throw null;
            public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public virtual NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public abstract NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            public abstract bool IsAggregate { get; }
            public abstract bool IsGrouped { get; }
            public abstract NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
            public abstract NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery);
        }
        public class SimpleSubqueryExpression : NHibernate.Criterion.SubqueryExpression
        {
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            protected override NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            internal SimpleSubqueryExpression() : base(default(string), default(string), default(NHibernate.Criterion.DetachedCriteria)) { }
        }
        public class SQLCriterion : NHibernate.Criterion.AbstractCriterion
        {
            public SQLCriterion(NHibernate.SqlCommand.SqlString sql, object[] values, NHibernate.Type.IType[] types) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class SqlFunctionProjection : NHibernate.Criterion.SimpleProjection
        {
            public SqlFunctionProjection(string functionName, NHibernate.Type.IType returnType, params NHibernate.Criterion.IProjection[] args) => throw null;
            public SqlFunctionProjection(NHibernate.Dialect.Function.ISQLFunction function, NHibernate.Type.IType returnType, params NHibernate.Criterion.IProjection[] args) => throw null;
            public SqlFunctionProjection(string functionName, NHibernate.Criterion.IProjection returnTypeProjection, params NHibernate.Criterion.IProjection[] args) => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int position, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
        }
        public sealed class SQLProjection : NHibernate.Criterion.IProjection
        {
            public string[] Aliases { get => throw null; }
            public string[] GetColumnAliases(int loc) => throw null;
            public string[] GetColumnAliases(string alias, int loc) => throw null;
            public string[] GetColumnAliases(int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public string[] GetColumnAliases(string alias, int position, NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria crit, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Type.IType[] GetTypes(string alias, NHibernate.ICriteria crit, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public bool IsAggregate { get => throw null; }
            public bool IsGrouped { get => throw null; }
            public NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class Subqueries
        {
            public Subqueries() => throw null;
            public static NHibernate.Criterion.AbstractCriterion Eq(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion EqAll(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Exists(NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Ge(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GeAll(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GeSome(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Gt(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GtAll(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion GtSome(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion In(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IsNotNull(NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion IsNull(NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Le(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LeAll(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LeSome(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Lt(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LtAll(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion LtSome(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Ne(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion NotExists(NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion NotIn(object value, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyEq(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyEqAll(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyGe(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyGeAll(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyGeSome(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyGt(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyGtAll(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyGtSome(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyIn(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyLe(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyLeAll(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyLeSome(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyLt(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyLtAll(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyLtSome(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyNe(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion PropertyNotIn(string propertyName, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Select(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Where<T>(System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion Where(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion WhereAll<T>(System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion WhereAll(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion WhereExists<U>(NHibernate.Criterion.QueryOver<U> detachedQuery) => throw null;
            public static NHibernate.Criterion.AbstractCriterion WhereNotExists<U>(NHibernate.Criterion.QueryOver<U> detachedQuery) => throw null;
            public static NHibernate.Criterion.Lambda.LambdaSubqueryBuilder WhereProperty<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression) => throw null;
            public static NHibernate.Criterion.Lambda.LambdaSubqueryBuilder WhereProperty(System.Linq.Expressions.Expression<System.Func<object>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion WhereSome<T>(System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion WhereSome(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public static NHibernate.Criterion.Lambda.LambdaSubqueryBuilder WhereValue(object value) => throw null;
        }
        public abstract class SubqueryExpression : NHibernate.Criterion.AbstractCriterion
        {
            public NHibernate.ICriteria Criteria { get => throw null; }
            protected SubqueryExpression(string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc) => throw null;
            protected SubqueryExpression(string op, string quantifier, NHibernate.Criterion.DetachedCriteria dc, bool prefixOp) => throw null;
            public override NHibernate.Criterion.IProjection[] GetProjections() => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public NHibernate.Type.IType[] GetTypes() => throw null;
            protected abstract NHibernate.SqlCommand.SqlString ToLeftSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery outerQuery);
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
        public class SubqueryProjection : NHibernate.Criterion.SimpleProjection
        {
            protected SubqueryProjection(NHibernate.Criterion.SelectSubqueryExpression subquery) => throw null;
            public override NHibernate.Engine.TypedValue[] GetTypedValues(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.Type.IType[] GetTypes(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override bool IsAggregate { get => throw null; }
            public override bool IsGrouped { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToGroupSqlString(NHibernate.ICriteria criteria, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override NHibernate.SqlCommand.SqlString ToSqlString(NHibernate.ICriteria criteria, int loc, NHibernate.Criterion.ICriteriaQuery criteriaQuery) => throw null;
            public override string ToString() => throw null;
        }
    }
    namespace DebugHelpers
    {
        public class CollectionProxy
        {
            public CollectionProxy(System.Collections.ICollection dic) => throw null;
            public object[] Items { get => throw null; }
        }
        public class CollectionProxy<T>
        {
            public CollectionProxy(System.Collections.Generic.ICollection<T> dic) => throw null;
            public T[] Items { get => throw null; }
        }
        public class DictionaryProxy
        {
            public DictionaryProxy(System.Collections.IDictionary dic) => throw null;
            public System.Collections.DictionaryEntry[] Items { get => throw null; }
        }
        public class DictionaryProxy<K, V>
        {
            public DictionaryProxy(System.Collections.Generic.IDictionary<K, V> dic) => throw null;
            public System.Collections.Generic.KeyValuePair<K, V>[] Items { get => throw null; }
        }
    }
    namespace Dialect
    {
        public class AnsiSqlKeywords
        {
            public AnsiSqlKeywords() => throw null;
            public static readonly System.Collections.Generic.IReadOnlyCollection<string> Sql2003;
        }
        public class BitwiseFunctionOperation : NHibernate.Dialect.Function.BitwiseFunctionOperation
        {
            public BitwiseFunctionOperation(string functionName) : base(default(string)) => throw null;
        }
        public class BitwiseNativeOperation : NHibernate.Dialect.Function.BitwiseNativeOperation
        {
            public BitwiseNativeOperation(string sqlOpToken) : base(default(string)) => throw null;
            public BitwiseNativeOperation(string sqlOpToken, bool isNot) : base(default(string)) => throw null;
        }
        public class DB2400Dialect : NHibernate.Dialect.DB2Dialect
        {
            public DB2400Dialect() => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string IdentitySelectString { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
            public override bool UseMaxForLimit { get => throw null; }
        }
        public class DB2Dialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public DB2Dialect() => throw null;
            public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; }
            public override bool DropConstraints { get => throw null; }
            public override string ForUpdateString { get => throw null; }
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString sql, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentityInsertString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override bool SupportsCrossJoin { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsExistsInSelect { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLobValueChangePropogation { get => throw null; }
            public override bool SupportsNullInUnique { get => throw null; }
            public override bool SupportsResultSetPositionQueryMethodsOnForwardOnlyCursor { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            public override string ToStringLiteral(string value, NHibernate.SqlTypes.SqlType type) => throw null;
            public override bool UseMaxForLimit { get => throw null; }
        }
        public abstract class Dialect
        {
            public virtual string AddColumnString { get => throw null; }
            public virtual string AddColumnSuffixString { get => throw null; }
            public virtual NHibernate.SqlCommand.SqlString AddIdentifierOutParameterToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName, string parameterName) => throw null;
            public virtual NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString) => throw null;
            public virtual NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName) => throw null;
            public virtual string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null;
            public virtual NHibernate.SqlCommand.SqlString ApplyLocksToSql(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> aliasedLockModes, System.Collections.Generic.IDictionary<string, string[]> keyColumnNames) => throw null;
            public virtual bool AreStringComparisonsCaseInsensitive { get => throw null; }
            public virtual NHibernate.Exceptions.ISQLExceptionConverter BuildSQLExceptionConverter() => throw null;
            public virtual string CascadeConstraintsString { get => throw null; }
            public virtual char CloseQuote { get => throw null; }
            public virtual void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public virtual string ConvertQuotesForAliasName(string aliasName) => throw null;
            public virtual string ConvertQuotesForCatalogName(string catalogName) => throw null;
            public virtual string ConvertQuotesForColumnName(string columnName) => throw null;
            public virtual string ConvertQuotesForSchemaName(string schemaName) => throw null;
            public virtual string ConvertQuotesForTableName(string tableName) => throw null;
            public virtual NHibernate.SqlCommand.CaseFragment CreateCaseFragment() => throw null;
            public virtual string CreateMultisetTableString { get => throw null; }
            public virtual NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null;
            public virtual string CreateTableString { get => throw null; }
            public virtual string CreateTemporaryTablePostfix { get => throw null; }
            public virtual string CreateTemporaryTableString { get => throw null; }
            protected Dialect() => throw null;
            public virtual string CurrentTimestampSelectString { get => throw null; }
            public virtual string CurrentTimestampSQLFunctionName { get => throw null; }
            public virtual string CurrentUtcTimestampSelectString { get => throw null; }
            public virtual string CurrentUtcTimestampSQLFunctionName { get => throw null; }
            protected const string DefaultBatchSize = default;
            public int DefaultCastLength { get => throw null; set { } }
            public byte DefaultCastPrecision { get => throw null; set { } }
            public byte DefaultCastScale { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, string> DefaultProperties { get => throw null; }
            public virtual string DisableForeignKeyConstraintsString { get => throw null; }
            public virtual bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; }
            public virtual bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; }
            public virtual bool DropConstraints { get => throw null; }
            public virtual string DropForeignKeyString { get => throw null; }
            public virtual bool DropTemporaryTableAfterUse() => throw null;
            public virtual string EnableForeignKeyConstraintsString { get => throw null; }
            protected virtual bool EscapeBackslashInStrings { get => throw null; set { } }
            public virtual string ForUpdateNowaitString { get => throw null; }
            public virtual bool ForUpdateOfColumns { get => throw null; }
            public virtual string ForUpdateString { get => throw null; }
            public virtual System.Collections.Generic.IDictionary<string, NHibernate.Dialect.Function.ISQLFunction> Functions { get => throw null; }
            public virtual bool GenerateTablePrimaryKeyConstraintForIdentityColumn { get => throw null; }
            public virtual string GenerateTemporaryTableName(string baseTableName) => throw null;
            public virtual string GetAddForeignKeyConstraintString(string constraintName, string[] foreignKey, string referencedTable, string[] primaryKey, bool referencesPrimaryKey) => throw null;
            public virtual string GetAddPrimaryKeyConstraintString(string constraintName) => throw null;
            public virtual string GetCastTypeName(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected virtual string GetCastTypeName(NHibernate.SqlTypes.SqlType sqlType, NHibernate.Dialect.TypeNames castTypeNames) => throw null;
            public virtual string GetColumnComment(string comment) => throw null;
            public virtual string GetCreateSequenceString(string sequenceName) => throw null;
            protected virtual string GetCreateSequenceString(string sequenceName, int initialValue, int incrementSize) => throw null;
            public virtual string[] GetCreateSequenceStrings(string sequenceName, int initialValue, int incrementSize) => throw null;
            public virtual NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public static NHibernate.Dialect.Dialect GetDialect() => throw null;
            public static NHibernate.Dialect.Dialect GetDialect(System.Collections.Generic.IDictionary<string, string> props) => throw null;
            public virtual string GetDropForeignKeyConstraintString(string constraintName) => throw null;
            public virtual string GetDropIndexConstraintString(string constraintName) => throw null;
            public virtual string GetDropPrimaryKeyConstraintString(string constraintName) => throw null;
            public virtual string GetDropSequenceString(string sequenceName) => throw null;
            public virtual string[] GetDropSequenceStrings(string sequenceName) => throw null;
            public virtual string GetDropTableString(string tableName) => throw null;
            public virtual string GetForUpdateNowaitString(string aliases) => throw null;
            public virtual string GetForUpdateString(NHibernate.LockMode lockMode) => throw null;
            public virtual string GetForUpdateString(string aliases) => throw null;
            public virtual string GetIdentityColumnString(System.Data.DbType type) => throw null;
            public virtual string GetIdentitySelectString(string identityColumn, string tableName, System.Data.DbType type) => throw null;
            public virtual string GetIfExistsDropConstraint(NHibernate.Mapping.Table table, string name) => throw null;
            public virtual string GetIfExistsDropConstraint(string catalog, string schema, string table, string name) => throw null;
            public virtual string GetIfExistsDropConstraintEnd(NHibernate.Mapping.Table table, string name) => throw null;
            public virtual string GetIfExistsDropConstraintEnd(string catalog, string schema, string table, string name) => throw null;
            public virtual string GetIfNotExistsCreateConstraint(NHibernate.Mapping.Table table, string name) => throw null;
            public virtual string GetIfNotExistsCreateConstraint(string catalog, string schema, string table, string name) => throw null;
            public virtual string GetIfNotExistsCreateConstraintEnd(NHibernate.Mapping.Table table, string name) => throw null;
            public virtual string GetIfNotExistsCreateConstraintEnd(string catalog, string schema, string table, string name) => throw null;
            public virtual NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, int? offset, int? limit, NHibernate.SqlCommand.Parameter offsetParameter, NHibernate.SqlCommand.Parameter limitParameter) => throw null;
            public int GetLimitValue(int offset, int limit) => throw null;
            public virtual NHibernate.Dialect.Lock.ILockingStrategy GetLockingStrategy(NHibernate.Persister.Entity.ILockable lockable, NHibernate.LockMode lockMode) => throw null;
            public virtual string GetLongestTypeName(System.Data.DbType dbType) => throw null;
            public int GetOffsetValue(int offset) => throw null;
            public virtual System.Data.Common.DbDataReader GetResultSet(System.Data.Common.DbCommand statement) => throw null;
            public virtual System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetResultSetAsync(System.Data.Common.DbCommand statement, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual string GetSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public virtual string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public virtual string GetSequenceNextValString(string sequenceName) => throw null;
            public virtual string GetTableComment(string comment) => throw null;
            public virtual string GetTypeName(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public virtual string GetTypeName(NHibernate.SqlTypes.SqlType sqlType, int length, int precision, int scale) => throw null;
            public virtual bool HasDataTypeInIdentityColumn { get => throw null; }
            public virtual bool HasSelfReferentialForeignKeyBug { get => throw null; }
            public virtual string IdentityColumnString { get => throw null; }
            public virtual string IdentityInsertString { get => throw null; }
            public virtual string IdentitySelectString { get => throw null; }
            public virtual System.Type IdentityStyleIdentifierGeneratorClass { get => throw null; }
            public virtual NHibernate.Dialect.InsertGeneratedIdentifierRetrievalMethod InsertGeneratedIdentifierRetrievalMethod { get => throw null; }
            public virtual bool IsCurrentTimestampSelectStringCallable { get => throw null; }
            public virtual bool IsDecimalStoredAsFloatingPointNumber { get => throw null; }
            public bool IsKeyword(string str) => throw null;
            public virtual bool IsKnownToken(string currentToken, string nextToken) => throw null;
            public virtual bool IsQuoted(string name) => throw null;
            public System.Collections.Generic.HashSet<string> Keywords { get => throw null; }
            public virtual string LowercaseFunction { get => throw null; }
            public virtual int MaxAliasLength { get => throw null; }
            public virtual int? MaxNumberOfParameters { get => throw null; }
            public virtual System.Type NativeIdentifierGeneratorClass { get => throw null; }
            protected const string NoBatch = default;
            public virtual string NoColumnsInsertString { get => throw null; }
            public virtual string NullColumnString { get => throw null; }
            public virtual bool OffsetStartsAtOne { get => throw null; }
            public virtual char OpenQuote { get => throw null; }
            public virtual NHibernate.SqlTypes.SqlType OverrideSqlType(NHibernate.SqlTypes.SqlType type) => throw null;
            public virtual bool? PerformTemporaryTableDDLInIsolation() => throw null;
            public const string PossibleClosedQuoteChars = default;
            public const string PossibleQuoteChars = default;
            public virtual string PrimaryKeyString { get => throw null; }
            public virtual string Qualify(string catalog, string schema, string name) => throw null;
            public virtual bool QualifyIndexName { get => throw null; }
            public virtual string QuerySequencesString { get => throw null; }
            protected virtual string Quote(string name) => throw null;
            public class QuotedAndParenthesisStringTokenizer : System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.SqlString>, System.Collections.IEnumerable
            {
                public QuotedAndParenthesisStringTokenizer(NHibernate.SqlCommand.SqlString original) => throw null;
                System.Collections.Generic.IEnumerator<NHibernate.SqlCommand.SqlString> System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.SqlString>.GetEnumerator() => throw null;
                public System.Collections.IEnumerator GetEnumerator() => throw null;
                public System.Collections.Generic.IList<NHibernate.SqlCommand.SqlString> GetTokens() => throw null;
                public enum TokenizerState
                {
                    WhiteSpace = 0,
                    Quoted = 1,
                    InParenthesis = 2,
                    Token = 3,
                }
            }
            public virtual string QuoteForAliasName(string aliasName) => throw null;
            public virtual string QuoteForCatalogName(string catalogName) => throw null;
            public virtual string QuoteForColumnName(string columnName) => throw null;
            public virtual string QuoteForSchemaName(string schemaName) => throw null;
            public virtual string QuoteForTableName(string tableName) => throw null;
            protected void RegisterColumnType(System.Data.DbType code, int capacity, string name) => throw null;
            protected void RegisterColumnType(System.Data.DbType code, string name) => throw null;
            protected void RegisterFunction(string name, NHibernate.Dialect.Function.ISQLFunction function) => throw null;
            protected void RegisterKeyword(string word) => throw null;
            protected void RegisterKeywords(params string[] keywords) => throw null;
            protected void RegisterKeywords(System.Collections.Generic.IEnumerable<string> keywords) => throw null;
            public virtual int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null;
            public virtual bool ReplaceResultVariableInOrderByClauseWithPosition { get => throw null; }
            public virtual string SelectGUIDString { get => throw null; }
            public virtual char StatementTerminator { get => throw null; }
            public virtual bool SupportsBindAsCallableArgument { get => throw null; }
            public virtual bool SupportsCascadeDelete { get => throw null; }
            public virtual bool SupportsCircularCascadeDeleteConstraints { get => throw null; }
            public virtual bool SupportsColumnCheck { get => throw null; }
            public virtual bool SupportsCommentOn { get => throw null; }
            public virtual bool SupportsConcurrentWritingConnections { get => throw null; }
            public virtual bool SupportsConcurrentWritingConnectionsInSameTransaction { get => throw null; }
            public virtual bool SupportsCrossJoin { get => throw null; }
            public virtual bool SupportsCurrentTimestampSelection { get => throw null; }
            public virtual bool SupportsCurrentUtcTimestampSelection { get => throw null; }
            public virtual bool SupportsDateTimeScale { get => throw null; }
            public virtual bool SupportsDistributedTransactions { get => throw null; }
            public virtual bool SupportsEmptyInList { get => throw null; }
            public virtual bool SupportsExistsInSelect { get => throw null; }
            public virtual bool SupportsExpectedLobUsagePattern { get => throw null; }
            public virtual bool SupportsForeignKeyConstraintInAlterTable { get => throw null; }
            public virtual bool SupportsForUpdateOf { get => throw null; }
            public virtual bool SupportsHavingOnGroupedByComputation { get => throw null; }
            public virtual bool SupportsIdentityColumns { get => throw null; }
            public virtual bool SupportsIfExistsAfterTableName { get => throw null; }
            public virtual bool SupportsIfExistsBeforeTableName { get => throw null; }
            public virtual bool SupportsInsertSelectIdentity { get => throw null; }
            public virtual bool SupportsLimit { get => throw null; }
            public virtual bool SupportsLimitOffset { get => throw null; }
            public virtual bool SupportsLobValueChangePropogation { get => throw null; }
            public virtual bool SupportsNotNullUnique { get => throw null; }
            public virtual bool SupportsNullInUnique { get => throw null; }
            public virtual bool SupportsOuterJoinForUpdate { get => throw null; }
            public virtual bool SupportsParametersInInsertSelect { get => throw null; }
            public virtual bool SupportsPooledSequences { get => throw null; }
            public virtual bool SupportsPoolingParameter { get => throw null; }
            public virtual bool SupportsResultSetPositionQueryMethodsOnForwardOnlyCursor { get => throw null; }
            public virtual bool SupportsRowValueConstructorSyntax { get => throw null; }
            public virtual bool SupportsRowValueConstructorSyntaxInInList { get => throw null; }
            public virtual bool SupportsScalarSubSelects { get => throw null; }
            public virtual bool SupportsSequences { get => throw null; }
            public virtual bool SupportsSqlBatches { get => throw null; }
            public virtual bool SupportsSubqueryOnMutatingTable { get => throw null; }
            public virtual bool SupportsSubselectAsInPredicateLHS { get => throw null; }
            public virtual bool SupportsSubSelects { get => throw null; }
            public virtual bool SupportsSubSelectsWithPagingAsInPredicateRhs { get => throw null; }
            public virtual bool SupportsTableCheck { get => throw null; }
            public virtual bool SupportsTemporaryTables { get => throw null; }
            public virtual bool SupportsUnboundedLobLocatorMaterialization { get => throw null; }
            public virtual bool SupportsUnionAll { get => throw null; }
            public virtual bool SupportsUnique { get => throw null; }
            public virtual bool SupportsUniqueConstraintInCreateAlterTable { get => throw null; }
            public virtual bool SupportsVariableLimit { get => throw null; }
            public virtual string TableTypeString { get => throw null; }
            public virtual long TimestampResolutionInTicks { get => throw null; }
            public virtual string ToBooleanValueString(bool value) => throw null;
            public virtual string ToStringLiteral(string value, NHibernate.SqlTypes.SqlType type) => throw null;
            public virtual bool TryGetCastTypeName(NHibernate.SqlTypes.SqlType sqlType, out string typeName) => throw null;
            protected virtual bool TryGetCastTypeName(NHibernate.SqlTypes.SqlType sqlType, NHibernate.Dialect.TypeNames castTypeNames, out string typeName) => throw null;
            public virtual string UnQuote(string quoted) => throw null;
            public virtual string[] UnQuote(string[] quoted) => throw null;
            public virtual bool UseInputStreamToInsertBlob { get => throw null; }
            public virtual bool UseMaxForLimit { get => throw null; }
            protected virtual bool UseNPrefixForUnicodeStrings { get => throw null; }
            public virtual bool UsesColumnsWithForUpdateOf { get => throw null; }
            public virtual NHibernate.Exceptions.IViolatedConstraintNameExtracter ViolatedConstraintNameExtracter { get => throw null; }
        }
        public class Firebird4Dialect : NHibernate.Dialect.FirebirdDialect
        {
            public Firebird4Dialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            protected override void RegisterFunctions() => throw null;
        }
        public class FirebirdDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString AddIdentifierOutParameterToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName, string parameterName) => throw null;
            public override string CreateTemporaryTableString { get => throw null; }
            public FirebirdDialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override bool DropTemporaryTableAfterUse() => throw null;
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override int MaxAliasLength { get => throw null; }
            public override bool? PerformTemporaryTableDDLInIsolation() => throw null;
            public override string QuerySequencesString { get => throw null; }
            protected virtual void RegisterColumnTypes() => throw null;
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsDistributedTransactions { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
        }
        namespace Function
        {
            public class AnsiExtractFunction : NHibernate.Dialect.Function.SQLFunctionTemplate, NHibernate.Dialect.Function.IFunctionGrammar
            {
                public AnsiExtractFunction() : base(default(NHibernate.Type.IType), default(string)) => throw null;
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null;
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null;
            }
            public class AnsiSubstringFunction : NHibernate.Dialect.Function.ISQLFunction
            {
                public AnsiSubstringFunction() => throw null;
                public NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class AnsiTrimEmulationFunction : NHibernate.Dialect.Function.IFunctionGrammar, NHibernate.Dialect.Function.ISQLFunction
            {
                public AnsiTrimEmulationFunction() => throw null;
                public AnsiTrimEmulationFunction(string replaceFunction) => throw null;
                public NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null;
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null;
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class AnsiTrimFunction : NHibernate.Dialect.Function.SQLFunctionTemplate, NHibernate.Dialect.Function.IFunctionGrammar
            {
                public AnsiTrimFunction() : base(default(NHibernate.Type.IType), default(string)) => throw null;
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null;
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null;
            }
            public class BitwiseFunctionOperation : NHibernate.Dialect.Function.ISQLFunction
            {
                public BitwiseFunctionOperation(string functionName) => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class BitwiseNativeOperation : NHibernate.Dialect.Function.ISQLFunction
            {
                public BitwiseNativeOperation(string sqlOpToken) => throw null;
                public BitwiseNativeOperation(string sqlOpToken, bool isUnary) => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class CastFunction : NHibernate.Dialect.Function.IFunctionGrammar, NHibernate.Dialect.Function.ISQLFunction
            {
                protected virtual bool CastingIsRequired(string sqlType) => throw null;
                public CastFunction() => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null;
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null;
                public string Name { get => throw null; }
                public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                protected virtual NHibernate.SqlCommand.SqlString Render(object expression, string sqlType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class CharIndexFunction : NHibernate.Dialect.Function.ISQLFunction
            {
                public CharIndexFunction() => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class ClassicAggregateFunction : NHibernate.Dialect.Function.IFunctionGrammar, NHibernate.Dialect.Function.ISQLFunction
            {
                protected readonly bool acceptAsterisk;
                public ClassicAggregateFunction(string name, bool acceptAsterisk) => throw null;
                public ClassicAggregateFunction(string name, bool acceptAsterisk, NHibernate.Type.IType typeValue) => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsKnownArgument(string token) => throw null;
                bool NHibernate.Dialect.Function.IFunctionGrammar.IsSeparator(string token) => throw null;
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
                public override string ToString() => throw null;
                protected bool TryGetArgumentType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError, out NHibernate.Type.IType argumentType, out NHibernate.SqlTypes.SqlType sqlType) => throw null;
            }
            public class ClassicAvgFunction : NHibernate.Dialect.Function.ClassicAggregateFunction
            {
                public ClassicAvgFunction() : base(default(string), default(bool)) => throw null;
                public override NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public override NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class ClassicCountFunction : NHibernate.Dialect.Function.ClassicAggregateFunction
            {
                public ClassicCountFunction() : base(default(string), default(bool)) => throw null;
                public override NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public override NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class ClassicSumFunction : NHibernate.Dialect.Function.ClassicAggregateFunction
            {
                public ClassicSumFunction() : base(default(string), default(bool)) => throw null;
            }
            public class CommonGrammar : NHibernate.Dialect.Function.IFunctionGrammar
            {
                public CommonGrammar() => throw null;
                public bool IsKnownArgument(string token) => throw null;
                public bool IsSeparator(string token) => throw null;
            }
            public class EmulatedLengthSubstringFunction : NHibernate.Dialect.Function.StandardSQLFunction
            {
                public EmulatedLengthSubstringFunction() : base(default(string)) => throw null;
                public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            }
            public interface IFunctionGrammar
            {
                bool IsKnownArgument(string token);
                bool IsSeparator(string token);
            }
            public interface ISQLFunction
            {
                bool HasArguments { get; }
                bool HasParenthesesIfNoArguments { get; }
                NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory);
                NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping);
            }
            public class NoArgSQLFunction : NHibernate.Dialect.Function.ISQLFunction
            {
                public NoArgSQLFunction(string name, NHibernate.Type.IType returnType) => throw null;
                public NoArgSQLFunction(string name, NHibernate.Type.IType returnType, bool hasParenthesesIfNoArguments) => throw null;
                public NHibernate.Type.IType FunctionReturnType { get => throw null; set { } }
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; set { } }
                public string Name { get => throw null; set { } }
                public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class NvlFunction : NHibernate.Dialect.Function.ISQLFunction
            {
                public NvlFunction() => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public class PositionSubstringFunction : NHibernate.Dialect.Function.ISQLFunction
            {
                public PositionSubstringFunction() => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
            public static partial class SQLFunctionExtensions
            {
                public static NHibernate.Type.IType GetEffectiveReturnType(this NHibernate.Dialect.Function.ISQLFunction sqlFunction, System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public static NHibernate.Type.IType GetReturnType(this NHibernate.Dialect.Function.ISQLFunction sqlFunction, System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
            }
            public class SQLFunctionRegistry
            {
                public SQLFunctionRegistry(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary<string, NHibernate.Dialect.Function.ISQLFunction> userFunctions) => throw null;
                public NHibernate.Dialect.Function.ISQLFunction FindSQLFunction(string functionName) => throw null;
                public bool HasFunction(string functionName) => throw null;
            }
            public class SQLFunctionTemplate : NHibernate.Dialect.Function.ISQLFunction
            {
                public SQLFunctionTemplate(NHibernate.Type.IType type, string template) => throw null;
                public SQLFunctionTemplate(NHibernate.Type.IType type, string template, bool hasParenthesesIfNoArgs) => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public virtual string Name { get => throw null; }
                public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
                public override string ToString() => throw null;
            }
            public class SQLFunctionTemplateWithRequiredParameters : NHibernate.Dialect.Function.SQLFunctionTemplate
            {
                public SQLFunctionTemplateWithRequiredParameters(NHibernate.Type.IType type, string template, object[] requiredArgs) : base(default(NHibernate.Type.IType), default(string)) => throw null;
                public SQLFunctionTemplateWithRequiredParameters(NHibernate.Type.IType type, string template, object[] requiredArgs, bool hasParenthesesIfNoArgs) : base(default(NHibernate.Type.IType), default(string)) => throw null;
                public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            }
            public class StandardSafeSQLFunction : NHibernate.Dialect.Function.StandardSQLFunction
            {
                public StandardSafeSQLFunction(string name, int allowedArgsCount) : base(default(string)) => throw null;
                public StandardSafeSQLFunction(string name, NHibernate.Type.IType typeValue, int allowedArgsCount) : base(default(string)) => throw null;
                public override NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            }
            public class StandardSQLFunction : NHibernate.Dialect.Function.ISQLFunction
            {
                public StandardSQLFunction(string name) => throw null;
                public StandardSQLFunction(string name, NHibernate.Type.IType typeValue) => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                protected readonly string name;
                public string Name { get => throw null; }
                public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
                public override string ToString() => throw null;
            }
            public class TransparentCastFunction : NHibernate.Dialect.Function.CastFunction
            {
                protected override bool CastingIsRequired(string sqlType) => throw null;
                public TransparentCastFunction() => throw null;
                protected override NHibernate.SqlCommand.SqlString Render(object expression, string sqlType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            }
            public class VarArgsSQLFunction : NHibernate.Dialect.Function.ISQLFunction
            {
                public VarArgsSQLFunction(string begin, string sep, string end) => throw null;
                public VarArgsSQLFunction(NHibernate.Type.IType type, string begin, string sep, string end) => throw null;
                public virtual NHibernate.Type.IType GetEffectiveReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public virtual NHibernate.Type.IType GetReturnType(System.Collections.Generic.IEnumerable<NHibernate.Type.IType> argumentTypes, NHibernate.Engine.IMapping mapping, bool throwOnError) => throw null;
                public bool HasArguments { get => throw null; }
                public bool HasParenthesesIfNoArguments { get => throw null; }
                public virtual string Name { get => throw null; }
                public NHibernate.SqlCommand.SqlString Render(System.Collections.IList args, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public virtual NHibernate.Type.IType ReturnType(NHibernate.Type.IType columnType, NHibernate.Engine.IMapping mapping) => throw null;
            }
        }
        public class GenericDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public GenericDialect() => throw null;
        }
        public class HanaColumnStoreDialect : NHibernate.Dialect.HanaDialectBase
        {
            public override string CreateTableString { get => throw null; }
            public override string CreateTemporaryTableString { get => throw null; }
            public HanaColumnStoreDialect() => throw null;
        }
        public abstract class HanaDialectBase : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override string AddColumnSuffixString { get => throw null; }
            public override string CascadeConstraintsString { get => throw null; }
            protected HanaDialectBase() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override string CurrentUtcTimestampSelectString { get => throw null; }
            public override string CurrentUtcTimestampSQLFunctionName { get => throw null; }
            public override bool DropConstraints { get => throw null; }
            public override string ForUpdateNowaitString { get => throw null; }
            public override string GenerateTemporaryTableName(string baseTableName) => throw null;
            public override string GetColumnComment(string comment) => throw null;
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            protected override string GetCreateSequenceString(string sequenceName, int initialValue, int incrementSize) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override string GetForUpdateNowaitString(string aliases) => throw null;
            public override string GetForUpdateString(string aliases) => throw null;
            public override string GetIdentitySelectString(string identityColumn, string tableName, System.Data.DbType type) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string GetSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override string GetTableComment(string comment) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override bool IsCurrentTimestampSelectStringCallable { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override bool? PerformTemporaryTableDDLInIsolation() => throw null;
            public override bool QualifyIndexName { get => throw null; }
            public override string QuerySequencesString { get => throw null; }
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterHANAFunctions() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            protected virtual void RegisterNHibernateFunctions() => throw null;
            public override int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsColumnCheck { get => throw null; }
            public override bool SupportsCommentOn { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsCurrentUtcTimestampSelection { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsExistsInSelect { get => throw null; }
            public override bool SupportsExpectedLobUsagePattern { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsPooledSequences { get => throw null; }
            public override bool SupportsRowValueConstructorSyntax { get => throw null; }
            public override bool SupportsRowValueConstructorSyntaxInInList { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override bool SupportsUnboundedLobLocatorMaterialization { get => throw null; }
            public override bool SupportsUnionAll { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            public override string ToBooleanValueString(bool value) => throw null;
            public override bool UsesColumnsWithForUpdateOf { get => throw null; }
        }
        public class HanaRowStoreDialect : NHibernate.Dialect.HanaDialectBase
        {
            public override string CreateTableString { get => throw null; }
            public override string CreateTemporaryTableString { get => throw null; }
            public HanaRowStoreDialect() => throw null;
            public override bool SupportsDistributedTransactions { get => throw null; }
            public override bool SupportsOuterJoinForUpdate { get => throw null; }
        }
        public class IfxViolatedConstraintExtracter : NHibernate.Exceptions.TemplatedViolatedConstraintNameExtracter
        {
            public IfxViolatedConstraintExtracter() => throw null;
            public override string ExtractConstraintName(System.Data.Common.DbException sqle) => throw null;
        }
        public class InformixDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.Exceptions.ISQLExceptionConverter BuildSQLExceptionConverter() => throw null;
            public override NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null;
            public override string CreateTemporaryTablePostfix { get => throw null; }
            public override string CreateTemporaryTableString { get => throw null; }
            public InformixDialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override string CurrentTimestampSQLFunctionName { get => throw null; }
            public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; }
            public override bool ForUpdateOfColumns { get => throw null; }
            public override string GetAddForeignKeyConstraintString(string constraintName, string[] foreignKey, string referencedTable, string[] primaryKey, bool referencesPrimaryKey) => throw null;
            public override string GetForUpdateString(string aliases) => throw null;
            public override string GetIdentityColumnString(System.Data.DbType type) => throw null;
            public override string GetIdentitySelectString(string identityColumn, string tableName, System.Data.DbType type) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override System.Data.Common.DbDataReader GetResultSet(System.Data.Common.DbCommand statement) => throw null;
            public override System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetResultSetAsync(System.Data.Common.DbCommand statement, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool HasDataTypeInIdentityColumn { get => throw null; }
            public override string IdentityColumnString { get => throw null; }
            public override string IdentityInsertString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override bool IsCurrentTimestampSelectStringCallable { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override bool? PerformTemporaryTableDDLInIsolation() => throw null;
            public override int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null;
            public override bool SupportsCrossJoin { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsOuterJoinForUpdate { get => throw null; }
            public override bool SupportsResultSetPositionQueryMethodsOnForwardOnlyCursor { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override bool SupportsUnionAll { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            public override string ToBooleanValueString(bool value) => throw null;
            public override NHibernate.Exceptions.IViolatedConstraintNameExtracter ViolatedConstraintNameExtracter { get => throw null; }
        }
        public class InformixDialect0940 : NHibernate.Dialect.InformixDialect
        {
            public override NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null;
            public InformixDialect0940() => throw null;
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override int MaxAliasLength { get => throw null; }
            public override string QuerySequencesString { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsPooledSequences { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
        }
        public class InformixDialect1000 : NHibernate.Dialect.InformixDialect0940
        {
            public InformixDialect1000() => throw null;
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
        }
        public class Ingres9Dialect : NHibernate.Dialect.IngresDialect
        {
            public Ingres9Dialect() => throw null;
            public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; }
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override System.Type IdentityStyleIdentifierGeneratorClass { get => throw null; }
            public override System.Type NativeIdentifierGeneratorClass { get => throw null; }
            public override string QuerySequencesString { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsPooledSequences { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
        }
        public class IngresDialect : NHibernate.Dialect.Dialect
        {
            public IngresDialect() => throw null;
            public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsExpectedLobUsagePattern { get => throw null; }
            public override bool SupportsSubselectAsInPredicateLHS { get => throw null; }
            protected override bool UseNPrefixForUnicodeStrings { get => throw null; }
        }
        public enum InsertGeneratedIdentifierRetrievalMethod
        {
            OutputParameter = 0,
            ReturnValueParameter = 1,
        }
        namespace Lock
        {
            public interface ILockingStrategy
            {
                void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            }
            public class SelectLockingStrategy : NHibernate.Dialect.Lock.ILockingStrategy
            {
                public SelectLockingStrategy(NHibernate.Persister.Entity.ILockable lockable, NHibernate.LockMode lockMode) => throw null;
                public void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class UpdateLockingStrategy : NHibernate.Dialect.Lock.ILockingStrategy
            {
                public UpdateLockingStrategy(NHibernate.Persister.Entity.ILockable lockable, NHibernate.LockMode lockMode) => throw null;
                public void Lock(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
        }
        public class MsSql2000Dialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertSql) => throw null;
            public override string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null;
            public override NHibernate.SqlCommand.SqlString ApplyLocksToSql(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> aliasedLockModes, System.Collections.Generic.IDictionary<string, string[]> keyColumnNames) => throw null;
            public override bool AreStringComparisonsCaseInsensitive { get => throw null; }
            public override char CloseQuote { get => throw null; }
            protected class CountBigQueryFunction : NHibernate.Dialect.Function.ClassicAggregateFunction
            {
                public CountBigQueryFunction() : base(default(string), default(bool)) => throw null;
            }
            public MsSql2000Dialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override string CurrentTimestampSQLFunctionName { get => throw null; }
            public override string CurrentUtcTimestampSelectString { get => throw null; }
            public override string CurrentUtcTimestampSQLFunctionName { get => throw null; }
            public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; }
            public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; }
            public override bool DropTemporaryTableAfterUse() => throw null;
            public override string ForUpdateString { get => throw null; }
            public override string GenerateTemporaryTableName(string baseTableName) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetDropTableString(string tableName) => throw null;
            public override string GetIfExistsDropConstraint(string catalog, string schema, string tableName, string name) => throw null;
            public override string GetIfNotExistsCreateConstraint(string catalog, string schema, string table, string name) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            protected virtual string GetSelectExistingObject(string name, NHibernate.Mapping.Table table) => throw null;
            protected virtual string GetSelectExistingObject(string catalog, string schema, string table, string name) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override bool IsCurrentTimestampSelectStringCallable { get => throw null; }
            public override bool IsKnownToken(string currentToken, string nextToken) => throw null;
            public struct LockHintAppender
            {
                public NHibernate.SqlCommand.SqlString AppendLockHint(NHibernate.SqlCommand.SqlString sql) => throw null;
                public LockHintAppender(NHibernate.Dialect.MsSql2000Dialect dialect, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> aliasedLockModes) => throw null;
            }
            public override int MaxAliasLength { get => throw null; }
            public const byte MaxDateTime2 = 8;
            public const byte MaxDateTimeOffset = 10;
            public override int? MaxNumberOfParameters { get => throw null; }
            public const int MaxSizeForAnsiClob = 2147483647;
            public const int MaxSizeForBlob = 2147483647;
            public const int MaxSizeForClob = 1073741823;
            public const int MaxSizeForLengthLimitedAnsiString = 8000;
            public const int MaxSizeForLengthLimitedBinary = 8000;
            public const int MaxSizeForLengthLimitedString = 4000;
            protected bool NeedsLockHint(NHibernate.LockMode lockMode) => throw null;
            public override string NoColumnsInsertString { get => throw null; }
            public override string NullColumnString { get => throw null; }
            public override char OpenQuote { get => throw null; }
            public override string Qualify(string catalog, string schema, string name) => throw null;
            public override bool QualifyIndexName { get => throw null; }
            protected override string Quote(string name) => throw null;
            protected virtual void RegisterCharacterTypeMappings() => throw null;
            protected virtual void RegisterDateTimeTypeMappings() => throw null;
            protected virtual void RegisterDefaultProperties() => throw null;
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterGuidTypeMapping() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            protected virtual void RegisterLargeObjectTypeMappings() => throw null;
            protected virtual void RegisterNumericTypeMappings() => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsCircularCascadeDeleteConstraints { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsCurrentUtcTimestampSelection { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsInsertSelectIdentity { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsLobValueChangePropogation { get => throw null; }
            public override bool SupportsResultSetPositionQueryMethodsOnForwardOnlyCursor { get => throw null; }
            public override bool SupportsSqlBatches { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override bool SupportsUnionAll { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            public override string UnQuote(string quoted) => throw null;
            public override bool UseMaxForLimit { get => throw null; }
            protected override bool UseNPrefixForUnicodeStrings { get => throw null; }
        }
        public class MsSql2005Dialect : NHibernate.Dialect.MsSql2000Dialect
        {
            public override string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null;
            public MsSql2005Dialect() => throw null;
            public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; }
            public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; }
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            protected override string GetSelectExistingObject(string catalog, string schema, string table, string name) => throw null;
            public override int MaxAliasLength { get => throw null; }
            public const int MaxSizeForXml = 2147483647;
            protected override void RegisterCharacterTypeMappings() => throw null;
            protected override void RegisterKeywords() => throw null;
            protected override void RegisterLargeObjectTypeMappings() => throw null;
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
            public override bool UseMaxForLimit { get => throw null; }
        }
        public class MsSql2008Dialect : NHibernate.Dialect.MsSql2005Dialect
        {
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public MsSql2008Dialect() => throw null;
            public override string CurrentTimestampSQLFunctionName { get => throw null; }
            public override string CurrentUtcTimestampSQLFunctionName { get => throw null; }
            protected bool KeepDateTime { get => throw null; }
            public override NHibernate.SqlTypes.SqlType OverrideSqlType(NHibernate.SqlTypes.SqlType type) => throw null;
            protected override void RegisterDateTimeTypeMappings() => throw null;
            protected override void RegisterDefaultProperties() => throw null;
            protected override void RegisterFunctions() => throw null;
            protected override void RegisterKeywords() => throw null;
            public override bool SupportsDateTimeScale { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
        }
        public class MsSql2012Dialect : NHibernate.Dialect.MsSql2008Dialect
        {
            public MsSql2012Dialect() => throw null;
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            protected override string GetCreateSequenceString(string sequenceName, int initialValue, int incrementSize) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override string QuerySequencesString { get => throw null; }
            protected override void RegisterFunctions() => throw null;
            public override bool SupportsPooledSequences { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
        }
        public class MsSql7Dialect : NHibernate.Dialect.MsSql2000Dialect
        {
            public MsSql7Dialect() => throw null;
            public override string IdentitySelectString { get => throw null; }
        }
        public class MsSqlAzure2008Dialect : NHibernate.Dialect.MsSql2008Dialect
        {
            public MsSqlAzure2008Dialect() => throw null;
            public override string PrimaryKeyString { get => throw null; }
        }
        public class MsSqlCe40Dialect : NHibernate.Dialect.MsSqlCeDialect
        {
            public MsSqlCe40Dialect() => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
        }
        public class MsSqlCeDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public MsSqlCeDialect() => throw null;
            public override string ForUpdateString { get => throw null; }
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override System.Type NativeIdentifierGeneratorClass { get => throw null; }
            public override string NullColumnString { get => throw null; }
            public override string Qualify(string catalog, string schema, string table) => throw null;
            public override bool QualifyIndexName { get => throw null; }
            protected virtual void RegisterDefaultProperties() => throw null;
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            protected virtual void RegisterTypeMapping() => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsCircularCascadeDeleteConstraints { get => throw null; }
            public override bool SupportsConcurrentWritingConnectionsInSameTransaction { get => throw null; }
            public override bool SupportsDistributedTransactions { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsPoolingParameter { get => throw null; }
            public override bool SupportsScalarSubSelects { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
        }
        public class MySQL55Dialect : NHibernate.Dialect.MySQL5Dialect
        {
            public MySQL55Dialect() => throw null;
            protected override void RegisterFunctions() => throw null;
        }
        public class MySQL55InnoDBDialect : NHibernate.Dialect.MySQL55Dialect
        {
            public MySQL55InnoDBDialect() => throw null;
            public override bool HasSelfReferentialForeignKeyBug { get => throw null; }
            public override bool SupportsCascadeDelete { get => throw null; }
            public override string TableTypeString { get => throw null; }
        }
        public class MySQL57Dialect : NHibernate.Dialect.MySQL55Dialect
        {
            public MySQL57Dialect() => throw null;
            public override bool SupportsDateTimeScale { get => throw null; }
            public override bool SupportsRowValueConstructorSyntaxInInList { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
        }
        public class MySQL5Dialect : NHibernate.Dialect.MySQLDialect
        {
            public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString) => throw null;
            public MySQL5Dialect() => throw null;
            public override int MaxAliasLength { get => throw null; }
            protected override void RegisterCastTypes() => throw null;
            protected override void RegisterFunctions() => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsInsertSelectIdentity { get => throw null; }
            public override bool SupportsSubSelects { get => throw null; }
        }
        public class MySQL5InnoDBDialect : NHibernate.Dialect.MySQL5Dialect
        {
            public MySQL5InnoDBDialect() => throw null;
            public override bool HasSelfReferentialForeignKeyBug { get => throw null; }
            public override bool SupportsCascadeDelete { get => throw null; }
            public override string TableTypeString { get => throw null; }
        }
        public class MySQL8Dialect : NHibernate.Dialect.MySQL57Dialect
        {
            public MySQL8Dialect() => throw null;
        }
        public class MySQL8InnoDBDialect : NHibernate.Dialect.MySQL8Dialect
        {
            public MySQL8InnoDBDialect() => throw null;
            public override bool HasSelfReferentialForeignKeyBug { get => throw null; }
            public override bool SupportsCascadeDelete { get => throw null; }
            public override string TableTypeString { get => throw null; }
        }
        public class MySQLDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override bool AreStringComparisonsCaseInsensitive { get => throw null; }
            public override char CloseQuote { get => throw null; }
            public override string CreateTemporaryTableString { get => throw null; }
            public MySQLDialect() => throw null;
            protected override bool EscapeBackslashInStrings { get => throw null; set { } }
            public override string GetAddForeignKeyConstraintString(string constraintName, string[] foreignKey, string referencedTable, string[] primaryKey, bool referencesPrimaryKey) => throw null;
            public override string GetCastTypeName(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetDropForeignKeyConstraintString(string constraintName) => throw null;
            public override string GetDropIndexConstraintString(string constraintName) => throw null;
            public override string GetDropPrimaryKeyConstraintString(string constraintName) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override char OpenQuote { get => throw null; }
            public override bool QualifyIndexName { get => throw null; }
            protected void RegisterCastType(System.Data.DbType code, string name) => throw null;
            protected void RegisterCastType(System.Data.DbType code, int capacity, string name) => throw null;
            protected virtual void RegisterCastTypes() => throw null;
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            public override bool SupportsConcurrentWritingConnectionsInSameTransaction { get => throw null; }
            public override bool SupportsDistributedTransactions { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsHavingOnGroupedByComputation { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsIfExistsBeforeTableName { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLobValueChangePropogation { get => throw null; }
            public override bool SupportsSubqueryOnMutatingTable { get => throw null; }
            public override bool SupportsSubSelects { get => throw null; }
            public override bool SupportsSubSelectsWithPagingAsInPredicateRhs { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            public override bool TryGetCastTypeName(NHibernate.SqlTypes.SqlType sqlType, out string typeName) => throw null;
            protected override bool UseNPrefixForUnicodeStrings { get => throw null; }
        }
        public class Oracle10gDialect : NHibernate.Dialect.Oracle9iDialect
        {
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public override NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null;
            public Oracle10gDialect() => throw null;
            protected override void RegisterFloatingPointTypeMappings() => throw null;
            protected override void RegisterFunctions() => throw null;
            public override bool SupportsCrossJoin { get => throw null; }
        }
        public class Oracle12cDialect : NHibernate.Dialect.Oracle10gDialect
        {
            public Oracle12cDialect() => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString querySqlString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override bool UseMaxForLimit { get => throw null; }
        }
        public class Oracle8iDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString AddIdentifierOutParameterToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName, string parameterName) => throw null;
            public override string CascadeConstraintsString { get => throw null; }
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public override NHibernate.SqlCommand.CaseFragment CreateCaseFragment() => throw null;
            public override NHibernate.SqlCommand.JoinFragment CreateOuterJoinFragment() => throw null;
            public override string CreateTemporaryTablePostfix { get => throw null; }
            public override string CreateTemporaryTableString { get => throw null; }
            public Oracle8iDialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override string CurrentTimestampSQLFunctionName { get => throw null; }
            public override bool DropConstraints { get => throw null; }
            public override bool DropTemporaryTableAfterUse() => throw null;
            public override string ForUpdateNowaitString { get => throw null; }
            public override bool ForUpdateOfColumns { get => throw null; }
            public override string GenerateTemporaryTableName(string baseTableName) => throw null;
            public virtual string GetBasicSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override string GetForUpdateNowaitString(string aliases) => throw null;
            public override string GetForUpdateString(string aliases) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString sql, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string GetSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override bool IsCurrentTimestampSelectStringCallable { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override string QuerySequencesString { get => throw null; }
            protected virtual void RegisterCharacterTypeMappings() => throw null;
            protected virtual void RegisterDateTimeTypeMappings() => throw null;
            protected virtual void RegisterDefaultProperties() => throw null;
            protected virtual void RegisterFloatingPointTypeMappings() => throw null;
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterGuidTypeMapping() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            protected virtual void RegisterLargeObjectTypeMappings() => throw null;
            protected virtual void RegisterNumericTypeMappings() => throw null;
            protected virtual void RegisterReverseHibernateTypeMappings() => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsCommentOn { get => throw null; }
            public override bool SupportsCrossJoin { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsExistsInSelect { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsPooledSequences { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override bool SupportsUnionAll { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            public override bool UseMaxForLimit { get => throw null; }
            public bool UseNPrefixedTypesForUnicode { get => throw null; }
            protected override bool UseNPrefixForUnicodeStrings { get => throw null; }
        }
        public class Oracle9iDialect : NHibernate.Dialect.Oracle8iDialect
        {
            public override NHibernate.SqlCommand.CaseFragment CreateCaseFragment() => throw null;
            public Oracle9iDialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override string CurrentTimestampSQLFunctionName { get => throw null; }
            public override string CurrentUtcTimestampSelectString { get => throw null; }
            public override string CurrentUtcTimestampSQLFunctionName { get => throw null; }
            public override string GetSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected override void RegisterDateTimeTypeMappings() => throw null;
            protected override void RegisterFunctions() => throw null;
            public override bool SupportsCurrentUtcTimestampSelection { get => throw null; }
            public override bool SupportsDateTimeScale { get => throw null; }
            public override bool SupportsRowValueConstructorSyntaxInInList { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
        }
        public class OracleLiteDialect : NHibernate.Dialect.Oracle9iDialect
        {
            public OracleLiteDialect() => throw null;
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            protected override string GetCreateSequenceString(string sequenceName, int initialValue, int incrementSize) => throw null;
        }
        public class PostgreSQL81Dialect : NHibernate.Dialect.PostgreSQLDialect
        {
            public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertSql) => throw null;
            public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName) => throw null;
            public PostgreSQL81Dialect() => throw null;
            public override string ForUpdateNowaitString { get => throw null; }
            public override string GetForUpdateNowaitString(string aliases) => throw null;
            public override string GetIdentityColumnString(System.Data.DbType type) => throw null;
            public override bool HasDataTypeInIdentityColumn { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override string NoColumnsInsertString { get => throw null; }
            protected override void RegisterDateTimeTypeMappings() => throw null;
            public override bool SupportsDateTimeScale { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsInsertSelectIdentity { get => throw null; }
        }
        public class PostgreSQL82Dialect : NHibernate.Dialect.PostgreSQL81Dialect
        {
            public PostgreSQL82Dialect() => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override bool SupportsIfExistsBeforeTableName { get => throw null; }
            public override bool SupportsRowValueConstructorSyntaxInInList { get => throw null; }
        }
        public class PostgreSQL83Dialect : NHibernate.Dialect.PostgreSQL82Dialect
        {
            public PostgreSQL83Dialect() => throw null;
        }
        public class PostgreSQLDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString AddIdentifierOutParameterToInsert(NHibernate.SqlCommand.SqlString insertString, string identifierColumnName, string parameterName) => throw null;
            public override string CascadeConstraintsString { get => throw null; }
            public override string CreateTemporaryTablePostfix { get => throw null; }
            public override string CreateTemporaryTableString { get => throw null; }
            public PostgreSQLDialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override bool DropConstraints { get => throw null; }
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override string GetForUpdateString(string aliases) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string GetSelectClauseNullString(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override NHibernate.Dialect.InsertGeneratedIdentifierRetrievalMethod InsertGeneratedIdentifierRetrievalMethod { get => throw null; }
            public override string QuerySequencesString { get => throw null; }
            protected virtual void RegisterDateTimeTypeMappings() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsDistributedTransactions { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsForUpdateOf { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsLobValueChangePropogation { get => throw null; }
            public override bool SupportsOuterJoinForUpdate { get => throw null; }
            public override bool SupportsPooledSequences { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override bool SupportsUnboundedLobLocatorMaterialization { get => throw null; }
            public override bool SupportsUnionAll { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            public override string ToBooleanValueString(bool value) => throw null;
            public override bool UseInputStreamToInsertBlob { get => throw null; }
        }
        public class SapSQLAnywhere17Dialect : NHibernate.Dialect.SybaseSQLAnywhere12Dialect
        {
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public SapSQLAnywhere17Dialect() => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString sql, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            protected virtual void RegisterConfigurationDependentFunctions() => throw null;
            protected override void RegisterKeywords() => throw null;
            protected override void RegisterMathFunctions() => throw null;
            protected override void RegisterStringFunctions() => throw null;
            public override bool SupportsNullInUnique { get => throw null; }
        }
        namespace Schema
        {
            public abstract class AbstractColumnMetaData : NHibernate.Dialect.Schema.IColumnMetadata
            {
                public int ColumnSize { get => throw null; set { } }
                public AbstractColumnMetaData(System.Data.DataRow rs) => throw null;
                public string Name { get => throw null; set { } }
                public string Nullable { get => throw null; set { } }
                public int NumericalPrecision { get => throw null; set { } }
                protected void SetColumnSize(object columnSizeValue) => throw null;
                protected void SetNumericalPrecision(object numericalPrecisionValue) => throw null;
                public override string ToString() => throw null;
                public string TypeName { get => throw null; set { } }
            }
            public abstract class AbstractDataBaseSchema : NHibernate.Dialect.Schema.IDataBaseSchema
            {
                public virtual string ColumnNameForTableName { get => throw null; }
                protected System.Data.Common.DbConnection Connection { get => throw null; }
                protected AbstractDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
                protected AbstractDataBaseSchema(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) => throw null;
                protected virtual string ForeignKeysSchemaName { get => throw null; }
                public virtual System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null;
                public virtual System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null;
                public virtual System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null;
                public virtual System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null;
                public virtual System.Collections.Generic.ISet<string> GetReservedWords() => throw null;
                public abstract NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras);
                public virtual System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null;
                public virtual bool IncludeDataTypesInReservedWords { get => throw null; }
                public virtual bool StoresLowerCaseIdentifiers { get => throw null; }
                public virtual bool StoresLowerCaseQuotedIdentifiers { get => throw null; }
                public virtual bool StoresMixedCaseQuotedIdentifiers { get => throw null; }
                public virtual bool StoresUpperCaseIdentifiers { get => throw null; }
                public virtual bool StoresUpperCaseQuotedIdentifiers { get => throw null; }
                public virtual bool UseDialectQualifyInsteadOfTableName { get => throw null; }
            }
            public class AbstractForeignKeyMetadata : NHibernate.Dialect.Schema.IForeignKeyMetadata
            {
                public void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column) => throw null;
                public NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get => throw null; }
                public AbstractForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                public string Name { get => throw null; set { } }
                public override string ToString() => throw null;
            }
            public abstract class AbstractIndexMetadata : NHibernate.Dialect.Schema.IIndexMetadata
            {
                public void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column) => throw null;
                public NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get => throw null; }
                public AbstractIndexMetadata(System.Data.DataRow rs) => throw null;
                public string Name { get => throw null; set { } }
                public override string ToString() => throw null;
            }
            public abstract class AbstractTableMetadata : NHibernate.Dialect.Schema.ITableMetadata
            {
                public string Catalog { get => throw null; set { } }
                public AbstractTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) => throw null;
                protected abstract NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs);
                public NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(string columnName) => throw null;
                protected abstract string GetColumnName(System.Data.DataRow rs);
                protected abstract string GetConstraintName(System.Data.DataRow rs);
                protected abstract NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs);
                public NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(string keyName) => throw null;
                protected abstract NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs);
                public NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(string indexName) => throw null;
                protected abstract string GetIndexName(System.Data.DataRow rs);
                public string Name { get => throw null; set { } }
                public virtual bool NeedPhysicalConstraintCreation(string fkName) => throw null;
                protected abstract void ParseTableInfo(System.Data.DataRow rs);
                public string Schema { get => throw null; set { } }
                public override string ToString() => throw null;
            }
            public class DB2ColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public DB2ColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class DB2ForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public DB2ForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class DB2IndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public DB2IndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class DB2MetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public DB2MetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null;
                public override System.Collections.Generic.ISet<string> GetReservedWords() => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
            }
            public class DB2TableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public DB2TableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class FirebirdColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public FirebirdColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class FirebirdDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public FirebirdDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override bool StoresUpperCaseIdentifiers { get => throw null; }
            }
            public class FirebirdForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public FirebirdForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class FirebirdIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public FirebirdIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class FirebirdTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public FirebirdTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class HanaColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public HanaColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class HanaDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public HanaDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null;
                public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null;
                public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null;
                public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null;
                public override System.Collections.Generic.ISet<string> GetReservedWords() => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null;
                public override bool StoresUpperCaseIdentifiers { get => throw null; }
            }
            public class HanaForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public HanaForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class HanaIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public HanaIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class HanaTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public HanaTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public interface IColumnMetadata
            {
                int ColumnSize { get; }
                string Name { get; }
                string Nullable { get; }
                int NumericalPrecision { get; }
                string TypeName { get; }
            }
            public interface IDataBaseSchema
            {
                string ColumnNameForTableName { get; }
                System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern);
                System.Data.DataTable GetForeignKeys(string catalog, string schema, string table);
                System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName);
                System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName);
                System.Collections.Generic.ISet<string> GetReservedWords();
                NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras);
                System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types);
                bool StoresLowerCaseIdentifiers { get; }
                bool StoresLowerCaseQuotedIdentifiers { get; }
                bool StoresMixedCaseQuotedIdentifiers { get; }
                bool StoresUpperCaseIdentifiers { get; }
                bool StoresUpperCaseQuotedIdentifiers { get; }
            }
            public interface IForeignKeyMetadata
            {
                void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column);
                NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get; }
                string Name { get; }
            }
            public interface IIndexMetadata
            {
                void AddColumn(NHibernate.Dialect.Schema.IColumnMetadata column);
                NHibernate.Dialect.Schema.IColumnMetadata[] Columns { get; }
                string Name { get; }
            }
            public interface ITableMetadata
            {
                string Catalog { get; }
                NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(string columnName);
                NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(string keyName);
                NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(string indexName);
                string Name { get; }
                bool NeedPhysicalConstraintCreation(string fkName);
                string Schema { get; }
            }
            public class MsSqlCeColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public MsSqlCeColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MsSqlCeDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public MsSqlCeDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public MsSqlCeDataBaseSchema(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override bool UseDialectQualifyInsteadOfTableName { get => throw null; }
            }
            public class MsSqlCeForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public MsSqlCeForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MsSqlCeIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public MsSqlCeIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MsSqlCeTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public MsSqlCeTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class MsSqlColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public MsSqlColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MsSqlDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public MsSqlDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
            }
            public class MsSqlForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public MsSqlForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MsSqlIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public MsSqlIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MsSqlTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public MsSqlTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class MySQLColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public MySQLColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MySQLDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public MySQLDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                protected override string ForeignKeysSchemaName { get => throw null; }
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
            }
            public class MySQLForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public MySQLForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MySQLIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public MySQLIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class MySQLTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public MySQLTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class OracleColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public OracleColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class OracleDataBaseSchema : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public OracleDataBaseSchema(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null;
                public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null;
                public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null;
                public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null;
                public override bool StoresUpperCaseIdentifiers { get => throw null; }
            }
            public class OracleForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public OracleForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class OracleIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public OracleIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class OracleTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public OracleTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class PostgreSQLColumnMetadata : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public PostgreSQLColumnMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class PostgreSQLDataBaseMetadata : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public PostgreSQLDataBaseMetadata(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null;
                public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null;
                public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null;
                public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null;
                public override bool IncludeDataTypesInReservedWords { get => throw null; }
                public override bool StoresLowerCaseIdentifiers { get => throw null; }
                public override bool StoresMixedCaseQuotedIdentifiers { get => throw null; }
            }
            public class PostgreSQLForeignKeyMetadata : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public PostgreSQLForeignKeyMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class PostgreSQLIndexMetadata : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public PostgreSQLIndexMetadata(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class PostgreSQLTableMetadata : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public PostgreSQLTableMetadata(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class SapSqlAnywhere17ColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public SapSqlAnywhere17ColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SapSqlAnywhere17DataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public SapSqlAnywhere17DataBaseMetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null;
                public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null;
                public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null;
                public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null;
                public override System.Collections.Generic.ISet<string> GetReservedWords() => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null;
            }
            public class SapSqlAnywhere17ForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public SapSqlAnywhere17ForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SapSqlAnywhere17IndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public SapSqlAnywhere17IndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SapSqlAnywhere17TableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public SapSqlAnywhere17TableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public static class SchemaHelper
            {
                public static string GetString(System.Data.DataRow row, params string[] alternativeColumnNames) => throw null;
                public static object GetValue(System.Data.DataRow row, params string[] alternativeColumnNames) => throw null;
            }
            public class SQLiteColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public SQLiteColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SQLiteDataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public SQLiteDataBaseMetaData(System.Data.Common.DbConnection connection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public SQLiteDataBaseMetaData(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null;
                public override bool UseDialectQualifyInsteadOfTableName { get => throw null; }
            }
            public class SQLiteForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public SQLiteForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SQLiteIndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public SQLiteIndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SQLiteTableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public SQLiteTableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
            public class SybaseAnywhereColumnMetaData : NHibernate.Dialect.Schema.AbstractColumnMetaData
            {
                public SybaseAnywhereColumnMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SybaseAnywhereDataBaseMetaData : NHibernate.Dialect.Schema.AbstractDataBaseSchema
            {
                public SybaseAnywhereDataBaseMetaData(System.Data.Common.DbConnection pObjConnection) : base(default(System.Data.Common.DbConnection)) => throw null;
                public override System.Data.DataTable GetColumns(string catalog, string schemaPattern, string tableNamePattern, string columnNamePattern) => throw null;
                public override System.Data.DataTable GetForeignKeys(string catalog, string schema, string table) => throw null;
                public override System.Data.DataTable GetIndexColumns(string catalog, string schemaPattern, string tableName, string indexName) => throw null;
                public override System.Data.DataTable GetIndexInfo(string catalog, string schemaPattern, string tableName) => throw null;
                public override System.Collections.Generic.ISet<string> GetReservedWords() => throw null;
                public override NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(System.Data.DataRow rs, bool extras) => throw null;
                public override System.Data.DataTable GetTables(string catalog, string schemaPattern, string tableNamePattern, string[] types) => throw null;
            }
            public class SybaseAnywhereForeignKeyMetaData : NHibernate.Dialect.Schema.AbstractForeignKeyMetadata
            {
                public SybaseAnywhereForeignKeyMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SybaseAnywhereIndexMetaData : NHibernate.Dialect.Schema.AbstractIndexMetadata
            {
                public SybaseAnywhereIndexMetaData(System.Data.DataRow rs) : base(default(System.Data.DataRow)) => throw null;
            }
            public class SybaseAnywhereTableMetaData : NHibernate.Dialect.Schema.AbstractTableMetadata
            {
                public SybaseAnywhereTableMetaData(System.Data.DataRow rs, NHibernate.Dialect.Schema.IDataBaseSchema meta, bool extras) : base(default(System.Data.DataRow), default(NHibernate.Dialect.Schema.IDataBaseSchema), default(bool)) => throw null;
                protected override NHibernate.Dialect.Schema.IColumnMetadata GetColumnMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetColumnName(System.Data.DataRow rs) => throw null;
                protected override string GetConstraintName(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IForeignKeyMetadata GetForeignKeyMetadata(System.Data.DataRow rs) => throw null;
                protected override NHibernate.Dialect.Schema.IIndexMetadata GetIndexMetadata(System.Data.DataRow rs) => throw null;
                protected override string GetIndexName(System.Data.DataRow rs) => throw null;
                protected override void ParseTableInfo(System.Data.DataRow rs) => throw null;
            }
        }
        public class SQLiteDialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertSql) => throw null;
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public override string CreateTemporaryTableString { get => throw null; }
            public SQLiteDialect() => throw null;
            public override string DisableForeignKeyConstraintsString { get => throw null; }
            public override bool DropConstraints { get => throw null; }
            public override bool DropTemporaryTableAfterUse() => throw null;
            public override string EnableForeignKeyConstraintsString { get => throw null; }
            public override string ForUpdateString { get => throw null; }
            public override bool GenerateTablePrimaryKeyConstraintForIdentityColumn { get => throw null; }
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override bool HasDataTypeInIdentityColumn { get => throw null; }
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override bool IsDecimalStoredAsFloatingPointNumber { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override string NoColumnsInsertString { get => throw null; }
            public override string Qualify(string catalog, string schema, string table) => throw null;
            protected virtual void RegisterColumnTypes() => throw null;
            protected virtual void RegisterDefaultProperties() => throw null;
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            public override string SelectGUIDString { get => throw null; }
            protected class SQLiteCastFunction : NHibernate.Dialect.Function.CastFunction
            {
                protected override bool CastingIsRequired(string sqlType) => throw null;
                public SQLiteCastFunction() => throw null;
            }
            public override bool SupportsConcurrentWritingConnections { get => throw null; }
            public override bool SupportsDistributedTransactions { get => throw null; }
            public override bool SupportsForeignKeyConstraintInAlterTable { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsIfExistsBeforeTableName { get => throw null; }
            public override bool SupportsInsertSelectIdentity { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsSubSelects { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
        }
        public class SybaseASA9Dialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public SybaseASA9Dialect() => throw null;
            public override bool DropConstraints { get => throw null; }
            protected override bool EscapeBackslashInStrings { get => throw null; set { } }
            public override string ForUpdateString { get => throw null; }
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString queryString, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override string NoColumnsInsertString { get => throw null; }
            public override string NullColumnString { get => throw null; }
            public override bool OffsetStartsAtOne { get => throw null; }
            public override bool QualifyIndexName { get => throw null; }
            public override bool SupportsCrossJoin { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
            protected override bool UseNPrefixForUnicodeStrings { get => throw null; }
        }
        public class SybaseASE15Dialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertString) => throw null;
            public override string AppendLockHint(NHibernate.LockMode lockMode, string tableName) => throw null;
            public override NHibernate.SqlCommand.SqlString ApplyLocksToSql(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> aliasedLockModes, System.Collections.Generic.IDictionary<string, string[]> keyColumnNames) => throw null;
            public override bool AreStringComparisonsCaseInsensitive { get => throw null; }
            public override char CloseQuote { get => throw null; }
            public SybaseASE15Dialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override string CurrentTimestampSQLFunctionName { get => throw null; }
            public override string CurrentUtcTimestampSelectString { get => throw null; }
            public override string CurrentUtcTimestampSQLFunctionName { get => throw null; }
            public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; }
            public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; }
            public override bool DropTemporaryTableAfterUse() => throw null;
            public override string ForUpdateString { get => throw null; }
            public override string GenerateTemporaryTableName(string baseTableName) => throw null;
            public override System.Data.Common.DbDataReader GetResultSet(System.Data.Common.DbCommand statement) => throw null;
            public override System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetResultSetAsync(System.Data.Common.DbCommand statement, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override bool IsCurrentTimestampSelectStringCallable { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override string NullColumnString { get => throw null; }
            public override char OpenQuote { get => throw null; }
            public override bool QualifyIndexName { get => throw null; }
            public override int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsCascadeDelete { get => throw null; }
            public override bool SupportsCrossJoin { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsCurrentUtcTimestampSelection { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsExistsInSelect { get => throw null; }
            public override bool SupportsExpectedLobUsagePattern { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsInsertSelectIdentity { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override bool SupportsUnionAll { get => throw null; }
        }
        public class SybaseSQLAnywhere10Dialect : NHibernate.Dialect.Dialect
        {
            public override string AddColumnString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString AppendIdentitySelectToInsert(NHibernate.SqlCommand.SqlString insertSql) => throw null;
            public override bool AreStringComparisonsCaseInsensitive { get => throw null; }
            public override char CloseQuote { get => throw null; }
            public override string CreateTemporaryTablePostfix { get => throw null; }
            public override string CreateTemporaryTableString { get => throw null; }
            public SybaseSQLAnywhere10Dialect() => throw null;
            public override string CurrentTimestampSelectString { get => throw null; }
            public override string CurrentTimestampSQLFunctionName { get => throw null; }
            public override bool DoesReadCommittedCauseWritersToBlockReaders { get => throw null; }
            public override bool DoesRepeatableReadCauseReadersToBlockWriters { get => throw null; }
            public override bool DropConstraints { get => throw null; }
            public override string DropForeignKeyString { get => throw null; }
            protected override bool EscapeBackslashInStrings { get => throw null; set { } }
            public string ForReadOnlyString { get => throw null; }
            public string ForUpdateByLockString { get => throw null; }
            public override string ForUpdateNowaitString { get => throw null; }
            public override bool ForUpdateOfColumns { get => throw null; }
            public override string ForUpdateString { get => throw null; }
            protected static int GetAfterSelectInsertPoint(NHibernate.SqlCommand.SqlString sql) => throw null;
            public override NHibernate.Dialect.Schema.IDataBaseSchema GetDataBaseSchema(System.Data.Common.DbConnection connection) => throw null;
            public override string GetForUpdateString(NHibernate.LockMode lockMode) => throw null;
            public override NHibernate.SqlCommand.SqlString GetLimitString(NHibernate.SqlCommand.SqlString sql, NHibernate.SqlCommand.SqlString offset, NHibernate.SqlCommand.SqlString limit) => throw null;
            public override System.Data.Common.DbDataReader GetResultSet(System.Data.Common.DbCommand statement) => throw null;
            public override System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetResultSetAsync(System.Data.Common.DbCommand statement, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string IdentityColumnString { get => throw null; }
            public override string IdentitySelectString { get => throw null; }
            public override bool IsCurrentTimestampSelectStringCallable { get => throw null; }
            public override int MaxAliasLength { get => throw null; }
            public override string NoColumnsInsertString { get => throw null; }
            public override string NullColumnString { get => throw null; }
            public override bool OffsetStartsAtOne { get => throw null; }
            public override char OpenQuote { get => throw null; }
            public override bool? PerformTemporaryTableDDLInIsolation() => throw null;
            public override bool QualifyIndexName { get => throw null; }
            protected virtual void RegisterAggregationFunctions() => throw null;
            protected virtual void RegisterBitFunctions() => throw null;
            protected virtual void RegisterCharacterTypeMappings() => throw null;
            protected virtual void RegisterDateFunctions() => throw null;
            protected virtual void RegisterDateTimeTypeMappings() => throw null;
            protected virtual void RegisterFunctions() => throw null;
            protected virtual void RegisterKeywords() => throw null;
            protected virtual void RegisterMathFunctions() => throw null;
            protected virtual void RegisterMiscellaneousFunctions() => throw null;
            protected virtual void RegisterNumericTypeMappings() => throw null;
            public override int RegisterResultSetOutParameter(System.Data.Common.DbCommand statement, int position) => throw null;
            protected virtual void RegisterReverseNHibernateTypeMappings() => throw null;
            protected virtual void RegisterSoapFunctions() => throw null;
            protected virtual void RegisterStringFunctions() => throw null;
            protected virtual void RegisterXmlFunctions() => throw null;
            public override string SelectGUIDString { get => throw null; }
            public override bool SupportsCommentOn { get => throw null; }
            public override bool SupportsCurrentTimestampSelection { get => throw null; }
            public override bool SupportsEmptyInList { get => throw null; }
            public override bool SupportsExistsInSelect { get => throw null; }
            public override bool SupportsIdentityColumns { get => throw null; }
            public override bool SupportsInsertSelectIdentity { get => throw null; }
            public override bool SupportsLimit { get => throw null; }
            public override bool SupportsLimitOffset { get => throw null; }
            public override bool SupportsOuterJoinForUpdate { get => throw null; }
            public override bool SupportsResultSetPositionQueryMethodsOnForwardOnlyCursor { get => throw null; }
            public override bool SupportsTemporaryTables { get => throw null; }
            public override bool SupportsUnionAll { get => throw null; }
            public override bool SupportsVariableLimit { get => throw null; }
            public override long TimestampResolutionInTicks { get => throw null; }
            protected override bool UseNPrefixForUnicodeStrings { get => throw null; }
        }
        public class SybaseSQLAnywhere11Dialect : NHibernate.Dialect.SybaseSQLAnywhere10Dialect
        {
            public SybaseSQLAnywhere11Dialect() => throw null;
        }
        public class SybaseSQLAnywhere12Dialect : NHibernate.Dialect.SybaseSQLAnywhere11Dialect
        {
            public SybaseSQLAnywhere12Dialect() => throw null;
            public override string CurrentUtcTimestampSelectString { get => throw null; }
            public override string CurrentUtcTimestampSQLFunctionName { get => throw null; }
            public override string GetCreateSequenceString(string sequenceName) => throw null;
            public override string GetDropSequenceString(string sequenceName) => throw null;
            public override string GetSelectSequenceNextValString(string sequenceName) => throw null;
            public override string GetSequenceNextValString(string sequenceName) => throw null;
            public override string NoColumnsInsertString { get => throw null; }
            public override string QuerySequencesString { get => throw null; }
            protected override void RegisterDateFunctions() => throw null;
            protected override void RegisterDateTimeTypeMappings() => throw null;
            protected override void RegisterKeywords() => throw null;
            public override bool SupportsCurrentUtcTimestampSelection { get => throw null; }
            public override bool SupportsPooledSequences { get => throw null; }
            public override bool SupportsSequences { get => throw null; }
        }
        public class TypeNames
        {
            public TypeNames() => throw null;
            public string Get(System.Data.DbType typecode) => throw null;
            public string Get(System.Data.DbType typecode, int size, int precision, int scale) => throw null;
            public string GetLongest(System.Data.DbType typecode) => throw null;
            public const string LengthPlaceHolder = default;
            public const string PrecisionPlaceHolder = default;
            public void Put(System.Data.DbType typecode, int capacity, string value) => throw null;
            public void Put(System.Data.DbType typecode, string value) => throw null;
            public const string ScalePlaceHolder = default;
            public bool TryGet(System.Data.DbType typecode, out string typeName) => throw null;
            public bool TryGet(System.Data.DbType typecode, int size, int precision, int scale, out string typeName) => throw null;
        }
    }
    namespace Driver
    {
        public class BasicResultSetsCommand : NHibernate.Driver.IResultSetsCommand
        {
            public virtual void Append(NHibernate.SqlCommand.ISqlCommand command) => throw null;
            protected virtual void BindParameters(System.Data.Common.DbCommand command) => throw null;
            protected System.Collections.Generic.List<NHibernate.SqlCommand.ISqlCommand> Commands { get => throw null; }
            public BasicResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected void ForEachSqlCommand(System.Action<NHibernate.SqlCommand.ISqlCommand, int> actionToDo) => throw null;
            public virtual System.Data.Common.DbDataReader GetReader(int? commandTimeout) => throw null;
            public virtual System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetReaderAsync(int? commandTimeout, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool HasQueries { get => throw null; }
            protected NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public virtual NHibernate.SqlCommand.SqlString Sql { get => throw null; }
        }
        public class BatcherDataReaderWrapper : System.Data.Common.DbDataReader
        {
            public override void Close() => throw null;
            public static NHibernate.Driver.BatcherDataReaderWrapper Create(NHibernate.Engine.IBatcher batcher, System.Data.Common.DbCommand command) => throw null;
            public static System.Threading.Tasks.Task<NHibernate.Driver.BatcherDataReaderWrapper> CreateAsync(NHibernate.Engine.IBatcher batcher, System.Data.Common.DbCommand command, System.Threading.CancellationToken cancellationToken) => throw null;
            protected BatcherDataReaderWrapper(NHibernate.Engine.IBatcher batcher, System.Data.Common.DbCommand command) => throw null;
            public override int Depth { get => throw null; }
            public override bool Equals(object obj) => throw null;
            public override int FieldCount { get => throw null; }
            public override bool GetBoolean(int i) => throw null;
            public override byte GetByte(int i) => throw null;
            public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) => throw null;
            public override char GetChar(int i) => throw null;
            public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) => throw null;
            public override string GetDataTypeName(int i) => throw null;
            public override System.DateTime GetDateTime(int i) => throw null;
            protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null;
            public override decimal GetDecimal(int i) => throw null;
            public override double GetDouble(int i) => throw null;
            public override System.Collections.IEnumerator GetEnumerator() => throw null;
            public override System.Type GetFieldType(int i) => throw null;
            public override float GetFloat(int i) => throw null;
            public override System.Guid GetGuid(int i) => throw null;
            public override int GetHashCode() => throw null;
            public override short GetInt16(int i) => throw null;
            public override int GetInt32(int i) => throw null;
            public override long GetInt64(int i) => throw null;
            public override string GetName(int i) => throw null;
            public override int GetOrdinal(string name) => throw null;
            public override System.Data.DataTable GetSchemaTable() => throw null;
            public override string GetString(int i) => throw null;
            public override object GetValue(int i) => throw null;
            public override int GetValues(object[] values) => throw null;
            public override bool HasRows { get => throw null; }
            public override bool IsClosed { get => throw null; }
            public override bool IsDBNull(int i) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool NextResult() => throw null;
            public override System.Threading.Tasks.Task<bool> NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Read() => throw null;
            public override System.Threading.Tasks.Task<bool> ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override int RecordsAffected { get => throw null; }
            public override object this[int i] { get => throw null; }
            public override object this[string name] { get => throw null; }
        }
        public class CsharpSqliteDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public CsharpSqliteDriver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class DB2400Driver : NHibernate.Driver.ReflectionBasedDriver
        {
            public DB2400Driver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class DB2CoreDriver : NHibernate.Driver.DB2DriverBase
        {
            public DB2CoreDriver() : base(default(string)) => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class DB2Driver : NHibernate.Driver.DB2DriverBase
        {
            public DB2Driver() : base(default(string)) => throw null;
        }
        public abstract class DB2DriverBase : NHibernate.Driver.ReflectionBasedDriver
        {
            protected DB2DriverBase(string assemblyName) : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool SupportsMultipleQueries { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class DbProviderFactoryDriveConnectionCommandProvider : NHibernate.Driver.IDriveConnectionCommandProvider
        {
            public System.Data.Common.DbCommand CreateCommand() => throw null;
            public System.Data.Common.DbConnection CreateConnection() => throw null;
            public DbProviderFactoryDriveConnectionCommandProvider(System.Data.Common.DbProviderFactory dbProviderFactory) => throw null;
        }
        public class DotConnectMySqlDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public DotConnectMySqlDriver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public abstract class DriverBase : NHibernate.Driver.IDriver, NHibernate.Driver.ISqlParameterFormatter
        {
            public virtual void AdjustCommand(System.Data.Common.DbCommand command) => throw null;
            public virtual System.Data.Common.DbTransaction BeginTransaction(System.Data.IsolationLevel isolationLevel, System.Data.Common.DbConnection connection) => throw null;
            protected virtual System.Data.Common.DbParameter CloneParameter(System.Data.Common.DbCommand cmd, System.Data.Common.DbParameter originalParameter, NHibernate.SqlTypes.SqlType originalType) => throw null;
            public virtual int CommandTimeout { get => throw null; }
            public virtual void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public abstract System.Data.Common.DbCommand CreateCommand();
            public abstract System.Data.Common.DbConnection CreateConnection();
            protected DriverBase() => throw null;
            public virtual void ExpandQueryParameters(System.Data.Common.DbCommand cmd, NHibernate.SqlCommand.SqlString sqlString, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
            public string FormatNameForParameter(string parameterName) => throw null;
            public string FormatNameForSql(string parameterName) => throw null;
            public virtual System.Data.Common.DbCommand GenerateCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sqlString, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
            public System.Data.Common.DbParameter GenerateOutputParameter(System.Data.Common.DbCommand command) => throw null;
            public System.Data.Common.DbParameter GenerateParameter(System.Data.Common.DbCommand command, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            string NHibernate.Driver.ISqlParameterFormatter.GetParameterName(int index) => throw null;
            public virtual NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual NHibernate.Driver.SqlStringFormatter GetSqlStringFormatter() => throw null;
            public virtual bool HasDelayedDistributedTransactionCompletion { get => throw null; }
            protected virtual void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected bool IsPrepareSqlEnabled { get => throw null; }
            public virtual System.DateTime MinDate { get => throw null; }
            public abstract string NamedPrefix { get; }
            protected virtual void OnBeforePrepare(System.Data.Common.DbCommand command) => throw null;
            public void PrepareCommand(System.Data.Common.DbCommand command) => throw null;
            public void RemoveUnusedCommandParameters(System.Data.Common.DbCommand cmd, NHibernate.SqlCommand.SqlString sqlString) => throw null;
            public virtual bool RequiresTimeSpanForTime { get => throw null; }
            protected virtual void SetCommandTimeout(System.Data.Common.DbCommand cmd) => throw null;
            public virtual bool SupportsEnlistmentWhenAutoEnlistmentIsDisabled { get => throw null; }
            public virtual bool SupportsMultipleOpenReaders { get => throw null; }
            public virtual bool SupportsMultipleQueries { get => throw null; }
            public virtual bool SupportsNullEnlistment { get => throw null; }
            protected virtual bool SupportsPreparingCommands { get => throw null; }
            public virtual bool SupportsSystemTransactions { get => throw null; }
            public virtual System.Data.Common.DbCommand UnwrapDbCommand(System.Data.Common.DbCommand command) => throw null;
            public abstract bool UseNamedPrefixInParameter { get; }
            public abstract bool UseNamedPrefixInSql { get; }
        }
        public static partial class DriverExtensions
        {
            public static System.Data.Common.DbTransaction BeginTransaction(this NHibernate.Driver.IDriver driver, System.Data.IsolationLevel isolationLevel, System.Data.Common.DbConnection connection) => throw null;
            public static System.Data.Common.DbCommand UnwrapDbCommand(this NHibernate.Driver.IDriver driver, System.Data.Common.DbCommand command) => throw null;
        }
        public class FirebirdClientDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public void ClearPool(string connectionString) => throw null;
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public FirebirdClientDriver() : base(default(string), default(string), default(string)) => throw null;
            public override System.Data.Common.DbCommand GenerateCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sqlString, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool SupportsEnlistmentWhenAutoEnlistmentIsDisabled { get => throw null; }
            public override bool SupportsSystemTransactions { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class HanaColumnStoreDriver : NHibernate.Driver.HanaDriverBase
        {
            public HanaColumnStoreDriver() => throw null;
        }
        public abstract class HanaDriverBase : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider
        {
            System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; }
            protected HanaDriverBase() : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool SupportsNullEnlistment { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class HanaRowStoreDriver : NHibernate.Driver.HanaDriverBase
        {
            public HanaRowStoreDriver() => throw null;
            public override bool SupportsSystemTransactions { get => throw null; }
        }
        public interface IDriveConnectionCommandProvider
        {
            System.Data.Common.DbCommand CreateCommand();
            System.Data.Common.DbConnection CreateConnection();
        }
        public interface IDriver
        {
            void AdjustCommand(System.Data.Common.DbCommand command);
            void Configure(System.Collections.Generic.IDictionary<string, string> settings);
            System.Data.Common.DbConnection CreateConnection();
            void ExpandQueryParameters(System.Data.Common.DbCommand cmd, NHibernate.SqlCommand.SqlString sqlString, NHibernate.SqlTypes.SqlType[] parameterTypes);
            System.Data.Common.DbCommand GenerateCommand(System.Data.CommandType type, NHibernate.SqlCommand.SqlString sqlString, NHibernate.SqlTypes.SqlType[] parameterTypes);
            System.Data.Common.DbParameter GenerateParameter(System.Data.Common.DbCommand command, string name, NHibernate.SqlTypes.SqlType sqlType);
            NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session);
            bool HasDelayedDistributedTransactionCompletion { get; }
            System.DateTime MinDate { get; }
            void PrepareCommand(System.Data.Common.DbCommand command);
            void RemoveUnusedCommandParameters(System.Data.Common.DbCommand cmd, NHibernate.SqlCommand.SqlString sqlString);
            bool RequiresTimeSpanForTime { get; }
            bool SupportsEnlistmentWhenAutoEnlistmentIsDisabled { get; }
            bool SupportsMultipleOpenReaders { get; }
            bool SupportsMultipleQueries { get; }
            bool SupportsNullEnlistment { get; }
            bool SupportsSystemTransactions { get; }
        }
        public class IfxDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public IfxDriver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class IngresDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public IngresDriver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public interface IResultSetsCommand
        {
            void Append(NHibernate.SqlCommand.ISqlCommand command);
            System.Data.Common.DbDataReader GetReader(int? commandTimeout);
            System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetReaderAsync(int? commandTimeout, System.Threading.CancellationToken cancellationToken);
            bool HasQueries { get; }
            NHibernate.SqlCommand.SqlString Sql { get; }
        }
        public interface ISqlParameterFormatter
        {
            string GetParameterName(int index);
        }
        public class MicrosoftDataSqlClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider, NHibernate.AdoNet.IParameterAdjuster
        {
            public virtual void AdjustParameterForValue(System.Data.Common.DbParameter parameter, NHibernate.SqlTypes.SqlType sqlType, object value) => throw null;
            System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; }
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public MicrosoftDataSqlClientDriver() : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool HasDelayedDistributedTransactionCompletion { get => throw null; }
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsAnsiText(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsBlob(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsChar(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsText(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override System.DateTime MinDate { get => throw null; }
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool SupportsMultipleQueries { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class MySqlDataDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider
        {
            System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; }
            public MySqlDataDriver() : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.DateTime MinDate { get => throw null; }
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool SupportsMultipleQueries { get => throw null; }
            protected override bool SupportsPreparingCommands { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class NDataReader : System.Data.Common.DbDataReader
        {
            public override void Close() => throw null;
            public static NHibernate.Driver.NDataReader Create(System.Data.Common.DbDataReader reader, bool isMidstream) => throw null;
            public static System.Threading.Tasks.Task<NHibernate.Driver.NDataReader> CreateAsync(System.Data.Common.DbDataReader reader, bool isMidstream, System.Threading.CancellationToken cancellationToken) => throw null;
            protected NDataReader() => throw null;
            public override int Depth { get => throw null; }
            protected override void Dispose(bool disposing) => throw null;
            public override int FieldCount { get => throw null; }
            public override bool GetBoolean(int i) => throw null;
            public override byte GetByte(int i) => throw null;
            public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferOffset, int length) => throw null;
            public override char GetChar(int i) => throw null;
            public override long GetChars(int i, long fieldOffset, char[] buffer, int bufferOffset, int length) => throw null;
            public override string GetDataTypeName(int i) => throw null;
            public override System.DateTime GetDateTime(int i) => throw null;
            protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null;
            public override decimal GetDecimal(int i) => throw null;
            public override double GetDouble(int i) => throw null;
            public override System.Collections.IEnumerator GetEnumerator() => throw null;
            public override System.Type GetFieldType(int i) => throw null;
            public override float GetFloat(int i) => throw null;
            public override System.Guid GetGuid(int i) => throw null;
            public override short GetInt16(int i) => throw null;
            public override int GetInt32(int i) => throw null;
            public override long GetInt64(int i) => throw null;
            public override string GetName(int i) => throw null;
            public override int GetOrdinal(string name) => throw null;
            public override System.Data.DataTable GetSchemaTable() => throw null;
            public override string GetString(int i) => throw null;
            public override object GetValue(int i) => throw null;
            public override int GetValues(object[] values) => throw null;
            public override bool HasRows { get => throw null; }
            public override bool IsClosed { get => throw null; }
            public override bool IsDBNull(int i) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool NextResult() => throw null;
            public override System.Threading.Tasks.Task<bool> NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Read() => throw null;
            public override System.Threading.Tasks.Task<bool> ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override int RecordsAffected { get => throw null; }
            public override object this[string name] { get => throw null; }
            public override object this[int i] { get => throw null; }
        }
        public class NHybridDataReader : System.Data.Common.DbDataReader
        {
            public override void Close() => throw null;
            public static NHibernate.Driver.NHybridDataReader Create(System.Data.Common.DbDataReader reader) => throw null;
            public static NHibernate.Driver.NHybridDataReader Create(System.Data.Common.DbDataReader reader, bool inMemory) => throw null;
            public static System.Threading.Tasks.Task<NHibernate.Driver.NHybridDataReader> CreateAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null;
            public static System.Threading.Tasks.Task<NHibernate.Driver.NHybridDataReader> CreateAsync(System.Data.Common.DbDataReader reader, bool inMemory, System.Threading.CancellationToken cancellationToken) => throw null;
            protected NHybridDataReader() => throw null;
            public override int Depth { get => throw null; }
            protected override void Dispose(bool disposing) => throw null;
            public override int FieldCount { get => throw null; }
            public override bool GetBoolean(int i) => throw null;
            public override byte GetByte(int i) => throw null;
            public override long GetBytes(int i, long fieldOffset, byte[] buffer, int bufferoffset, int length) => throw null;
            public override char GetChar(int i) => throw null;
            public override long GetChars(int i, long fieldoffset, char[] buffer, int bufferoffset, int length) => throw null;
            public override string GetDataTypeName(int i) => throw null;
            public override System.DateTime GetDateTime(int i) => throw null;
            protected override System.Data.Common.DbDataReader GetDbDataReader(int ordinal) => throw null;
            public override decimal GetDecimal(int i) => throw null;
            public override double GetDouble(int i) => throw null;
            public override System.Collections.IEnumerator GetEnumerator() => throw null;
            public override System.Type GetFieldType(int i) => throw null;
            public override float GetFloat(int i) => throw null;
            public override System.Guid GetGuid(int i) => throw null;
            public override short GetInt16(int i) => throw null;
            public override int GetInt32(int i) => throw null;
            public override long GetInt64(int i) => throw null;
            public override string GetName(int i) => throw null;
            public override int GetOrdinal(string name) => throw null;
            public override System.Data.DataTable GetSchemaTable() => throw null;
            public override string GetString(int i) => throw null;
            public override object GetValue(int i) => throw null;
            public override int GetValues(object[] values) => throw null;
            public override bool HasRows { get => throw null; }
            public override bool IsClosed { get => throw null; }
            public override bool IsDBNull(int i) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDBNullAsync(int ordinal, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool IsMidstream { get => throw null; }
            public override bool NextResult() => throw null;
            public override System.Threading.Tasks.Task<bool> NextResultAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Read() => throw null;
            public override System.Threading.Tasks.Task<bool> ReadAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public void ReadIntoMemory() => throw null;
            public System.Threading.Tasks.Task ReadIntoMemoryAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override int RecordsAffected { get => throw null; }
            public System.Data.Common.DbDataReader Target { get => throw null; }
            public override object this[string name] { get => throw null; }
            public override object this[int i] { get => throw null; }
        }
        public class NpgsqlDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider
        {
            public override void AdjustCommand(System.Data.Common.DbCommand command) => throw null;
            System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; }
            public NpgsqlDriver() : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool HasDelayedDistributedTransactionCompletion { get => throw null; }
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool SupportsMultipleQueries { get => throw null; }
            public override bool SupportsNullEnlistment { get => throw null; }
            protected override bool SupportsPreparingCommands { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class OdbcDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public OdbcDriver() : base(default(string), default(string), default(string)) => throw null;
            public override bool HasDelayedDistributedTransactionCompletion { get => throw null; }
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override System.DateTime MinDate { get => throw null; }
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class OleDbDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public OleDbDriver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class OracleClientDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public OracleClientDriver() : base(default(string), default(string), default(string)) => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string NamedPrefix { get => throw null; }
            protected override void OnBeforePrepare(System.Data.Common.DbCommand command) => throw null;
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class OracleDataClientDriver : NHibernate.Driver.OracleDataClientDriverBase
        {
            public OracleDataClientDriver() : base(default(string)) => throw null;
        }
        public abstract class OracleDataClientDriverBase : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider
        {
            System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; }
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public override System.Data.Common.DbCommand CreateCommand() => throw null;
            protected OracleDataClientDriverBase(string assemblyName) : base(default(string), default(string), default(string)) => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string NamedPrefix { get => throw null; }
            protected override void OnBeforePrepare(System.Data.Common.DbCommand command) => throw null;
            public bool SuppressDecimalInvalidCastException { get => throw null; }
            public override System.Data.Common.DbCommand UnwrapDbCommand(System.Data.Common.DbCommand command) => throw null;
            public bool UseBinaryFloatingPointTypes { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
            public bool UseNPrefixedTypesForUnicode { get => throw null; }
        }
        public class OracleLiteDataClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider
        {
            System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; }
            public OracleLiteDataClientDriver() : base(default(string), default(string), default(string)) => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class OracleManagedDataClientDriver : NHibernate.Driver.OracleDataClientDriverBase
        {
            public OracleManagedDataClientDriver() : base(default(string)) => throw null;
            public override bool HasDelayedDistributedTransactionCompletion { get => throw null; }
        }
        public abstract class ReflectionBasedDriver : NHibernate.Driver.DriverBase
        {
            public override System.Data.Common.DbCommand CreateCommand() => throw null;
            public override System.Data.Common.DbConnection CreateConnection() => throw null;
            protected ReflectionBasedDriver(string driverAssemblyName, string connectionTypeName, string commandTypeName) => throw null;
            protected ReflectionBasedDriver(string providerInvariantName, string driverAssemblyName, string connectionTypeName, string commandTypeName) => throw null;
            protected System.Version DriverVersion { get => throw null; }
            protected const string ReflectionTypedProviderExceptionMessageTemplate = default;
        }
        public class ReflectionDriveConnectionCommandProvider : NHibernate.Driver.IDriveConnectionCommandProvider
        {
            public System.Data.Common.DbCommand CreateCommand() => throw null;
            public System.Data.Common.DbConnection CreateConnection() => throw null;
            public ReflectionDriveConnectionCommandProvider(System.Type connectionType, System.Type commandType) => throw null;
        }
        public class SapSQLAnywhere17Driver : NHibernate.Driver.ReflectionBasedDriver
        {
            public SapSQLAnywhere17Driver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class Sql2008ClientDriver : NHibernate.Driver.SqlClientDriver
        {
            public Sql2008ClientDriver() => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override System.DateTime MinDate { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
        }
        public class SqlClientDriver : NHibernate.Driver.ReflectionBasedDriver, NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider, NHibernate.AdoNet.IParameterAdjuster
        {
            public virtual void AdjustParameterForValue(System.Data.Common.DbParameter parameter, NHibernate.SqlTypes.SqlType sqlType, object value) => throw null;
            System.Type NHibernate.AdoNet.IEmbeddedBatcherFactoryProvider.BatcherFactoryClass { get => throw null; }
            public override void Configure(System.Collections.Generic.IDictionary<string, string> settings) => throw null;
            public SqlClientDriver() : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool HasDelayedDistributedTransactionCompletion { get => throw null; }
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsAnsiText(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsBlob(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsChar(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            protected static bool IsText(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public const byte MaxDateTime2 = 8;
            public const byte MaxDateTimeOffset = 10;
            public const byte MaxPrecision = 28;
            public const byte MaxScale = 5;
            public const int MaxSizeForAnsiClob = 2147483647;
            public const int MaxSizeForBlob = 2147483647;
            public const int MaxSizeForClob = 1073741823;
            public const int MaxSizeForLengthLimitedAnsiString = 8000;
            public const int MaxSizeForLengthLimitedBinary = 8000;
            public const int MaxSizeForLengthLimitedString = 4000;
            public const int MaxSizeForXml = 2147483647;
            public override System.DateTime MinDate { get => throw null; }
            public override string NamedPrefix { get => throw null; }
            protected static void SetDefaultParameterSize(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public static void SetVariableLengthParameterSize(System.Data.Common.DbParameter dbParam, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool SupportsMultipleQueries { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class SQLite20Driver : NHibernate.Driver.ReflectionBasedDriver
        {
            public override System.Data.Common.DbConnection CreateConnection() => throw null;
            public SQLite20Driver() : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool HasDelayedDistributedTransactionCompletion { get => throw null; }
            public override string NamedPrefix { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool SupportsMultipleQueries { get => throw null; }
            public override bool SupportsNullEnlistment { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class SqlServerCeDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public SqlServerCeDriver() : base(default(string), default(string), default(string)) => throw null;
            public override NHibernate.Driver.IResultSetsCommand GetResultSetsCommand(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected override void InitializeParameter(System.Data.Common.DbParameter dbParam, string name, NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override System.DateTime MinDate { get => throw null; }
            public override string NamedPrefix { get => throw null; }
            protected override void SetCommandTimeout(System.Data.Common.DbCommand cmd) => throw null;
            public override bool SupportsEnlistmentWhenAutoEnlistmentIsDisabled { get => throw null; }
            public override bool SupportsMultipleOpenReaders { get => throw null; }
            public override bool SupportsNullEnlistment { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class SqlStringFormatter : NHibernate.SqlCommand.ISqlStringVisitor
        {
            public string[] AssignedParameterNames { get => throw null; }
            public SqlStringFormatter(NHibernate.Driver.ISqlParameterFormatter formatter, string multipleQueriesSeparator) => throw null;
            public void Format(NHibernate.SqlCommand.SqlString text) => throw null;
            public string GetFormattedText() => throw null;
            public bool HasReturnParameter { get => throw null; }
            void NHibernate.SqlCommand.ISqlStringVisitor.Parameter(NHibernate.SqlCommand.Parameter parameter) => throw null;
            void NHibernate.SqlCommand.ISqlStringVisitor.String(string text) => throw null;
            void NHibernate.SqlCommand.ISqlStringVisitor.String(NHibernate.SqlCommand.SqlString sqlString) => throw null;
        }
        public class SybaseAdoNet45Driver : NHibernate.Driver.SybaseAseClientDriverBase
        {
            public SybaseAdoNet45Driver() : base(default(string)) => throw null;
        }
        public class SybaseAdoNet4Driver : NHibernate.Driver.SybaseAseClientDriverBase
        {
            public SybaseAdoNet4Driver() : base(default(string)) => throw null;
        }
        public class SybaseAsaClientDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public SybaseAsaClientDriver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class SybaseAseClientDriver : NHibernate.Driver.SybaseAseClientDriverBase
        {
            public SybaseAseClientDriver() : base(default(string)) => throw null;
        }
        public abstract class SybaseAseClientDriverBase : NHibernate.Driver.ReflectionBasedDriver
        {
            protected SybaseAseClientDriverBase(string assemblyName) : base(default(string), default(string), default(string)) => throw null;
            protected SybaseAseClientDriverBase(string providerInvariantName, string assemblyName, string connectionTypeName, string commandTypeName) : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class SybaseSQLAnywhereDotNet4Driver : NHibernate.Driver.ReflectionBasedDriver
        {
            public SybaseSQLAnywhereDotNet4Driver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
        public class SybaseSQLAnywhereDriver : NHibernate.Driver.ReflectionBasedDriver
        {
            public SybaseSQLAnywhereDriver() : base(default(string), default(string), default(string)) => throw null;
            public override string NamedPrefix { get => throw null; }
            public override bool RequiresTimeSpanForTime { get => throw null; }
            public override bool UseNamedPrefixInParameter { get => throw null; }
            public override bool UseNamedPrefixInSql { get => throw null; }
        }
    }
    public class DuplicateMappingException : NHibernate.MappingException
    {
        public DuplicateMappingException(string customMessage, string type, string name) : base(default(string)) => throw null;
        public DuplicateMappingException(string type, string name) : base(default(string)) => throw null;
        public DuplicateMappingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public string Name { get => throw null; }
        public string Type { get => throw null; }
    }
    public class EmptyInterceptor : NHibernate.IInterceptor
    {
        public virtual void AfterTransactionBegin(NHibernate.ITransaction tx) => throw null;
        public virtual void AfterTransactionCompletion(NHibernate.ITransaction tx) => throw null;
        public virtual void BeforeTransactionCompletion(NHibernate.ITransaction tx) => throw null;
        public EmptyInterceptor() => throw null;
        public virtual int[] FindDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types) => throw null;
        public virtual object GetEntity(string entityName, object id) => throw null;
        public virtual string GetEntityName(object entity) => throw null;
        public static readonly NHibernate.EmptyInterceptor Instance;
        public virtual object Instantiate(string clazz, object id) => throw null;
        public virtual bool? IsTransient(object entity) => throw null;
        public virtual void OnCollectionRecreate(object collection, object key) => throw null;
        public virtual void OnCollectionRemove(object collection, object key) => throw null;
        public virtual void OnCollectionUpdate(object collection, object key) => throw null;
        public virtual void OnDelete(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null;
        public virtual bool OnFlushDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types) => throw null;
        public virtual bool OnLoad(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null;
        public virtual NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql) => throw null;
        public virtual bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types) => throw null;
        public virtual void PostFlush(System.Collections.ICollection entities) => throw null;
        public virtual void PreFlush(System.Collections.ICollection entitites) => throw null;
        public virtual void SetSession(NHibernate.ISession session) => throw null;
    }
    namespace Engine
    {
        public abstract class AbstractLhsAssociationTypeSqlInfo : NHibernate.Engine.ILhsAssociationTypeSqlInfo
        {
            public string Alias { get => throw null; }
            protected AbstractLhsAssociationTypeSqlInfo(string alias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) => throw null;
            public string[] GetAliasedColumnNames(NHibernate.Type.IAssociationType type, int begin) => throw null;
            protected abstract string[] GetAliasedColumns();
            public string[] GetColumnNames(NHibernate.Type.IAssociationType type, int begin) => throw null;
            protected abstract string[] GetColumns();
            public abstract string GetTableName(NHibernate.Type.IAssociationType type);
            public NHibernate.Engine.IMapping Mapping { get => throw null; }
            public NHibernate.Persister.Entity.IOuterJoinLoadable Persister { get => throw null; }
        }
        public class ActionQueue
        {
            public void AddAction(NHibernate.Action.EntityInsertAction action) => throw null;
            public void AddAction(NHibernate.Action.EntityDeleteAction action) => throw null;
            public void AddAction(NHibernate.Action.EntityUpdateAction action) => throw null;
            public void AddAction(NHibernate.Action.CollectionRecreateAction action) => throw null;
            public void AddAction(NHibernate.Action.CollectionRemoveAction action) => throw null;
            public void AddAction(NHibernate.Action.CollectionUpdateAction action) => throw null;
            public void AddAction(NHibernate.Action.EntityIdentityInsertAction insert) => throw null;
            public void AddAction(NHibernate.Action.BulkOperationCleanupAction cleanupAction) => throw null;
            public System.Threading.Tasks.Task AddActionAsync(NHibernate.Action.BulkOperationCleanupAction cleanupAction, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public void AfterTransactionCompletion(bool success) => throw null;
            public System.Threading.Tasks.Task AfterTransactionCompletionAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool AreInsertionsOrDeletionsQueued { get => throw null; }
            public virtual bool AreTablesToBeUpdated(System.Collections.Generic.ISet<string> tables) => throw null;
            public void BeforeTransactionCompletion() => throw null;
            public System.Threading.Tasks.Task BeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void Clear() => throw null;
            public void ClearFromFlushNeededCheck(int previousCollectionRemovalSize) => throw null;
            public System.Collections.Generic.IList<NHibernate.Action.EntityDeleteAction> CloneDeletions() => throw null;
            public int CollectionCreationsCount { get => throw null; }
            public int CollectionRemovalsCount { get => throw null; }
            public int CollectionUpdatesCount { get => throw null; }
            public ActionQueue(NHibernate.Engine.ISessionImplementor session) => throw null;
            public int DeletionsCount { get => throw null; }
            public void Execute(NHibernate.Action.IExecutable executable) => throw null;
            public void ExecuteActions() => throw null;
            public System.Threading.Tasks.Task ExecuteActionsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task ExecuteAsync(NHibernate.Action.IExecutable executable, System.Threading.CancellationToken cancellationToken) => throw null;
            public void ExecuteInserts() => throw null;
            public System.Threading.Tasks.Task ExecuteInsertsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public bool HasAfterTransactionActions() => throw null;
            public bool HasAnyQueuedActions { get => throw null; }
            public bool HasBeforeTransactionActions() => throw null;
            public int InsertionsCount { get => throw null; }
            public void PrepareActions() => throw null;
            public System.Threading.Tasks.Task PrepareActionsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public void RegisterProcess(NHibernate.Action.IBeforeTransactionCompletionProcess process) => throw null;
            public void RegisterProcess(NHibernate.Action.IAfterTransactionCompletionProcess process) => throw null;
            public void RegisterProcess(NHibernate.Action.BeforeTransactionCompletionProcessDelegate process) => throw null;
            public void RegisterProcess(NHibernate.Action.AfterTransactionCompletionProcessDelegate process) => throw null;
            public void SortActions() => throw null;
            public void SortCollectionActions() => throw null;
            public override string ToString() => throw null;
            public int UpdatesCount { get => throw null; }
        }
        public class BatchFetchQueue
        {
            public void AddBatchLoadableCollection(NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.CollectionEntry ce) => throw null;
            public void AddBatchLoadableEntityKey(NHibernate.Engine.EntityKey key) => throw null;
            public void AddSubselect(NHibernate.Engine.EntityKey key, NHibernate.Engine.SubselectFetch subquery) => throw null;
            public void Clear() => throw null;
            public void ClearSubselects() => throw null;
            public BatchFetchQueue(NHibernate.Engine.IPersistenceContext context) => throw null;
            public object[] GetCollectionBatch(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, object id, int batchSize) => throw null;
            public System.Threading.Tasks.Task<object[]> GetCollectionBatchAsync(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, object id, int batchSize, System.Threading.CancellationToken cancellationToken) => throw null;
            public object[] GetEntityBatch(NHibernate.Persister.Entity.IEntityPersister persister, object id, int batchSize) => throw null;
            public System.Threading.Tasks.Task<object[]> GetEntityBatchAsync(NHibernate.Persister.Entity.IEntityPersister persister, object id, int batchSize, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Engine.SubselectFetch GetSubselect(NHibernate.Engine.EntityKey key) => throw null;
            public void RemoveBatchLoadableCollection(NHibernate.Engine.CollectionEntry ce) => throw null;
            public void RemoveBatchLoadableEntityKey(NHibernate.Engine.EntityKey key) => throw null;
            public void RemoveSubselect(NHibernate.Engine.EntityKey key) => throw null;
        }
        public sealed class Cascade
        {
            public void CascadeOn(NHibernate.Persister.Entity.IEntityPersister persister, object parent) => throw null;
            public void CascadeOn(NHibernate.Persister.Entity.IEntityPersister persister, object parent, object anything) => throw null;
            public System.Threading.Tasks.Task CascadeOnAsync(NHibernate.Persister.Entity.IEntityPersister persister, object parent, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task CascadeOnAsync(NHibernate.Persister.Entity.IEntityPersister persister, object parent, object anything, System.Threading.CancellationToken cancellationToken) => throw null;
            public Cascade(NHibernate.Engine.CascadingAction action, NHibernate.Engine.CascadePoint point, NHibernate.Event.IEventSource eventSource) => throw null;
        }
        public enum CascadePoint
        {
            AfterInsertBeforeDelete = 1,
            BeforeInsertAfterDelete = 2,
            AfterInsertBeforeDeleteViaCollection = 3,
            AfterUpdate = 0,
            BeforeFlush = 0,
            AfterEvict = 0,
            BeforeRefresh = 0,
            AfterLock = 0,
            BeforeMerge = 0,
        }
        public abstract class CascadeStyle : System.Runtime.Serialization.ISerializable
        {
            public static readonly NHibernate.Engine.CascadeStyle All;
            public static readonly NHibernate.Engine.CascadeStyle AllDeleteOrphan;
            public static readonly NHibernate.Engine.CascadeStyle Delete;
            public static readonly NHibernate.Engine.CascadeStyle DeleteOrphan;
            public abstract bool DoCascade(NHibernate.Engine.CascadingAction action);
            public static readonly NHibernate.Engine.CascadeStyle Evict;
            public static NHibernate.Engine.CascadeStyle GetCascadeStyle(string cascade) => throw null;
            void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public virtual bool HasOrphanDelete { get => throw null; }
            public static readonly NHibernate.Engine.CascadeStyle Lock;
            public static readonly NHibernate.Engine.CascadeStyle Merge;
            public sealed class MultipleCascadeStyle : NHibernate.Engine.CascadeStyle, System.Runtime.Serialization.ISerializable
            {
                public MultipleCascadeStyle(NHibernate.Engine.CascadeStyle[] styles) => throw null;
                public override bool DoCascade(NHibernate.Engine.CascadingAction action) => throw null;
                void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
                public override bool HasOrphanDelete { get => throw null; }
                public override bool ReallyDoCascade(NHibernate.Engine.CascadingAction action) => throw null;
                public override string ToString() => throw null;
            }
            public static readonly NHibernate.Engine.CascadeStyle None;
            public static readonly NHibernate.Engine.CascadeStyle Persist;
            public virtual bool ReallyDoCascade(NHibernate.Engine.CascadingAction action) => throw null;
            public static readonly NHibernate.Engine.CascadeStyle Refresh;
            public static readonly NHibernate.Engine.CascadeStyle Replicate;
            public static readonly NHibernate.Engine.CascadeStyle Update;
        }
        public abstract class CascadingAction
        {
            public abstract void Cascade(NHibernate.Event.IEventSource session, object child, string entityName, object anything, bool isCascadeDeleteEnabled);
            public abstract System.Threading.Tasks.Task CascadeAsync(NHibernate.Event.IEventSource session, object child, string entityName, object anything, bool isCascadeDeleteEnabled, System.Threading.CancellationToken cancellationToken);
            protected CascadingAction() => throw null;
            public static readonly NHibernate.Engine.CascadingAction Delete;
            public abstract bool DeleteOrphans { get; }
            public static readonly NHibernate.Engine.CascadingAction Evict;
            public abstract System.Collections.IEnumerable GetCascadableChildrenIterator(NHibernate.Event.IEventSource session, NHibernate.Type.CollectionType collectionType, object collection);
            public static System.Collections.IEnumerable GetLoadedElementsIterator(NHibernate.Engine.ISessionImplementor session, NHibernate.Type.CollectionType collectionType, object collection) => throw null;
            public static readonly NHibernate.Engine.CascadingAction Lock;
            public static readonly NHibernate.Engine.CascadingAction Merge;
            public virtual void NoCascade(NHibernate.Event.IEventSource session, object child, object parent, NHibernate.Persister.Entity.IEntityPersister persister, int propertyIndex) => throw null;
            public virtual System.Threading.Tasks.Task NoCascadeAsync(NHibernate.Event.IEventSource session, object child, object parent, NHibernate.Persister.Entity.IEntityPersister persister, int propertyIndex, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual bool PerformOnLazyProperty { get => throw null; }
            public static readonly NHibernate.Engine.CascadingAction Persist;
            public static readonly NHibernate.Engine.CascadingAction PersistOnFlush;
            public static readonly NHibernate.Engine.CascadingAction Refresh;
            public static readonly NHibernate.Engine.CascadingAction Replicate;
            public virtual bool RequiresNoCascadeChecking { get => throw null; }
            public static readonly NHibernate.Engine.CascadingAction SaveUpdate;
        }
        public class CollectionEntry
        {
            public void AfterAction(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public CollectionEntry(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection) => throw null;
            public CollectionEntry(NHibernate.Collection.IPersistentCollection collection, NHibernate.Persister.Collection.ICollectionPersister loadedPersister, object loadedKey, bool ignore) => throw null;
            public CollectionEntry(NHibernate.Persister.Collection.ICollectionPersister loadedPersister, object loadedKey) => throw null;
            public object CurrentKey { get => throw null; set { } }
            public NHibernate.Persister.Collection.ICollectionPersister CurrentPersister { get => throw null; set { } }
            public System.Collections.ICollection GetOrphans(string entityName, NHibernate.Collection.IPersistentCollection collection) => throw null;
            public System.Threading.Tasks.Task<System.Collections.ICollection> GetOrphansAsync(string entityName, NHibernate.Collection.IPersistentCollection collection, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool IsDorecreate { get => throw null; set { } }
            public bool IsDoremove { get => throw null; set { } }
            public bool IsDoupdate { get => throw null; set { } }
            public bool IsIgnore { get => throw null; }
            public bool IsProcessed { get => throw null; set { } }
            public bool IsReached { get => throw null; set { } }
            public bool IsSnapshotEmpty(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public object Key { get => throw null; }
            public object LoadedKey { get => throw null; }
            public NHibernate.Persister.Collection.ICollectionPersister LoadedPersister { get => throw null; }
            public void PostFlush(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public void PostInitialize(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public void PostInitialize(NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.IPersistenceContext persistenceContext) => throw null;
            public void PreFlush(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public System.Threading.Tasks.Task PreFlushAsync(NHibernate.Collection.IPersistentCollection collection, System.Threading.CancellationToken cancellationToken) => throw null;
            public string Role { get => throw null; set { } }
            public object Snapshot { get => throw null; }
            public override string ToString() => throw null;
            public bool WasDereferenced { get => throw null; }
        }
        public sealed class CollectionKey : System.Runtime.Serialization.IDeserializationCallback
        {
            public CollectionKey(NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public object Key { get => throw null; }
            public void OnDeserialization(object sender) => throw null;
            public string Role { get => throw null; }
            public override string ToString() => throw null;
        }
        public static class Collections
        {
            public static void ProcessReachableCollection(NHibernate.Collection.IPersistentCollection collection, NHibernate.Type.CollectionType type, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task ProcessReachableCollectionAsync(NHibernate.Collection.IPersistentCollection collection, NHibernate.Type.CollectionType type, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static void ProcessUnreachableCollection(NHibernate.Collection.IPersistentCollection coll, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task ProcessUnreachableCollectionAsync(NHibernate.Collection.IPersistentCollection coll, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public sealed class EntityEntry
        {
            public object[] DeletedState { get => throw null; set { } }
            public NHibernate.Engine.EntityKey EntityKey { get => throw null; }
            public string EntityName { get => throw null; }
            public bool ExistsInDatabase { get => throw null; }
            public void ForceLocked(object entity, object nextVersion) => throw null;
            public object GetLoadedValue(string propertyName) => throw null;
            public object Id { get => throw null; }
            public bool IsBeingReplicated { get => throw null; }
            public bool IsModifiableEntity() => throw null;
            public bool IsNullifiable(bool earlyInsert, NHibernate.Engine.ISessionImplementor session) => throw null;
            public bool IsReadOnly { get => throw null; }
            public object[] LoadedState { get => throw null; }
            public bool LoadedWithLazyPropertiesUnfetched { get => throw null; }
            public NHibernate.LockMode LockMode { get => throw null; set { } }
            public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; }
            public void PostDelete() => throw null;
            public void PostInsert() => throw null;
            public void PostUpdate(object entity, object[] updatedState, object nextVersion) => throw null;
            public bool RequiresDirtyCheck(object entity) => throw null;
            public object RowId { get => throw null; }
            public void SetReadOnly(bool readOnly, object entity) => throw null;
            public NHibernate.Engine.Status Status { get => throw null; set { } }
            public override string ToString() => throw null;
            public object Version { get => throw null; }
        }
        public sealed class EntityKey : System.Runtime.Serialization.IDeserializationCallback, System.IEquatable<NHibernate.Engine.EntityKey>, System.Runtime.Serialization.ISerializable
        {
            public EntityKey(object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            public string EntityName { get => throw null; }
            public override bool Equals(object other) => throw null;
            public bool Equals(NHibernate.Engine.EntityKey other) => throw null;
            public override int GetHashCode() => throw null;
            void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public object Identifier { get => throw null; }
            public bool IsBatchLoadable { get => throw null; }
            public void OnDeserialization(object sender) => throw null;
            public override string ToString() => throw null;
        }
        public class EntityUniqueKey : System.Runtime.Serialization.IDeserializationCallback
        {
            public EntityUniqueKey(string entityName, string uniqueKeyName, object semiResolvedKey, NHibernate.Type.IType keyType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public string EntityName { get => throw null; }
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Engine.EntityUniqueKey that) => throw null;
            public int GenerateHashCode() => throw null;
            public override int GetHashCode() => throw null;
            public object Key { get => throw null; }
            public void OnDeserialization(object sender) => throw null;
            public override string ToString() => throw null;
            public string UniqueKeyName { get => throw null; }
        }
        public class ExecuteUpdateResultCheckStyle
        {
            public static readonly NHibernate.Engine.ExecuteUpdateResultCheckStyle Count;
            public static NHibernate.Engine.ExecuteUpdateResultCheckStyle DetermineDefault(NHibernate.SqlCommand.SqlString customSql, bool callable) => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public static readonly NHibernate.Engine.ExecuteUpdateResultCheckStyle None;
            public static NHibernate.Engine.ExecuteUpdateResultCheckStyle Parse(string name) => throw null;
            public override string ToString() => throw null;
        }
        public class FilterDefinition
        {
            public FilterDefinition(string name, string defaultCondition, System.Collections.Generic.IDictionary<string, NHibernate.Type.IType> parameterTypes, bool useManyToOne) => throw null;
            public string DefaultFilterCondition { get => throw null; }
            public string FilterName { get => throw null; }
            public NHibernate.Type.IType GetParameterType(string parameterName) => throw null;
            public System.Collections.Generic.ICollection<string> ParameterNames { get => throw null; }
            public System.Collections.Generic.IDictionary<string, NHibernate.Type.IType> ParameterTypes { get => throw null; }
            public bool UseInManyToOne { get => throw null; }
        }
        public static class ForeignKeys
        {
            public static object GetEntityIdentifierIfNotUnsaved(string entityName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<object> GetEntityIdentifierIfNotUnsavedAsync(string entityName, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static bool IsNotTransientSlow(string entityName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<bool> IsNotTransientSlowAsync(string entityName, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static bool? IsTransientFast(string entityName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<bool?> IsTransientFastAsync(string entityName, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static bool IsTransientSlow(string entityName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<bool> IsTransientSlowAsync(string entityName, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public class Nullifier
            {
                public Nullifier(object self, bool isDelete, bool isEarlyInsert, NHibernate.Engine.ISessionImplementor session) => throw null;
                public void NullifyTransientReferences(object[] values, NHibernate.Type.IType[] types) => throw null;
                public System.Threading.Tasks.Task NullifyTransientReferencesAsync(object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken) => throw null;
            }
        }
        public interface IBatcher : System.IDisposable
        {
            void AbortBatch(System.Exception e);
            void AddToBatch(NHibernate.AdoNet.IExpectation expectation);
            System.Threading.Tasks.Task AddToBatchAsync(NHibernate.AdoNet.IExpectation expectation, System.Threading.CancellationToken cancellationToken);
            int BatchSize { get; set; }
            void CancelLastQuery();
            void CloseCommand(System.Data.Common.DbCommand cmd, System.Data.Common.DbDataReader reader);
            void CloseCommands();
            void CloseReader(System.Data.Common.DbDataReader reader);
            void ExecuteBatch();
            System.Threading.Tasks.Task ExecuteBatchAsync(System.Threading.CancellationToken cancellationToken);
            int ExecuteNonQuery(System.Data.Common.DbCommand cmd);
            System.Threading.Tasks.Task<int> ExecuteNonQueryAsync(System.Data.Common.DbCommand cmd, System.Threading.CancellationToken cancellationToken);
            System.Data.Common.DbDataReader ExecuteReader(System.Data.Common.DbCommand cmd);
            System.Threading.Tasks.Task<System.Data.Common.DbDataReader> ExecuteReaderAsync(System.Data.Common.DbCommand cmd, System.Threading.CancellationToken cancellationToken);
            bool HasOpenResources { get; }
            System.Data.Common.DbCommand PrepareBatchCommand(System.Data.CommandType commandType, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes);
            System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareBatchCommandAsync(System.Data.CommandType commandType, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes, System.Threading.CancellationToken cancellationToken);
            System.Data.Common.DbCommand PrepareCommand(System.Data.CommandType commandType, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes);
            System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareCommandAsync(System.Data.CommandType commandType, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes, System.Threading.CancellationToken cancellationToken);
            System.Data.Common.DbCommand PrepareQueryCommand(System.Data.CommandType commandType, NHibernate.SqlCommand.SqlString sql, NHibernate.SqlTypes.SqlType[] parameterTypes);
        }
        public class IdentifierValue
        {
            protected IdentifierValue() => throw null;
            public IdentifierValue(object value) => throw null;
            public virtual object GetDefaultValue(object currentValue) => throw null;
            public virtual bool? IsUnsaved(object id) => throw null;
            public static readonly NHibernate.Engine.IdentifierValue SaveAny;
            public static readonly NHibernate.Engine.IdentifierValue SaveNone;
            public static readonly NHibernate.Engine.IdentifierValue SaveNull;
            public static readonly NHibernate.Engine.IdentifierValue Undefined;
            public class UndefinedClass : NHibernate.Engine.IdentifierValue
            {
                public UndefinedClass() => throw null;
                public override object GetDefaultValue(object currentValue) => throw null;
                public override bool? IsUnsaved(object id) => throw null;
            }
        }
        public class IdPropertiesLhsAssociationTypeSqlInfo : NHibernate.Engine.AbstractLhsAssociationTypeSqlInfo
        {
            public IdPropertiesLhsAssociationTypeSqlInfo(string alias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) : base(default(string), default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.IMapping)) => throw null;
            protected override string[] GetAliasedColumns() => throw null;
            protected override string[] GetColumns() => throw null;
            public override string GetTableName(NHibernate.Type.IAssociationType type) => throw null;
        }
        public interface ILhsAssociationTypeSqlInfo
        {
            string[] GetAliasedColumnNames(NHibernate.Type.IAssociationType type, int begin);
            string[] GetColumnNames(NHibernate.Type.IAssociationType type, int begin);
            string GetTableName(NHibernate.Type.IAssociationType type);
        }
        public interface IMapping
        {
            NHibernate.Dialect.Dialect Dialect { get; }
            string GetIdentifierPropertyName(string className);
            NHibernate.Type.IType GetIdentifierType(string className);
            NHibernate.Type.IType GetReferencedPropertyType(string className, string propertyName);
            bool HasNonIdentifierPropertyNamedId(string className);
        }
        public interface IPersistenceContext
        {
            void AddChildParent(object child, object parent);
            void AddCollectionHolder(NHibernate.Collection.IPersistentCollection holder);
            void AddEntity(NHibernate.Engine.EntityKey key, object entity);
            void AddEntity(NHibernate.Engine.EntityUniqueKey euk, object entity);
            NHibernate.Engine.EntityEntry AddEntity(object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched);
            NHibernate.Engine.EntityEntry AddEntry(object entity, NHibernate.Engine.Status status, object[] loadedState, object rowId, object id, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched);
            NHibernate.Engine.CollectionEntry AddInitializedCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object id);
            void AddInitializedDetachedCollection(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection);
            void AddNewCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection);
            void AddNonLazyCollection(NHibernate.Collection.IPersistentCollection collection);
            void AddNullProperty(NHibernate.Engine.EntityKey ownerKey, string propertyName);
            void AddProxy(NHibernate.Engine.EntityKey key, NHibernate.Proxy.INHibernateProxy proxy);
            void AddUninitializedCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object id);
            void AddUninitializedDetachedCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection);
            void AddUnownedCollection(NHibernate.Engine.CollectionKey key, NHibernate.Collection.IPersistentCollection collection);
            void AfterLoad();
            void AfterTransactionCompletion();
            NHibernate.Engine.BatchFetchQueue BatchFetchQueue { get; }
            void BeforeLoad();
            int CascadeLevel { get; }
            void CheckUniqueness(NHibernate.Engine.EntityKey key, object obj);
            void Clear();
            System.Collections.IDictionary CollectionEntries { get; }
            System.Collections.Generic.IDictionary<NHibernate.Engine.CollectionKey, NHibernate.Collection.IPersistentCollection> CollectionsByKey { get; }
            bool ContainsCollection(NHibernate.Collection.IPersistentCollection collection);
            bool ContainsEntity(NHibernate.Engine.EntityKey key);
            bool ContainsProxy(NHibernate.Proxy.INHibernateProxy proxy);
            int DecrementCascadeLevel();
            bool DefaultReadOnly { get; set; }
            System.Collections.Generic.IDictionary<NHibernate.Engine.EntityKey, object> EntitiesByKey { get; }
            System.Collections.IDictionary EntityEntries { get; }
            bool Flushing { get; set; }
            object[] GetCachedDatabaseSnapshot(NHibernate.Engine.EntityKey key);
            NHibernate.Collection.IPersistentCollection GetCollection(NHibernate.Engine.CollectionKey collectionKey);
            NHibernate.Engine.CollectionEntry GetCollectionEntry(NHibernate.Collection.IPersistentCollection coll);
            NHibernate.Engine.CollectionEntry GetCollectionEntryOrNull(object collection);
            NHibernate.Collection.IPersistentCollection GetCollectionHolder(object array);
            object GetCollectionOwner(object key, NHibernate.Persister.Collection.ICollectionPersister collectionPersister);
            object[] GetDatabaseSnapshot(object id, NHibernate.Persister.Entity.IEntityPersister persister);
            System.Threading.Tasks.Task<object[]> GetDatabaseSnapshotAsync(object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken);
            object GetEntity(NHibernate.Engine.EntityKey key);
            object GetEntity(NHibernate.Engine.EntityUniqueKey euk);
            NHibernate.Engine.EntityEntry GetEntry(object entity);
            object GetIndexInOwner(string entity, string property, object childObject, System.Collections.IDictionary mergeMap);
            object GetLoadedCollectionOwnerIdOrNull(NHibernate.Collection.IPersistentCollection collection);
            object GetLoadedCollectionOwnerOrNull(NHibernate.Collection.IPersistentCollection collection);
            object[] GetNaturalIdSnapshot(object id, NHibernate.Persister.Entity.IEntityPersister persister);
            System.Threading.Tasks.Task<object[]> GetNaturalIdSnapshotAsync(object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken);
            object GetOwnerId(string entity, string property, object childObject, System.Collections.IDictionary mergeMap);
            object GetProxy(NHibernate.Engine.EntityKey key);
            object GetSnapshot(NHibernate.Collection.IPersistentCollection coll);
            bool HasNonReadOnlyEntities { get; }
            int IncrementCascadeLevel();
            void InitializeNonLazyCollections();
            System.Threading.Tasks.Task InitializeNonLazyCollectionsAsync(System.Threading.CancellationToken cancellationToken);
            bool IsEntryFor(object entity);
            bool IsLoadFinished { get; }
            bool IsPropertyNull(NHibernate.Engine.EntityKey ownerKey, string propertyName);
            bool IsReadOnly(object entityOrProxy);
            bool IsStateless { get; }
            NHibernate.Engine.Loading.LoadContexts LoadContexts { get; }
            object NarrowProxy(NHibernate.Proxy.INHibernateProxy proxy, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey key, object obj);
            System.Collections.Generic.ISet<NHibernate.Engine.EntityKey> NullifiableEntityKeys { get; }
            object ProxyFor(NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey key, object impl);
            object ProxyFor(object impl);
            bool ReassociateIfUninitializedProxy(object value);
            void ReassociateProxy(object value, object id);
            void RemoveChildParent(object child);
            NHibernate.Collection.IPersistentCollection RemoveCollectionHolder(object array);
            object RemoveEntity(NHibernate.Engine.EntityKey key);
            NHibernate.Engine.EntityEntry RemoveEntry(object entity);
            object RemoveProxy(NHibernate.Engine.EntityKey key);
            void ReplaceDelayedEntityIdentityInsertKeys(NHibernate.Engine.EntityKey oldKey, object generatedId);
            NHibernate.Engine.ISessionImplementor Session { get; }
            void SetEntryStatus(NHibernate.Engine.EntityEntry entry, NHibernate.Engine.Status status);
            void SetReadOnly(object entityOrProxy, bool readOnly);
            object Unproxy(object maybeProxy);
            object UnproxyAndReassociate(object maybeProxy);
            System.Threading.Tasks.Task<object> UnproxyAndReassociateAsync(object maybeProxy, System.Threading.CancellationToken cancellationToken);
            NHibernate.Collection.IPersistentCollection UseUnownedCollection(NHibernate.Engine.CollectionKey key);
        }
        public interface ISessionFactoryImplementor : System.IDisposable, NHibernate.Engine.IMapping, NHibernate.ISessionFactory
        {
            NHibernate.Connection.IConnectionProvider ConnectionProvider { get; }
            NHibernate.Context.ICurrentSessionContext CurrentSessionContext { get; }
            NHibernate.Proxy.IEntityNotFoundDelegate EntityNotFoundDelegate { get; }
            System.Collections.Generic.IDictionary<string, NHibernate.Cache.ICache> GetAllSecondLevelCacheRegions();
            NHibernate.Persister.Collection.ICollectionPersister GetCollectionPersister(string role);
            System.Collections.Generic.ISet<string> GetCollectionRolesByEntityParticipant(string entityName);
            NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName);
            NHibernate.Id.IIdentifierGenerator GetIdentifierGenerator(string rootEntityName);
            string[] GetImplementors(string entityOrClassName);
            string GetImportedClassName(string name);
            NHibernate.Engine.NamedQueryDefinition GetNamedQuery(string queryName);
            NHibernate.Engine.NamedSQLQueryDefinition GetNamedSQLQuery(string queryName);
            NHibernate.Cache.IQueryCache GetQueryCache(string regionName);
            NHibernate.Engine.ResultSetMappingDefinition GetResultSetMapping(string resultSetRef);
            string[] GetReturnAliases(string queryString);
            NHibernate.Type.IType[] GetReturnTypes(string queryString);
            NHibernate.Cache.ICache GetSecondLevelCacheRegion(string regionName);
            NHibernate.IInterceptor Interceptor { get; }
            NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, bool flushBeforeCompletionEnabled, bool autoCloseSessionEnabled, NHibernate.ConnectionReleaseMode connectionReleaseMode);
            NHibernate.Cache.IQueryCache QueryCache { get; }
            NHibernate.Engine.Query.QueryPlanCache QueryPlanCache { get; }
            NHibernate.Cfg.Settings Settings { get; }
            NHibernate.Exceptions.ISQLExceptionConverter SQLExceptionConverter { get; }
            NHibernate.Dialect.Function.SQLFunctionRegistry SQLFunctionRegistry { get; }
            NHibernate.Stat.IStatisticsImplementor StatisticsImplementor { get; }
            NHibernate.Transaction.ITransactionFactory TransactionFactory { get; }
            NHibernate.Persister.Entity.IEntityPersister TryGetEntityPersister(string entityName);
            string TryGetGuessEntityName(System.Type implementor);
            NHibernate.Cache.UpdateTimestampsCache UpdateTimestampsCache { get; }
        }
        public interface ISessionImplementor
        {
            void AfterTransactionBegin(NHibernate.ITransaction tx);
            void AfterTransactionCompletion(bool successful, NHibernate.ITransaction tx);
            System.Threading.Tasks.Task AfterTransactionCompletionAsync(bool successful, NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken);
            NHibernate.Engine.IBatcher Batcher { get; }
            void BeforeTransactionCompletion(NHibernate.ITransaction tx);
            System.Threading.Tasks.Task BeforeTransactionCompletionAsync(NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken);
            string BestGuessEntityName(object entity);
            NHibernate.CacheMode CacheMode { get; set; }
            void CloseSessionFromSystemTransaction();
            System.Data.Common.DbConnection Connection { get; }
            NHibernate.AdoNet.ConnectionManager ConnectionManager { get; }
            NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression);
            System.Threading.Tasks.Task<NHibernate.IQuery> CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken);
            NHibernate.IQuery CreateQuery(NHibernate.IQueryExpression queryExpression);
            System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get; }
            System.Collections.IEnumerable Enumerable(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters);
            System.Collections.Generic.IEnumerable<T> Enumerable<T>(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters queryParameters);
            System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            System.Collections.IEnumerable EnumerableFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            System.Collections.Generic.IEnumerable<T> EnumerableFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            int ExecuteNativeUpdate(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.QueryParameters queryParameters);
            System.Threading.Tasks.Task<int> ExecuteNativeUpdateAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            int ExecuteUpdate(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters queryParameters);
            System.Threading.Tasks.Task<int> ExecuteUpdateAsync(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            NHibernate.Engine.ISessionFactoryImplementor Factory { get; }
            string FetchProfile { get; set; }
            void Flush();
            System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken);
            void FlushBeforeTransactionCompletion();
            System.Threading.Tasks.Task FlushBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken);
            NHibernate.FlushMode FlushMode { get; set; }
            NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get; }
            NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get; }
            NHibernate.Cache.CacheKey GenerateCacheKey(object id, NHibernate.Type.IType type, string entityOrRoleName);
            NHibernate.Engine.EntityKey GenerateEntityKey(object id, NHibernate.Persister.Entity.IEntityPersister persister);
            object GetContextEntityIdentifier(object obj);
            NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName, object obj);
            object GetEntityUsingInterceptor(NHibernate.Engine.EntityKey key);
            System.Threading.Tasks.Task<object> GetEntityUsingInterceptorAsync(NHibernate.Engine.EntityKey key, System.Threading.CancellationToken cancellationToken);
            NHibernate.Type.IType GetFilterParameterType(string filterParameterName);
            object GetFilterParameterValue(string filterParameterName);
            NHibernate.IQuery GetNamedQuery(string queryName);
            NHibernate.IQuery GetNamedSQLQuery(string name);
            NHibernate.Hql.IQueryTranslator[] GetQueries(NHibernate.IQueryExpression query, bool scalar);
            System.Threading.Tasks.Task<NHibernate.Hql.IQueryTranslator[]> GetQueriesAsync(NHibernate.IQueryExpression query, bool scalar, System.Threading.CancellationToken cancellationToken);
            string GuessEntityName(object entity);
            object ImmediateLoad(string entityName, object id);
            System.Threading.Tasks.Task<object> ImmediateLoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken);
            void Initialize();
            void InitializeCollection(NHibernate.Collection.IPersistentCollection collection, bool writing);
            System.Threading.Tasks.Task InitializeCollectionAsync(NHibernate.Collection.IPersistentCollection collection, bool writing, System.Threading.CancellationToken cancellationToken);
            object Instantiate(string entityName, object id);
            NHibernate.IInterceptor Interceptor { get; }
            object InternalLoad(string entityName, object id, bool eager, bool isNullable);
            System.Threading.Tasks.Task<object> InternalLoadAsync(string entityName, object id, bool eager, bool isNullable, System.Threading.CancellationToken cancellationToken);
            bool IsClosed { get; }
            bool IsConnected { get; }
            bool IsEventSource { get; }
            bool IsOpen { get; }
            void JoinTransaction();
            System.Collections.IList List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters);
            void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results);
            System.Collections.Generic.IList<T> List<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters);
            System.Collections.Generic.IList<T> List<T>(NHibernate.Impl.CriteriaImpl criteria);
            void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results);
            System.Collections.IList List(NHibernate.Impl.CriteriaImpl criteria);
            System.Collections.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters);
            void List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results);
            System.Collections.Generic.IList<T> List<T>(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters);
            System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results);
            System.Collections.Generic.IList<T> ListCustomQuery<T>(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters);
            System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListCustomQueryAsync<T>(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            NHibernate.Event.EventListeners Listeners { get; }
            System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            System.Collections.IList ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters);
            System.Collections.Generic.IList<T> ListFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            System.Threading.Tasks.Task<System.Collections.IList> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.IList> ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            NHibernate.Engine.IPersistenceContext PersistenceContext { get; }
            System.Guid SessionId { get; }
            long Timestamp { get; }
            NHibernate.Transaction.ITransactionContext TransactionContext { get; set; }
            bool TransactionInProgress { get; }
        }
        public static class JoinHelper
        {
            public static NHibernate.Engine.ILhsAssociationTypeSqlInfo GetIdLhsSqlInfo(string alias, NHibernate.Persister.Entity.IOuterJoinLoadable lhsPersister, NHibernate.Engine.IMapping mapping) => throw null;
            public static NHibernate.Engine.ILhsAssociationTypeSqlInfo GetLhsSqlInfo(string alias, int property, NHibernate.Persister.Entity.IOuterJoinLoadable lhsPersister, NHibernate.Engine.IMapping mapping) => throw null;
            public static string[] GetRHSColumnNames(NHibernate.Type.IAssociationType type, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public static string[] GetRHSColumnNames(NHibernate.Persister.Entity.IJoinable joinable, NHibernate.Type.IAssociationType type) => throw null;
        }
        public class JoinSequence
        {
            public NHibernate.Engine.JoinSequence AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null;
            public NHibernate.Engine.JoinSequence AddCondition(string alias, string[] columns, string condition, bool appendParameter) => throw null;
            public NHibernate.Engine.JoinSequence AddJoin(NHibernate.Type.IAssociationType associationType, string alias, NHibernate.SqlCommand.JoinType joinType, string[] referencingKey) => throw null;
            public NHibernate.Engine.JoinSequence AddJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement) => throw null;
            public NHibernate.Engine.JoinSequence Copy() => throw null;
            public JoinSequence(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
            public NHibernate.Engine.JoinSequence GetFromPart() => throw null;
            public interface ISelector
            {
                bool IncludeSubclasses(string alias);
            }
            public bool IsThetaStyle { get => throw null; }
            public int JoinCount { get => throw null; }
            public NHibernate.Engine.JoinSequence SetNext(NHibernate.Engine.JoinSequence next) => throw null;
            public NHibernate.Engine.JoinSequence SetRoot(NHibernate.Persister.Entity.IJoinable joinable, string alias) => throw null;
            public NHibernate.Engine.JoinSequence SetSelector(NHibernate.Engine.JoinSequence.ISelector s) => throw null;
            public NHibernate.Engine.JoinSequence SetUseThetaStyle(bool useThetaStyle) => throw null;
            public NHibernate.SqlCommand.JoinFragment ToJoinFragment() => throw null;
            public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, bool includeExtraJoins) => throw null;
            public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, bool includeAllSubclassJoins, NHibernate.SqlCommand.SqlString withClause) => throw null;
            public NHibernate.SqlCommand.JoinFragment ToJoinFragment(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, bool includeExtraJoins, NHibernate.SqlCommand.SqlString withClauseFragment, string withClauseJoinAlias) => throw null;
            public override string ToString() => throw null;
        }
        namespace Loading
        {
            public class CollectionLoadContext
            {
                public CollectionLoadContext(NHibernate.Engine.Loading.LoadContexts loadContexts, System.Data.Common.DbDataReader resultSet) => throw null;
                public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache) => throw null;
                public void EndLoadingCollections(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, NHibernate.Cache.CacheBatcher cacheBatcher) => throw null;
                public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task EndLoadingCollectionsAsync(NHibernate.Persister.Collection.ICollectionPersister persister, bool skipCache, NHibernate.Cache.CacheBatcher cacheBatcher, System.Threading.CancellationToken cancellationToken) => throw null;
                public NHibernate.Collection.IPersistentCollection GetLoadingCollection(NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
                public NHibernate.Engine.Loading.LoadContexts LoadContext { get => throw null; }
                public System.Data.Common.DbDataReader ResultSet { get => throw null; }
                public override string ToString() => throw null;
            }
            public class LoadContexts
            {
                public virtual void Cleanup(System.Data.Common.DbDataReader resultSet) => throw null;
                public void Cleanup() => throw null;
                public LoadContexts(NHibernate.Engine.IPersistenceContext persistenceContext) => throw null;
                public NHibernate.Engine.Loading.CollectionLoadContext GetCollectionLoadContext(System.Data.Common.DbDataReader resultSet) => throw null;
                public bool HasLoadingCollectionEntries { get => throw null; }
                public bool HasRegisteredLoadingCollectionEntries { get => throw null; }
                public NHibernate.Collection.IPersistentCollection LocateLoadingCollection(NHibernate.Persister.Collection.ICollectionPersister persister, object ownerKey) => throw null;
                public NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; }
            }
            public class LoadingCollectionEntry
            {
                public NHibernate.Collection.IPersistentCollection Collection { get => throw null; }
                public LoadingCollectionEntry(System.Data.Common.DbDataReader resultSet, NHibernate.Persister.Collection.ICollectionPersister persister, object key, NHibernate.Collection.IPersistentCollection collection) => throw null;
                public object Key { get => throw null; }
                public NHibernate.Persister.Collection.ICollectionPersister Persister { get => throw null; }
                public System.Data.Common.DbDataReader ResultSet { get => throw null; }
                public bool StopLoading { get => throw null; set { } }
                public override string ToString() => throw null;
            }
        }
        public class NamedQueryDefinition
        {
            public NHibernate.CacheMode? CacheMode { get => throw null; }
            public string CacheRegion { get => throw null; }
            public string Comment { get => throw null; }
            public NamedQueryDefinition(string query, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, bool readOnly, string comment, System.Collections.Generic.IDictionary<string, string> parameterTypes) => throw null;
            public NamedQueryDefinition(string query, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary<string, string> parameterTypes) => throw null;
            public int FetchSize { get => throw null; }
            public NHibernate.FlushMode FlushMode { get => throw null; }
            public bool IsCacheable { get => throw null; }
            public bool IsReadOnly { get => throw null; }
            public System.Collections.Generic.IDictionary<string, string> ParameterTypes { get => throw null; }
            public string Query { get => throw null; }
            public string QueryString { get => throw null; }
            public int Timeout { get => throw null; }
            public override string ToString() => throw null;
        }
        public class NamedSQLQueryDefinition : NHibernate.Engine.NamedQueryDefinition
        {
            public NamedSQLQueryDefinition(string query, NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, System.Collections.Generic.IList<string> querySpaces, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary<string, string> parameterTypes, bool callable) : base(default(string), default(bool), default(string), default(int), default(int), default(NHibernate.FlushMode), default(bool), default(string), default(System.Collections.Generic.IDictionary<string, string>)) => throw null;
            public NamedSQLQueryDefinition(string query, string resultSetRef, System.Collections.Generic.IList<string> querySpaces, bool cacheable, string cacheRegion, int timeout, int fetchSize, NHibernate.FlushMode flushMode, NHibernate.CacheMode? cacheMode, bool readOnly, string comment, System.Collections.Generic.IDictionary<string, string> parameterTypes, bool callable) : base(default(string), default(bool), default(string), default(int), default(int), default(NHibernate.FlushMode), default(bool), default(string), default(System.Collections.Generic.IDictionary<string, string>)) => throw null;
            public bool IsCallable { get => throw null; }
            public NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] QueryReturns { get => throw null; }
            public System.Collections.Generic.IList<string> QuerySpaces { get => throw null; }
            public string ResultSetRef { get => throw null; }
        }
        public sealed class Nullability
        {
            public void CheckNullability(object[] values, NHibernate.Persister.Entity.IEntityPersister persister, bool isUpdate) => throw null;
            public Nullability(NHibernate.Engine.ISessionImplementor session) => throw null;
        }
        public static partial class PersistenceContextExtensions
        {
            public static NHibernate.Engine.EntityEntry AddEntity(this NHibernate.Engine.IPersistenceContext context, object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement) => throw null;
            public static NHibernate.Engine.EntityEntry AddEntry(this NHibernate.Engine.IPersistenceContext context, object entity, NHibernate.Engine.Status status, object[] loadedState, object rowId, object id, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement) => throw null;
        }
        public class PropertiesLhsAssociationTypeSqlInfo : NHibernate.Engine.AbstractLhsAssociationTypeSqlInfo
        {
            public PropertiesLhsAssociationTypeSqlInfo(string alias, int propertyIdx, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.IMapping mapping) : base(default(string), default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.IMapping)) => throw null;
            protected override string[] GetAliasedColumns() => throw null;
            protected override string[] GetColumns() => throw null;
            public override string GetTableName(NHibernate.Type.IAssociationType type) => throw null;
        }
        namespace Query
        {
            public static class CallableParser
            {
                public class Detail
                {
                    public Detail() => throw null;
                    public string FunctionName;
                    public bool HasReturn;
                    public bool IsCallable;
                }
                public static NHibernate.Engine.Query.CallableParser.Detail Parse(string sqlString) => throw null;
            }
            public class FilterQueryPlan : NHibernate.Engine.Query.QueryExpressionPlan
            {
                public string CollectionRole { get => throw null; }
                public override NHibernate.Engine.Query.QueryExpressionPlan Copy(NHibernate.IQueryExpression expression) => throw null;
                public FilterQueryPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null;
                protected FilterQueryPlan(NHibernate.Engine.Query.FilterQueryPlan source, NHibernate.IQueryExpression expression) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null;
            }
            public class HQLQueryPlan : NHibernate.Engine.Query.IQueryPlan
            {
                protected HQLQueryPlan(string sourceQuery, NHibernate.Hql.IQueryTranslator[] translators) => throw null;
                protected static readonly NHibernate.INHibernateLogger Log;
                public NHibernate.Engine.Query.ParameterMetadata ParameterMetadata { get => throw null; }
                public int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<int> PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Collections.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null;
                public System.Collections.Generic.IEnumerable<T> PerformIterate<T>(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null;
                public System.Threading.Tasks.Task<System.Collections.IEnumerable> PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> PerformIterateAsync<T>(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
                public void PerformList(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Collections.IList results) => throw null;
                public System.Threading.Tasks.Task PerformListAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                public NHibernate.Engine.Query.ReturnMetadata ReturnMetadata { get => throw null; }
                public string[] SqlStrings { get => throw null; }
                public NHibernate.Hql.IQueryTranslator[] Translators { get => throw null; }
            }
            public interface IQueryExpressionPlan : NHibernate.Engine.Query.IQueryPlan
            {
                NHibernate.IQueryExpression QueryExpression { get; }
            }
            public interface IQueryPlan
            {
                NHibernate.Engine.Query.ParameterMetadata ParameterMetadata { get; }
                int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl);
                System.Threading.Tasks.Task<int> PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Threading.CancellationToken cancellationToken);
                System.Collections.Generic.IEnumerable<T> PerformIterate<T>(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session);
                System.Collections.IEnumerable PerformIterate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session);
                System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> PerformIterateAsync<T>(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken);
                System.Threading.Tasks.Task<System.Collections.IEnumerable> PerformIterateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken);
                void PerformList(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Collections.IList results);
                System.Threading.Tasks.Task PerformListAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor statelessSessionImpl, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
                System.Collections.Generic.ISet<string> QuerySpaces { get; }
                NHibernate.Engine.Query.ReturnMetadata ReturnMetadata { get; }
                NHibernate.Hql.IQueryTranslator[] Translators { get; }
            }
            public class NamedParameterDescriptor
            {
                public NamedParameterDescriptor(string name, NHibernate.Type.IType expectedType, bool jpaStyle) => throw null;
                public NHibernate.Type.IType ExpectedType { get => throw null; }
                public bool JpaStyle { get => throw null; }
                public string Name { get => throw null; }
            }
            public class NativeSQLQueryPlan
            {
                public NativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Loader.Custom.Sql.SQLCustomQuery CustomQuery { get => throw null; }
                public int PerformExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<int> PerformExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public string SourceQuery { get => throw null; }
            }
            public class OrdinalParameterDescriptor
            {
                public OrdinalParameterDescriptor(int ordinalPosition, NHibernate.Type.IType expectedType) => throw null;
                public NHibernate.Type.IType ExpectedType { get => throw null; }
                public int OrdinalPosition { get => throw null; }
            }
            public class ParameterMetadata
            {
                public ParameterMetadata(System.Collections.Generic.IEnumerable<NHibernate.Engine.Query.OrdinalParameterDescriptor> ordinalDescriptors, System.Collections.Generic.IDictionary<string, NHibernate.Engine.Query.NamedParameterDescriptor> namedDescriptorMap) => throw null;
                public NHibernate.Engine.Query.NamedParameterDescriptor GetNamedParameterDescriptor(string name) => throw null;
                public NHibernate.Type.IType GetNamedParameterExpectedType(string name) => throw null;
                public NHibernate.Engine.Query.OrdinalParameterDescriptor GetOrdinalParameterDescriptor(int position) => throw null;
                public NHibernate.Type.IType GetOrdinalParameterExpectedType(int position) => throw null;
                public System.Collections.Generic.ICollection<string> NamedParameterNames { get => throw null; }
                public int OrdinalParameterCount { get => throw null; }
            }
            public class ParameterParser
            {
                public interface IRecognizer
                {
                    void JpaPositionalParameter(string name, int position);
                    void NamedParameter(string name, int position);
                    void OrdinalParameter(int position);
                    void Other(char character);
                    void Other(string sqlPart);
                    void OutParameter(int position);
                }
                public static void Parse(string sqlString, NHibernate.Engine.Query.ParameterParser.IRecognizer recognizer) => throw null;
            }
            public class ParamLocationRecognizer : NHibernate.Engine.Query.ParameterParser.IRecognizer
            {
                public ParamLocationRecognizer() => throw null;
                public void JpaPositionalParameter(string name, int position) => throw null;
                public void NamedParameter(string name, int position) => throw null;
                public class NamedParameterDescription
                {
                    public int[] BuildPositionsArray() => throw null;
                    public NamedParameterDescription(bool jpaStyle) => throw null;
                    public bool JpaStyle { get => throw null; }
                }
                public System.Collections.Generic.IDictionary<string, NHibernate.Engine.Query.ParamLocationRecognizer.NamedParameterDescription> NamedParameterDescriptionMap { get => throw null; }
                public void OrdinalParameter(int position) => throw null;
                public System.Collections.Generic.List<int> OrdinalParameterLocationList { get => throw null; }
                public void Other(char character) => throw null;
                public void Other(string sqlPart) => throw null;
                public void OutParameter(int position) => throw null;
                public static NHibernate.Engine.Query.ParamLocationRecognizer ParseLocations(string query) => throw null;
            }
            public class QueryExpressionPlan : NHibernate.Engine.Query.HQLQueryPlan, NHibernate.Engine.Query.IQueryExpressionPlan, NHibernate.Engine.Query.IQueryPlan
            {
                public virtual NHibernate.Engine.Query.QueryExpressionPlan Copy(NHibernate.IQueryExpression expression) => throw null;
                protected static NHibernate.Hql.IQueryTranslator[] CreateTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public QueryExpressionPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null;
                public QueryExpressionPlan(NHibernate.IQueryExpression queryExpression, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null;
                protected QueryExpressionPlan(string key, NHibernate.Hql.IQueryTranslator[] translators) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null;
                protected QueryExpressionPlan(NHibernate.Engine.Query.HQLQueryPlan source, NHibernate.IQueryExpression expression) : base(default(string), default(NHibernate.Hql.IQueryTranslator[])) => throw null;
                public NHibernate.IQueryExpression QueryExpression { get => throw null; }
            }
            public class QueryPlanCache
            {
                public QueryPlanCache(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public NHibernate.Engine.Query.IQueryExpressionPlan GetFilterQueryPlan(string filterString, string collectionRole, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public NHibernate.Engine.Query.IQueryExpressionPlan GetFilterQueryPlan(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public NHibernate.Engine.Query.IQueryExpressionPlan GetHQLQueryPlan(NHibernate.IQueryExpression queryExpression, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public NHibernate.Engine.Query.NativeSQLQueryPlan GetNativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec) => throw null;
                public NHibernate.Engine.Query.ParameterMetadata GetSQLParameterMetadata(string query) => throw null;
                public NHibernate.Engine.Query.ParameterMetadata GetSQLParameterMetadata(string query, System.Collections.Generic.IDictionary<string, string> parameterTypes) => throw null;
            }
            public class ReturnMetadata
            {
                public ReturnMetadata(string[] returnAliases, NHibernate.Type.IType[] returnTypes) => throw null;
                public string[] ReturnAliases { get => throw null; }
                public NHibernate.Type.IType[] ReturnTypes { get => throw null; }
            }
            namespace Sql
            {
                public interface INativeSQLQueryReturn
                {
                }
                public class NativeSQLQueryCollectionReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn
                {
                    public NativeSQLQueryCollectionReturn(string alias, string ownerEntityName, string ownerProperty, System.Collections.Generic.IDictionary<string, string[]> propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary<string, string[]>), default(NHibernate.LockMode)) => throw null;
                    public string OwnerEntityName { get => throw null; }
                    public string OwnerProperty { get => throw null; }
                }
                public class NativeSQLQueryJoinReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn
                {
                    public NativeSQLQueryJoinReturn(string alias, string ownerAlias, string ownerProperty, System.Collections.Generic.IDictionary<string, string[]> propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary<string, string[]>), default(NHibernate.LockMode)) => throw null;
                    public string OwnerAlias { get => throw null; }
                    public string OwnerProperty { get => throw null; }
                }
                public abstract class NativeSQLQueryNonScalarReturn : NHibernate.Engine.Query.Sql.INativeSQLQueryReturn
                {
                    public string Alias { get => throw null; }
                    protected NativeSQLQueryNonScalarReturn(string alias, System.Collections.Generic.IDictionary<string, string[]> propertyResults, NHibernate.LockMode lockMode) => throw null;
                    public override bool Equals(object obj) => throw null;
                    public bool Equals(NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn other) => throw null;
                    public override int GetHashCode() => throw null;
                    public NHibernate.LockMode LockMode { get => throw null; }
                    public System.Collections.Generic.IDictionary<string, string[]> PropertyResultsMap { get => throw null; }
                }
                public class NativeSQLQueryRootReturn : NHibernate.Engine.Query.Sql.NativeSQLQueryNonScalarReturn
                {
                    public NativeSQLQueryRootReturn(string alias, string entityName, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary<string, string[]>), default(NHibernate.LockMode)) => throw null;
                    public NativeSQLQueryRootReturn(string alias, string entityName, System.Collections.Generic.IDictionary<string, string[]> propertyResults, NHibernate.LockMode lockMode) : base(default(string), default(System.Collections.Generic.IDictionary<string, string[]>), default(NHibernate.LockMode)) => throw null;
                    public string ReturnEntityName { get => throw null; }
                }
                public class NativeSQLQueryScalarReturn : NHibernate.Engine.Query.Sql.INativeSQLQueryReturn
                {
                    public string ColumnAlias { get => throw null; }
                    public NativeSQLQueryScalarReturn(string alias, NHibernate.Type.IType type) => throw null;
                    public override bool Equals(object obj) => throw null;
                    public bool Equals(NHibernate.Engine.Query.Sql.NativeSQLQueryScalarReturn other) => throw null;
                    public override int GetHashCode() => throw null;
                    public NHibernate.Type.IType Type { get => throw null; }
                }
                public class NativeSQLQuerySpecification
                {
                    public NativeSQLQuerySpecification(string queryString, NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] sqlQueryReturns, System.Collections.Generic.ICollection<string> querySpaces) => throw null;
                    public override bool Equals(object obj) => throw null;
                    public override int GetHashCode() => throw null;
                    public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                    public string QueryString { get => throw null; }
                    public NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] SqlQueryReturns { get => throw null; }
                }
            }
        }
        public sealed class QueryParameters
        {
            public bool Cacheable { get => throw null; set { } }
            public NHibernate.CacheMode? CacheMode { get => throw null; set { } }
            public string CacheRegion { get => throw null; set { } }
            public bool Callable { get => throw null; set { } }
            public bool CanGetFromCache(NHibernate.Engine.ISessionImplementor session) => throw null;
            public bool CanPutToCache(NHibernate.Engine.ISessionImplementor session) => throw null;
            public object[] CollectionKeys { get => throw null; set { } }
            public string Comment { get => throw null; set { } }
            public NHibernate.Engine.QueryParameters CreateCopyUsing(NHibernate.Engine.RowSelection selection) => throw null;
            public QueryParameters() => throw null;
            public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, object optionalObject, string optionalEntityName, object optionalObjectId) => throw null;
            public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues) => throw null;
            public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, object[] collectionKeys) => throw null;
            public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] postionalParameterValues, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters, object[] collectionKeys) => throw null;
            public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, bool isLookupByNaturalKey, NHibernate.Transform.IResultTransformer transformer) => throw null;
            public QueryParameters(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, bool isLookupByNaturalKey, NHibernate.Transform.IResultTransformer transformer) => throw null;
            public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, object[] collectionKeys, NHibernate.Transform.IResultTransformer transformer) => throw null;
            public QueryParameters(NHibernate.Type.IType[] positionalParameterTypes, object[] positionalParameterValues, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, NHibernate.Engine.RowSelection rowSelection, bool isReadOnlyInitialized, bool readOnly, bool cacheable, string cacheRegion, string comment, object[] collectionKeys, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Transform.IResultTransformer transformer) => throw null;
            public bool ForceCacheRefresh { get => throw null; set { } }
            public bool HasAutoDiscoverScalarTypes { get => throw null; set { } }
            public bool HasRowSelection { get => throw null; }
            public bool IsReadOnly(NHibernate.Engine.ISessionImplementor session) => throw null;
            public bool IsReadOnlyInitialized { get => throw null; }
            public System.Collections.Generic.IDictionary<string, NHibernate.LockMode> LockModes { get => throw null; set { } }
            public void LogParameters(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> NamedParameters { get => throw null; }
            public bool NaturalKeyLookup { get => throw null; set { } }
            public string OptionalEntityName { get => throw null; set { } }
            public object OptionalId { get => throw null; set { } }
            public object OptionalObject { get => throw null; set { } }
            public NHibernate.Type.IType[] PositionalParameterTypes { get => throw null; set { } }
            public object[] PositionalParameterValues { get => throw null; set { } }
            public NHibernate.Engine.RowSelection ProcessedRowSelection { get => throw null; }
            public NHibernate.SqlCommand.SqlString ProcessedSql { get => throw null; }
            public System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> ProcessedSqlParameters { get => throw null; }
            public bool ReadOnly { get => throw null; set { } }
            public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; }
            public NHibernate.Engine.RowSelection RowSelection { get => throw null; set { } }
            public void ValidateParameters() => throw null;
        }
        public class ResultSetMappingDefinition
        {
            public void AddQueryReturn(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn queryReturn) => throw null;
            public ResultSetMappingDefinition(string name) => throw null;
            public NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] GetQueryReturns() => throw null;
            public string Name { get => throw null; }
        }
        public sealed class RowSelection
        {
            public RowSelection() => throw null;
            public bool DefinesLimits { get => throw null; }
            public int FetchSize { get => throw null; set { } }
            public int FirstRow { get => throw null; set { } }
            public int MaxRows { get => throw null; set { } }
            public static readonly int NoValue;
            public int Timeout { get => throw null; set { } }
        }
        public static class SessionFactoryImplementorExtension
        {
            public static System.Collections.Generic.ISet<NHibernate.Persister.Collection.ICollectionPersister> GetCollectionPersisters(this NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.ISet<string> spaces) => throw null;
            public static System.Collections.Generic.ISet<NHibernate.Persister.Entity.IEntityPersister> GetEntityPersisters(this NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.ISet<string> spaces) => throw null;
        }
        public static partial class SessionImplementorExtensions
        {
            public static string GetTenantIdentifier(this NHibernate.Engine.ISessionImplementor session) => throw null;
        }
        public class StatefulPersistenceContext : System.Runtime.Serialization.IDeserializationCallback, NHibernate.Engine.IPersistenceContext, System.Runtime.Serialization.ISerializable
        {
            public void AddChildParent(object child, object parent) => throw null;
            public void AddCollectionHolder(NHibernate.Collection.IPersistentCollection holder) => throw null;
            public void AddEntity(NHibernate.Engine.EntityKey key, object entity) => throw null;
            public void AddEntity(NHibernate.Engine.EntityUniqueKey euk, object entity) => throw null;
            public NHibernate.Engine.EntityEntry AddEntity(object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched) => throw null;
            public NHibernate.Engine.EntityEntry AddEntity(object entity, NHibernate.Engine.Status status, object[] loadedState, NHibernate.Engine.EntityKey entityKey, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement) => throw null;
            public NHibernate.Engine.EntityEntry AddEntry(object entity, NHibernate.Engine.Status status, object[] loadedState, object rowId, object id, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement, bool lazyPropertiesAreUnfetched) => throw null;
            public NHibernate.Engine.EntityEntry AddEntry(object entity, NHibernate.Engine.Status status, object[] loadedState, object rowId, object id, object version, NHibernate.LockMode lockMode, bool existsInDatabase, NHibernate.Persister.Entity.IEntityPersister persister, bool disableVersionIncrement) => throw null;
            public NHibernate.Engine.CollectionEntry AddInitializedCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object id) => throw null;
            public void AddInitializedDetachedCollection(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection) => throw null;
            public void AddNewCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection) => throw null;
            public void AddNonLazyCollection(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public void AddNullProperty(NHibernate.Engine.EntityKey ownerKey, string propertyName) => throw null;
            public void AddProxy(NHibernate.Engine.EntityKey key, NHibernate.Proxy.INHibernateProxy proxy) => throw null;
            public void AddUninitializedCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection, object id) => throw null;
            public void AddUninitializedDetachedCollection(NHibernate.Persister.Collection.ICollectionPersister persister, NHibernate.Collection.IPersistentCollection collection) => throw null;
            public void AddUnownedCollection(NHibernate.Engine.CollectionKey key, NHibernate.Collection.IPersistentCollection collection) => throw null;
            public void AfterLoad() => throw null;
            public void AfterTransactionCompletion() => throw null;
            public NHibernate.Engine.BatchFetchQueue BatchFetchQueue { get => throw null; }
            public void BeforeLoad() => throw null;
            public int CascadeLevel { get => throw null; }
            public void CheckUniqueness(NHibernate.Engine.EntityKey key, object obj) => throw null;
            public void Clear() => throw null;
            public System.Collections.IDictionary CollectionEntries { get => throw null; }
            public System.Collections.Generic.IDictionary<NHibernate.Engine.CollectionKey, NHibernate.Collection.IPersistentCollection> CollectionsByKey { get => throw null; }
            public bool ContainsCollection(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public bool ContainsEntity(NHibernate.Engine.EntityKey key) => throw null;
            public bool ContainsProxy(NHibernate.Proxy.INHibernateProxy proxy) => throw null;
            public StatefulPersistenceContext(NHibernate.Engine.ISessionImplementor session) => throw null;
            public int DecrementCascadeLevel() => throw null;
            public bool DefaultReadOnly { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<NHibernate.Engine.EntityKey, object> EntitiesByKey { get => throw null; }
            public System.Collections.IDictionary EntityEntries { get => throw null; }
            public bool Flushing { get => throw null; set { } }
            public object[] GetCachedDatabaseSnapshot(NHibernate.Engine.EntityKey key) => throw null;
            public NHibernate.Collection.IPersistentCollection GetCollection(NHibernate.Engine.CollectionKey collectionKey) => throw null;
            public NHibernate.Engine.CollectionEntry GetCollectionEntry(NHibernate.Collection.IPersistentCollection coll) => throw null;
            public NHibernate.Engine.CollectionEntry GetCollectionEntryOrNull(object collection) => throw null;
            public NHibernate.Collection.IPersistentCollection GetCollectionHolder(object array) => throw null;
            public object GetCollectionOwner(object key, NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null;
            public object[] GetDatabaseSnapshot(object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            public System.Threading.Tasks.Task<object[]> GetDatabaseSnapshotAsync(object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            public object GetEntity(NHibernate.Engine.EntityKey key) => throw null;
            public object GetEntity(NHibernate.Engine.EntityUniqueKey euk) => throw null;
            public NHibernate.Engine.EntityEntry GetEntry(object entity) => throw null;
            public object GetIndexInOwner(string entity, string property, object childEntity, System.Collections.IDictionary mergeMap) => throw null;
            public virtual object GetLoadedCollectionOwnerIdOrNull(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public virtual object GetLoadedCollectionOwnerOrNull(NHibernate.Collection.IPersistentCollection collection) => throw null;
            public object[] GetNaturalIdSnapshot(object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            public System.Threading.Tasks.Task<object[]> GetNaturalIdSnapshotAsync(object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public object GetOwnerId(string entityName, string propertyName, object childEntity, System.Collections.IDictionary mergeMap) => throw null;
            public object GetProxy(NHibernate.Engine.EntityKey key) => throw null;
            public object GetSnapshot(NHibernate.Collection.IPersistentCollection coll) => throw null;
            public bool HasNonReadOnlyEntities { get => throw null; }
            public int IncrementCascadeLevel() => throw null;
            public void InitializeNonLazyCollections() => throw null;
            public System.Threading.Tasks.Task InitializeNonLazyCollectionsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public bool IsEntryFor(object entity) => throw null;
            public bool IsLoadFinished { get => throw null; }
            public bool IsPropertyNull(NHibernate.Engine.EntityKey ownerKey, string propertyName) => throw null;
            public bool IsReadOnly(object entityOrProxy) => throw null;
            public bool IsStateless { get => throw null; }
            public NHibernate.Engine.Loading.LoadContexts LoadContexts { get => throw null; }
            public object NarrowProxy(NHibernate.Proxy.INHibernateProxy proxy, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey key, object obj) => throw null;
            public static readonly object NoRow;
            public System.Collections.Generic.ISet<NHibernate.Engine.EntityKey> NullifiableEntityKeys { get => throw null; }
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            public object ProxyFor(NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey key, object impl) => throw null;
            public object ProxyFor(object impl) => throw null;
            public bool ReassociateIfUninitializedProxy(object value) => throw null;
            public void ReassociateProxy(object value, object id) => throw null;
            public void RemoveChildParent(object child) => throw null;
            public NHibernate.Collection.IPersistentCollection RemoveCollectionHolder(object array) => throw null;
            public object RemoveEntity(NHibernate.Engine.EntityKey key) => throw null;
            public NHibernate.Engine.EntityEntry RemoveEntry(object entity) => throw null;
            public object RemoveProxy(NHibernate.Engine.EntityKey key) => throw null;
            public void ReplaceDelayedEntityIdentityInsertKeys(NHibernate.Engine.EntityKey oldKey, object generatedId) => throw null;
            public NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public void SetEntryStatus(NHibernate.Engine.EntityEntry entry, NHibernate.Engine.Status status) => throw null;
            public void SetReadOnly(object entityOrProxy, bool readOnly) => throw null;
            public override string ToString() => throw null;
            public object Unproxy(object maybeProxy) => throw null;
            public object UnproxyAndReassociate(object maybeProxy) => throw null;
            public System.Threading.Tasks.Task<object> UnproxyAndReassociateAsync(object maybeProxy, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Collection.IPersistentCollection UseUnownedCollection(NHibernate.Engine.CollectionKey key) => throw null;
        }
        public enum Status
        {
            Loaded = 0,
            Deleted = 1,
            Gone = 2,
            Loading = 3,
            Saving = 4,
            ReadOnly = 5,
        }
        public class SubselectFetch
        {
            public SubselectFetch(string alias, NHibernate.Persister.Entity.ILoadable loadable, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet<NHibernate.Engine.EntityKey> resultingEntityKeys) => throw null;
            public NHibernate.Engine.QueryParameters QueryParameters { get => throw null; }
            public System.Collections.Generic.ISet<NHibernate.Engine.EntityKey> Result { get => throw null; }
            public override string ToString() => throw null;
            public NHibernate.SqlCommand.SqlString ToSubselectString(string ukname) => throw null;
        }
        namespace Transaction
        {
            public interface IIsolatedWork
            {
                void DoWork(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction);
                System.Threading.Tasks.Task DoWorkAsync(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken);
            }
            public class Isolater
            {
                public Isolater() => throw null;
                public static void DoIsolatedWork(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session) => throw null;
                public static System.Threading.Tasks.Task DoIsolatedWorkAsync(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public static void DoNonTransactedWork(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session) => throw null;
                public static System.Threading.Tasks.Task DoNonTransactedWorkAsync(NHibernate.Engine.Transaction.IIsolatedWork work, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
        }
        public abstract class TransactionHelper
        {
            protected TransactionHelper() => throw null;
            public abstract object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction);
            public abstract System.Threading.Tasks.Task<object> DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken);
            public virtual object DoWorkInNewTransaction(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> DoWorkInNewTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public class Work : NHibernate.Engine.Transaction.IIsolatedWork
            {
                public Work(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.TransactionHelper owner) => throw null;
                public void DoWork(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction) => throw null;
                public System.Threading.Tasks.Task DoWorkAsync(System.Data.Common.DbConnection connection, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null;
            }
        }
        public static class TwoPhaseLoad
        {
            public static void AddUninitializedCachedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, bool lazyPropertiesAreUnfetched, object version, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static void AddUninitializedCachedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, object version, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static void AddUninitializedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static void AddUninitializedEntity(NHibernate.Engine.EntityKey key, object obj, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static void InitializeEntity(object entity, bool readOnly, NHibernate.Engine.ISessionImplementor session, NHibernate.Event.PreLoadEvent preLoadEvent, NHibernate.Event.PostLoadEvent postLoadEvent) => throw null;
            public static System.Threading.Tasks.Task InitializeEntityAsync(object entity, bool readOnly, NHibernate.Engine.ISessionImplementor session, NHibernate.Event.PreLoadEvent preLoadEvent, NHibernate.Event.PostLoadEvent postLoadEvent, System.Threading.CancellationToken cancellationToken) => throw null;
            public static void PostHydrate(NHibernate.Persister.Entity.IEntityPersister persister, object id, object[] values, object rowId, object obj, NHibernate.LockMode lockMode, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static void PostHydrate(NHibernate.Persister.Entity.IEntityPersister persister, object id, object[] values, object rowId, object obj, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session) => throw null;
        }
        public sealed class TypedValue
        {
            public System.Collections.Generic.IEqualityComparer<NHibernate.Engine.TypedValue> Comparer { get => throw null; }
            public TypedValue(NHibernate.Type.IType type, object value) => throw null;
            public TypedValue(NHibernate.Type.IType type, object value, bool isList) => throw null;
            public class DefaultComparer : System.Collections.Generic.IEqualityComparer<NHibernate.Engine.TypedValue>
            {
                public DefaultComparer() => throw null;
                public bool Equals(NHibernate.Engine.TypedValue x, NHibernate.Engine.TypedValue y) => throw null;
                public int GetHashCode(NHibernate.Engine.TypedValue obj) => throw null;
            }
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public class ParameterListComparer : System.Collections.Generic.IEqualityComparer<NHibernate.Engine.TypedValue>
            {
                public ParameterListComparer() => throw null;
                public bool Equals(NHibernate.Engine.TypedValue x, NHibernate.Engine.TypedValue y) => throw null;
                public int GetHashCode(NHibernate.Engine.TypedValue obj) => throw null;
            }
            public override string ToString() => throw null;
            public NHibernate.Type.IType Type { get => throw null; }
            public object Value { get => throw null; }
        }
        public static class UnsavedValueFactory
        {
            public static NHibernate.Engine.IdentifierValue GetUnsavedIdentifierValue(string unsavedValue, NHibernate.Properties.IGetter identifierGetter, NHibernate.Type.IType identifierType, System.Reflection.ConstructorInfo constructor) => throw null;
            public static NHibernate.Engine.VersionValue GetUnsavedVersionValue(string versionUnsavedValue, NHibernate.Properties.IGetter versionGetter, NHibernate.Type.IVersionType versionType, System.Reflection.ConstructorInfo constructor) => throw null;
        }
        public enum ValueInclusion
        {
            None = 0,
            Partial = 1,
            Full = 2,
        }
        public class Versioning
        {
            public Versioning() => throw null;
            public static object GetVersion(object[] fields, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            public static object Increment(object version, NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<object> IncrementAsync(object version, NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static bool IsVersionIncrementRequired(int[] dirtyProperties, bool hasDirtyCollections, bool[] propertyVersionability) => throw null;
            public enum OptimisticLock
            {
                None = -1,
                Version = 0,
                Dirty = 1,
                All = 2,
            }
            public static object Seed(NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Type.IVersionType versionType, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static bool SeedVersion(object[] fields, int versionProperty, NHibernate.Type.IVersionType versionType, bool? force, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<bool> SeedVersionAsync(object[] fields, int versionProperty, NHibernate.Type.IVersionType versionType, bool? force, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static void SetVersion(object[] fields, object version, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
        }
        public class VersionValue
        {
            protected VersionValue() => throw null;
            public VersionValue(object value) => throw null;
            public virtual object GetDefaultValue(object currentValue) => throw null;
            public virtual bool? IsUnsaved(object version) => throw null;
            public static NHibernate.Engine.VersionValue VersionNegative;
            public static NHibernate.Engine.VersionValue VersionSaveNull;
            public static NHibernate.Engine.VersionValue VersionUndefined;
        }
    }
    public static partial class EntityJoinExtensions
    {
        public static NHibernate.ICriteria CreateEntityAlias(this NHibernate.ICriteria criteria, string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null;
        public static NHibernate.ICriteria CreateEntityAlias<U>(this NHibernate.ICriteria criteria, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null;
        public static NHibernate.ICriteria CreateEntityCriteria(this NHibernate.ICriteria criteria, string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null;
        public static NHibernate.ICriteria CreateEntityCriteria<U>(this NHibernate.ICriteria criteria, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null;
        public static TThis JoinEntityAlias<TThis, TEntity>(this TThis queryOver, System.Linq.Expressions.Expression<System.Func<TEntity>> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) where TThis : NHibernate.IQueryOver => throw null;
        public static TThis JoinEntityAlias<TThis, TEntity>(this TThis queryOver, System.Linq.Expressions.Expression<System.Func<TEntity>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) where TThis : NHibernate.IQueryOver => throw null;
        public static NHibernate.IQueryOver<TRoot, TEntity> JoinEntityQueryOver<TRoot, TEntity>(this NHibernate.IQueryOver<TRoot> queryOver, System.Linq.Expressions.Expression<System.Func<TEntity>> alias, System.Linq.Expressions.Expression<System.Func<bool>> withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null;
        public static NHibernate.IQueryOver<TRoot, TEntity> JoinEntityQueryOver<TRoot, TEntity>(this NHibernate.IQueryOver<TRoot> queryOver, System.Linq.Expressions.Expression<System.Func<TEntity>> alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType = default(NHibernate.SqlCommand.JoinType), string entityName = default(string)) => throw null;
    }
    public enum EntityMode
    {
        Poco = 0,
        Map = 1,
    }
    namespace Event
    {
        public abstract class AbstractCollectionEvent : NHibernate.Event.AbstractEvent
        {
            public object AffectedOwnerIdOrNull { get => throw null; }
            public object AffectedOwnerOrNull { get => throw null; }
            public NHibernate.Collection.IPersistentCollection Collection { get => throw null; }
            protected AbstractCollectionEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object affectedOwner, object affectedOwnerId) : base(default(NHibernate.Event.IEventSource)) => throw null;
            protected static string GetAffectedOwnerEntityName(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, object affectedOwner, NHibernate.Event.IEventSource source) => throw null;
            public virtual string GetAffectedOwnerEntityName() => throw null;
            protected static NHibernate.Persister.Collection.ICollectionPersister GetLoadedCollectionPersister(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) => throw null;
            protected static object GetLoadedOwnerIdOrNull(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) => throw null;
            protected static object GetLoadedOwnerOrNull(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) => throw null;
            protected static object GetOwnerIdOrNull(object owner, NHibernate.Event.IEventSource source) => throw null;
        }
        public class AbstractEvent : NHibernate.Event.IDatabaseEventArgs
        {
            public AbstractEvent(NHibernate.Event.IEventSource source) => throw null;
            public NHibernate.Event.IEventSource Session { get => throw null; }
        }
        public class AbstractPostDatabaseOperationEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IDatabaseEventArgs, NHibernate.Event.IPostDatabaseOperationEventArgs
        {
            protected AbstractPostDatabaseOperationEvent(NHibernate.Event.IEventSource source, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; }
            public object Id { get => throw null; }
            public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; }
        }
        public abstract class AbstractPreDatabaseOperationEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IDatabaseEventArgs, NHibernate.Event.IPreDatabaseOperationEventArgs
        {
            protected AbstractPreDatabaseOperationEvent(NHibernate.Event.IEventSource source, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; }
            public object Id { get => throw null; }
            public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; }
        }
        public class AutoFlushEvent : NHibernate.Event.FlushEvent
        {
            public AutoFlushEvent(System.Collections.Generic.ISet<string> querySpaces, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public bool FlushRequired { get => throw null; set { } }
            public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; set { } }
        }
        namespace Default
        {
            public abstract class AbstractFlushingEventListener
            {
                protected virtual object Anything { get => throw null; }
                protected virtual void CascadeOnFlush(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object key, object anything) => throw null;
                protected virtual System.Threading.Tasks.Task CascadeOnFlushAsync(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object key, object anything, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual NHibernate.Engine.CascadingAction CascadingAction { get => throw null; }
                protected AbstractFlushingEventListener() => throw null;
                protected virtual void FlushCollections(NHibernate.Event.IEventSource session) => throw null;
                protected virtual System.Threading.Tasks.Task FlushCollectionsAsync(NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void FlushEntities(NHibernate.Event.FlushEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task FlushEntitiesAsync(NHibernate.Event.FlushEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void FlushEverythingToExecutions(NHibernate.Event.FlushEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task FlushEverythingToExecutionsAsync(NHibernate.Event.FlushEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void PerformExecutions(NHibernate.Event.IEventSource session) => throw null;
                protected virtual System.Threading.Tasks.Task PerformExecutionsAsync(NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void PostFlush(NHibernate.Engine.ISessionImplementor session) => throw null;
                protected virtual void PrepareCollectionFlushes(NHibernate.Engine.ISessionImplementor session) => throw null;
                protected virtual System.Threading.Tasks.Task PrepareCollectionFlushesAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void PrepareEntityFlushes(NHibernate.Event.IEventSource session) => throw null;
                protected virtual System.Threading.Tasks.Task PrepareEntityFlushesAsync(NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class AbstractLockUpgradeEventListener : NHibernate.Event.Default.AbstractReassociateEventListener
            {
                public AbstractLockUpgradeEventListener() => throw null;
                protected virtual void UpgradeLock(object entity, NHibernate.Engine.EntityEntry entry, NHibernate.LockMode requestedLockMode, NHibernate.Engine.ISessionImplementor source) => throw null;
                protected virtual System.Threading.Tasks.Task UpgradeLockAsync(object entity, NHibernate.Engine.EntityEntry entry, NHibernate.LockMode requestedLockMode, NHibernate.Engine.ISessionImplementor source, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class AbstractReassociateEventListener
            {
                public AbstractReassociateEventListener() => throw null;
                protected NHibernate.Engine.EntityEntry Reassociate(NHibernate.Event.AbstractEvent @event, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                protected System.Threading.Tasks.Task<NHibernate.Engine.EntityEntry> ReassociateAsync(NHibernate.Event.AbstractEvent @event, object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public abstract class AbstractSaveEventListener : NHibernate.Event.Default.AbstractReassociateEventListener
            {
                protected virtual bool? AssumedUnsaved { get => throw null; }
                protected abstract NHibernate.Engine.CascadingAction CascadeAction { get; }
                protected virtual void CascadeAfterSave(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything) => throw null;
                protected virtual System.Threading.Tasks.Task CascadeAfterSaveAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void CascadeBeforeSave(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything) => throw null;
                protected virtual System.Threading.Tasks.Task CascadeBeforeSaveAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything, System.Threading.CancellationToken cancellationToken) => throw null;
                protected AbstractSaveEventListener() => throw null;
                protected virtual NHibernate.Event.Default.EntityState GetEntityState(object entity, string entityName, NHibernate.Engine.EntityEntry entry, NHibernate.Engine.ISessionImplementor source) => throw null;
                protected virtual System.Threading.Tasks.Task<NHibernate.Event.Default.EntityState> GetEntityStateAsync(object entity, string entityName, NHibernate.Engine.EntityEntry entry, NHibernate.Engine.ISessionImplementor source, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual string GetLoggableName(string entityName, object entity) => throw null;
                protected virtual System.Collections.IDictionary GetMergeMap(object anything) => throw null;
                protected virtual bool InvokeSaveLifecycle(object entity, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) => throw null;
                protected virtual object PerformSave(object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister, bool useIdentityColumn, object anything, NHibernate.Event.IEventSource source, bool requiresImmediateIdAccess) => throw null;
                protected virtual System.Threading.Tasks.Task<object> PerformSaveAsync(object entity, object id, NHibernate.Persister.Entity.IEntityPersister persister, bool useIdentityColumn, object anything, NHibernate.Event.IEventSource source, bool requiresImmediateIdAccess, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object PerformSaveOrReplicate(object entity, NHibernate.Engine.EntityKey key, NHibernate.Persister.Entity.IEntityPersister persister, bool useIdentityColumn, object anything, NHibernate.Event.IEventSource source, bool requiresImmediateIdAccess) => throw null;
                protected virtual System.Threading.Tasks.Task<object> PerformSaveOrReplicateAsync(object entity, NHibernate.Engine.EntityKey key, NHibernate.Persister.Entity.IEntityPersister persister, bool useIdentityColumn, object anything, NHibernate.Event.IEventSource source, bool requiresImmediateIdAccess, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object SaveWithGeneratedId(object entity, string entityName, object anything, NHibernate.Event.IEventSource source, bool requiresImmediateIdAccess) => throw null;
                protected virtual System.Threading.Tasks.Task<object> SaveWithGeneratedIdAsync(object entity, string entityName, object anything, NHibernate.Event.IEventSource source, bool requiresImmediateIdAccess, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object SaveWithRequestedId(object entity, object requestedId, string entityName, object anything, NHibernate.Event.IEventSource source) => throw null;
                protected virtual System.Threading.Tasks.Task<object> SaveWithRequestedIdAsync(object entity, object requestedId, string entityName, object anything, NHibernate.Event.IEventSource source, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual bool SubstituteValuesIfNecessary(object entity, object id, object[] values, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor source) => throw null;
                protected virtual System.Threading.Tasks.Task<bool> SubstituteValuesIfNecessaryAsync(object entity, object id, object[] values, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor source, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void Validate(object entity, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) => throw null;
                protected virtual bool VersionIncrementDisabled { get => throw null; }
                protected virtual bool VisitCollectionsBeforeSave(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source) => throw null;
                protected virtual System.Threading.Tasks.Task<bool> VisitCollectionsBeforeSaveAsync(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public abstract class AbstractVisitor
            {
                public AbstractVisitor(NHibernate.Event.IEventSource session) => throw null;
                public void ProcessEntityPropertyValues(object[] values, NHibernate.Type.IType[] types) => throw null;
                public System.Threading.Tasks.Task ProcessEntityPropertyValuesAsync(object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken) => throw null;
                public NHibernate.Event.IEventSource Session { get => throw null; }
            }
            public class DefaultAutoFlushEventListener : NHibernate.Event.Default.AbstractFlushingEventListener, NHibernate.Event.IAutoFlushEventListener
            {
                public DefaultAutoFlushEventListener() => throw null;
                public virtual void OnAutoFlush(NHibernate.Event.AutoFlushEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnAutoFlushAsync(NHibernate.Event.AutoFlushEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultDeleteEventListener : NHibernate.Event.IDeleteEventListener
            {
                protected virtual void CascadeAfterDelete(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object entity, System.Collections.Generic.ISet<object> transientEntities) => throw null;
                protected virtual System.Threading.Tasks.Task CascadeAfterDeleteAsync(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object entity, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void CascadeBeforeDelete(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object entity, NHibernate.Engine.EntityEntry entityEntry, System.Collections.Generic.ISet<object> transientEntities) => throw null;
                protected virtual System.Threading.Tasks.Task CascadeBeforeDeleteAsync(NHibernate.Event.IEventSource session, NHibernate.Persister.Entity.IEntityPersister persister, object entity, NHibernate.Engine.EntityEntry entityEntry, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken) => throw null;
                public DefaultDeleteEventListener() => throw null;
                protected virtual void DeleteEntity(NHibernate.Event.IEventSource session, object entity, NHibernate.Engine.EntityEntry entityEntry, bool isCascadeDeleteEnabled, NHibernate.Persister.Entity.IEntityPersister persister, System.Collections.Generic.ISet<object> transientEntities) => throw null;
                protected virtual System.Threading.Tasks.Task DeleteEntityAsync(NHibernate.Event.IEventSource session, object entity, NHibernate.Engine.EntityEntry entityEntry, bool isCascadeDeleteEnabled, NHibernate.Persister.Entity.IEntityPersister persister, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void DeleteTransientEntity(NHibernate.Event.IEventSource session, object entity, bool cascadeDeleteEnabled, NHibernate.Persister.Entity.IEntityPersister persister, System.Collections.Generic.ISet<object> transientEntities) => throw null;
                protected virtual System.Threading.Tasks.Task DeleteTransientEntityAsync(NHibernate.Event.IEventSource session, object entity, bool cascadeDeleteEnabled, NHibernate.Persister.Entity.IEntityPersister persister, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual bool InvokeDeleteLifecycle(NHibernate.Event.IEventSource session, object entity, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                public virtual void OnDelete(NHibernate.Event.DeleteEvent @event) => throw null;
                public virtual void OnDelete(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet<object> transientEntities) => throw null;
                public virtual System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void PerformDetachedEntityDeletionCheck(NHibernate.Event.DeleteEvent @event) => throw null;
            }
            public class DefaultDirtyCheckEventListener : NHibernate.Event.Default.AbstractFlushingEventListener, NHibernate.Event.IDirtyCheckEventListener
            {
                protected override object Anything { get => throw null; }
                protected override NHibernate.Engine.CascadingAction CascadingAction { get => throw null; }
                public DefaultDirtyCheckEventListener() => throw null;
                public virtual void OnDirtyCheck(NHibernate.Event.DirtyCheckEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnDirtyCheckAsync(NHibernate.Event.DirtyCheckEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultEvictEventListener : NHibernate.Event.IEvictEventListener
            {
                public DefaultEvictEventListener() => throw null;
                protected virtual void DoEvict(object obj, NHibernate.Engine.EntityKey key, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource session) => throw null;
                protected virtual System.Threading.Tasks.Task DoEvictAsync(object obj, NHibernate.Engine.EntityKey key, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual void OnEvict(NHibernate.Event.EvictEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnEvictAsync(NHibernate.Event.EvictEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultFlushEntityEventListener : NHibernate.Event.IFlushEntityEventListener
            {
                public virtual void CheckId(object obj, NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null;
                public DefaultFlushEntityEventListener() => throw null;
                protected virtual void DirtyCheck(NHibernate.Event.FlushEntityEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task DirtyCheckAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual bool HandleInterception(NHibernate.Event.FlushEntityEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task<bool> HandleInterceptionAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual bool InvokeInterceptor(NHibernate.Engine.ISessionImplementor session, object entity, NHibernate.Engine.EntityEntry entry, object[] values, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                protected bool IsUpdateNecessary(NHibernate.Event.FlushEntityEvent @event) => throw null;
                protected System.Threading.Tasks.Task<bool> IsUpdateNecessaryAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual void OnFlushEntity(NHibernate.Event.FlushEntityEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnFlushEntityAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void Validate(object entity, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.Status status) => throw null;
            }
            public class DefaultFlushEventListener : NHibernate.Event.Default.AbstractFlushingEventListener, NHibernate.Event.IFlushEventListener
            {
                public DefaultFlushEventListener() => throw null;
                public virtual void OnFlush(NHibernate.Event.FlushEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnFlushAsync(NHibernate.Event.FlushEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultInitializeCollectionEventListener : NHibernate.Event.IInitializeCollectionEventListener
            {
                public DefaultInitializeCollectionEventListener() => throw null;
                public virtual void OnInitializeCollection(NHibernate.Event.InitializeCollectionEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnInitializeCollectionAsync(NHibernate.Event.InitializeCollectionEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultLoadEventListener : NHibernate.Event.Default.AbstractLockUpgradeEventListener, NHibernate.Event.ILoadEventListener
            {
                public DefaultLoadEventListener() => throw null;
                public static readonly NHibernate.LockMode DefaultLockMode;
                protected virtual object DoLoad(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options) => throw null;
                protected virtual System.Threading.Tasks.Task<object> DoLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(NHibernate.Engine.ISessionFactoryImplementor factory, string entityName) => throw null;
                public static readonly object InconsistentRTNClassMarker;
                protected virtual object Load(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options) => throw null;
                protected virtual System.Threading.Tasks.Task<object> LoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object LoadFromDatasource(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options) => throw null;
                protected virtual System.Threading.Tasks.Task<object> LoadFromDatasourceAsync(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object LoadFromSecondLevelCache(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.LoadType options) => throw null;
                protected virtual System.Threading.Tasks.Task<object> LoadFromSecondLevelCacheAsync(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.LoadType options, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object LoadFromSessionCache(NHibernate.Event.LoadEvent @event, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options) => throw null;
                protected virtual System.Threading.Tasks.Task<object> LoadFromSessionCacheAsync(NHibernate.Event.LoadEvent @event, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object LockAndLoad(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, NHibernate.Engine.ISessionImplementor source) => throw null;
                protected virtual System.Threading.Tasks.Task<object> LockAndLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, NHibernate.Engine.ISessionImplementor source, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual void OnLoad(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType) => throw null;
                public virtual System.Threading.Tasks.Task OnLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object ProxyOrLoad(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options) => throw null;
                protected virtual System.Threading.Tasks.Task<object> ProxyOrLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.EntityKey keyToLoad, NHibernate.Event.LoadType options, System.Threading.CancellationToken cancellationToken) => throw null;
                public static readonly object RemovedEntityMarker;
            }
            public class DefaultLockEventListener : NHibernate.Event.Default.AbstractLockUpgradeEventListener, NHibernate.Event.ILockEventListener
            {
                public DefaultLockEventListener() => throw null;
                public virtual void OnLock(NHibernate.Event.LockEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnLockAsync(NHibernate.Event.LockEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultMergeEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.IMergeEventListener
            {
                protected override bool? AssumedUnsaved { get => throw null; }
                protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; }
                protected override void CascadeAfterSave(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything) => throw null;
                protected override System.Threading.Tasks.Task CascadeAfterSaveAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override void CascadeBeforeSave(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything) => throw null;
                protected override System.Threading.Tasks.Task CascadeBeforeSaveAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, object anything, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void CascadeOnMerge(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, System.Collections.IDictionary copyCache) => throw null;
                protected virtual System.Threading.Tasks.Task CascadeOnMergeAsync(NHibernate.Event.IEventSource source, NHibernate.Persister.Entity.IEntityPersister persister, object entity, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void CopyValues(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache) => throw null;
                protected virtual void CopyValues(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null;
                protected virtual System.Threading.Tasks.Task CopyValuesAsync(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual System.Threading.Tasks.Task CopyValuesAsync(NHibernate.Persister.Entity.IEntityPersister persister, object entity, object target, NHibernate.Engine.ISessionImplementor source, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null;
                public DefaultMergeEventListener() => throw null;
                protected virtual void EntityIsDetached(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copyCache) => throw null;
                protected virtual System.Threading.Tasks.Task EntityIsDetachedAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void EntityIsPersistent(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copyCache) => throw null;
                protected virtual System.Threading.Tasks.Task EntityIsPersistentAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void EntityIsTransient(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copyCache) => throw null;
                protected virtual System.Threading.Tasks.Task EntityIsTransientAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override System.Collections.IDictionary GetMergeMap(object anything) => throw null;
                protected NHibernate.Event.Default.EventCache GetTransientCopyCache(NHibernate.Event.MergeEvent @event, NHibernate.Event.Default.EventCache copyCache) => throw null;
                protected System.Threading.Tasks.Task<NHibernate.Event.Default.EventCache> GetTransientCopyCacheAsync(NHibernate.Event.MergeEvent @event, NHibernate.Event.Default.EventCache copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual bool InvokeUpdateLifecycle(object entity, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) => throw null;
                public virtual void OnMerge(NHibernate.Event.MergeEvent @event) => throw null;
                public virtual void OnMerge(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready) => throw null;
                public virtual System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
                protected void RetryMergeTransientEntities(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary transientCopyCache, NHibernate.Event.Default.EventCache copyCache) => throw null;
                protected System.Threading.Tasks.Task RetryMergeTransientEntitiesAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary transientCopyCache, NHibernate.Event.Default.EventCache copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultPersistEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.IPersistEventListener
            {
                protected override bool? AssumedUnsaved { get => throw null; }
                protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; }
                public DefaultPersistEventListener() => throw null;
                protected virtual void EntityIsPersistent(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createCache) => throw null;
                protected virtual System.Threading.Tasks.Task EntityIsPersistentAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createCache, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void EntityIsTransient(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createCache) => throw null;
                protected virtual System.Threading.Tasks.Task EntityIsTransientAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createCache, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual void OnPersist(NHibernate.Event.PersistEvent @event) => throw null;
                public virtual void OnPersist(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready) => throw null;
                public virtual System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultPersistOnFlushEventListener : NHibernate.Event.Default.DefaultPersistEventListener
            {
                protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; }
                public DefaultPersistOnFlushEventListener() => throw null;
            }
            public class DefaultPostLoadEventListener : NHibernate.Event.IPostLoadEventListener
            {
                public DefaultPostLoadEventListener() => throw null;
                public virtual void OnPostLoad(NHibernate.Event.PostLoadEvent @event) => throw null;
            }
            public class DefaultPreLoadEventListener : NHibernate.Event.IPreLoadEventListener
            {
                public DefaultPreLoadEventListener() => throw null;
                public virtual void OnPreLoad(NHibernate.Event.PreLoadEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnPreLoadAsync(NHibernate.Event.PreLoadEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultRefreshEventListener : NHibernate.Event.IRefreshEventListener
            {
                public DefaultRefreshEventListener() => throw null;
                public virtual void OnRefresh(NHibernate.Event.RefreshEvent @event) => throw null;
                public virtual void OnRefresh(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready) => throw null;
                public virtual System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultReplicateEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.IReplicateEventListener
            {
                protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; }
                public DefaultReplicateEventListener() => throw null;
                public virtual void OnReplicate(NHibernate.Event.ReplicateEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnReplicateAsync(NHibernate.Event.ReplicateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool SubstituteValuesIfNecessary(object entity, object id, object[] values, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor source) => throw null;
                protected override System.Threading.Tasks.Task<bool> SubstituteValuesIfNecessaryAsync(object entity, object id, object[] values, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.ISessionImplementor source, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool VersionIncrementDisabled { get => throw null; }
                protected override bool VisitCollectionsBeforeSave(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source) => throw null;
                protected override System.Threading.Tasks.Task<bool> VisitCollectionsBeforeSaveAsync(object entity, object id, object[] values, NHibernate.Type.IType[] types, NHibernate.Event.IEventSource source, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultSaveEventListener : NHibernate.Event.Default.DefaultSaveOrUpdateEventListener
            {
                public DefaultSaveEventListener() => throw null;
                protected override object PerformSaveOrUpdate(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected override System.Threading.Tasks.Task<object> PerformSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool ReassociateIfUninitializedProxy(object obj, NHibernate.Engine.ISessionImplementor source) => throw null;
            }
            public class DefaultSaveOrUpdateEventListener : NHibernate.Event.Default.AbstractSaveEventListener, NHibernate.Event.ISaveOrUpdateEventListener
            {
                protected override NHibernate.Engine.CascadingAction CascadeAction { get => throw null; }
                public DefaultSaveOrUpdateEventListener() => throw null;
                protected virtual void EntityIsDetached(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task EntityIsDetachedAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object EntityIsPersistent(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected virtual object EntityIsTransient(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task<object> EntityIsTransientAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object GetUpdateId(object entity, NHibernate.Persister.Entity.IEntityPersister persister, object requestedId) => throw null;
                protected virtual bool InvokeUpdateLifecycle(object entity, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) => throw null;
                public virtual void OnSaveOrUpdate(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                public virtual System.Threading.Tasks.Task OnSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual object PerformSaveOrUpdate(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task<object> PerformSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual void PerformUpdate(NHibernate.Event.SaveOrUpdateEvent @event, object entity, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                protected virtual System.Threading.Tasks.Task PerformUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, object entity, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual bool ReassociateIfUninitializedProxy(object obj, NHibernate.Engine.ISessionImplementor source) => throw null;
                protected virtual object SaveWithGeneratedOrRequestedId(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected virtual System.Threading.Tasks.Task<object> SaveWithGeneratedOrRequestedIdAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DefaultUpdateEventListener : NHibernate.Event.Default.DefaultSaveOrUpdateEventListener
            {
                public DefaultUpdateEventListener() => throw null;
                protected override object GetUpdateId(object entity, NHibernate.Persister.Entity.IEntityPersister persister, object requestedId) => throw null;
                protected override object PerformSaveOrUpdate(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected override System.Threading.Tasks.Task<object> PerformSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override object SaveWithGeneratedOrRequestedId(NHibernate.Event.SaveOrUpdateEvent @event) => throw null;
                protected override System.Threading.Tasks.Task<object> SaveWithGeneratedOrRequestedIdAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DirtyCollectionSearchVisitor : NHibernate.Event.Default.AbstractVisitor
            {
                public DirtyCollectionSearchVisitor(NHibernate.Event.IEventSource session, bool[] propertyVersionability) : base(default(NHibernate.Event.IEventSource)) => throw null;
                public bool WasDirtyCollectionFound { get => throw null; }
            }
            public enum EntityState
            {
                Undefined = -1,
                Persistent = 0,
                Transient = 1,
                Detached = 2,
                Deleted = 3,
            }
            public class EventCache : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable
            {
                public void Add(object key, object value) => throw null;
                public void Add(object entity, object copy, bool isOperatedOn) => throw null;
                public void Clear() => throw null;
                public bool Contains(object key) => throw null;
                public void CopyTo(System.Array array, int index) => throw null;
                public int Count { get => throw null; }
                public EventCache() => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null;
                public System.Collections.IDictionary InvertMap() => throw null;
                public bool IsFixedSize { get => throw null; }
                public bool IsOperatedOn(object entity) => throw null;
                public bool IsReadOnly { get => throw null; }
                public bool IsSynchronized { get => throw null; }
                public System.Collections.ICollection Keys { get => throw null; }
                public void Remove(object key) => throw null;
                public void SetOperatedOn(object entity, bool isOperatedOn) => throw null;
                public object SyncRoot { get => throw null; }
                public object this[object key] { get => throw null; set { } }
                public System.Collections.ICollection Values { get => throw null; }
            }
            public class EvictVisitor : NHibernate.Event.Default.AbstractVisitor
            {
                public EvictVisitor(NHibernate.Event.IEventSource session) : base(default(NHibernate.Event.IEventSource)) => throw null;
                public virtual void EvictCollection(object value, NHibernate.Type.CollectionType type) => throw null;
            }
            public class FlushVisitor : NHibernate.Event.Default.AbstractVisitor
            {
                public FlushVisitor(NHibernate.Event.IEventSource session, object owner) : base(default(NHibernate.Event.IEventSource)) => throw null;
            }
            public class OnLockVisitor : NHibernate.Event.Default.ReattachVisitor
            {
                public OnLockVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner) : base(default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
            }
            public class OnReplicateVisitor : NHibernate.Event.Default.ReattachVisitor
            {
                public OnReplicateVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner, bool isUpdate) : base(default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
            }
            public class OnUpdateVisitor : NHibernate.Event.Default.ReattachVisitor
            {
                public OnUpdateVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner) : base(default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
            }
            public abstract class ProxyVisitor : NHibernate.Event.Default.AbstractVisitor
            {
                public ProxyVisitor(NHibernate.Event.IEventSource session) : base(default(NHibernate.Event.IEventSource)) => throw null;
                protected static bool IsOwnerUnchanged(NHibernate.Collection.IPersistentCollection snapshot, NHibernate.Persister.Collection.ICollectionPersister persister, object id) => throw null;
                protected void ReattachCollection(NHibernate.Collection.IPersistentCollection collection, NHibernate.Type.CollectionType type) => throw null;
            }
            public abstract class ReattachVisitor : NHibernate.Event.Default.ProxyVisitor
            {
                protected ReattachVisitor(NHibernate.Event.IEventSource session, object ownerIdentifier, object owner) : base(default(NHibernate.Event.IEventSource)) => throw null;
                public object Owner { get => throw null; }
                public object OwnerIdentifier { get => throw null; }
            }
            public class WrapVisitor : NHibernate.Event.Default.ProxyVisitor
            {
                public WrapVisitor(NHibernate.Event.IEventSource session) : base(default(NHibernate.Event.IEventSource)) => throw null;
            }
        }
        public class DeleteEvent : NHibernate.Event.AbstractEvent
        {
            public bool CascadeDeleteEnabled { get => throw null; }
            public DeleteEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public DeleteEvent(string entityName, object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public DeleteEvent(string entityName, object entity, bool isCascadeDeleteEnabled, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; }
            public string EntityName { get => throw null; }
        }
        public class DirtyCheckEvent : NHibernate.Event.FlushEvent
        {
            public DirtyCheckEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public bool Dirty { get => throw null; set { } }
        }
        public class EventListeners
        {
            public NHibernate.Event.IAutoFlushEventListener[] AutoFlushEventListeners { get => throw null; set { } }
            public EventListeners() => throw null;
            public NHibernate.Event.IDeleteEventListener[] DeleteEventListeners { get => throw null; set { } }
            public void DestroyListeners() => throw null;
            public NHibernate.Event.IDirtyCheckEventListener[] DirtyCheckEventListeners { get => throw null; set { } }
            public NHibernate.Event.IEvictEventListener[] EvictEventListeners { get => throw null; set { } }
            public NHibernate.Event.IFlushEntityEventListener[] FlushEntityEventListeners { get => throw null; set { } }
            public NHibernate.Event.IFlushEventListener[] FlushEventListeners { get => throw null; set { } }
            public System.Type GetListenerClassFor(NHibernate.Event.ListenerType type) => throw null;
            public NHibernate.Event.IInitializeCollectionEventListener[] InitializeCollectionEventListeners { get => throw null; set { } }
            public virtual void InitializeListeners(NHibernate.Cfg.Configuration cfg) => throw null;
            public NHibernate.Event.ILoadEventListener[] LoadEventListeners { get => throw null; set { } }
            public NHibernate.Event.ILockEventListener[] LockEventListeners { get => throw null; set { } }
            public NHibernate.Event.IMergeEventListener[] MergeEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPersistEventListener[] PersistEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPersistEventListener[] PersistOnFlushEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostCollectionRecreateEventListener[] PostCollectionRecreateEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostCollectionRemoveEventListener[] PostCollectionRemoveEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostCollectionUpdateEventListener[] PostCollectionUpdateEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostDeleteEventListener[] PostCommitDeleteEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostInsertEventListener[] PostCommitInsertEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostUpdateEventListener[] PostCommitUpdateEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostDeleteEventListener[] PostDeleteEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostInsertEventListener[] PostInsertEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostLoadEventListener[] PostLoadEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPostUpdateEventListener[] PostUpdateEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPreCollectionRecreateEventListener[] PreCollectionRecreateEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPreCollectionRemoveEventListener[] PreCollectionRemoveEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPreCollectionUpdateEventListener[] PreCollectionUpdateEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPreDeleteEventListener[] PreDeleteEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPreInsertEventListener[] PreInsertEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPreLoadEventListener[] PreLoadEventListeners { get => throw null; set { } }
            public NHibernate.Event.IPreUpdateEventListener[] PreUpdateEventListeners { get => throw null; set { } }
            public NHibernate.Event.IRefreshEventListener[] RefreshEventListeners { get => throw null; set { } }
            public NHibernate.Event.IReplicateEventListener[] ReplicateEventListeners { get => throw null; set { } }
            public NHibernate.Event.ISaveOrUpdateEventListener[] SaveEventListeners { get => throw null; set { } }
            public NHibernate.Event.ISaveOrUpdateEventListener[] SaveOrUpdateEventListeners { get => throw null; set { } }
            public NHibernate.Event.EventListeners ShallowCopy() => throw null;
            public NHibernate.Event.ISaveOrUpdateEventListener[] UpdateEventListeners { get => throw null; set { } }
        }
        public class EvictEvent : NHibernate.Event.AbstractEvent
        {
            public EvictEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
        }
        public class FlushEntityEvent : NHibernate.Event.AbstractEvent
        {
            public FlushEntityEvent(NHibernate.Event.IEventSource source, object entity, NHibernate.Engine.EntityEntry entry) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object[] DatabaseSnapshot { get => throw null; set { } }
            public bool DirtyCheckHandledByInterceptor { get => throw null; set { } }
            public bool DirtyCheckPossible { get => throw null; set { } }
            public int[] DirtyProperties { get => throw null; set { } }
            public object Entity { get => throw null; }
            public NHibernate.Engine.EntityEntry EntityEntry { get => throw null; }
            public bool HasDatabaseSnapshot { get => throw null; }
            public bool HasDirtyCollection { get => throw null; set { } }
            public object[] PropertyValues { get => throw null; set { } }
        }
        public class FlushEvent : NHibernate.Event.AbstractEvent
        {
            public FlushEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
        }
        public interface IAutoFlushEventListener
        {
            void OnAutoFlush(NHibernate.Event.AutoFlushEvent @event);
            System.Threading.Tasks.Task OnAutoFlushAsync(NHibernate.Event.AutoFlushEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IDatabaseEventArgs
        {
            NHibernate.Event.IEventSource Session { get; }
        }
        public interface IDeleteEventListener
        {
            void OnDelete(NHibernate.Event.DeleteEvent @event);
            void OnDelete(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet<object> transientEntities);
            System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task OnDeleteAsync(NHibernate.Event.DeleteEvent @event, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken);
        }
        public interface IDestructible
        {
            void Cleanup();
        }
        public interface IDirtyCheckEventListener
        {
            void OnDirtyCheck(NHibernate.Event.DirtyCheckEvent @event);
            System.Threading.Tasks.Task OnDirtyCheckAsync(NHibernate.Event.DirtyCheckEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IEventSource : System.IDisposable, NHibernate.ISession, NHibernate.Engine.ISessionImplementor
        {
            NHibernate.Engine.ActionQueue ActionQueue { get; }
            bool AutoFlushSuspended { get; }
            void Delete(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet<object> transientEntities);
            System.Threading.Tasks.Task DeleteAsync(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken);
            void ForceFlush(NHibernate.Engine.EntityEntry e);
            System.Threading.Tasks.Task ForceFlushAsync(NHibernate.Engine.EntityEntry e, System.Threading.CancellationToken cancellationToken);
            object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id);
            void Merge(string entityName, object obj, System.Collections.IDictionary copiedAlready);
            System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken);
            void Persist(string entityName, object obj, System.Collections.IDictionary createdAlready);
            System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken);
            void PersistOnFlush(string entityName, object obj, System.Collections.IDictionary copiedAlready);
            System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken);
            void Refresh(object obj, System.Collections.IDictionary refreshedAlready);
            System.Threading.Tasks.Task RefreshAsync(object obj, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken);
            System.IDisposable SuspendAutoFlush();
        }
        public interface IEvictEventListener
        {
            void OnEvict(NHibernate.Event.EvictEvent @event);
            System.Threading.Tasks.Task OnEvictAsync(NHibernate.Event.EvictEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IFlushEntityEventListener
        {
            void OnFlushEntity(NHibernate.Event.FlushEntityEvent @event);
            System.Threading.Tasks.Task OnFlushEntityAsync(NHibernate.Event.FlushEntityEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IFlushEventListener
        {
            void OnFlush(NHibernate.Event.FlushEvent @event);
            System.Threading.Tasks.Task OnFlushAsync(NHibernate.Event.FlushEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IInitializable
        {
            void Initialize(NHibernate.Cfg.Configuration cfg);
        }
        public interface IInitializeCollectionEventListener
        {
            void OnInitializeCollection(NHibernate.Event.InitializeCollectionEvent @event);
            System.Threading.Tasks.Task OnInitializeCollectionAsync(NHibernate.Event.InitializeCollectionEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface ILoadEventListener
        {
            void OnLoad(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType);
            System.Threading.Tasks.Task OnLoadAsync(NHibernate.Event.LoadEvent @event, NHibernate.Event.LoadType loadType, System.Threading.CancellationToken cancellationToken);
        }
        public interface ILockEventListener
        {
            void OnLock(NHibernate.Event.LockEvent @event);
            System.Threading.Tasks.Task OnLockAsync(NHibernate.Event.LockEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IMergeEventListener
        {
            void OnMerge(NHibernate.Event.MergeEvent @event);
            void OnMerge(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready);
            System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task OnMergeAsync(NHibernate.Event.MergeEvent @event, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken);
        }
        public class InitializeCollectionEvent : NHibernate.Event.AbstractCollectionEvent
        {
            public InitializeCollectionEvent(NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
        }
        public interface IPersistEventListener
        {
            void OnPersist(NHibernate.Event.PersistEvent @event);
            void OnPersist(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready);
            System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task OnPersistAsync(NHibernate.Event.PersistEvent @event, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPostCollectionRecreateEventListener
        {
            void OnPostRecreateCollection(NHibernate.Event.PostCollectionRecreateEvent @event);
            System.Threading.Tasks.Task OnPostRecreateCollectionAsync(NHibernate.Event.PostCollectionRecreateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPostCollectionRemoveEventListener
        {
            void OnPostRemoveCollection(NHibernate.Event.PostCollectionRemoveEvent @event);
            System.Threading.Tasks.Task OnPostRemoveCollectionAsync(NHibernate.Event.PostCollectionRemoveEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPostCollectionUpdateEventListener
        {
            void OnPostUpdateCollection(NHibernate.Event.PostCollectionUpdateEvent @event);
            System.Threading.Tasks.Task OnPostUpdateCollectionAsync(NHibernate.Event.PostCollectionUpdateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPostDatabaseOperationEventArgs : NHibernate.Event.IDatabaseEventArgs
        {
            object Entity { get; }
            object Id { get; }
            NHibernate.Persister.Entity.IEntityPersister Persister { get; }
        }
        public interface IPostDeleteEventListener
        {
            void OnPostDelete(NHibernate.Event.PostDeleteEvent @event);
            System.Threading.Tasks.Task OnPostDeleteAsync(NHibernate.Event.PostDeleteEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPostInsertEventListener
        {
            void OnPostInsert(NHibernate.Event.PostInsertEvent @event);
            System.Threading.Tasks.Task OnPostInsertAsync(NHibernate.Event.PostInsertEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPostLoadEventListener
        {
            void OnPostLoad(NHibernate.Event.PostLoadEvent @event);
        }
        public interface IPostUpdateEventListener
        {
            void OnPostUpdate(NHibernate.Event.PostUpdateEvent @event);
            System.Threading.Tasks.Task OnPostUpdateAsync(NHibernate.Event.PostUpdateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPreCollectionRecreateEventListener
        {
            void OnPreRecreateCollection(NHibernate.Event.PreCollectionRecreateEvent @event);
            System.Threading.Tasks.Task OnPreRecreateCollectionAsync(NHibernate.Event.PreCollectionRecreateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPreCollectionRemoveEventListener
        {
            void OnPreRemoveCollection(NHibernate.Event.PreCollectionRemoveEvent @event);
            System.Threading.Tasks.Task OnPreRemoveCollectionAsync(NHibernate.Event.PreCollectionRemoveEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPreCollectionUpdateEventListener
        {
            void OnPreUpdateCollection(NHibernate.Event.PreCollectionUpdateEvent @event);
            System.Threading.Tasks.Task OnPreUpdateCollectionAsync(NHibernate.Event.PreCollectionUpdateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPreDatabaseOperationEventArgs : NHibernate.Event.IDatabaseEventArgs
        {
            object Entity { get; }
            object Id { get; }
            NHibernate.Persister.Entity.IEntityPersister Persister { get; }
        }
        public interface IPreDeleteEventListener
        {
            bool OnPreDelete(NHibernate.Event.PreDeleteEvent @event);
            System.Threading.Tasks.Task<bool> OnPreDeleteAsync(NHibernate.Event.PreDeleteEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPreInsertEventListener
        {
            bool OnPreInsert(NHibernate.Event.PreInsertEvent @event);
            System.Threading.Tasks.Task<bool> OnPreInsertAsync(NHibernate.Event.PreInsertEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPreLoadEventListener
        {
            void OnPreLoad(NHibernate.Event.PreLoadEvent @event);
            System.Threading.Tasks.Task OnPreLoadAsync(NHibernate.Event.PreLoadEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IPreUpdateEventListener
        {
            bool OnPreUpdate(NHibernate.Event.PreUpdateEvent @event);
            System.Threading.Tasks.Task<bool> OnPreUpdateAsync(NHibernate.Event.PreUpdateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface IRefreshEventListener
        {
            void OnRefresh(NHibernate.Event.RefreshEvent @event);
            void OnRefresh(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready);
            System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task OnRefreshAsync(NHibernate.Event.RefreshEvent @event, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken);
        }
        public interface IReplicateEventListener
        {
            void OnReplicate(NHibernate.Event.ReplicateEvent @event);
            System.Threading.Tasks.Task OnReplicateAsync(NHibernate.Event.ReplicateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public interface ISaveOrUpdateEventListener
        {
            void OnSaveOrUpdate(NHibernate.Event.SaveOrUpdateEvent @event);
            System.Threading.Tasks.Task OnSaveOrUpdateAsync(NHibernate.Event.SaveOrUpdateEvent @event, System.Threading.CancellationToken cancellationToken);
        }
        public enum ListenerType
        {
            NotValidType = 0,
            Autoflush = 1,
            Merge = 2,
            Create = 3,
            CreateOnFlush = 4,
            Delete = 5,
            DirtyCheck = 6,
            Evict = 7,
            Flush = 8,
            FlushEntity = 9,
            Load = 10,
            LoadCollection = 11,
            Lock = 12,
            Refresh = 13,
            Replicate = 14,
            SaveUpdate = 15,
            Save = 16,
            PreUpdate = 17,
            Update = 18,
            PreLoad = 19,
            PreDelete = 20,
            PreInsert = 21,
            PreCollectionRecreate = 22,
            PreCollectionRemove = 23,
            PreCollectionUpdate = 24,
            PostLoad = 25,
            PostInsert = 26,
            PostUpdate = 27,
            PostDelete = 28,
            PostCommitUpdate = 29,
            PostCommitInsert = 30,
            PostCommitDelete = 31,
            PostCollectionRecreate = 32,
            PostCollectionRemove = 33,
            PostCollectionUpdate = 34,
        }
        public class LoadEvent : NHibernate.Event.AbstractEvent
        {
            public LoadEvent(object entityId, object instanceToLoad, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public LoadEvent(object entityId, string entityClassName, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public LoadEvent(object entityId, string entityClassName, bool isAssociationFetch, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public static readonly NHibernate.LockMode DefaultLockMode;
            public string EntityClassName { get => throw null; set { } }
            public object EntityId { get => throw null; set { } }
            public object InstanceToLoad { get => throw null; set { } }
            public bool IsAssociationFetch { get => throw null; }
            public NHibernate.LockMode LockMode { get => throw null; set { } }
            public object Result { get => throw null; set { } }
        }
        public static class LoadEventListener
        {
            public static readonly NHibernate.Event.LoadType Get;
            public static readonly NHibernate.Event.LoadType ImmediateLoad;
            public static readonly NHibernate.Event.LoadType InternalLoadEager;
            public static readonly NHibernate.Event.LoadType InternalLoadLazy;
            public static readonly NHibernate.Event.LoadType InternalLoadNullable;
            public static readonly NHibernate.Event.LoadType Load;
            public static readonly NHibernate.Event.LoadType Reload;
        }
        public sealed class LoadType
        {
            public bool ExactPersister { get => throw null; }
            public bool IsAllowNulls { get => throw null; }
            public bool IsAllowProxyCreation { get => throw null; }
            public bool IsCheckDeleted { get => throw null; }
            public bool IsNakedEntityReturned { get => throw null; }
            public string Name { get => throw null; }
            public override string ToString() => throw null;
        }
        public class LockEvent : NHibernate.Event.AbstractEvent
        {
            public LockEvent(object entity, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public LockEvent(string entityName, object original, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
            public string EntityName { get => throw null; set { } }
            public NHibernate.LockMode LockMode { get => throw null; set { } }
        }
        public class MergeEvent : NHibernate.Event.AbstractEvent
        {
            public MergeEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public MergeEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public MergeEvent(string entityName, object original, object id, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
            public string EntityName { get => throw null; set { } }
            public object Original { get => throw null; set { } }
            public object RequestedId { get => throw null; set { } }
            public object Result { get => throw null; set { } }
        }
        public class PersistEvent : NHibernate.Event.AbstractEvent
        {
            public PersistEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public PersistEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
            public string EntityName { get => throw null; set { } }
        }
        public class PostCollectionRecreateEvent : NHibernate.Event.AbstractCollectionEvent
        {
            public PostCollectionRecreateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
        }
        public class PostCollectionRemoveEvent : NHibernate.Event.AbstractCollectionEvent
        {
            public PostCollectionRemoveEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object loadedOwner) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
        }
        public class PostCollectionUpdateEvent : NHibernate.Event.AbstractCollectionEvent
        {
            public PostCollectionUpdateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
        }
        public class PostDeleteEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent
        {
            public PostDeleteEvent(object entity, object id, object[] deletedState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public object[] DeletedState { get => throw null; }
        }
        public class PostInsertEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent
        {
            public PostInsertEvent(object entity, object id, object[] state, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public object[] State { get => throw null; }
        }
        public class PostLoadEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IDatabaseEventArgs, NHibernate.Event.IPostDatabaseOperationEventArgs
        {
            public PostLoadEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
            public object Id { get => throw null; set { } }
            public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set { } }
        }
        public class PostUpdateEvent : NHibernate.Event.AbstractPostDatabaseOperationEvent
        {
            public PostUpdateEvent(object entity, object id, object[] state, object[] oldState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public object[] OldState { get => throw null; }
            public object[] State { get => throw null; }
        }
        public class PreCollectionRecreateEvent : NHibernate.Event.AbstractCollectionEvent
        {
            public PreCollectionRecreateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
        }
        public class PreCollectionRemoveEvent : NHibernate.Event.AbstractCollectionEvent
        {
            public PreCollectionRemoveEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source, object loadedOwner) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
        }
        public class PreCollectionUpdateEvent : NHibernate.Event.AbstractCollectionEvent
        {
            public PreCollectionUpdateEvent(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, NHibernate.Collection.IPersistentCollection collection, NHibernate.Event.IEventSource source) : base(default(NHibernate.Persister.Collection.ICollectionPersister), default(NHibernate.Collection.IPersistentCollection), default(NHibernate.Event.IEventSource), default(object), default(object)) => throw null;
        }
        public class PreDeleteEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent
        {
            public PreDeleteEvent(object entity, object id, object[] deletedState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public object[] DeletedState { get => throw null; }
        }
        public class PreInsertEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent
        {
            public PreInsertEvent(object entity, object id, object[] state, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public object[] State { get => throw null; }
        }
        public class PreLoadEvent : NHibernate.Event.AbstractEvent, NHibernate.Event.IDatabaseEventArgs, NHibernate.Event.IPreDatabaseOperationEventArgs
        {
            public PreLoadEvent(NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
            public object Id { get => throw null; set { } }
            public NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; set { } }
            public object[] State { get => throw null; set { } }
        }
        public class PreUpdateEvent : NHibernate.Event.AbstractPreDatabaseOperationEvent
        {
            public PreUpdateEvent(object entity, object id, object[] state, object[] oldState, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource), default(object), default(object), default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
            public object[] OldState { get => throw null; }
            public object[] State { get => throw null; }
        }
        public class RefreshEvent : NHibernate.Event.AbstractEvent
        {
            public RefreshEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public RefreshEvent(object entity, NHibernate.LockMode lockMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; }
            public NHibernate.LockMode LockMode { get => throw null; }
        }
        public class ReplicateEvent : NHibernate.Event.AbstractEvent
        {
            public ReplicateEvent(object entity, NHibernate.ReplicationMode replicationMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public ReplicateEvent(string entityName, object entity, NHibernate.ReplicationMode replicationMode, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
            public string EntityName { get => throw null; set { } }
            public NHibernate.ReplicationMode ReplicationMode { get => throw null; set { } }
        }
        public class SaveOrUpdateEvent : NHibernate.Event.AbstractEvent
        {
            public SaveOrUpdateEvent(object entity, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public SaveOrUpdateEvent(string entityName, object original, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public SaveOrUpdateEvent(string entityName, object original, object id, NHibernate.Event.IEventSource source) : base(default(NHibernate.Event.IEventSource)) => throw null;
            public object Entity { get => throw null; set { } }
            public string EntityName { get => throw null; set { } }
            public NHibernate.Engine.EntityEntry Entry { get => throw null; set { } }
            public object RequestedId { get => throw null; set { } }
            public object ResultEntity { get => throw null; set { } }
            public object ResultId { get => throw null; set { } }
        }
    }
    namespace Exceptions
    {
        public class ADOConnectionException : NHibernate.ADOException
        {
            public ADOConnectionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public ADOConnectionException(string message, System.Exception innerException, string sql) => throw null;
            public ADOConnectionException(string message, System.Exception innerException) => throw null;
        }
        public class AdoExceptionContextInfo
        {
            public AdoExceptionContextInfo() => throw null;
            public object EntityId { get => throw null; set { } }
            public string EntityName { get => throw null; set { } }
            public string Message { get => throw null; set { } }
            public string Sql { get => throw null; set { } }
            public System.Exception SqlException { get => throw null; set { } }
        }
        public static class ADOExceptionHelper
        {
            public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, NHibernate.Exceptions.AdoExceptionContextInfo exceptionContextInfo) => throw null;
            public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqlException, string message, NHibernate.SqlCommand.SqlString sql) => throw null;
            public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqlException, string message) => throw null;
            public static System.Exception Convert(NHibernate.Exceptions.ISQLExceptionConverter converter, System.Exception sqle, string message, NHibernate.SqlCommand.SqlString sql, object[] parameterValues, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters) => throw null;
            public static string ExtendMessage(string message, string sql, object[] parameterValues, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters) => throw null;
            public static System.Data.Common.DbException ExtractDbException(System.Exception sqlException) => throw null;
            public const string SQLNotAvailable = default;
            public static NHibernate.SqlCommand.SqlString TryGetActualSqlQuery(System.Exception sqle, NHibernate.SqlCommand.SqlString sql) => throw null;
            public static string TryGetActualSqlQuery(System.Exception sqle, string sql) => throw null;
        }
        public class AggregateHibernateException : NHibernate.HibernateException
        {
            public AggregateHibernateException(System.Collections.Generic.IEnumerable<System.Exception> innerExceptions) => throw null;
            public AggregateHibernateException(params System.Exception[] innerExceptions) => throw null;
            public AggregateHibernateException(string message, System.Collections.Generic.IEnumerable<System.Exception> innerExceptions) => throw null;
            public AggregateHibernateException(string message, params System.Exception[] innerExceptions) => throw null;
            protected AggregateHibernateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public System.Collections.ObjectModel.ReadOnlyCollection<System.Exception> InnerExceptions { get => throw null; }
            public override string ToString() => throw null;
        }
        public class ConstraintViolationException : NHibernate.ADOException
        {
            public string ConstraintName { get => throw null; }
            public ConstraintViolationException(string message, System.Exception innerException, string sql, string constraintName) => throw null;
            public ConstraintViolationException(string message, System.Exception innerException, string constraintName) => throw null;
            public ConstraintViolationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public class DataException : NHibernate.ADOException
        {
            public DataException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public DataException(string message, System.Exception innerException, string sql) => throw null;
            public DataException(string message, System.Exception innerException) => throw null;
        }
        public class GenericADOException : NHibernate.ADOException
        {
            public GenericADOException() => throw null;
            public GenericADOException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public GenericADOException(string message, System.Exception innerException, string sql) => throw null;
            public GenericADOException(string message, System.Exception innerException) => throw null;
        }
        public interface IConfigurable
        {
            void Configure(System.Collections.Generic.IDictionary<string, string> properties);
        }
        public interface ISQLExceptionConverter
        {
            System.Exception Convert(NHibernate.Exceptions.AdoExceptionContextInfo adoExceptionContextInfo);
        }
        public interface IViolatedConstraintNameExtracter
        {
            string ExtractConstraintName(System.Data.Common.DbException sqle);
        }
        public class LockAcquisitionException : NHibernate.ADOException
        {
            public LockAcquisitionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public LockAcquisitionException(string message, System.Exception innerException, string sql) => throw null;
            public LockAcquisitionException(string message, System.Exception innerException) => throw null;
        }
        public class NoOpViolatedConstraintNameExtracter : NHibernate.Exceptions.IViolatedConstraintNameExtracter
        {
            public NoOpViolatedConstraintNameExtracter() => throw null;
            public virtual string ExtractConstraintName(System.Data.Common.DbException sqle) => throw null;
        }
        public static class SQLExceptionConverterFactory
        {
            public static NHibernate.Exceptions.ISQLExceptionConverter BuildMinimalSQLExceptionConverter() => throw null;
            public static NHibernate.Exceptions.ISQLExceptionConverter BuildSQLExceptionConverter(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
        }
        public class SQLGrammarException : NHibernate.ADOException
        {
            public SQLGrammarException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public SQLGrammarException(string message, System.Exception innerException, string sql) => throw null;
            public SQLGrammarException(string message, System.Exception innerException) => throw null;
        }
        public class SqlParseException : System.Exception
        {
            public SqlParseException(string message) => throw null;
            protected SqlParseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public class SQLStateConverter : NHibernate.Exceptions.ISQLExceptionConverter
        {
            public System.Exception Convert(NHibernate.Exceptions.AdoExceptionContextInfo exceptionInfo) => throw null;
            public SQLStateConverter(NHibernate.Exceptions.IViolatedConstraintNameExtracter extracter) => throw null;
            public static NHibernate.ADOException HandledNonSpecificException(System.Exception sqlException, string message, string sql) => throw null;
        }
        public abstract class SqlStateExtracter
        {
            protected SqlStateExtracter() => throw null;
            public int ExtractErrorCode(System.Data.Common.DbException sqle) => throw null;
            public abstract int ExtractSingleErrorCode(System.Data.Common.DbException sqle);
            public abstract string ExtractSingleSqlState(System.Data.Common.DbException sqle);
            public string ExtractSqlState(System.Data.Common.DbException sqle) => throw null;
        }
        public abstract class TemplatedViolatedConstraintNameExtracter : NHibernate.Exceptions.IViolatedConstraintNameExtracter
        {
            protected TemplatedViolatedConstraintNameExtracter() => throw null;
            public abstract string ExtractConstraintName(System.Data.Common.DbException sqle);
            protected string ExtractUsingTemplate(string templateStart, string templateEnd, string message) => throw null;
        }
    }
    public enum FetchMode
    {
        Default = 0,
        Select = 1,
        Join = 2,
        Lazy = 1,
        Eager = 2,
    }
    public class FKUnmatchingColumnsException : NHibernate.MappingException
    {
        public FKUnmatchingColumnsException(string message) : base(default(string)) => throw null;
        public FKUnmatchingColumnsException(string message, System.Exception innerException) : base(default(string)) => throw null;
        protected FKUnmatchingColumnsException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
    }
    public enum FlushMode
    {
        Unspecified = -1,
        Manual = 0,
        Never = 0,
        Commit = 5,
        Auto = 10,
        Always = 20,
    }
    public class HibernateException : System.Exception
    {
        public HibernateException() => throw null;
        public HibernateException(string message) => throw null;
        public HibernateException(System.Exception innerException) => throw null;
        public HibernateException(string message, System.Exception innerException) => throw null;
        protected HibernateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Hql
    {
        namespace Ast
        {
            namespace ANTLR
            {
                public class AstPolymorphicProcessor
                {
                    public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] Process(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ast, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                }
                public class ASTQueryTranslatorFactory : NHibernate.Hql.IQueryTranslatorFactory
                {
                    public NHibernate.Hql.IQueryTranslator[] CreateQueryTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> filters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                    public ASTQueryTranslatorFactory() => throw null;
                }
                public static class CrossJoinDictionaryArrays
                {
                    public static System.Collections.Generic.IList<System.Collections.Generic.Dictionary<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode>> PerformCrossJoin(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[]>> input) => throw null;
                }
                public class DetailedSemanticException : NHibernate.Hql.Ast.ANTLR.SemanticException
                {
                    public DetailedSemanticException(string message) : base(default(string)) => throw null;
                    public DetailedSemanticException(string message, System.Exception inner) : base(default(string)) => throw null;
                    protected DetailedSemanticException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
                }
                namespace Exec
                {
                    public abstract class AbstractStatementExecutor : NHibernate.Hql.Ast.ANTLR.Exec.IStatementExecutor
                    {
                        protected abstract NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get; }
                        protected virtual void CoordinateSharedCacheCleanup(NHibernate.Engine.ISessionImplementor session) => throw null;
                        protected virtual System.Threading.Tasks.Task CoordinateSharedCacheCleanupAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                        protected virtual void CreateTemporaryTableIfNecessary(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session) => throw null;
                        protected virtual System.Threading.Tasks.Task CreateTemporaryTableIfNecessaryAsync(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                        protected AbstractStatementExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement, NHibernate.INHibernateLogger log) => throw null;
                        protected virtual void DropTemporaryTableIfNecessary(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session) => throw null;
                        protected virtual System.Threading.Tasks.Task DropTemporaryTableIfNecessaryAsync(NHibernate.Persister.Entity.IQueryable persister, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                        public abstract int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session);
                        public abstract System.Threading.Tasks.Task<int> ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                        protected NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
                        protected NHibernate.SqlCommand.SqlString GenerateIdInsertSelect(NHibernate.Persister.Entity.IQueryable persister, string tableAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode whereClause) => throw null;
                        protected string GenerateIdSubselect(NHibernate.Persister.Entity.IQueryable persister) => throw null;
                        protected virtual bool ShouldIsolateTemporaryTableDDL() => throw null;
                        public abstract NHibernate.SqlCommand.SqlString[] SqlStatements { get; }
                        protected NHibernate.Hql.Ast.ANTLR.Tree.IStatement Statement { get => throw null; }
                        protected NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get => throw null; }
                    }
                    public class BasicExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor
                    {
                        protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; }
                        public BasicExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement, NHibernate.Persister.Entity.IQueryable persister) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null;
                        public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null;
                        public override System.Threading.Tasks.Task<int> ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                        public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; }
                    }
                    public interface IStatementExecutor
                    {
                        int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session);
                        System.Threading.Tasks.Task<int> ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                        NHibernate.SqlCommand.SqlString[] SqlStatements { get; }
                    }
                    public class MultiTableDeleteExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor
                    {
                        protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; }
                        public MultiTableDeleteExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null;
                        public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null;
                        public override System.Threading.Tasks.Task<int> ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                        public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; }
                    }
                    public class MultiTableUpdateExecutor : NHibernate.Hql.Ast.ANTLR.Exec.AbstractStatementExecutor
                    {
                        protected override NHibernate.Persister.Entity.IQueryable[] AffectedQueryables { get => throw null; }
                        public MultiTableUpdateExecutor(NHibernate.Hql.Ast.ANTLR.Tree.IStatement statement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IStatement), default(NHibernate.INHibernateLogger)) => throw null;
                        public override int Execute(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session) => throw null;
                        public override System.Threading.Tasks.Task<int> ExecuteAsync(NHibernate.Engine.QueryParameters parameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                        public override NHibernate.SqlCommand.SqlString[] SqlStatements { get => throw null; }
                    }
                }
                public class HqlLexer : Antlr.Runtime.Lexer
                {
                    public const int AGGREGATE = 4;
                    public const int ALIAS = 5;
                    public const int ALL = 6;
                    public const int AND = 7;
                    public const int ANY = 8;
                    public const int AS = 9;
                    public const int ASCENDING = 10;
                    public const int AVG = 11;
                    public const int BAND = 12;
                    public const int BETWEEN = 13;
                    public const int BNOT = 14;
                    public const int BOR = 15;
                    public const int BOTH = 16;
                    public const int BXOR = 17;
                    public const int CASE = 18;
                    public const int CASE2 = 19;
                    public const int CLASS = 20;
                    public const int CLOSE = 21;
                    public const int CLOSE_BRACKET = 22;
                    public const int COLON = 23;
                    public const int COMMA = 24;
                    public const int CONCAT = 25;
                    public const int CONSTANT = 26;
                    public const int CONSTRUCTOR = 27;
                    public const int COUNT = 28;
                    public const int CROSS = 29;
                    public HqlLexer() => throw null;
                    public HqlLexer(Antlr.Runtime.ICharStream input) => throw null;
                    public HqlLexer(Antlr.Runtime.ICharStream input, Antlr.Runtime.RecognizerSharedState state) => throw null;
                    public const int DELETE = 30;
                    public const int DESCENDING = 31;
                    public const int DISTINCT = 32;
                    public const int DIV = 33;
                    public const int DOT = 34;
                    public const int ELEMENTS = 35;
                    public const int ELSE = 36;
                    public override Antlr.Runtime.IToken Emit() => throw null;
                    public const int EMPTY = 37;
                    public const int END = 38;
                    public const int EOF = -1;
                    public const int EQ = 39;
                    public const int ESCAPE = 40;
                    public const int ESCqs = 41;
                    public const int EXISTS = 42;
                    public const int EXPONENT = 43;
                    public const int EXPR_LIST = 44;
                    public const int FALSE = 45;
                    public const int FETCH = 46;
                    public const int FILTER_ENTITY = 47;
                    public const int FLOAT_SUFFIX = 48;
                    public const int FROM = 49;
                    public const int FULL = 50;
                    public const int GE = 51;
                    public override string GrammarFileName { get => throw null; }
                    public const int GROUP = 52;
                    public const int GT = 53;
                    public const int HAVING = 54;
                    public const int HEX_DIGIT = 55;
                    public const int ID_LETTER = 57;
                    public const int ID_START_LETTER = 58;
                    public const int IDENT = 56;
                    public const int IN = 59;
                    public const int IN_LIST = 65;
                    public const int INDEX_OP = 60;
                    public const int INDICES = 61;
                    protected override void InitDFAs() => throw null;
                    public const int INNER = 62;
                    public const int INSERT = 63;
                    public const int INTO = 64;
                    public const int IS = 66;
                    public const int IS_NOT_NULL = 67;
                    public const int IS_NULL = 68;
                    public const int JAVA_CONSTANT = 69;
                    public const int JOIN = 70;
                    public const int LE = 71;
                    public const int LEADING = 72;
                    public const int LEFT = 73;
                    public const int LIKE = 74;
                    public const int LITERAL_by = 75;
                    public const int LT = 76;
                    public const int MAX = 77;
                    public const int MEMBER = 78;
                    public const int METHOD_CALL = 79;
                    public const int MIN = 80;
                    public const int MINUS = 81;
                    public override void mTokens() => throw null;
                    public const int NE = 82;
                    public const int NEW = 83;
                    public const int NOT = 84;
                    public const int NOT_BETWEEN = 85;
                    public const int NOT_IN = 86;
                    public const int NOT_LIKE = 87;
                    public const int NULL = 88;
                    public const int NUM_DECIMAL = 89;
                    public const int NUM_DOUBLE = 90;
                    public const int NUM_FLOAT = 91;
                    public const int NUM_INT = 92;
                    public const int NUM_LONG = 93;
                    public const int OBJECT = 94;
                    public const int OF = 95;
                    public const int ON = 96;
                    public const int OPEN = 97;
                    public const int OPEN_BRACKET = 98;
                    public const int OR = 99;
                    public const int ORDER = 100;
                    public const int ORDER_ELEMENT = 101;
                    public const int OUTER = 102;
                    public const int PARAM = 103;
                    public const int PLUS = 104;
                    public const int PROPERTIES = 105;
                    public const int QUERY = 106;
                    public const int QUOTED_String = 107;
                    public const int RANGE = 108;
                    public const int RIGHT = 109;
                    public const int ROW_STAR = 110;
                    public const int SELECT = 111;
                    public const int SELECT_FROM = 112;
                    public const int SET = 113;
                    public const int SKIP = 114;
                    public const int SOME = 115;
                    public const int SQL_NE = 116;
                    public const int STAR = 117;
                    public const int SUM = 118;
                    public const int T__134 = 134;
                    public const int T__135 = 135;
                    public const int TAKE = 119;
                    public const int THEN = 120;
                    public const int TRAILING = 121;
                    public const int TRUE = 122;
                    public const int UNARY_MINUS = 123;
                    public const int UNARY_PLUS = 124;
                    public const int UNION = 125;
                    public const int UPDATE = 126;
                    public const int VECTOR_EXPR = 127;
                    public const int VERSIONED = 128;
                    public const int WEIRD_IDENT = 129;
                    public const int WHEN = 130;
                    public const int WHERE = 131;
                    public const int WITH = 132;
                    public const int WS = 133;
                }
                public class HqlParseEngine
                {
                    public HqlParseEngine(string hql, bool filter, NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null;
                    public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parse() => throw null;
                }
                public class HqlParser : Antlr.Runtime.Parser
                {
                    public const int AGGREGATE = 4;
                    public const int ALIAS = 5;
                    public const int ALL = 6;
                    public const int AND = 7;
                    public const int ANY = 8;
                    public const int AS = 9;
                    public const int ASCENDING = 10;
                    public const int AVG = 11;
                    public const int BAND = 12;
                    public const int BETWEEN = 13;
                    public const int BNOT = 14;
                    public const int BOR = 15;
                    public const int BOTH = 16;
                    public const int BXOR = 17;
                    public const int CASE = 18;
                    public const int CASE2 = 19;
                    public const int CLASS = 20;
                    public const int CLOSE = 21;
                    public const int CLOSE_BRACKET = 22;
                    public const int COLON = 23;
                    public const int COMMA = 24;
                    public const int CONCAT = 25;
                    public const int CONSTANT = 26;
                    public const int CONSTRUCTOR = 27;
                    public const int COUNT = 28;
                    public const int CROSS = 29;
                    public HqlParser(Antlr.Runtime.ITokenStream input) : base(default(Antlr.Runtime.ITokenStream)) => throw null;
                    public HqlParser(Antlr.Runtime.ITokenStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.ITokenStream)) => throw null;
                    public const int DELETE = 30;
                    public const int DESCENDING = 31;
                    public const int DISTINCT = 32;
                    public const int DIV = 33;
                    public const int DOT = 34;
                    public const int ELEMENTS = 35;
                    public const int ELSE = 36;
                    public const int EMPTY = 37;
                    public const int END = 38;
                    public const int EOF = -1;
                    public const int EQ = 39;
                    public const int ESCAPE = 40;
                    public const int ESCqs = 41;
                    public const int EXISTS = 42;
                    public const int EXPONENT = 43;
                    public const int EXPR_LIST = 44;
                    public const int FALSE = 45;
                    public const int FETCH = 46;
                    public bool Filter { get => throw null; set { } }
                    public const int FILTER_ENTITY = 47;
                    public const int FLOAT_SUFFIX = 48;
                    public const int FROM = 49;
                    public const int FULL = 50;
                    public const int GE = 51;
                    public override string GrammarFileName { get => throw null; }
                    public const int GROUP = 52;
                    public const int GT = 53;
                    public void HandleDotIdent() => throw null;
                    public void HandleDotIdents() => throw null;
                    public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode HandleIdentifierError(Antlr.Runtime.IToken token, Antlr.Runtime.RecognitionException ex) => throw null;
                    public const int HAVING = 54;
                    public const int HEX_DIGIT = 55;
                    public const int ID_LETTER = 57;
                    public const int ID_START_LETTER = 58;
                    public const int IDENT = 56;
                    public const int IN = 59;
                    public const int IN_LIST = 65;
                    public const int INDEX_OP = 60;
                    public const int INDICES = 61;
                    public const int INNER = 62;
                    public const int INSERT = 63;
                    public const int INTO = 64;
                    public const int IS = 66;
                    public const int IS_NOT_NULL = 67;
                    public const int IS_NULL = 68;
                    public static bool IsPossibleId(Antlr.Runtime.IToken token) => throw null;
                    public const int JAVA_CONSTANT = 69;
                    public const int JOIN = 70;
                    public const int LE = 71;
                    public const int LEADING = 72;
                    public const int LEFT = 73;
                    public const int LIKE = 74;
                    public const int LITERAL_by = 75;
                    public const int LT = 76;
                    public const int MAX = 77;
                    public const int MEMBER = 78;
                    public const int METHOD_CALL = 79;
                    public const int MIN = 80;
                    public const int MINUS = 81;
                    public const int NE = 82;
                    public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NegateNode(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node) => throw null;
                    public const int NEW = 83;
                    public const int NOT = 84;
                    public const int NOT_BETWEEN = 85;
                    public const int NOT_IN = 86;
                    public const int NOT_LIKE = 87;
                    public const int NULL = 88;
                    public const int NUM_DECIMAL = 89;
                    public const int NUM_DOUBLE = 90;
                    public const int NUM_FLOAT = 91;
                    public const int NUM_INT = 92;
                    public const int NUM_LONG = 93;
                    public const int OBJECT = 94;
                    public const int OF = 95;
                    public const int ON = 96;
                    public const int OPEN = 97;
                    public const int OPEN_BRACKET = 98;
                    public const int OR = 99;
                    public const int ORDER = 100;
                    public const int ORDER_ELEMENT = 101;
                    public const int OUTER = 102;
                    public const int PARAM = 103;
                    public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; set { } }
                    public const int PLUS = 104;
                    public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ProcessEqualityExpression(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode x) => throw null;
                    public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ProcessMemberOf(Antlr.Runtime.IToken n, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode p, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root) => throw null;
                    public const int PROPERTIES = 105;
                    public const int QUERY = 106;
                    public const int QUOTED_String = 107;
                    public const int RANGE = 108;
                    protected override object RecoverFromMismatchedToken(Antlr.Runtime.IIntStream input, int ttype, Antlr.Runtime.BitSet follow) => throw null;
                    public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null;
                    public const int RIGHT = 109;
                    public const int ROW_STAR = 110;
                    public const int SELECT = 111;
                    public const int SELECT_FROM = 112;
                    public const int SET = 113;
                    public const int SKIP = 114;
                    public const int SOME = 115;
                    public const int SQL_NE = 116;
                    public const int STAR = 117;
                    public Antlr.Runtime.AstParserRuleReturnScope<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode, Antlr.Runtime.IToken> statement() => throw null;
                    public const int SUM = 118;
                    public const int T__134 = 134;
                    public const int T__135 = 135;
                    public const int TAKE = 119;
                    public const int THEN = 120;
                    public override string[] TokenNames { get => throw null; }
                    public const int TRAILING = 121;
                    public Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set { } }
                    public const int TRUE = 122;
                    public const int UNARY_MINUS = 123;
                    public const int UNARY_PLUS = 124;
                    public const int UNION = 125;
                    public const int UPDATE = 126;
                    public const int VECTOR_EXPR = 127;
                    public const int VERSIONED = 128;
                    public void WeakKeywords() => throw null;
                    public void WeakKeywords2() => throw null;
                    public const int WEIRD_IDENT = 129;
                    public const int WHEN = 130;
                    public const int WHERE = 131;
                    public const int WITH = 132;
                    public const int WS = 133;
                }
                public class HqlSqlWalker : Antlr.Runtime.Tree.TreeParser
                {
                    public void AddQuerySpaces(NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                    public void AddQuerySpaces(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null;
                    public void AddQuerySpaces(string[] spaces) => throw null;
                    public const int AGGREGATE = 4;
                    public const int ALIAS = 5;
                    public const int ALIAS_REF = 136;
                    public NHibernate.Hql.Ast.ANTLR.Util.AliasGenerator AliasGenerator { get => throw null; }
                    public const int ALL = 6;
                    public const int AND = 7;
                    public const int ANY = 8;
                    public const int AS = 9;
                    public const int ASCENDING = 10;
                    public System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.AssignmentSpecification> AssignmentSpecifications { get => throw null; }
                    public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory ASTFactory { get => throw null; }
                    public const int AVG = 11;
                    public const int BAND = 12;
                    public const int BETWEEN = 13;
                    public const int BNOT = 14;
                    public const int BOGUS = 137;
                    public const int BOR = 15;
                    public const int BOTH = 16;
                    public const int BXOR = 17;
                    public const int CASE = 18;
                    public const int CASE2 = 19;
                    public const int CLASS = 20;
                    public const int CLOSE = 21;
                    public const int CLOSE_BRACKET = 22;
                    public string CollectionFilterRole { get => throw null; }
                    public const int COLON = 23;
                    public const int COMMA = 24;
                    public const int CONCAT = 25;
                    public const int CONSTANT = 26;
                    public const int CONSTRUCTOR = 27;
                    public const int COUNT = 28;
                    public const int CROSS = 29;
                    public HqlSqlWalker(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl qti, NHibernate.Engine.ISessionFactoryImplementor sfi, Antlr.Runtime.Tree.ITreeNodeStream input, System.Collections.Generic.IDictionary<string, string> tokenReplacements, string collectionRole) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null;
                    public HqlSqlWalker(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null;
                    public HqlSqlWalker(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null;
                    public int CurrentClauseType { get => throw null; }
                    public NHibernate.Hql.Ast.ANTLR.Tree.FromClause CurrentFromClause { get => throw null; }
                    public int CurrentStatementType { get => throw null; }
                    public int CurrentTopLevelClauseType { get => throw null; }
                    public const int DELETE = 30;
                    public const int DESCENDING = 31;
                    public const int DISTINCT = 32;
                    public const int DIV = 33;
                    public const int DOT = 34;
                    public const int ELEMENTS = 35;
                    public const int ELSE = 36;
                    public const int EMPTY = 37;
                    public System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get => throw null; }
                    public const int END = 38;
                    public const int ENTITY_JOIN = 138;
                    public const int EOF = -1;
                    public const int EQ = 39;
                    public const int ESCAPE = 40;
                    public const int ESCqs = 41;
                    protected void EvaluateAssignment(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode eq) => throw null;
                    public const int EXISTS = 42;
                    public const int EXPONENT = 43;
                    public const int EXPR_LIST = 44;
                    public const int FALSE = 45;
                    public const int FETCH = 46;
                    public const int FILTER_ENTITY = 47;
                    public const int FILTERS = 139;
                    public const int FLOAT_SUFFIX = 48;
                    public const int FROM = 49;
                    public const int FROM_FRAGMENT = 140;
                    public const int FULL = 50;
                    public const int GE = 51;
                    public NHibernate.Hql.Ast.ANTLR.Tree.FromClause GetFinalFromClause() => throw null;
                    public override string GrammarFileName { get => throw null; }
                    public const int GROUP = 52;
                    public const int GT = 53;
                    protected void HandleResultVariableRef(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode resultVariableRef) => throw null;
                    public const int HAVING = 54;
                    public const int HEX_DIGIT = 55;
                    public const int ID_LETTER = 57;
                    public const int ID_START_LETTER = 58;
                    public const int IDENT = 56;
                    public const int IMPLIED_FROM = 141;
                    public NHibernate.SqlCommand.JoinType ImpliedJoinType { get => throw null; }
                    public const int IN = 59;
                    public const int IN_LIST = 65;
                    public const int INDEX_OP = 60;
                    public const int INDICES = 61;
                    public const int INNER = 62;
                    public const int INSERT = 63;
                    public const int INTO = 64;
                    public const int IS = 66;
                    public const int IS_NOT_NULL = 67;
                    public const int IS_NULL = 68;
                    public bool IsComparativeExpressionClause { get => throw null; }
                    public bool IsFilter() => throw null;
                    public bool IsInCase { get => throw null; }
                    public bool IsInFrom { get => throw null; }
                    public bool IsInSelect { get => throw null; }
                    protected bool IsOrderExpressionResultVariableRef(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode orderExpressionNode) => throw null;
                    public bool IsScalarSubQuery { get => throw null; }
                    public bool IsSelectStatement { get => throw null; }
                    public bool IsShallowQuery { get => throw null; }
                    public bool IsSubQuery { get => throw null; }
                    public const int JAVA_CONSTANT = 69;
                    public const int JOIN = 70;
                    public const int JOIN_FRAGMENT = 142;
                    public const int JOIN_SUBQUERY = 143;
                    public const int LE = 71;
                    public const int LEADING = 72;
                    public const int LEFT = 73;
                    public const int LEFT_OUTER = 144;
                    public const int LIKE = 74;
                    public const int LITERAL_by = 75;
                    public NHibernate.Hql.Ast.ANTLR.Util.LiteralProcessor LiteralProcessor { get => throw null; }
                    protected NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LookupProperty(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode dot, bool root, bool inSelect) => throw null;
                    public const int LT = 76;
                    public const int MAX = 77;
                    public const int MEMBER = 78;
                    public const int METHOD_CALL = 79;
                    public const int METHOD_NAME = 145;
                    public const int MIN = 80;
                    public const int MINUS = 81;
                    public const int NAMED_PARAM = 146;
                    public System.Collections.Generic.IDictionary<string, object> NamedParameters { get => throw null; }
                    public const int NE = 82;
                    public const int NEW = 83;
                    public const int NOT = 84;
                    public const int NOT_BETWEEN = 85;
                    public const int NOT_IN = 86;
                    public const int NOT_LIKE = 87;
                    public const int NULL = 88;
                    public const int NUM_DECIMAL = 89;
                    public const int NUM_DOUBLE = 90;
                    public const int NUM_FLOAT = 91;
                    public const int NUM_INT = 92;
                    public const int NUM_LONG = 93;
                    public int NumberOfParametersInSetClause { get => throw null; }
                    public const int OBJECT = 94;
                    public const int OF = 95;
                    public const int ON = 96;
                    public const int OPEN = 97;
                    public const int OPEN_BRACKET = 98;
                    public const int OR = 99;
                    public const int ORDER = 100;
                    public const int ORDER_ELEMENT = 101;
                    public const int OUTER = 102;
                    public const int PARAM = 103;
                    public System.Collections.Generic.IList<NHibernate.Param.IParameterSpecification> Parameters { get => throw null; }
                    public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; set { } }
                    public const int PLUS = 104;
                    public const int PROPERTIES = 105;
                    public const int PROPERTY_REF = 147;
                    public const int QUERY = 106;
                    public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                    public const int QUOTED_String = 107;
                    public const int RANGE = 108;
                    public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null;
                    public const int RESULT_VARIABLE_REF = 148;
                    public string[] ReturnAliases { get => throw null; }
                    public NHibernate.Type.IType[] ReturnTypes { get => throw null; }
                    public const int RIGHT = 109;
                    public const int RIGHT_OUTER = 149;
                    public const int ROW_STAR = 110;
                    public const int SELECT = 111;
                    public const int SELECT_CLAUSE = 150;
                    public const int SELECT_COLUMNS = 151;
                    public const int SELECT_EXPR = 152;
                    public const int SELECT_FROM = 112;
                    public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause SelectClause { get => throw null; }
                    public const int SET = 113;
                    public const int SKIP = 114;
                    public const int SOME = 115;
                    public const int SQL_NE = 116;
                    public const int SQL_TOKEN = 153;
                    public const int STAR = 117;
                    public Antlr.Runtime.Tree.AstTreeRuleReturnScope<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> statement() => throw null;
                    public int StatementType { get => throw null; }
                    public const int SUM = 118;
                    public static bool SupportsIdGenWithBulkInsertion(NHibernate.Id.IIdentifierGenerator generator) => throw null;
                    public bool SupportsQueryCache { get => throw null; }
                    public const int T__134 = 134;
                    public const int T__135 = 135;
                    public const int TAKE = 119;
                    public const int THEN = 120;
                    public const int THETA_JOINS = 154;
                    public override string[] TokenNames { get => throw null; }
                    public System.Collections.Generic.IDictionary<string, string> TokenReplacements { get => throw null; }
                    public const int TRAILING = 121;
                    public Antlr.Runtime.Tree.ITreeAdaptor TreeAdaptor { get => throw null; set { } }
                    public const int TRUE = 122;
                    public const int UNARY_MINUS = 123;
                    public const int UNARY_PLUS = 124;
                    public const int UNION = 125;
                    public const int UPDATE = 126;
                    public const int VECTOR_EXPR = 127;
                    public const int VERSIONED = 128;
                    public const int WEIRD_IDENT = 129;
                    public const int WHEN = 130;
                    public const int WHERE = 131;
                    public const int WITH = 132;
                    public const int WS = 133;
                }
                public class HqlToken : Antlr.Runtime.CommonToken
                {
                    public HqlToken(Antlr.Runtime.ICharStream input, int type, int channel, int start, int stop) => throw null;
                    public HqlToken(Antlr.Runtime.IToken other) => throw null;
                    public bool PossibleId { get => throw null; }
                    public override string ToString() => throw null;
                }
                public interface IErrorReporter
                {
                    void ReportError(Antlr.Runtime.RecognitionException e);
                    void ReportError(string s);
                    void ReportWarning(string s);
                }
                public class InvalidPathException : NHibernate.Hql.Ast.ANTLR.SemanticException
                {
                    public InvalidPathException(string s) : base(default(string)) => throw null;
                    protected InvalidPathException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
                }
                public class InvalidWithClauseException : NHibernate.Hql.Ast.ANTLR.QuerySyntaxException
                {
                    protected InvalidWithClauseException() => throw null;
                    public InvalidWithClauseException(string message) => throw null;
                    public InvalidWithClauseException(string message, System.Exception inner) => throw null;
                    protected InvalidWithClauseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
                }
                public interface IParseErrorHandler : NHibernate.Hql.Ast.ANTLR.IErrorReporter
                {
                    int GetErrorCount();
                    void ThrowQueryException();
                }
                public class QuerySyntaxException : NHibernate.QueryException
                {
                    public static NHibernate.Hql.Ast.ANTLR.QuerySyntaxException Convert(Antlr.Runtime.RecognitionException e) => throw null;
                    public static NHibernate.Hql.Ast.ANTLR.QuerySyntaxException Convert(Antlr.Runtime.RecognitionException e, string hql) => throw null;
                    protected QuerySyntaxException() => throw null;
                    public QuerySyntaxException(string message, string hql) => throw null;
                    public QuerySyntaxException(string message, string hql, System.Exception inner) => throw null;
                    public QuerySyntaxException(string message) => throw null;
                    public QuerySyntaxException(string message, System.Exception inner) => throw null;
                    protected QuerySyntaxException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
                }
                public class QueryTranslatorImpl : NHibernate.Hql.IFilterTranslator, NHibernate.Hql.IQueryTranslator, NHibernate.Hql.IQueryTranslatorWithCustomizableLoader
                {
                    public virtual NHibernate.Type.IType[] ActualReturnTypes { get => throw null; }
                    public NHibernate.Engine.Query.ParameterMetadata BuildParameterMetadata() => throw null;
                    public System.Collections.Generic.IList<NHibernate.Param.IParameterSpecification> CollectedParameterSpecifications { get => throw null; }
                    public System.Collections.Generic.IList<string> CollectSqlStrings { get => throw null; }
                    public void Compile(System.Collections.Generic.IDictionary<string, string> replacements, bool shallow) => throw null;
                    public void Compile(string collectionRole, System.Collections.Generic.IDictionary<string, string> replacements, bool shallow) => throw null;
                    public bool ContainsCollectionFetches { get => throw null; }
                    public QueryTranslatorImpl(string queryIdentifier, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parsedQuery, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                    public QueryTranslatorImpl(string queryIdentifier, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parsedQuery, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Loader.Hql.IQueryLoaderFactory queryLoaderFactory) => throw null;
                    public QueryTranslatorImpl(string queryIdentifier, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parsedQuery, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Loader.Hql.IQueryLoaderFactory queryLoaderFactory, System.Collections.Generic.IDictionary<string, System.Tuple<NHibernate.Type.IType, bool>> namedParameters) => throw null;
                    public System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get => throw null; }
                    public int ExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
                    public System.Threading.Tasks.Task<int> ExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                    public string[][] GetColumnNames() => throw null;
                    public System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null;
                    public System.Threading.Tasks.Task<System.Collections.IEnumerable> GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
                    public bool IsManipulationStatement { get => throw null; }
                    public bool IsShallowQuery { get => throw null; }
                    public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null;
                    public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
                    public NHibernate.Loader.Loader Loader { get => throw null; }
                    public string QueryIdentifier { get => throw null; }
                    public NHibernate.Loader.ILoader QueryLoader { get => throw null; }
                    public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                    public string QueryString { get => throw null; }
                    public string[] ReturnAliases { get => throw null; }
                    public NHibernate.Type.IType[] ReturnTypes { get => throw null; }
                    public NHibernate.Hql.Ast.ANTLR.Tree.IStatement SqlAST { get => throw null; }
                    public NHibernate.SqlCommand.SqlString SqlString { get => throw null; }
                    public string SQLString { get => throw null; }
                    public bool SupportsQueryCache { get => throw null; }
                    public bool TryGetNamedParameterType(string name, out NHibernate.Type.IType type, out bool isGuessedType) => throw null;
                    public System.Collections.Generic.ISet<NHibernate.Persister.Collection.ICollectionPersister> UncacheableCollectionPersisters { get => throw null; }
                }
                public class SemanticException : NHibernate.QueryException
                {
                    public SemanticException(string message) => throw null;
                    public SemanticException(string message, System.Exception inner) => throw null;
                    protected SemanticException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
                }
                public class SessionFactoryHelperExtensions
                {
                    public NHibernate.Engine.JoinSequence CreateCollectionJoinSequence(NHibernate.Persister.Collection.IQueryableCollection collPersister, string collectionName) => throw null;
                    public NHibernate.Engine.JoinSequence CreateJoinSequence() => throw null;
                    public NHibernate.Engine.JoinSequence CreateJoinSequence(bool implicitJoin, NHibernate.Type.IAssociationType associationType, string tableAlias, NHibernate.SqlCommand.JoinType joinType, string[] columns) => throw null;
                    public SessionFactoryHelperExtensions(NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null;
                    public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
                    public NHibernate.Type.IType FindFunctionReturnType(string functionName, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode first) => throw null;
                    public NHibernate.Type.IType FindFunctionReturnType(string functionName, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> arguments) => throw null;
                    public NHibernate.Persister.Entity.IQueryable FindQueryableUsingImports(string className) => throw null;
                    public NHibernate.Dialect.Function.ISQLFunction FindSQLFunction(string functionName) => throw null;
                    public string[][] GenerateColumnNames(NHibernate.Type.IType[] sqlResultTypes) => throw null;
                    public string[] GetCollectionElementColumns(string role, string roleAlias) => throw null;
                    public NHibernate.Persister.Collection.IQueryableCollection GetCollectionPersister(string collectionFilterRole) => throw null;
                    public NHibernate.Type.IAssociationType GetElementAssociationType(NHibernate.Type.CollectionType collectionType) => throw null;
                    public string GetIdentifierOrUniqueKeyPropertyName(NHibernate.Type.EntityType entityType) => throw null;
                    public string GetImportedClassName(string className) => throw null;
                    public bool HasPhysicalDiscriminatorColumn(NHibernate.Persister.Entity.IQueryable persister) => throw null;
                    public bool IsStrictJPAQLComplianceEnabled { get => throw null; }
                    public NHibernate.Persister.Entity.IEntityPersister RequireClassPersister(string name) => throw null;
                    public NHibernate.Persister.Collection.IQueryableCollection RequireQueryableCollection(string role) => throw null;
                }
                public class SqlGenerator : Antlr.Runtime.Tree.TreeParser, NHibernate.Hql.Ast.ANTLR.IErrorReporter
                {
                    public const int AGGREGATE = 4;
                    public const int ALIAS = 5;
                    public const int ALIAS_REF = 136;
                    public const int ALL = 6;
                    public const int AND = 7;
                    public const int ANY = 8;
                    public const int AS = 9;
                    public const int ASCENDING = 10;
                    public const int AVG = 11;
                    public const int BAND = 12;
                    public const int BETWEEN = 13;
                    public const int BNOT = 14;
                    public const int BOGUS = 137;
                    public const int BOR = 15;
                    public const int BOTH = 16;
                    public const int BXOR = 17;
                    public const int CASE = 18;
                    public const int CASE2 = 19;
                    public const int CLASS = 20;
                    public const int CLOSE = 21;
                    public const int CLOSE_BRACKET = 22;
                    public const int COLON = 23;
                    public const int COMMA = 24;
                    public void comparisonExpr(bool parens) => throw null;
                    public const int CONCAT = 25;
                    public const int CONSTANT = 26;
                    public const int CONSTRUCTOR = 27;
                    public const int COUNT = 28;
                    public const int CROSS = 29;
                    public SqlGenerator(NHibernate.Engine.ISessionFactoryImplementor sfi, Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null;
                    public SqlGenerator(Antlr.Runtime.Tree.ITreeNodeStream input) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null;
                    public SqlGenerator(Antlr.Runtime.Tree.ITreeNodeStream input, Antlr.Runtime.RecognizerSharedState state) : base(default(Antlr.Runtime.Tree.ITreeNodeStream)) => throw null;
                    public const int DELETE = 30;
                    public const int DESCENDING = 31;
                    public const int DISTINCT = 32;
                    public const int DIV = 33;
                    public const int DOT = 34;
                    public const int ELEMENTS = 35;
                    public const int ELSE = 36;
                    public const int EMPTY = 37;
                    public const int END = 38;
                    public const int ENTITY_JOIN = 138;
                    public const int EOF = -1;
                    public const int EQ = 39;
                    public const int ESCAPE = 40;
                    public const int ESCqs = 41;
                    public const int EXISTS = 42;
                    public const int EXPONENT = 43;
                    public const int EXPR_LIST = 44;
                    public const int FALSE = 45;
                    public const int FETCH = 46;
                    public const int FILTER_ENTITY = 47;
                    public const int FILTERS = 139;
                    public const int FLOAT_SUFFIX = 48;
                    public const int FROM = 49;
                    public const int FROM_FRAGMENT = 140;
                    protected virtual void FromFragmentSeparator(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode a) => throw null;
                    public const int FULL = 50;
                    public const int GE = 51;
                    public System.Collections.Generic.IList<NHibernate.Param.IParameterSpecification> GetCollectedParameters() => throw null;
                    public NHibernate.SqlCommand.SqlString GetSQL() => throw null;
                    public override string GrammarFileName { get => throw null; }
                    public const int GROUP = 52;
                    public const int GT = 53;
                    public const int HAVING = 54;
                    public const int HEX_DIGIT = 55;
                    public const int ID_LETTER = 57;
                    public const int ID_START_LETTER = 58;
                    public const int IDENT = 56;
                    public const int IMPLIED_FROM = 141;
                    public const int IN = 59;
                    public const int IN_LIST = 65;
                    public const int INDEX_OP = 60;
                    public const int INDICES = 61;
                    public const int INNER = 62;
                    public const int INSERT = 63;
                    public const int INTO = 64;
                    public const int IS = 66;
                    public const int IS_NOT_NULL = 67;
                    public const int IS_NULL = 68;
                    public const int JAVA_CONSTANT = 69;
                    public const int JOIN = 70;
                    public const int JOIN_FRAGMENT = 142;
                    public const int JOIN_SUBQUERY = 143;
                    public const int LE = 71;
                    public const int LEADING = 72;
                    public const int LEFT = 73;
                    public const int LEFT_OUTER = 144;
                    public const int LIKE = 74;
                    public const int LITERAL_by = 75;
                    public const int LT = 76;
                    public const int MAX = 77;
                    public const int MEMBER = 78;
                    public const int METHOD_CALL = 79;
                    public const int METHOD_NAME = 145;
                    public const int MIN = 80;
                    public const int MINUS = 81;
                    public const int NAMED_PARAM = 146;
                    public const int NE = 82;
                    protected virtual void NestedFromFragment(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode d, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                    public const int NEW = 83;
                    public const int NOT = 84;
                    public const int NOT_BETWEEN = 85;
                    public const int NOT_IN = 86;
                    public const int NOT_LIKE = 87;
                    public const int NULL = 88;
                    public const int NUM_DECIMAL = 89;
                    public const int NUM_DOUBLE = 90;
                    public const int NUM_FLOAT = 91;
                    public const int NUM_INT = 92;
                    public const int NUM_LONG = 93;
                    public const int OBJECT = 94;
                    public const int OF = 95;
                    public const int ON = 96;
                    public const int OPEN = 97;
                    public const int OPEN_BRACKET = 98;
                    public const int OR = 99;
                    public const int ORDER = 100;
                    public const int ORDER_ELEMENT = 101;
                    public const int OUTER = 102;
                    public const int PARAM = 103;
                    public NHibernate.Hql.Ast.ANTLR.IParseErrorHandler ParseErrorHandler { get => throw null; }
                    public const int PLUS = 104;
                    public const int PROPERTIES = 105;
                    public const int PROPERTY_REF = 147;
                    public const int QUERY = 106;
                    public const int QUOTED_String = 107;
                    public const int RANGE = 108;
                    public override void ReportError(Antlr.Runtime.RecognitionException e) => throw null;
                    public void ReportError(string s) => throw null;
                    public void ReportWarning(string s) => throw null;
                    public const int RESULT_VARIABLE_REF = 148;
                    public const int RIGHT = 109;
                    public const int RIGHT_OUTER = 149;
                    public const int ROW_STAR = 110;
                    public const int SELECT = 111;
                    public const int SELECT_CLAUSE = 150;
                    public const int SELECT_COLUMNS = 151;
                    public const int SELECT_EXPR = 152;
                    public const int SELECT_FROM = 112;
                    public const int SET = 113;
                    public Antlr.Runtime.Tree.TreeRuleReturnScope<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> simpleExpr() => throw null;
                    public const int SKIP = 114;
                    public const int SOME = 115;
                    public const int SQL_NE = 116;
                    public const int SQL_TOKEN = 153;
                    public const int STAR = 117;
                    public void statement() => throw null;
                    public const int SUM = 118;
                    public const int T__134 = 134;
                    public const int T__135 = 135;
                    public const int TAKE = 119;
                    public const int THEN = 120;
                    public const int THETA_JOINS = 154;
                    public override string[] TokenNames { get => throw null; }
                    public const int TRAILING = 121;
                    public const int TRUE = 122;
                    public const int UNARY_MINUS = 123;
                    public const int UNARY_PLUS = 124;
                    public const int UNION = 125;
                    public const int UPDATE = 126;
                    public const int VECTOR_EXPR = 127;
                    public const int VERSIONED = 128;
                    public const int WEIRD_IDENT = 129;
                    public const int WHEN = 130;
                    public const int WHERE = 131;
                    public void whereClause() => throw null;
                    public void whereExpr() => throw null;
                    public const int WITH = 132;
                    public const int WS = 133;
                }
                namespace Tree
                {
                    public abstract class AbstractNullnessCheckNode : NHibernate.Hql.Ast.ANTLR.Tree.UnaryLogicOperatorNode
                    {
                        protected AbstractNullnessCheckNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected abstract string ExpansionConnectorText { get; }
                        protected abstract int ExpansionConnectorType { get; }
                        public override void Initialize() => throw null;
                    }
                    public abstract class AbstractRestrictableStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractStatement, NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement, NHibernate.Hql.Ast.ANTLR.Tree.IStatement
                    {
                        protected AbstractRestrictableStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get => throw null; }
                        protected abstract NHibernate.INHibernateLogger GetLog();
                        protected abstract int GetWhereClauseParentTokenType();
                        public bool HasWhereClause { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode WhereClause { get => throw null; }
                    }
                    public abstract class AbstractSelectExpression : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression
                    {
                        public string Alias { get => throw null; set { } }
                        protected AbstractSelectExpression(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public virtual NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } }
                        public bool IsConstructor { get => throw null; }
                        public virtual bool IsReturnableEntity { get => throw null; }
                        public virtual bool IsScalar { get => throw null; }
                        public int ScalarColumnIndex { get => throw null; }
                        public void SetScalarColumn(int i) => throw null;
                        public string[] SetScalarColumn(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public abstract void SetScalarColumnText(int i);
                        public virtual string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public abstract class AbstractStatement : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IStatement
                    {
                        protected AbstractStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public string GetDisplayText() => throw null;
                        public abstract bool NeedsExecutor { get; }
                        public abstract int StatementType { get; }
                    }
                    public class AggregateNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression
                    {
                        public AggregateNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public string FunctionName { get => throw null; }
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class AssignmentSpecification
                    {
                        public bool AffectsTable(string tableName) => throw null;
                        public AssignmentSpecification(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode eq, NHibernate.Persister.Entity.IQueryable persister) => throw null;
                        public NHibernate.Param.IParameterSpecification[] Parameters { get => throw null; }
                        public NHibernate.SqlCommand.SqlString SqlAssignmentFragment { get => throw null; }
                    }
                    public class ASTErrorNode : NHibernate.Hql.Ast.ANTLR.Tree.ASTNode
                    {
                        public ASTErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null;
                        public Antlr.Runtime.ITokenStream Input { get => throw null; }
                        public Antlr.Runtime.RecognitionException RecognitionException { get => throw null; }
                        public Antlr.Runtime.IToken Stop { get => throw null; }
                    }
                    public class ASTFactory : NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory
                    {
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode CreateNode(int type, string text, params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children) => throw null;
                        public ASTFactory(Antlr.Runtime.Tree.ITreeAdaptor adaptor) => throw null;
                    }
                    public class ASTNode : NHibernate.Hql.Ast.ANTLR.Tree.IASTNode, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode>, System.Collections.IEnumerable, Antlr.Runtime.Tree.ITree
                    {
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null;
                        void Antlr.Runtime.Tree.ITree.AddChild(Antlr.Runtime.Tree.ITree t) => throw null;
                        public void AddChildren(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> children) => throw null;
                        public void AddChildren(params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddSibling(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newSibling) => throw null;
                        public int CharPositionInLine { get => throw null; }
                        public int ChildCount { get => throw null; }
                        public int ChildIndex { get => throw null; }
                        int Antlr.Runtime.Tree.ITree.ChildIndex { get => throw null; set { } }
                        public void ClearChildren() => throw null;
                        public ASTNode() => throw null;
                        public ASTNode(Antlr.Runtime.IToken token) => throw null;
                        public ASTNode(NHibernate.Hql.Ast.ANTLR.Tree.ASTNode other) => throw null;
                        object Antlr.Runtime.Tree.ITree.DeleteChild(int i) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode DupNode() => throw null;
                        Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.DupNode() => throw null;
                        void Antlr.Runtime.Tree.ITree.FreshenParentAndChildIndexes() => throw null;
                        public Antlr.Runtime.Tree.ITree GetAncestor(int ttype) => throw null;
                        public System.Collections.Generic.IList<Antlr.Runtime.Tree.ITree> GetAncestors() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetChild(int index) => throw null;
                        Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.GetChild(int i) => throw null;
                        public System.Collections.Generic.IEnumerator<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> GetEnumerator() => throw null;
                        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstChild() => throw null;
                        public bool HasAncestor(int ttype) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode InsertChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null;
                        public bool IsNil { get => throw null; }
                        public int Line { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NextSibling { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parent { get => throw null; set { } }
                        Antlr.Runtime.Tree.ITree Antlr.Runtime.Tree.ITree.Parent { get => throw null; set { } }
                        public void RemoveChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null;
                        public void RemoveChild(int index) => throw null;
                        void Antlr.Runtime.Tree.ITree.ReplaceChildren(int startChildIndex, int stopChildIndex, object t) => throw null;
                        public void SetChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild) => throw null;
                        void Antlr.Runtime.Tree.ITree.SetChild(int i, Antlr.Runtime.Tree.ITree t) => throw null;
                        public void SetFirstChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild) => throw null;
                        public virtual string Text { get => throw null; set { } }
                        public Antlr.Runtime.IToken Token { get => throw null; }
                        int Antlr.Runtime.Tree.ITree.TokenStartIndex { get => throw null; set { } }
                        int Antlr.Runtime.Tree.ITree.TokenStopIndex { get => throw null; set { } }
                        public override string ToString() => throw null;
                        public string ToStringTree() => throw null;
                        public int Type { get => throw null; set { } }
                    }
                    public class ASTTreeAdaptor : Antlr.Runtime.Tree.BaseTreeAdaptor
                    {
                        public override object Create(Antlr.Runtime.IToken payload) => throw null;
                        public override Antlr.Runtime.IToken CreateToken(int tokenType, string text) => throw null;
                        public override Antlr.Runtime.IToken CreateToken(Antlr.Runtime.IToken fromToken) => throw null;
                        public ASTTreeAdaptor() => throw null;
                        public override object DupNode(object t) => throw null;
                        public override object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null;
                        public override Antlr.Runtime.IToken GetToken(object treeNode) => throw null;
                    }
                    public class BetweenOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode
                    {
                        public BetweenOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public void Initialize() => throw null;
                    }
                    public class BinaryArithmeticOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode
                    {
                        public BinaryArithmeticOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public string GetDisplayText() => throw null;
                        public void Initialize() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get => throw null; }
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class BinaryLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer
                    {
                        public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null;
                        public BinaryLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected static NHibernate.Type.IType ExtractDataType(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode operand) => throw null;
                        public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null;
                        public bool HasEmbeddedParameters { get => throw null; }
                        public virtual void Initialize() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get => throw null; }
                        protected void MutateRowValueConstructorSyntaxesIfNecessary(NHibernate.Type.IType lhsType, NHibernate.Type.IType rhsType) => throw null;
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get => throw null; }
                    }
                    public class BooleanLiteralNode : NHibernate.Hql.Ast.ANTLR.Tree.LiteralNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode
                    {
                        public BooleanLiteralNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                    }
                    public class Case2Node : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression
                    {
                        public Case2Node(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class CaseNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode
                    {
                        public CaseNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
                        public System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> GetResultNodes() => throw null;
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class CollectionFunction : NHibernate.Hql.Ast.ANTLR.Tree.MethodNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode
                    {
                        public CollectionFunction(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected override void PrepareSelectColumns(string[] selectColumns) => throw null;
                        public override void Resolve(bool inSelect) => throw null;
                    }
                    public class ComponentJoin : NHibernate.Hql.Ast.ANTLR.Tree.FromElement
                    {
                        public class ComponentFromElementType : NHibernate.Hql.Ast.ANTLR.Tree.FromElementType
                        {
                            public ComponentFromElementType(NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin fromElement) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.FromElement)) => throw null;
                            public override NHibernate.Type.IType DataType { get => throw null; }
                            public NHibernate.Hql.Ast.ANTLR.Tree.ComponentJoin FromElement { get => throw null; }
                            protected NHibernate.Persister.Entity.IPropertyMapping GetBasePropertyMapping() => throw null;
                            public override NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null;
                            public override NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null;
                            public override NHibernate.SqlCommand.SelectFragment GetScalarIdentifierSelectFragment(int i, System.Func<int, int, string> aliasCreator) => throw null;
                            public override NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set { } }
                            public override string RenderScalarIdentifierSelect(int i) => throw null;
                        }
                        public string ComponentPath { get => throw null; }
                        public string ComponentProperty { get => throw null; }
                        public NHibernate.Type.ComponentType ComponentType { get => throw null; }
                        public ComponentJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string alias, string componentPath, NHibernate.Type.ComponentType componentType) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public override string GetDisplayText() => throw null;
                        public override string GetIdentityColumn() => throw null;
                    }
                    public class ConstructorNode : NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression
                    {
                        public string Alias { get => throw null; set { } }
                        public System.Reflection.ConstructorInfo Constructor { get => throw null; }
                        public System.Collections.Generic.IList<NHibernate.Type.IType> ConstructorArgumentTypeList { get => throw null; }
                        public ConstructorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; }
                        public string[] GetAliases() => throw null;
                        protected override NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression() => throw null;
                        public bool IsConstructor { get => throw null; }
                        public bool IsList { get => throw null; }
                        public bool IsMap { get => throw null; }
                        public bool IsReturnableEntity { get => throw null; }
                        public bool IsScalar { get => throw null; }
                        public void Prepare() => throw null;
                        public int ScalarColumnIndex { get => throw null; }
                        public void SetScalarColumn(int i) => throw null;
                        public string[] SetScalarColumn(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public void SetScalarColumnText(int i) => throw null;
                    }
                    public class DeleteStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement
                    {
                        public DeleteStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected override NHibernate.INHibernateLogger GetLog() => throw null;
                        protected override int GetWhereClauseParentTokenType() => throw null;
                        public override bool NeedsExecutor { get => throw null; }
                        public override int StatementType { get => throw null; }
                    }
                    public class DotNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode
                    {
                        public DotNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
                        public bool Fetch { set { } }
                        public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetImpliedJoin() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode GetLhs() => throw null;
                        public NHibernate.SqlCommand.JoinType JoinType { set { } }
                        public override string Path { get => throw null; }
                        public string PropertyPath { get => throw null; set { } }
                        public static bool REGRESSION_STYLE_JOIN_SUPPRESSION;
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void ResolveFirstChild() => throw null;
                        public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void ResolveInFunctionCall(bool generateJoin, bool implicitJoin) => throw null;
                        public void ResolveSelectExpression() => throw null;
                        public void SetResolvedConstant(string text) => throw null;
                        public void SetResolvedConstant(string text, object value) => throw null;
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public static bool UseThetaStyleImplicitJoins;
                    }
                    public class FromClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode
                    {
                        public void AddCollectionJoinFromElementByPath(string path, NHibernate.Hql.Ast.ANTLR.Tree.FromElement destination) => throw null;
                        public void AddDuplicateAlias(string alias, NHibernate.Hql.Ast.ANTLR.Tree.FromElement element) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement AddFromElement(string path, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode alias) => throw null;
                        public void AddJoinByPathMap(string path, NHibernate.Hql.Ast.ANTLR.Tree.FromElement destination) => throw null;
                        public bool ContainsClassAlias(string alias) => throw null;
                        public bool ContainsTableAlias(string alias) => throw null;
                        public FromClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FindCollectionJoin(string path) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FindJoinByPath(string path) => throw null;
                        public System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> GetCollectionFetches() => throw null;
                        public string GetDisplayText() => throw null;
                        public System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> GetExplicitFromElements() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElement(string aliasOrClassName) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElement() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetFromElementByClassName(string className) => throw null;
                        public System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> GetFromElements() => throw null;
                        public System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> GetProjectionList() => throw null;
                        public bool IsFromElementAlias(string possibleAlias) => throw null;
                        public bool IsSubQuery { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromClause ParentFromClause { get => throw null; }
                        public void RegisterFromElement(NHibernate.Hql.Ast.ANTLR.Tree.FromElement element) => throw null;
                        public virtual void Resolve() => throw null;
                        public void SetParentFromClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause parentFromClause) => throw null;
                        public override string ToString() => throw null;
                    }
                    public class FromElement : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer
                    {
                        public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null;
                        protected void AppendDisplayText(System.Text.StringBuilder buf) => throw null;
                        public void CheckInitialized() => throw null;
                        public string ClassAlias { get => throw null; }
                        public string ClassName { get => throw null; }
                        public bool CollectionJoin { get => throw null; set { } }
                        public string CollectionSuffix { get => throw null; set { } }
                        public string CollectionTableAlias { get => throw null; set { } }
                        public string[] Columns { get => throw null; set { } }
                        public FromElement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected FromElement(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string alias) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public NHibernate.Persister.Entity.IEntityPersister EntityPersister { get => throw null; }
                        public string EntitySuffix { get => throw null; set { } }
                        public bool Fetch { get => throw null; set { } }
                        public string[] FetchLazyProperties { get => throw null; set { } }
                        public bool Filter { set { } }
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get => throw null; }
                        public NHibernate.SqlCommand.SelectFragment GetCollectionSelectFragment(string suffix) => throw null;
                        public virtual string GetDisplayText() => throw null;
                        public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null;
                        public NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(string suffix) => throw null;
                        public virtual string GetIdentityColumn() => throw null;
                        public NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(string suffix) => throw null;
                        public NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null;
                        public NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null;
                        public NHibernate.SqlCommand.SelectFragment GetScalarIdentifierSelectFragment(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public NHibernate.SqlCommand.SelectFragment GetValueCollectionSelectFragment(string suffix) => throw null;
                        public void HandlePropertyBeingDereferenced(NHibernate.Type.IType propertySource, string propertyName) => throw null;
                        public bool HasEmbeddedParameters { get => throw null; }
                        public virtual bool IncludeSubclasses { get => throw null; set { } }
                        public NHibernate.Param.IParameterSpecification IndexCollectionSelectorParamSpec { get => throw null; set { } }
                        public void InitializeCollection(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, string classAlias, string tableAlias) => throw null;
                        protected void InitializeComponentJoin(NHibernate.Hql.Ast.ANTLR.Tree.FromElementType elementType) => throw null;
                        public void InitializeEntity(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, string className, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Type.EntityType type, string classAlias, string tableAlias) => throw null;
                        public virtual bool InProjectionList { get => throw null; set { } }
                        public bool IsAllPropertyFetch { get => throw null; set { } }
                        public bool IsCollectionJoin { get => throw null; }
                        public bool IsCollectionOfValuesOrComponents { get => throw null; }
                        public bool IsDereferencedBySubclassProperty { get => throw null; }
                        public bool IsDereferencedBySuperclassOrSubclassProperty { get => throw null; }
                        public bool IsEntity { get => throw null; }
                        public bool IsFetch { get => throw null; }
                        public bool IsFilter { get => throw null; }
                        public bool IsFromOrJoinFragment { get => throw null; }
                        public virtual bool IsImplied { get => throw null; }
                        public virtual bool IsImpliedInFromClause { get => throw null; }
                        public NHibernate.Engine.JoinSequence JoinSequence { get => throw null; set { } }
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement Origin { get => throw null; }
                        public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; }
                        public NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set { } }
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement RealOrigin { get => throw null; }
                        public string RenderCollectionSelectFragment(int size, int k) => throw null;
                        public string RenderIdentifierSelect(int size, int k) => throw null;
                        public string RenderPropertySelect(int size, int k) => throw null;
                        public string RenderScalarIdentifierSelect(int i) => throw null;
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public string RenderValueCollectionSelectFragment(int size, int k) => throw null;
                        public virtual NHibernate.Type.IType SelectType { get => throw null; }
                        public void SetAllPropertyFetch(bool fetch) => throw null;
                        public virtual void SetImpliedInFromClause(bool flag) => throw null;
                        public void SetIncludeSubclasses(bool includeSubclasses) => throw null;
                        public void SetIndexCollectionSelectorParamSpec(NHibernate.Param.IParameterSpecification indexCollectionSelectorParamSpec) => throw null;
                        public void SetOrigin(NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, bool manyToMany) => throw null;
                        public void SetRole(string role) => throw null;
                        public void SetWithClauseFragment(string withClauseJoinAlias, NHibernate.SqlCommand.SqlString withClauseFragment) => throw null;
                        public string TableAlias { get => throw null; }
                        public string[] ToColumns(string tableAlias, string path, bool inSelect) => throw null;
                        public string[] ToColumns(string tableAlias, string path, bool inSelect, bool forceAlias) => throw null;
                        public bool UseFromFragment { get => throw null; set { } }
                        public bool UseWhereFragment { get => throw null; set { } }
                        public NHibernate.SqlCommand.SqlString WithClauseFragment { get => throw null; set { } }
                        public string WithClauseJoinAlias { get => throw null; }
                    }
                    public class FromElementFactory
                    {
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement AddFromElement() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateCollection(NHibernate.Persister.Collection.IQueryableCollection queryableCollection, string role, NHibernate.SqlCommand.JoinType joinType, bool fetchFlag, bool indexed) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateCollectionElementsJoin(NHibernate.Persister.Collection.IQueryableCollection queryableCollection, string collectionName) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateComponentJoin(NHibernate.Type.ComponentType type) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateElementJoin(NHibernate.Persister.Collection.IQueryableCollection queryableCollection) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement CreateEntityJoin(string entityClass, string tableAlias, NHibernate.Engine.JoinSequence joinSequence, bool fetchFlag, bool inFrom, NHibernate.Type.EntityType type) => throw null;
                        public FromElementFactory(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string path) => throw null;
                        public FromElementFactory(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause, NHibernate.Hql.Ast.ANTLR.Tree.FromElement origin, string path, string classAlias, string[] columns, bool implied) => throw null;
                    }
                    public class FromElementType
                    {
                        public string CollectionSuffix { get => throw null; set { } }
                        public FromElementType(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Type.EntityType entityType) => throw null;
                        protected FromElementType(NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement) => throw null;
                        public virtual NHibernate.Type.IType DataType { get => throw null; }
                        public NHibernate.Persister.Entity.IEntityPersister EntityPersister { get => throw null; }
                        public string EntitySuffix { get => throw null; set { } }
                        public NHibernate.SqlCommand.SelectFragment GetCollectionSelectFragment(string suffix) => throw null;
                        public NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(string suffix) => throw null;
                        public virtual NHibernate.Persister.Entity.IPropertyMapping GetPropertyMapping(string propertyName) => throw null;
                        public virtual NHibernate.Type.IType GetPropertyType(string propertyName, string propertyPath) => throw null;
                        public virtual NHibernate.SqlCommand.SelectFragment GetScalarIdentifierSelectFragment(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public NHibernate.SqlCommand.SelectFragment GetValueCollectionSelectFragment(string suffix) => throw null;
                        public NHibernate.Param.IParameterSpecification IndexCollectionSelectorParamSpec { get => throw null; set { } }
                        public bool IsCollectionOfValuesOrComponents { get => throw null; }
                        public bool IsEntity { get => throw null; }
                        public NHibernate.Engine.JoinSequence JoinSequence { get => throw null; set { } }
                        public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; }
                        public virtual NHibernate.Persister.Collection.IQueryableCollection QueryableCollection { get => throw null; set { } }
                        public string RenderCollectionSelectFragment(int size, int k) => throw null;
                        public string RenderIdentifierSelect(int size, int k) => throw null;
                        public string RenderPropertySelect(int size, int k, bool allProperties) => throw null;
                        public string RenderPropertySelect(int size, int k, string[] fetchLazyProperties) => throw null;
                        public virtual string RenderScalarIdentifierSelect(int i) => throw null;
                        public string RenderValueCollectionSelectFragment(int size, int k) => throw null;
                        public NHibernate.Type.IType SelectType { get => throw null; }
                        public string[] ToColumns(string tableAlias, string path, bool inSelect) => throw null;
                        public string[] ToColumns(string tableAlias, string path, bool inSelect, bool forceAlias) => throw null;
                    }
                    public abstract class FromReferenceNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IPathNode, NHibernate.Hql.Ast.ANTLR.Tree.IResolvableNode
                    {
                        protected FromReferenceNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } }
                        public string GetDisplayText() => throw null;
                        public virtual NHibernate.Hql.Ast.ANTLR.Tree.FromElement GetImpliedJoin() => throw null;
                        public bool IsResolved { get => throw null; set { } }
                        public override bool IsReturnableEntity { get => throw null; }
                        public virtual string Path { get => throw null; }
                        public virtual void PrepareForDot(string propertyName) => throw null;
                        public void RecursiveResolve(int level, bool impliedAtRoot, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public abstract void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent);
                        public void Resolve(bool generateJoin, bool implicitJoin, string classAlias) => throw null;
                        public void Resolve(bool generateJoin, bool implicitJoin) => throw null;
                        public virtual void ResolveFirstChild() => throw null;
                        public abstract void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent);
                        public virtual void ResolveInFunctionCall(bool generateJoin, bool implicitJoin) => throw null;
                        public const int RootLevel = 0;
                    }
                    public class HqlSqlWalkerNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IInitializableNode
                    {
                        public NHibernate.Hql.Ast.ANTLR.Util.AliasGenerator AliasGenerator { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory ASTFactory { get => throw null; }
                        public HqlSqlWalkerNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public virtual void Initialize(object param) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get => throw null; set { } }
                    }
                    public class HqlSqlWalkerTreeAdaptor : NHibernate.Hql.Ast.ANTLR.Tree.ASTTreeAdaptor
                    {
                        public override object Create(Antlr.Runtime.IToken payload) => throw null;
                        public HqlSqlWalkerTreeAdaptor(object walker) => throw null;
                        public override object DupNode(object t) => throw null;
                        public override object ErrorNode(Antlr.Runtime.ITokenStream input, Antlr.Runtime.IToken start, Antlr.Runtime.IToken stop, Antlr.Runtime.RecognitionException e) => throw null;
                    }
                    public interface IASTFactory
                    {
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode CreateNode(int type, string text, params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children);
                    }
                    public interface IASTNode : System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode>, System.Collections.IEnumerable
                    {
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode childNode);
                        void AddChildren(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> children);
                        void AddChildren(params NHibernate.Hql.Ast.ANTLR.Tree.IASTNode[] children);
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode AddSibling(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newSibling);
                        int CharPositionInLine { get; }
                        int ChildCount { get; }
                        int ChildIndex { get; }
                        void ClearChildren();
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode DupNode();
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetChild(int index);
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstChild();
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode InsertChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child);
                        bool IsNil { get; }
                        int Line { get; }
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode NextSibling { get; }
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Parent { get; set; }
                        void RemoveChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child);
                        void SetChild(int index, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild);
                        void SetFirstChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode newChild);
                        string Text { get; set; }
                        Antlr.Runtime.IToken Token { get; }
                        string ToStringTree();
                        int Type { get; set; }
                    }
                    public interface IBinaryOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode
                    {
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode LeftHandOperand { get; }
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode RightHandOperand { get; }
                    }
                    public class IdentNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode
                    {
                        public IdentNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public interface IDisplayableNode
                    {
                        string GetDisplayText();
                    }
                    public interface IExpectedTypeAwareNode
                    {
                        NHibernate.Type.IType ExpectedType { get; set; }
                    }
                    public interface IInitializableNode
                    {
                        void Initialize(object param);
                    }
                    public class ImpliedFromElement : NHibernate.Hql.Ast.ANTLR.Tree.FromElement
                    {
                        public ImpliedFromElement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override string GetDisplayText() => throw null;
                        public override bool IncludeSubclasses { get => throw null; set { } }
                        public override bool InProjectionList { get => throw null; set { } }
                        public override bool IsImplied { get => throw null; }
                        public override bool IsImpliedInFromClause { get => throw null; }
                        public override void SetImpliedInFromClause(bool flag) => throw null;
                    }
                    public class IndexNode : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode
                    {
                        public IndexNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override void PrepareForDot(string propertyName) => throw null;
                        public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class InLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.BinaryLogicOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IBinaryOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode
                    {
                        public InLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override void Initialize() => throw null;
                    }
                    public class InsertStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractStatement
                    {
                        public InsertStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IntoClause IntoClause { get => throw null; }
                        public override bool NeedsExecutor { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause SelectClause { get => throw null; }
                        public override int StatementType { get => throw null; }
                        public virtual void Validate() => throw null;
                    }
                    public class IntoClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode
                    {
                        public IntoClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public string GetDisplayText() => throw null;
                        public void Initialize(NHibernate.Persister.Entity.IQueryable persister) => throw null;
                        public bool IsDiscriminated { get => throw null; }
                        public bool IsExplicitIdInsertion { get => throw null; }
                        public bool IsExplicitVersionInsertion { get => throw null; }
                        public void PrependIdColumnSpec() => throw null;
                        public void PrependVersionColumnSpec() => throw null;
                        public NHibernate.Persister.Entity.IQueryable Queryable { get => throw null; }
                        public void ValidateTypes(NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause) => throw null;
                    }
                    public interface IOperatorNode
                    {
                        NHibernate.Type.IType DataType { get; }
                        void Initialize();
                    }
                    public interface IParameterContainer
                    {
                        void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification);
                        NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters();
                        bool HasEmbeddedParameters { get; }
                        string Text { set; }
                    }
                    public interface IPathNode
                    {
                        string Path { get; }
                    }
                    public interface IResolvableNode
                    {
                        void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent);
                        void Resolve(bool generateJoin, bool implicitJoin, string classAlias);
                        void Resolve(bool generateJoin, bool implicitJoin);
                        void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent);
                        void ResolveInFunctionCall(bool generateJoin, bool implicitJoin);
                    }
                    public interface IRestrictableStatement : NHibernate.Hql.Ast.ANTLR.Tree.IStatement
                    {
                        NHibernate.Hql.Ast.ANTLR.Tree.FromClause FromClause { get; }
                        bool HasWhereClause { get; }
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode WhereClause { get; }
                    }
                    public interface ISelectExpression
                    {
                        string Alias { get; set; }
                        NHibernate.Type.IType DataType { get; }
                        NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get; }
                        bool IsConstructor { get; }
                        bool IsReturnableEntity { get; }
                        bool IsScalar { get; }
                        int ScalarColumnIndex { get; }
                        void SetScalarColumn(int i);
                        void SetScalarColumnText(int i);
                        string Text { set; }
                    }
                    public interface ISessionFactoryAwareNode
                    {
                        NHibernate.Engine.ISessionFactoryImplementor SessionFactory { set; }
                    }
                    public class IsNotNullLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode
                    {
                        public IsNotNullLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected override string ExpansionConnectorText { get => throw null; }
                        protected override int ExpansionConnectorType { get => throw null; }
                    }
                    public class IsNullLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractNullnessCheckNode
                    {
                        public IsNullLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected override string ExpansionConnectorText { get => throw null; }
                        protected override int ExpansionConnectorType { get => throw null; }
                    }
                    public interface IStatement
                    {
                        bool NeedsExecutor { get; }
                        int StatementType { get; }
                        NHibernate.Hql.Ast.ANTLR.HqlSqlWalker Walker { get; }
                    }
                    public interface IUnaryOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode
                    {
                        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get; }
                    }
                    public class JavaConstantNode : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode, NHibernate.Hql.Ast.ANTLR.Tree.ISessionFactoryAwareNode
                    {
                        public JavaConstantNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { set { } }
                    }
                    public class LiteralNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression
                    {
                        public LiteralNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class MethodNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression
                    {
                        public MethodNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } }
                        public string GetDisplayText() => throw null;
                        public void InitializeMethodNode(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode name, bool inSelect) => throw null;
                        public bool IsCollectionPropertyMethod { get => throw null; }
                        public override bool IsScalar { get => throw null; }
                        protected virtual void PrepareSelectColumns(string[] columns) => throw null;
                        public virtual NHibernate.SqlCommand.SqlString Render(System.Collections.IList args) => throw null;
                        public virtual void Resolve(bool inSelect) => throw null;
                        public void ResolveCollectionProperty(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode expr) => throw null;
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public NHibernate.Dialect.Function.ISQLFunction SQLFunction { get => throw null; }
                    }
                    public class OrderByClause : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode
                    {
                        public void AddOrderFragment(string orderByFragment) => throw null;
                        public OrderByClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                    }
                    public class ParameterNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IDisplayableNode, NHibernate.Hql.Ast.ANTLR.Tree.IExpectedTypeAwareNode, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression
                    {
                        public string Alias { get => throw null; set { } }
                        public ParameterNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; }
                        public string GetDisplayText() => throw null;
                        public NHibernate.Param.IParameterSpecification HqlParameterSpecification { get => throw null; set { } }
                        public bool IsConstructor { get => throw null; }
                        public bool IsReturnableEntity { get => throw null; }
                        public bool IsScalar { get => throw null; }
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public int ScalarColumnIndex { get => throw null; }
                        public void SetScalarColumn(int i) => throw null;
                        public string[] SetScalarColumn(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public void SetScalarColumnText(int i) => throw null;
                    }
                    public class QueryNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement, NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression
                    {
                        public string Alias { get => throw null; set { } }
                        public QueryNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; }
                        protected override NHibernate.INHibernateLogger GetLog() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.OrderByClause GetOrderByClause() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.SelectClause GetSelectClause() => throw null;
                        protected override int GetWhereClauseParentTokenType() => throw null;
                        public bool IsConstructor { get => throw null; }
                        public bool IsReturnableEntity { get => throw null; }
                        public bool IsScalar { get => throw null; }
                        public override bool NeedsExecutor { get => throw null; }
                        public int ScalarColumnIndex { get => throw null; }
                        public void SetScalarColumn(int i) => throw null;
                        public string[] SetScalarColumn(int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public void SetScalarColumnText(int i) => throw null;
                        public override int StatementType { get => throw null; }
                    }
                    public class ResultVariableRefNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode
                    {
                        public ResultVariableRefNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public void SetSelectExpression(NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression selectExpression) => throw null;
                    }
                    public class SelectClause : NHibernate.Hql.Ast.ANTLR.Tree.SelectExpressionList
                    {
                        public System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.FromElement> CollectionFromElements { get => throw null; }
                        public string[][] ColumnNames { get => throw null; }
                        public System.Reflection.ConstructorInfo Constructor { get => throw null; }
                        public SelectClause(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.FromElement> FromElementsForLoad { get => throw null; }
                        public int GetColumnNamesStartPosition(int i) => throw null;
                        protected override NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression() => throw null;
                        public void InitializeDerivedSelectClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause) => throw null;
                        public void InitializeExplicitSelectClause(NHibernate.Hql.Ast.ANTLR.Tree.FromClause fromClause) => throw null;
                        public bool IsDistinct { get => throw null; }
                        public bool IsList { get => throw null; }
                        public bool IsMap { get => throw null; }
                        public bool IsScalarSelect { get => throw null; }
                        public string[] QueryReturnAliases { get => throw null; }
                        public NHibernate.Type.IType[] QueryReturnTypes { get => throw null; }
                        public static bool VERSION2_SQL;
                    }
                    public static partial class SelectExpressionExtensions
                    {
                        public static string[] SetScalarColumn(this NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression selectExpression, int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class SelectExpressionImpl : NHibernate.Hql.Ast.ANTLR.Tree.FromReferenceNode
                    {
                        public SelectExpressionImpl(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override void Resolve(bool generateJoin, bool implicitJoin, string classAlias, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void ResolveIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public abstract class SelectExpressionList : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode
                    {
                        public NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression[] CollectSelectExpressions() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression[] CollectSelectExpressions(bool recurse) => throw null;
                        protected SelectExpressionList(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected abstract NHibernate.Hql.Ast.ANTLR.Tree.IASTNode GetFirstSelectExpression();
                        public System.Collections.Generic.List<NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression> GetSelectExpressions() => throw null;
                        public System.Collections.Generic.List<NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression> GetSelectExpressions(bool recurse, System.Predicate<NHibernate.Hql.Ast.ANTLR.Tree.ISelectExpression> predicate) => throw null;
                    }
                    public class SqlFragment : NHibernate.Hql.Ast.ANTLR.Tree.SqlNode, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer
                    {
                        public void AddEmbeddedParameter(NHibernate.Param.IParameterSpecification specification) => throw null;
                        public SqlFragment(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.FromElement FromElement { get => throw null; set { } }
                        public NHibernate.Param.IParameterSpecification[] GetEmbeddedParameters() => throw null;
                        public bool HasEmbeddedParameters { get => throw null; }
                        public bool HasFilterCondition { get => throw null; }
                        public override NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public void SetJoinFragment(NHibernate.SqlCommand.JoinFragment joinFragment) => throw null;
                    }
                    public class SqlNode : NHibernate.Hql.Ast.ANTLR.Tree.ASTNode
                    {
                        public SqlNode(Antlr.Runtime.IToken token) => throw null;
                        public virtual NHibernate.Type.IType DataType { get => throw null; set { } }
                        public string OriginalText { get => throw null; }
                        public virtual NHibernate.SqlCommand.SqlString RenderText(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                        public override string Text { get => throw null; set { } }
                    }
                    public class UnaryArithmeticNode : NHibernate.Hql.Ast.ANTLR.Tree.AbstractSelectExpression, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IUnaryOperatorNode
                    {
                        public UnaryArithmeticNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public void Initialize() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get => throw null; }
                        public override void SetScalarColumnText(int i) => throw null;
                        public override string[] SetScalarColumnText(int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public class UnaryLogicOperatorNode : NHibernate.Hql.Ast.ANTLR.Tree.HqlSqlWalkerNode, NHibernate.Hql.Ast.ANTLR.Tree.IOperatorNode, NHibernate.Hql.Ast.ANTLR.Tree.IUnaryOperatorNode
                    {
                        public UnaryLogicOperatorNode(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        public override NHibernate.Type.IType DataType { get => throw null; set { } }
                        public virtual void Initialize() => throw null;
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Operand { get => throw null; }
                    }
                    public class UpdateStatement : NHibernate.Hql.Ast.ANTLR.Tree.AbstractRestrictableStatement
                    {
                        public UpdateStatement(Antlr.Runtime.IToken token) : base(default(Antlr.Runtime.IToken)) => throw null;
                        protected override NHibernate.INHibernateLogger GetLog() => throw null;
                        protected override int GetWhereClauseParentTokenType() => throw null;
                        public override bool NeedsExecutor { get => throw null; }
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode SetClause { get => throw null; }
                        public override int StatementType { get => throw null; }
                    }
                }
                namespace Util
                {
                    public class AliasGenerator
                    {
                        public string CreateName(string name) => throw null;
                        public AliasGenerator() => throw null;
                    }
                    public class ASTAppender
                    {
                        public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Append(int type, string text, bool appendIfEmpty) => throw null;
                        public ASTAppender(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent) => throw null;
                    }
                    public class ASTIterator : System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode>, System.Collections.IEnumerable
                    {
                        public ASTIterator(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode tree) => throw null;
                        public System.Collections.Generic.IEnumerator<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> GetEnumerator() => throw null;
                        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                    }
                    public static class ASTUtil
                    {
                        public static System.Collections.Generic.IList<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode> CollectChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root, NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) => throw null;
                        public static System.Collections.Generic.IList<TNode> CollectChildren<TNode>(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root, NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) where TNode : NHibernate.Hql.Ast.ANTLR.Tree.IASTNode => throw null;
                        public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode FindTypeInChildren(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent, int type) => throw null;
                        public static string GetDebugstring(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode n) => throw null;
                        public static string GetPathText(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode n) => throw null;
                        public static bool IsSubtreeChild(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode fixture, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode test) => throw null;
                        public static void MakeSiblingOfParent(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode parent, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode child) => throw null;
                    }
                    public class CollectingNodeVisitor : NHibernate.Hql.Ast.ANTLR.Util.CollectingNodeVisitor<NHibernate.Hql.Ast.ANTLR.Tree.IASTNode>
                    {
                        public CollectingNodeVisitor(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) : base(default(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate)) => throw null;
                    }
                    public class CollectingNodeVisitor<TNode> : NHibernate.Hql.Ast.ANTLR.Util.IVisitationStrategy
                    {
                        public System.Collections.Generic.IList<TNode> Collect(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode root) => throw null;
                        public CollectingNodeVisitor(NHibernate.Hql.Ast.ANTLR.Util.FilterPredicate predicate) => throw null;
                        public void Visit(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node) => throw null;
                    }
                    public class ColumnHelper
                    {
                        public ColumnHelper() => throw null;
                        public static void GenerateScalarColumns(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, string[] sqlColumns, int i) => throw null;
                        public static string[] GenerateScalarColumns(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, string[] sqlColumns, int i, System.Func<int, int, string> aliasCreator) => throw null;
                        public static void GenerateSingleScalarColumn(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, int i) => throw null;
                        public static string GenerateSingleScalarColumn(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node, int i, System.Func<int, int, string> aliasCreator) => throw null;
                    }
                    public delegate bool FilterPredicate(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node);
                    public interface IVisitationStrategy
                    {
                        void Visit(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode node);
                    }
                    public class JoinProcessor
                    {
                        public JoinProcessor(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null;
                        public static void ProcessDynamicFilterParameters(NHibernate.SqlCommand.SqlString sqlFragment, NHibernate.Hql.Ast.ANTLR.Tree.IParameterContainer container, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null;
                        public void ProcessJoins(NHibernate.Hql.Ast.ANTLR.Tree.QueryNode query) => throw null;
                        public void ProcessJoins(NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement query) => throw null;
                        public static NHibernate.SqlCommand.JoinType ToHibernateJoinType(int astJoinType) => throw null;
                    }
                    public class LiteralProcessor
                    {
                        public static readonly int APPROXIMATE;
                        public LiteralProcessor(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker walker) => throw null;
                        public static readonly int DECIMAL_LITERAL_FORMAT;
                        public const string ErrorCannotDetermineType = default;
                        public const string ErrorCannotFetchWithIterate = default;
                        public const string ErrorCannotFormatLiteral = default;
                        public const string ErrorNamedParameterDoesNotAppear = default;
                        public static readonly int EXACT;
                        public void LookupConstant(NHibernate.Hql.Ast.ANTLR.Tree.DotNode node) => throw null;
                        public void ProcessBoolean(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode constant) => throw null;
                        public void ProcessConstant(NHibernate.Hql.Ast.ANTLR.Tree.SqlNode constant, bool resolveIdent) => throw null;
                        public void ProcessNumericLiteral(NHibernate.Hql.Ast.ANTLR.Tree.SqlNode literal) => throw null;
                    }
                    public class NodeTraverser
                    {
                        public NodeTraverser(NHibernate.Hql.Ast.ANTLR.Util.IVisitationStrategy visitor) => throw null;
                        public void TraverseDepthFirst(NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ast) => throw null;
                    }
                    public static class PathHelper
                    {
                        public static string GetAlias(string path) => throw null;
                        public static NHibernate.Hql.Ast.ANTLR.Tree.IASTNode ParsePath(string path, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) => throw null;
                    }
                    public class SyntheticAndFactory
                    {
                        public virtual void AddDiscriminatorWhereFragment(NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement statement, NHibernate.Persister.Entity.IQueryable persister, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, string alias) => throw null;
                        public void AddWhereFragment(NHibernate.SqlCommand.JoinFragment joinFragment, NHibernate.SqlCommand.SqlString whereFragment, NHibernate.Hql.Ast.ANTLR.Tree.QueryNode query, NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null;
                        public void AddWhereFragment(NHibernate.SqlCommand.JoinFragment joinFragment, NHibernate.SqlCommand.SqlString whereFragment, NHibernate.Hql.Ast.ANTLR.Tree.IRestrictableStatement query, NHibernate.Hql.Ast.ANTLR.Tree.FromElement fromElement, NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null;
                        public SyntheticAndFactory(NHibernate.Hql.Ast.ANTLR.HqlSqlWalker hqlSqlWalker) => throw null;
                    }
                }
            }
            public class HqlAdd : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlAdd(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlAlias : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlAlias(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlAll : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlAll(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlAny : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlAny(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlAs : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlAs(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, System.Type type) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlAverage : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlAverage(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBitwiseAnd : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlBitwiseAnd(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBitwiseNot : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlBitwiseNot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBitwiseOr : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlBitwiseOr(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBooleanAnd : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlBooleanAnd(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlBooleanExpression lhs, NHibernate.Hql.Ast.HqlBooleanExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBooleanDot : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlBooleanDot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlDot dot) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public abstract class HqlBooleanExpression : NHibernate.Hql.Ast.HqlExpression
            {
                protected HqlBooleanExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                protected HqlBooleanExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBooleanMethodCall : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlBooleanMethodCall(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string methodName, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> parameters) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBooleanNot : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlBooleanNot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlBooleanExpression operand) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlBooleanOr : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlBooleanOr(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlBooleanExpression lhs, NHibernate.Hql.Ast.HqlBooleanExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlCase : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlCase(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlWhen[] whenClauses, NHibernate.Hql.Ast.HqlExpression ifFalse) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlCast : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlCast(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, System.Type type) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlClass : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlClass(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlCoalesce : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlCoalesce(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlConcat : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlConcat(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] args) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlConstant : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, int type, string value) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlCount : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlCount(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                public HqlCount(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression child) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlCountBig : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlCountBig(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                public HqlCountBig(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression child) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlCross : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlCross(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlCrossJoin : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlCrossJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlDecimalConstant : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlDecimalConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlDelete : NHibernate.Hql.Ast.HqlStatement
            {
                internal HqlDelete() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { }
            }
            public class HqlDictionaryIndex : NHibernate.Hql.Ast.HqlIndex
            {
                public HqlDictionaryIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression dictionary, NHibernate.Hql.Ast.HqlExpression index) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlExpression), default(NHibernate.Hql.Ast.HqlExpression)) => throw null;
            }
            public enum HqlDirection
            {
                Ascending = 0,
                Descending = 1,
            }
            public class HqlDirectionAscending : NHibernate.Hql.Ast.HqlDirectionStatement
            {
                public HqlDirectionAscending(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory)) => throw null;
            }
            public class HqlDirectionDescending : NHibernate.Hql.Ast.HqlDirectionStatement
            {
                public HqlDirectionDescending(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory)) => throw null;
            }
            public class HqlDirectionStatement : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlDirectionStatement(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlDistinct : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlDistinct(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlDivide : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlDivide(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlDot : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlDot(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlDoubleConstant : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlDoubleConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlElements : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlElements(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlElse : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlElse(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression ifFalse) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlEquality : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlEquality(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlEscape : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlEscape(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlConstant escapeCharacter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlExists : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlExists(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlQuery query) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public abstract class HqlExpression : NHibernate.Hql.Ast.HqlTreeNode
            {
                protected HqlExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                protected HqlExpression(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlExpressionList : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlExpressionList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
                public HqlExpressionList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlExpressionSubTreeHolder : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlExpressionSubTreeHolder(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                public HqlExpressionSubTreeHolder(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlFalse : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlFalse(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlFetch : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlFetch(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlFetchJoin : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlFetchJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlFloatConstant : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlFloatConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlFrom : NHibernate.Hql.Ast.HqlStatement
            {
                internal HqlFrom() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { }
            }
            public class HqlGreaterThan : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlGreaterThan(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlGreaterThanOrEqual : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlGreaterThanOrEqual(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlGroupBy : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlGroupBy(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expressions) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlHaving : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlHaving(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlIdent : NHibernate.Hql.Ast.HqlExpression
            {
                internal HqlIdent() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) { }
            }
            public class HqlIn : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlIn(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression itemExpression, NHibernate.Hql.Ast.HqlTreeNode source) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlIndex : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlIndex(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression collection, NHibernate.Hql.Ast.HqlExpression index) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlIndices : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlIndices(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression dictionary) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlInequality : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlInequality(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlInList : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlInList(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlTreeNode source) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlInner : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlInner(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlInnerJoin : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlInnerJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlInsert : NHibernate.Hql.Ast.HqlStatement
            {
                internal HqlInsert() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { }
            }
            public class HqlIntegerConstant : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlIntegerConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlInto : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlInto(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlIsNotNull : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlIsNotNull(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlIsNull : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlIsNull(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlJoin : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlLeft : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlLeft(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlLeftFetchJoin : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlLeftFetchJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlLeftJoin : NHibernate.Hql.Ast.HqlTreeNode
            {
                public HqlLeftJoin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlLessThan : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlLessThan(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlLessThanOrEqual : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlLessThanOrEqual(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlLike : NHibernate.Hql.Ast.HqlBooleanExpression
            {
                public HqlLike(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                public HqlLike(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs, NHibernate.Hql.Ast.HqlConstant escapeCharacter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlMax : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlMax(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlMethodCall : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlMethodCall(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string methodName, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> parameters) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlMin : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlMin(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlMultiplty : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlMultiplty(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlNegate : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlNegate(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlNull : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlNull(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlOrderBy : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlOrderBy(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlParameter : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlParameter(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string name) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlQuery : NHibernate.Hql.Ast.HqlExpression
            {
                internal HqlQuery() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) { }
            }
            public class HqlRange : NHibernate.Hql.Ast.HqlStatement
            {
                internal HqlRange() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { }
            }
            public class HqlRowStar : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlRowStar(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlSelect : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlSelect(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlExpression[] expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlSelectFrom : NHibernate.Hql.Ast.HqlStatement
            {
                internal HqlSelectFrom() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { }
            }
            public class HqlSet : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlSet(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
                public HqlSet(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlSkip : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlSkip(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression parameter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlStar : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlStar(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public abstract class HqlStatement : NHibernate.Hql.Ast.HqlTreeNode
            {
                protected HqlStatement(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                protected HqlStatement(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> children) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlStringConstant : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlStringConstant(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, string s) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlSubtract : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlSubtract(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlSum : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlSum(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
                public HqlSum(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlTake : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlTake(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression parameter) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlTransparentCast : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlTransparentCast(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression, System.Type type) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlTreeBuilder
            {
                public NHibernate.Hql.Ast.HqlAdd Add(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlAlias Alias(string alias) => throw null;
                public NHibernate.Hql.Ast.HqlAll All() => throw null;
                public NHibernate.Hql.Ast.HqlAny Any() => throw null;
                public NHibernate.Hql.Ast.HqlDirectionAscending Ascending() => throw null;
                public NHibernate.Hql.Ast.HqlAverage Average(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlBitwiseAnd BitwiseAnd(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlBitwiseNot BitwiseNot() => throw null;
                public NHibernate.Hql.Ast.HqlBitwiseOr BitwiseOr(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlBooleanAnd BooleanAnd(NHibernate.Hql.Ast.HqlBooleanExpression lhs, NHibernate.Hql.Ast.HqlBooleanExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlBooleanMethodCall BooleanMethodCall(string methodName, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> parameters) => throw null;
                public NHibernate.Hql.Ast.HqlBooleanNot BooleanNot(NHibernate.Hql.Ast.HqlBooleanExpression operand) => throw null;
                public NHibernate.Hql.Ast.HqlBooleanOr BooleanOr(NHibernate.Hql.Ast.HqlBooleanExpression lhs, NHibernate.Hql.Ast.HqlBooleanExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlCase Case(NHibernate.Hql.Ast.HqlWhen[] whenClauses) => throw null;
                public NHibernate.Hql.Ast.HqlCase Case(NHibernate.Hql.Ast.HqlWhen[] whenClauses, NHibernate.Hql.Ast.HqlExpression ifFalse) => throw null;
                public NHibernate.Hql.Ast.HqlCast Cast(NHibernate.Hql.Ast.HqlExpression expression, System.Type type) => throw null;
                public NHibernate.Hql.Ast.HqlClass Class() => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode Coalesce(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlConcat Concat(params NHibernate.Hql.Ast.HqlExpression[] args) => throw null;
                public NHibernate.Hql.Ast.HqlConstant Constant(object value) => throw null;
                public NHibernate.Hql.Ast.HqlCount Count() => throw null;
                public NHibernate.Hql.Ast.HqlCount Count(NHibernate.Hql.Ast.HqlExpression child) => throw null;
                public NHibernate.Hql.Ast.HqlCountBig CountBig(NHibernate.Hql.Ast.HqlExpression child) => throw null;
                public NHibernate.Hql.Ast.HqlCrossJoin CrossJoin(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null;
                public HqlTreeBuilder() => throw null;
                public NHibernate.Hql.Ast.HqlDelete Delete(NHibernate.Hql.Ast.HqlFrom from) => throw null;
                public NHibernate.Hql.Ast.HqlDirectionDescending Descending() => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode DictionaryItem(NHibernate.Hql.Ast.HqlExpression dictionary, NHibernate.Hql.Ast.HqlExpression index) => throw null;
                public NHibernate.Hql.Ast.HqlDistinct Distinct() => throw null;
                public NHibernate.Hql.Ast.HqlDivide Divide(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlDot Dot(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlElements Elements() => throw null;
                public NHibernate.Hql.Ast.HqlElse Else(NHibernate.Hql.Ast.HqlExpression ifFalse) => throw null;
                public NHibernate.Hql.Ast.HqlEquality Equality(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlExists Exists(NHibernate.Hql.Ast.HqlQuery query) => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode ExpressionList(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> expressions) => throw null;
                public NHibernate.Hql.Ast.HqlExpressionSubTreeHolder ExpressionSubTreeHolder(params NHibernate.Hql.Ast.HqlTreeNode[] children) => throw null;
                public NHibernate.Hql.Ast.HqlExpressionSubTreeHolder ExpressionSubTreeHolder(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> children) => throw null;
                public NHibernate.Hql.Ast.HqlFalse False() => throw null;
                public NHibernate.Hql.Ast.HqlFetch Fetch() => throw null;
                public NHibernate.Hql.Ast.HqlFetchJoin FetchJoin(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null;
                public NHibernate.Hql.Ast.HqlFrom From(NHibernate.Hql.Ast.HqlRange range, params NHibernate.Hql.Ast.HqlJoin[] joins) => throw null;
                public NHibernate.Hql.Ast.HqlFrom From(NHibernate.Hql.Ast.HqlRange range, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlJoin> joins) => throw null;
                public NHibernate.Hql.Ast.HqlFrom From(NHibernate.Hql.Ast.HqlRange range) => throw null;
                public NHibernate.Hql.Ast.HqlFrom From() => throw null;
                public NHibernate.Hql.Ast.HqlGreaterThan GreaterThan(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlGreaterThanOrEqual GreaterThanOrEqual(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlGroupBy GroupBy(params NHibernate.Hql.Ast.HqlExpression[] expressions) => throw null;
                public NHibernate.Hql.Ast.HqlHaving Having(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlIdent Ident(string ident) => throw null;
                public NHibernate.Hql.Ast.HqlIdent Ident(System.Type type) => throw null;
                public NHibernate.Hql.Ast.HqlIn In(NHibernate.Hql.Ast.HqlExpression itemExpression, NHibernate.Hql.Ast.HqlTreeNode source) => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode Index(NHibernate.Hql.Ast.HqlExpression collection, NHibernate.Hql.Ast.HqlExpression index) => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode Indices(NHibernate.Hql.Ast.HqlExpression dictionary) => throw null;
                public NHibernate.Hql.Ast.HqlInequality Inequality(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlInnerJoin InnerJoin(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null;
                public NHibernate.Hql.Ast.HqlInsert Insert(NHibernate.Hql.Ast.HqlInto into, NHibernate.Hql.Ast.HqlQuery query) => throw null;
                public NHibernate.Hql.Ast.HqlInto Into() => throw null;
                public NHibernate.Hql.Ast.HqlIsNotNull IsNotNull(NHibernate.Hql.Ast.HqlExpression lhs) => throw null;
                public NHibernate.Hql.Ast.HqlIsNull IsNull(NHibernate.Hql.Ast.HqlExpression lhs) => throw null;
                public NHibernate.Hql.Ast.HqlJoin Join(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null;
                public NHibernate.Hql.Ast.HqlLeftFetchJoin LeftFetchJoin(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null;
                public NHibernate.Hql.Ast.HqlLeftJoin LeftJoin(NHibernate.Hql.Ast.HqlExpression expression, NHibernate.Hql.Ast.HqlAlias alias) => throw null;
                public NHibernate.Hql.Ast.HqlLessThan LessThan(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlLessThanOrEqual LessThanOrEqual(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlLike Like(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlLike Like(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs, NHibernate.Hql.Ast.HqlConstant escapeCharacter) => throw null;
                public NHibernate.Hql.Ast.HqlMax Max(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlMethodCall MethodCall(string methodName, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> parameters) => throw null;
                public NHibernate.Hql.Ast.HqlMethodCall MethodCall(string methodName, params NHibernate.Hql.Ast.HqlExpression[] parameters) => throw null;
                public NHibernate.Hql.Ast.HqlMin Min(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlMultiplty Multiply(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlNegate Negate(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlOrderBy OrderBy() => throw null;
                public NHibernate.Hql.Ast.HqlParameter Parameter(string name) => throw null;
                public NHibernate.Hql.Ast.HqlQuery Query() => throw null;
                public NHibernate.Hql.Ast.HqlQuery Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom) => throw null;
                public NHibernate.Hql.Ast.HqlQuery Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom, NHibernate.Hql.Ast.HqlWhere where) => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode Query(NHibernate.Hql.Ast.HqlSelectFrom selectFrom, NHibernate.Hql.Ast.HqlWhere where, NHibernate.Hql.Ast.HqlOrderBy orderBy) => throw null;
                public NHibernate.Hql.Ast.HqlRange Range(params NHibernate.Hql.Ast.HqlIdent[] idents) => throw null;
                public NHibernate.Hql.Ast.HqlRange Range(NHibernate.Hql.Ast.HqlTreeNode ident, NHibernate.Hql.Ast.HqlAlias alias) => throw null;
                public NHibernate.Hql.Ast.HqlRowStar RowStar() => throw null;
                public NHibernate.Hql.Ast.HqlSelect Select(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlSelect Select(params NHibernate.Hql.Ast.HqlExpression[] expression) => throw null;
                public NHibernate.Hql.Ast.HqlSelect Select(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> expressions) => throw null;
                public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom() => throw null;
                public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom(NHibernate.Hql.Ast.HqlSelect select) => throw null;
                public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom(NHibernate.Hql.Ast.HqlFrom from, NHibernate.Hql.Ast.HqlSelect select) => throw null;
                public NHibernate.Hql.Ast.HqlSelectFrom SelectFrom(NHibernate.Hql.Ast.HqlFrom from) => throw null;
                public NHibernate.Hql.Ast.HqlSet Set() => throw null;
                public NHibernate.Hql.Ast.HqlSet Set(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlSkip Skip(NHibernate.Hql.Ast.HqlExpression parameter) => throw null;
                public NHibernate.Hql.Ast.HqlStar Star() => throw null;
                public NHibernate.Hql.Ast.HqlSubtract Subtract(NHibernate.Hql.Ast.HqlExpression lhs, NHibernate.Hql.Ast.HqlExpression rhs) => throw null;
                public NHibernate.Hql.Ast.HqlSum Sum(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlTake Take(NHibernate.Hql.Ast.HqlExpression parameter) => throw null;
                public NHibernate.Hql.Ast.HqlTransparentCast TransparentCast(NHibernate.Hql.Ast.HqlExpression expression, System.Type type) => throw null;
                public NHibernate.Hql.Ast.HqlTrue True() => throw null;
                public NHibernate.Hql.Ast.HqlUpdate Update(NHibernate.Hql.Ast.HqlFrom from, NHibernate.Hql.Ast.HqlSet set) => throw null;
                public NHibernate.Hql.Ast.HqlUpdate Update(NHibernate.Hql.Ast.HqlVersioned versioned, NHibernate.Hql.Ast.HqlFrom from, NHibernate.Hql.Ast.HqlSet set) => throw null;
                public NHibernate.Hql.Ast.HqlVersioned Versioned() => throw null;
                public NHibernate.Hql.Ast.HqlWhen When(NHibernate.Hql.Ast.HqlExpression predicate, NHibernate.Hql.Ast.HqlExpression ifTrue) => throw null;
                public NHibernate.Hql.Ast.HqlWhere Where(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
                public NHibernate.Hql.Ast.HqlWith With(NHibernate.Hql.Ast.HqlExpression expression) => throw null;
            }
            public class HqlTreeNode
            {
                public System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> Children { get => throw null; }
                public void ClearChildren() => throw null;
                protected HqlTreeNode(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> children) => throw null;
                protected HqlTreeNode(int type, string text, NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, params NHibernate.Hql.Ast.HqlTreeNode[] children) => throw null;
                public NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory Factory { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> NodesPostOrder { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode> NodesPreOrder { get => throw null; }
                protected void SetText(string text) => throw null;
            }
            public static partial class HqlTreeNodeExtensions
            {
                public static NHibernate.Hql.Ast.HqlBooleanExpression AsBooleanExpression(this NHibernate.Hql.Ast.HqlTreeNode node) => throw null;
                public static NHibernate.Hql.Ast.HqlExpression AsExpression(this NHibernate.Hql.Ast.HqlTreeNode node) => throw null;
                public static NHibernate.Hql.Ast.HqlBooleanExpression ToBooleanExpression(this NHibernate.Hql.Ast.HqlTreeNode node) => throw null;
            }
            public class HqlTrue : NHibernate.Hql.Ast.HqlConstant
            {
                public HqlTrue(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(int), default(string)) => throw null;
            }
            public class HqlUpdate : NHibernate.Hql.Ast.HqlStatement
            {
                internal HqlUpdate() : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) { }
            }
            public class HqlVersioned : NHibernate.Hql.Ast.HqlExpression
            {
                public HqlVersioned(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlTreeNode>)) => throw null;
            }
            public class HqlWhen : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlWhen(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression predicate, NHibernate.Hql.Ast.HqlExpression ifTrue) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlWhere : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlWhere(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
            public class HqlWith : NHibernate.Hql.Ast.HqlStatement
            {
                public HqlWith(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory factory, NHibernate.Hql.Ast.HqlExpression expression) : base(default(int), default(string), default(NHibernate.Hql.Ast.ANTLR.Tree.IASTFactory), default(NHibernate.Hql.Ast.HqlTreeNode[])) => throw null;
            }
        }
        public class CollectionSubqueryFactory
        {
            public static string CreateCollectionSubquery(NHibernate.Engine.JoinSequence joinSequence, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, string[] columns) => throw null;
            public CollectionSubqueryFactory() => throw null;
        }
        public sealed class HolderInstantiator
        {
            public static NHibernate.Hql.HolderInstantiator CreateClassicHolderInstantiator(System.Reflection.ConstructorInfo constructor, NHibernate.Transform.IResultTransformer transformer) => throw null;
            public static NHibernate.Transform.IResultTransformer CreateSelectNewTransformer(System.Reflection.ConstructorInfo constructor, bool returnMaps, bool returnLists) => throw null;
            public HolderInstantiator(NHibernate.Transform.IResultTransformer transformer, string[] queryReturnAliases) => throw null;
            public static NHibernate.Hql.HolderInstantiator GetHolderInstantiator(NHibernate.Transform.IResultTransformer selectNewTransformer, NHibernate.Transform.IResultTransformer customTransformer, string[] queryReturnAliases) => throw null;
            public object Instantiate(object[] row) => throw null;
            public bool IsRequired { get => throw null; }
            public static readonly NHibernate.Hql.HolderInstantiator NoopInstantiator;
            public string[] QueryReturnAliases { get => throw null; }
            public static NHibernate.Transform.IResultTransformer ResolveClassicResultTransformer(System.Reflection.ConstructorInfo constructor, NHibernate.Transform.IResultTransformer transformer) => throw null;
            public static NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer selectNewTransformer, NHibernate.Transform.IResultTransformer customTransformer) => throw null;
            public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; }
        }
        public interface IFilterTranslator : NHibernate.Hql.IQueryTranslator
        {
            void Compile(string collectionRole, System.Collections.Generic.IDictionary<string, string> replacements, bool shallow);
        }
        public interface IQueryTranslator
        {
            NHibernate.Type.IType[] ActualReturnTypes { get; }
            NHibernate.Engine.Query.ParameterMetadata BuildParameterMetadata();
            System.Collections.Generic.IList<string> CollectSqlStrings { get; }
            void Compile(System.Collections.Generic.IDictionary<string, string> replacements, bool shallow);
            bool ContainsCollectionFetches { get; }
            System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get; }
            int ExecuteUpdate(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<int> ExecuteUpdateAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            string[][] GetColumnNames();
            System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session);
            System.Threading.Tasks.Task<System.Collections.IEnumerable> GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken);
            bool IsManipulationStatement { get; }
            System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters);
            System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            NHibernate.Loader.Loader Loader { get; }
            System.Collections.Generic.ISet<string> QuerySpaces { get; }
            string QueryString { get; }
            string[] ReturnAliases { get; }
            NHibernate.Type.IType[] ReturnTypes { get; }
            string SQLString { get; }
        }
        public interface IQueryTranslatorFactory
        {
            NHibernate.Hql.IQueryTranslator[] CreateQueryTranslators(NHibernate.IQueryExpression queryExpression, string collectionRole, bool shallow, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> filters, NHibernate.Engine.ISessionFactoryImplementor factory);
        }
        public interface IQueryTranslatorWithCustomizableLoader
        {
            NHibernate.Loader.ILoader QueryLoader { get; }
        }
        public class NameGenerator
        {
            public NameGenerator() => throw null;
            public static string[][] GenerateColumnNames(NHibernate.Type.IType[] types, NHibernate.Engine.ISessionFactoryImplementor f) => throw null;
            public static string ScalarName(int x, int y) => throw null;
        }
        public static class ParserHelper
        {
            public const string EntityClass = default;
            public const string HqlSeparators = default;
            public const string HqlVariablePrefix = default;
            public static bool IsWhitespace(string str) => throw null;
            public const string Whitespace = default;
        }
        public class QueryExecutionRequestException : NHibernate.QueryException
        {
            public QueryExecutionRequestException(string message, string queryString) => throw null;
            protected QueryExecutionRequestException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public class QuerySplitter
        {
            public static string[] ConcreteQueries(string query, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public QuerySplitter() => throw null;
        }
        public static partial class QueryTranslatorExtensions
        {
            public static NHibernate.Loader.ILoader GetQueryLoader(this NHibernate.Hql.IQueryTranslator queryTranslator) => throw null;
        }
        public class StringQueryExpression : NHibernate.IQueryExpression
        {
            public StringQueryExpression(string queryString) => throw null;
            public string Key { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Engine.Query.NamedParameterDescriptor> ParameterDescriptors { get => throw null; }
            public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor factory, bool filter) => throw null;
            public System.Type Type { get => throw null; }
        }
        namespace Util
        {
            public class SessionFactoryHelper
            {
                public SessionFactoryHelper(NHibernate.Engine.ISessionFactoryImplementor sfi) => throw null;
                public NHibernate.Persister.Entity.IEntityPersister FindEntityPersisterUsingImports(string className) => throw null;
                public NHibernate.Persister.Entity.IQueryable FindQueryableUsingImports(string className) => throw null;
                public NHibernate.Persister.Collection.IQueryableCollection GetCollectionPersister(string role) => throw null;
                public NHibernate.Persister.Entity.IPropertyMapping GetCollectionPropertyMapping(string role) => throw null;
                public System.Type GetImportedClass(string className) => throw null;
                public NHibernate.Persister.Entity.IEntityPersister RequireClassPersister(string name) => throw null;
                public NHibernate.Persister.Collection.IQueryableCollection RequireQueryableCollection(string role) => throw null;
            }
        }
    }
    public interface ICriteria : System.ICloneable
    {
        NHibernate.ICriteria Add(NHibernate.Criterion.ICriterion expression);
        NHibernate.ICriteria AddOrder(NHibernate.Criterion.Order order);
        string Alias { get; }
        void ClearOrders();
        NHibernate.ICriteria CreateAlias(string associationPath, string alias);
        NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.ICriteria CreateCriteria(string associationPath);
        NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.ICriteria CreateCriteria(string associationPath, string alias);
        NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IFutureEnumerable<T> Future<T>();
        NHibernate.IFutureValue<T> FutureValue<T>();
        NHibernate.ICriteria GetCriteriaByAlias(string alias);
        NHibernate.ICriteria GetCriteriaByPath(string path);
        System.Type GetRootEntityTypeIfAvailable();
        bool IsReadOnly { get; }
        bool IsReadOnlyInitialized { get; }
        System.Collections.IList List();
        void List(System.Collections.IList results);
        System.Collections.Generic.IList<T> List<T>();
        System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.ICriteria SetCacheable(bool cacheable);
        NHibernate.ICriteria SetCacheMode(NHibernate.CacheMode cacheMode);
        NHibernate.ICriteria SetCacheRegion(string cacheRegion);
        NHibernate.ICriteria SetComment(string comment);
        NHibernate.ICriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode);
        NHibernate.ICriteria SetFetchSize(int fetchSize);
        NHibernate.ICriteria SetFirstResult(int firstResult);
        NHibernate.ICriteria SetFlushMode(NHibernate.FlushMode flushMode);
        NHibernate.ICriteria SetLockMode(NHibernate.LockMode lockMode);
        NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode);
        NHibernate.ICriteria SetMaxResults(int maxResults);
        NHibernate.ICriteria SetProjection(params NHibernate.Criterion.IProjection[] projection);
        NHibernate.ICriteria SetReadOnly(bool readOnly);
        NHibernate.ICriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer);
        NHibernate.ICriteria SetTimeout(int timeout);
        object UniqueResult();
        T UniqueResult<T>();
        System.Threading.Tasks.Task<object> UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> UniqueResultAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
    }
    namespace Id
    {
        public abstract class AbstractPostInsertGenerator : NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IPostInsertIdentifierGenerator
        {
            protected AbstractPostInsertGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor s, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor s, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled);
        }
        public class Assigned : NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator
        {
            public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public Assigned() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class CounterGenerator : NHibernate.Id.IIdentifierGenerator
        {
            protected short Count { get => throw null; }
            public CounterGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor cache, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor cache, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        namespace Enhanced
        {
            public interface IAccessCallback
            {
                long GetNextValue();
                System.Threading.Tasks.Task<long> GetNextValueAsync(System.Threading.CancellationToken cancellationToken);
            }
            public interface IDatabaseStructure
            {
                NHibernate.Id.Enhanced.IAccessCallback BuildCallback(NHibernate.Engine.ISessionImplementor session);
                int IncrementSize { get; }
                string Name { get; }
                void Prepare(NHibernate.Id.Enhanced.IOptimizer optimizer);
                string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect);
                string[] SqlDropStrings(NHibernate.Dialect.Dialect dialect);
                int TimesAccessed { get; }
            }
            public interface IOptimizer
            {
                bool ApplyIncrementSizeToSourceValues { get; }
                object Generate(NHibernate.Id.Enhanced.IAccessCallback callback);
                System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken);
                int IncrementSize { get; }
                long LastSourceValue { get; }
            }
            public class OptimizerFactory
            {
                public static NHibernate.Id.Enhanced.IOptimizer BuildOptimizer(string type, System.Type returnClass, int incrementSize, long explicitInitialValue) => throw null;
                public OptimizerFactory() => throw null;
                public const string HiLo = default;
                public class HiLoOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport
                {
                    public override bool ApplyIncrementSizeToSourceValues { get => throw null; }
                    public HiLoOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null;
                    public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null;
                    public override System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null;
                    public long HiValue { get => throw null; }
                    public override long LastSourceValue { get => throw null; }
                    public long LastValue { get => throw null; }
                }
                public interface IInitialValueAwareOptimizer
                {
                    void InjectInitialValue(long initialValue);
                }
                public const string None = default;
                public class NoopOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport
                {
                    public override bool ApplyIncrementSizeToSourceValues { get => throw null; }
                    public NoopOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null;
                    public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null;
                    public override System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null;
                    public override long LastSourceValue { get => throw null; }
                }
                public abstract class OptimizerSupport : NHibernate.Id.Enhanced.IOptimizer
                {
                    public abstract bool ApplyIncrementSizeToSourceValues { get; }
                    protected OptimizerSupport(System.Type returnClass, int incrementSize) => throw null;
                    public abstract object Generate(NHibernate.Id.Enhanced.IAccessCallback param);
                    public abstract System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback param, System.Threading.CancellationToken cancellationToken);
                    public int IncrementSize { get => throw null; set { } }
                    public abstract long LastSourceValue { get; }
                    protected virtual object Make(long value) => throw null;
                    public System.Type ReturnClass { get => throw null; set { } }
                }
                public const string Pool = default;
                public class PooledLoOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport
                {
                    public override bool ApplyIncrementSizeToSourceValues { get => throw null; }
                    public PooledLoOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null;
                    public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null;
                    public override System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null;
                    public override long LastSourceValue { get => throw null; }
                    public long LastValue { get => throw null; }
                }
                public class PooledOptimizer : NHibernate.Id.Enhanced.OptimizerFactory.OptimizerSupport, NHibernate.Id.Enhanced.OptimizerFactory.IInitialValueAwareOptimizer
                {
                    public override bool ApplyIncrementSizeToSourceValues { get => throw null; }
                    public PooledOptimizer(System.Type returnClass, int incrementSize) : base(default(System.Type), default(int)) => throw null;
                    public override object Generate(NHibernate.Id.Enhanced.IAccessCallback callback) => throw null;
                    public override System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Id.Enhanced.IAccessCallback callback, System.Threading.CancellationToken cancellationToken) => throw null;
                    public void InjectInitialValue(long initialValue) => throw null;
                    public override long LastSourceValue { get => throw null; }
                    public long LastValue { get => throw null; }
                }
                public const string PoolLo = default;
            }
            public class SequenceStructure : NHibernate.Id.Enhanced.IDatabaseStructure
            {
                public NHibernate.Id.Enhanced.IAccessCallback BuildCallback(NHibernate.Engine.ISessionImplementor session) => throw null;
                public SequenceStructure(NHibernate.Dialect.Dialect dialect, string sequenceName, int initialValue, int incrementSize) => throw null;
                public int IncrementSize { get => throw null; }
                public string Name { get => throw null; }
                public void Prepare(NHibernate.Id.Enhanced.IOptimizer optimizer) => throw null;
                public string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null;
                public string[] SqlDropStrings(NHibernate.Dialect.Dialect dialect) => throw null;
                public int TimesAccessed { get => throw null; }
            }
            public class SequenceStyleGenerator : NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IPersistentIdentifierGenerator
            {
                protected NHibernate.Id.Enhanced.IDatabaseStructure BuildDatabaseStructure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect, bool forceTableUse, string sequenceName, int initialValue, int incrementSize) => throw null;
                public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
                public SequenceStyleGenerator() => throw null;
                public NHibernate.Id.Enhanced.IDatabaseStructure DatabaseStructure { get => throw null; }
                public const int DefaultIncrementSize = 1;
                public const int DefaultInitialValue = 1;
                public const string DefaultSequenceName = default;
                public const string DefaultValueColumnName = default;
                protected int DetermineAdjustedIncrementSize(string optimizationStrategy, int incrementSize) => throw null;
                protected int DetermineIncrementSize(System.Collections.Generic.IDictionary<string, string> parms) => throw null;
                protected int DetermineInitialValue(System.Collections.Generic.IDictionary<string, string> parms) => throw null;
                protected string DetermineOptimizationStrategy(System.Collections.Generic.IDictionary<string, string> parms, int incrementSize) => throw null;
                protected string DetermineSequenceName(System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
                protected string DetermineValueColumnName(System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
                public const string ForceTableParam = default;
                public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
                public virtual System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual string GeneratorKey() => throw null;
                public NHibernate.Type.IType IdentifierType { get => throw null; }
                public const string IncrementParam = default;
                public const string InitialParam = default;
                public NHibernate.Id.Enhanced.IOptimizer Optimizer { get => throw null; }
                public const string OptimizerParam = default;
                protected bool RequiresPooledSequence(int initialValue, int incrementSize, NHibernate.Id.Enhanced.IOptimizer optimizer) => throw null;
                public const string SequenceParam = default;
                public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null;
                public virtual string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null;
                public const string ValueColumnParam = default;
            }
            public class TableGenerator : NHibernate.Engine.TransactionHelper, NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IPersistentIdentifierGenerator
            {
                protected void BuildInsertQuery() => throw null;
                protected void BuildSelectQuery(NHibernate.Dialect.Dialect dialect) => throw null;
                protected void BuildUpdateQuery() => throw null;
                public const string ConfigPreferSegmentPerEntity = default;
                public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
                public TableGenerator() => throw null;
                public const int DefaltInitialValue = 1;
                public const int DefaultIncrementSize = 1;
                public const string DefaultSegmentColumn = default;
                public const int DefaultSegmentLength = 255;
                public const string DefaultSegmentValue = default;
                public const string DefaultTable = default;
                public const string DefaultValueColumn = default;
                protected string DetermineDefaultSegmentValue(System.Collections.Generic.IDictionary<string, string> parms) => throw null;
                protected string DetermineGeneratorTableName(System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
                protected int DetermineIncrementSize(System.Collections.Generic.IDictionary<string, string> parms) => throw null;
                protected int DetermineInitialValue(System.Collections.Generic.IDictionary<string, string> parms) => throw null;
                protected string DetermineSegmentColumnName(System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
                protected int DetermineSegmentColumnSize(System.Collections.Generic.IDictionary<string, string> parms) => throw null;
                protected string DetermineSegmentValue(System.Collections.Generic.IDictionary<string, string> parms) => throw null;
                protected string DetermineValueColumnName(System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
                public override object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction) => throw null;
                public override System.Threading.Tasks.Task<object> DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
                public virtual System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual string GeneratorKey() => throw null;
                public NHibernate.Type.IType IdentifierType { get => throw null; }
                public const string IncrementParam = default;
                public int IncrementSize { get => throw null; }
                public const string InitialParam = default;
                public int InitialValue { get => throw null; }
                public NHibernate.Id.Enhanced.IOptimizer Optimizer { get => throw null; }
                public const string OptimizerParam = default;
                public string SegmentColumnName { get => throw null; }
                public const string SegmentColumnParam = default;
                public const string SegmentLengthParam = default;
                public string SegmentValue { get => throw null; }
                public int SegmentValueLength { get => throw null; }
                public const string SegmentValueParam = default;
                public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null;
                public virtual string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null;
                public long TableAccessCount { get => throw null; }
                public string TableName { get => throw null; }
                public const string TableParam = default;
                public string ValueColumnName { get => throw null; }
                public const string ValueColumnParam = default;
            }
            public class TableStructure : NHibernate.Engine.TransactionHelper, NHibernate.Id.Enhanced.IDatabaseStructure
            {
                public virtual NHibernate.Id.Enhanced.IAccessCallback BuildCallback(NHibernate.Engine.ISessionImplementor session) => throw null;
                public TableStructure(NHibernate.Dialect.Dialect dialect, string tableName, string valueColumnName, int initialValue, int incrementSize) => throw null;
                public override object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction) => throw null;
                public override System.Threading.Tasks.Task<object> DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null;
                public int IncrementSize { get => throw null; }
                public string Name { get => throw null; }
                public virtual void Prepare(NHibernate.Id.Enhanced.IOptimizer optimizer) => throw null;
                public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null;
                public virtual string[] SqlDropStrings(NHibernate.Dialect.Dialect dialect) => throw null;
                public int TimesAccessed { get => throw null; }
            }
        }
        public class ForeignGenerator : NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator
        {
            public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public ForeignGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor sessionImplementor, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class GuidCombGenerator : NHibernate.Id.IIdentifierGenerator
        {
            public GuidCombGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class GuidGenerator : NHibernate.Id.IIdentifierGenerator
        {
            public GuidGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public interface ICompositeKeyPostInsertIdentityPersister
        {
            void BindSelectByUniqueKey(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames);
            System.Threading.Tasks.Task BindSelectByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames, System.Threading.CancellationToken cancellationToken);
            NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes);
        }
        public interface IConfigurable
        {
            void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect);
        }
        public class IdentifierGenerationException : NHibernate.HibernateException
        {
            public IdentifierGenerationException() => throw null;
            public IdentifierGenerationException(string message) => throw null;
            public IdentifierGenerationException(string message, System.Exception e) => throw null;
            protected IdentifierGenerationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public static class IdentifierGeneratorFactory
        {
            public static NHibernate.Id.IIdentifierGenerator Create(string strategy, NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public static object CreateNumber(long value, System.Type type) => throw null;
            public static object Get(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<object> GetAsync(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static object GetGeneratedIdentity(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<object> GetGeneratedIdentityAsync(System.Data.Common.DbDataReader rs, NHibernate.Type.IType type, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static System.Type GetIdentifierGeneratorClass(string strategy, NHibernate.Dialect.Dialect dialect) => throw null;
            public static readonly object PostInsertIndicator;
            public static readonly object ShortCircuitIndicator;
        }
        public class IdentityGenerator : NHibernate.Id.AbstractPostInsertGenerator
        {
            public class BasicDelegate : NHibernate.Id.Insert.AbstractSelectingDelegate, NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate
            {
                public BasicDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null;
                protected override object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object obj) => throw null;
                protected override System.Threading.Tasks.Task<object> GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
                public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null;
                protected override NHibernate.SqlCommand.SqlString SelectSQL { get => throw null; }
            }
            public IdentityGenerator() => throw null;
            public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null;
            public class InsertSelectDelegate : NHibernate.Id.Insert.AbstractReturningDelegate, NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate
            {
                public InsertSelectDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null;
                public object DetermineGeneratedIdentifier(NHibernate.Engine.ISessionImplementor session, object entity) => throw null;
                public override object ExecuteAndExtract(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null;
                public override System.Threading.Tasks.Task<object> ExecuteAndExtractAsync(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null;
            }
        }
        public struct IdGeneratorParmsNames
        {
            public static readonly string EntityName;
        }
        public interface IIdentifierGenerator
        {
            object Generate(NHibernate.Engine.ISessionImplementor session, object obj);
            System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken);
        }
        public class IncrementGenerator : NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator
        {
            public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public IncrementGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        namespace Insert
        {
            public abstract class AbstractReturningDelegate : NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate
            {
                protected AbstractReturningDelegate(NHibernate.Id.IPostInsertIdentityPersister persister) => throw null;
                public abstract object ExecuteAndExtract(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session);
                public abstract System.Threading.Tasks.Task<object> ExecuteAndExtractAsync(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                public object PerformInsert(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder) => throw null;
                public System.Threading.Tasks.Task<object> PerformInsertAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null;
                protected NHibernate.Id.IPostInsertIdentityPersister Persister { get => throw null; }
                protected abstract System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session);
                protected abstract System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                public abstract NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert();
                protected virtual void ReleaseStatement(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null;
            }
            public abstract class AbstractSelectingDelegate : NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate
            {
                protected virtual void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity) => throw null;
                protected virtual void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder) => throw null;
                protected virtual System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null;
                protected AbstractSelectingDelegate(NHibernate.Id.IPostInsertIdentityPersister persister) => throw null;
                protected abstract object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity);
                protected abstract System.Threading.Tasks.Task<object> GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity, System.Threading.CancellationToken cancellationToken);
                protected virtual NHibernate.SqlTypes.SqlType[] ParametersTypes { get => throw null; }
                public object PerformInsert(NHibernate.SqlCommand.SqlCommandInfo insertSql, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder) => throw null;
                public System.Threading.Tasks.Task<object> PerformInsertAsync(NHibernate.SqlCommand.SqlCommandInfo insertSql, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null;
                public abstract NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert();
                protected abstract NHibernate.SqlCommand.SqlString SelectSQL { get; }
            }
            public interface IBinder
            {
                void BindValues(System.Data.Common.DbCommand cm);
                System.Threading.Tasks.Task BindValuesAsync(System.Data.Common.DbCommand cm, System.Threading.CancellationToken cancellationToken);
                object Entity { get; }
            }
            public class IdentifierGeneratingInsert : NHibernate.SqlCommand.SqlInsertBuilder
            {
                public IdentifierGeneratingInsert(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            }
            public interface IInsertGeneratedIdentifierDelegate
            {
                object PerformInsert(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder);
                System.Threading.Tasks.Task<object> PerformInsertAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken);
                NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert();
            }
            public class InsertSelectIdentityInsert : NHibernate.Id.Insert.IdentifierGeneratingInsert
            {
                public InsertSelectIdentityInsert(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                public InsertSelectIdentityInsert(NHibernate.Engine.ISessionFactoryImplementor factory, string identifierColumnName) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                public override NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
            }
            public class NoCommentsInsert : NHibernate.Id.Insert.IdentifierGeneratingInsert
            {
                public NoCommentsInsert(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                public override NHibernate.SqlCommand.SqlInsertBuilder SetComment(string comment) => throw null;
            }
            public class OutputParamReturningDelegate : NHibernate.Id.Insert.AbstractReturningDelegate
            {
                public OutputParamReturningDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Id.IPostInsertIdentityPersister)) => throw null;
                public override object ExecuteAndExtract(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session) => throw null;
                public override System.Threading.Tasks.Task<object> ExecuteAndExtractAsync(System.Data.Common.DbCommand insert, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override System.Data.Common.DbCommand Prepare(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareAsync(NHibernate.SqlCommand.SqlCommandInfo insertSQL, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null;
            }
            public class ReturningIdentifierInsert : NHibernate.Id.Insert.NoCommentsInsert
            {
                public ReturningIdentifierInsert(NHibernate.Engine.ISessionFactoryImplementor factory, string identifierColumnName, string returnParameterName) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                public override NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
            }
        }
        public interface IPersistentIdentifierGenerator : NHibernate.Id.IIdentifierGenerator
        {
            string GeneratorKey();
            string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect);
            string[] SqlDropString(NHibernate.Dialect.Dialect dialect);
        }
        public interface IPostInsertIdentifierGenerator : NHibernate.Id.IIdentifierGenerator
        {
            NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled);
        }
        public interface IPostInsertIdentityPersister
        {
            string GetInfoString();
            NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName);
            NHibernate.Type.IType IdentifierType { get; }
            string IdentitySelectString { get; }
            string[] RootTableKeyColumnNames { get; }
        }
        public class NativeGuidGenerator : NHibernate.Id.IIdentifierGenerator
        {
            public NativeGuidGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public struct PersistentIdGeneratorParmsNames
        {
            public static readonly string Catalog;
            public static readonly string PK;
            public static readonly string Schema;
            public static readonly NHibernate.AdoNet.Util.SqlStatementLogger SqlStatementLogger;
            public static readonly string Table;
            public static readonly string Tables;
        }
        public class SelectGenerator : NHibernate.Id.AbstractPostInsertGenerator, NHibernate.Id.IConfigurable
        {
            public void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public SelectGenerator() => throw null;
            public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null;
            public class SelectGeneratorDelegate : NHibernate.Id.Insert.AbstractSelectingDelegate
            {
                protected override void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity) => throw null;
                protected override void BindParameters(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder) => throw null;
                protected override System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, object entity, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override System.Threading.Tasks.Task BindParametersAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand ps, NHibernate.Id.Insert.IBinder binder, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override object GetResult(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity) => throw null;
                protected override System.Threading.Tasks.Task<object> GetResultAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader rs, object entity, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override NHibernate.SqlTypes.SqlType[] ParametersTypes { get => throw null; }
                public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null;
                protected override NHibernate.SqlCommand.SqlString SelectSQL { get => throw null; }
                internal SelectGeneratorDelegate() : base(default(NHibernate.Id.IPostInsertIdentityPersister)) { }
            }
        }
        public class SequenceGenerator : NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IPersistentIdentifierGenerator
        {
            public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public SequenceGenerator() => throw null;
            public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public virtual System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public string GeneratorKey() => throw null;
            public const string Parameters = default;
            public const string Sequence = default;
            public string SequenceName { get => throw null; }
            public string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null;
            public string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null;
        }
        public class SequenceHiLoGenerator : NHibernate.Id.SequenceGenerator
        {
            public override void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public SequenceHiLoGenerator() => throw null;
            public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public override System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public const string MaxLo = default;
        }
        public class SequenceIdentityGenerator : NHibernate.Id.SequenceGenerator, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IPostInsertIdentifierGenerator
        {
            public SequenceIdentityGenerator() => throw null;
            public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public override System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null;
            public class SequenceIdentityDelegate : NHibernate.Id.Insert.OutputParamReturningDelegate
            {
                public SequenceIdentityDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, string sequenceName) : base(default(NHibernate.Id.IPostInsertIdentityPersister), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                public override NHibernate.Id.Insert.IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() => throw null;
            }
        }
        public class TableGenerator : NHibernate.Engine.TransactionHelper, NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator, NHibernate.Id.IPersistentIdentifierGenerator
        {
            public const string ColumnParamName = default;
            protected NHibernate.SqlTypes.SqlType columnSqlType;
            protected NHibernate.Type.PrimitiveType columnType;
            public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public TableGenerator() => throw null;
            public const string DefaultColumnName = default;
            public const string DefaultTableName = default;
            public override object DoWorkInCurrentTransaction(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction) => throw null;
            public override System.Threading.Tasks.Task<object> DoWorkInCurrentTransactionAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbConnection conn, System.Data.Common.DbTransaction transaction, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public virtual System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public string GeneratorKey() => throw null;
            public virtual string[] SqlCreateStrings(NHibernate.Dialect.Dialect dialect) => throw null;
            public virtual string[] SqlDropString(NHibernate.Dialect.Dialect dialect) => throw null;
            public const string TableParamName = default;
            public const string Where = default;
        }
        public class TableHiLoGenerator : NHibernate.Id.TableGenerator
        {
            public override void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public TableHiLoGenerator() => throw null;
            public override object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public override System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public const string MaxLo = default;
        }
        public class TriggerIdentityGenerator : NHibernate.Id.AbstractPostInsertGenerator
        {
            public TriggerIdentityGenerator() => throw null;
            public override NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(NHibernate.Id.IPostInsertIdentityPersister persister, NHibernate.Engine.ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) => throw null;
        }
        public class UUIDHexGenerator : NHibernate.Id.IConfigurable, NHibernate.Id.IIdentifierGenerator
        {
            public virtual void Configure(NHibernate.Type.IType type, System.Collections.Generic.IDictionary<string, string> parms, NHibernate.Dialect.Dialect dialect) => throw null;
            public UUIDHexGenerator() => throw null;
            protected string format;
            protected const string FormatWithDigitsOnly = default;
            public virtual object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public virtual System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual string GenerateNewGuid() => throw null;
            protected string sep;
        }
        public class UUIDStringGenerator : NHibernate.Id.IIdentifierGenerator
        {
            public UUIDStringGenerator() => throw null;
            public object Generate(NHibernate.Engine.ISessionImplementor session, object obj) => throw null;
            public System.Threading.Tasks.Task<object> GenerateAsync(NHibernate.Engine.ISessionImplementor session, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
        }
    }
    public interface IDatabinder
    {
        NHibernate.IDatabinder Bind(object obj);
        NHibernate.IDatabinder BindAll(System.Collections.ICollection objs);
        bool InitializeLazy { get; set; }
        string ToGenericXml();
        System.Xml.XmlDocument ToGenericXmlDocument();
        string ToXML();
        System.Xml.XmlDocument ToXmlDocument();
    }
    public class IdentityEqualityComparer : System.Collections.IEqualityComparer, System.Collections.Generic.IEqualityComparer<object>
    {
        public IdentityEqualityComparer() => throw null;
        public bool Equals(object x, object y) => throw null;
        public int GetHashCode(object obj) => throw null;
    }
    public interface IDetachedQuery
    {
        NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session);
        NHibernate.IDetachedQuery SetAnsiString(int position, string val);
        NHibernate.IDetachedQuery SetAnsiString(string name, string val);
        NHibernate.IDetachedQuery SetBinary(int position, byte[] val);
        NHibernate.IDetachedQuery SetBinary(string name, byte[] val);
        NHibernate.IDetachedQuery SetBoolean(int position, bool val);
        NHibernate.IDetachedQuery SetBoolean(string name, bool val);
        NHibernate.IDetachedQuery SetByte(int position, byte val);
        NHibernate.IDetachedQuery SetByte(string name, byte val);
        NHibernate.IDetachedQuery SetCacheable(bool cacheable);
        NHibernate.IDetachedQuery SetCacheMode(NHibernate.CacheMode cacheMode);
        NHibernate.IDetachedQuery SetCacheRegion(string cacheRegion);
        NHibernate.IDetachedQuery SetCharacter(int position, char val);
        NHibernate.IDetachedQuery SetCharacter(string name, char val);
        NHibernate.IDetachedQuery SetComment(string comment);
        NHibernate.IDetachedQuery SetDateTime(int position, System.DateTime val);
        NHibernate.IDetachedQuery SetDateTime(string name, System.DateTime val);
        NHibernate.IDetachedQuery SetDateTimeNoMs(int position, System.DateTime val);
        NHibernate.IDetachedQuery SetDateTimeNoMs(string name, System.DateTime val);
        NHibernate.IDetachedQuery SetDecimal(int position, decimal val);
        NHibernate.IDetachedQuery SetDecimal(string name, decimal val);
        NHibernate.IDetachedQuery SetDouble(int position, double val);
        NHibernate.IDetachedQuery SetDouble(string name, double val);
        NHibernate.IDetachedQuery SetEntity(int position, object val);
        NHibernate.IDetachedQuery SetEntity(string name, object val);
        NHibernate.IDetachedQuery SetEnum(int position, System.Enum val);
        NHibernate.IDetachedQuery SetEnum(string name, System.Enum val);
        NHibernate.IDetachedQuery SetFetchSize(int fetchSize);
        NHibernate.IDetachedQuery SetFirstResult(int firstResult);
        NHibernate.IDetachedQuery SetFlushMode(NHibernate.FlushMode flushMode);
        NHibernate.IDetachedQuery SetGuid(int position, System.Guid val);
        NHibernate.IDetachedQuery SetGuid(string name, System.Guid val);
        NHibernate.IDetachedQuery SetIgnoreUknownNamedParameters(bool ignoredUnknownNamedParameters);
        NHibernate.IDetachedQuery SetInt16(int position, short val);
        NHibernate.IDetachedQuery SetInt16(string name, short val);
        NHibernate.IDetachedQuery SetInt32(int position, int val);
        NHibernate.IDetachedQuery SetInt32(string name, int val);
        NHibernate.IDetachedQuery SetInt64(int position, long val);
        NHibernate.IDetachedQuery SetInt64(string name, long val);
        void SetLockMode(string alias, NHibernate.LockMode lockMode);
        NHibernate.IDetachedQuery SetMaxResults(int maxResults);
        NHibernate.IDetachedQuery SetParameter(int position, object val, NHibernate.Type.IType type);
        NHibernate.IDetachedQuery SetParameter(string name, object val, NHibernate.Type.IType type);
        NHibernate.IDetachedQuery SetParameter(int position, object val);
        NHibernate.IDetachedQuery SetParameter(string name, object val);
        NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type);
        NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals);
        NHibernate.IDetachedQuery SetProperties(object obj);
        NHibernate.IDetachedQuery SetReadOnly(bool readOnly);
        NHibernate.IDetachedQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer);
        NHibernate.IDetachedQuery SetSingle(int position, float val);
        NHibernate.IDetachedQuery SetSingle(string name, float val);
        NHibernate.IDetachedQuery SetString(int position, string val);
        NHibernate.IDetachedQuery SetString(string name, string val);
        NHibernate.IDetachedQuery SetTime(int position, System.DateTime val);
        NHibernate.IDetachedQuery SetTime(string name, System.DateTime val);
        NHibernate.IDetachedQuery SetTimeout(int timeout);
        NHibernate.IDetachedQuery SetTimestamp(int position, System.DateTime val);
        NHibernate.IDetachedQuery SetTimestamp(string name, System.DateTime val);
    }
    public interface IFilter
    {
        NHibernate.Engine.FilterDefinition FilterDefinition { get; }
        string Name { get; }
        NHibernate.IFilter SetParameter(string name, object value);
        NHibernate.IFilter SetParameterList<T>(string name, System.Collections.Generic.ICollection<T> values);
        void Validate();
    }
    public interface IFutureEnumerable<T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
    {
        System.Collections.Generic.IEnumerable<T> GetEnumerable();
        System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> GetEnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Collections.Generic.IEnumerator<T> GetEnumerator();
    }
    public interface IFutureValue<T>
    {
        System.Threading.Tasks.Task<T> GetValueAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        T Value { get; }
    }
    public interface IInterceptor
    {
        void AfterTransactionBegin(NHibernate.ITransaction tx);
        void AfterTransactionCompletion(NHibernate.ITransaction tx);
        void BeforeTransactionCompletion(NHibernate.ITransaction tx);
        int[] FindDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types);
        object GetEntity(string entityName, object id);
        string GetEntityName(object entity);
        object Instantiate(string entityName, object id);
        bool? IsTransient(object entity);
        void OnCollectionRecreate(object collection, object key);
        void OnCollectionRemove(object collection, object key);
        void OnCollectionUpdate(object collection, object key);
        void OnDelete(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types);
        bool OnFlushDirty(object entity, object id, object[] currentState, object[] previousState, string[] propertyNames, NHibernate.Type.IType[] types);
        bool OnLoad(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types);
        NHibernate.SqlCommand.SqlString OnPrepareStatement(NHibernate.SqlCommand.SqlString sql);
        bool OnSave(object entity, object id, object[] state, string[] propertyNames, NHibernate.Type.IType[] types);
        void PostFlush(System.Collections.ICollection entities);
        void PreFlush(System.Collections.ICollection entities);
        void SetSession(NHibernate.ISession session);
    }
    public interface IInternalLogger
    {
        void Debug(object message);
        void Debug(object message, System.Exception exception);
        void DebugFormat(string format, params object[] args);
        void Error(object message);
        void Error(object message, System.Exception exception);
        void ErrorFormat(string format, params object[] args);
        void Fatal(object message);
        void Fatal(object message, System.Exception exception);
        void Info(object message);
        void Info(object message, System.Exception exception);
        void InfoFormat(string format, params object[] args);
        bool IsDebugEnabled { get; }
        bool IsErrorEnabled { get; }
        bool IsFatalEnabled { get; }
        bool IsInfoEnabled { get; }
        bool IsWarnEnabled { get; }
        void Warn(object message);
        void Warn(object message, System.Exception exception);
        void WarnFormat(string format, params object[] args);
    }
    public interface ILoggerFactory
    {
        NHibernate.IInternalLogger LoggerFor(string keyName);
        NHibernate.IInternalLogger LoggerFor(System.Type type);
    }
    namespace Impl
    {
        public abstract class AbstractDetachedQuery : NHibernate.IDetachedQuery, NHibernate.Impl.IDetachedQueryImplementor
        {
            protected bool cacheable;
            protected NHibernate.CacheMode? cacheMode;
            protected string cacheRegion;
            protected string comment;
            public NHibernate.IDetachedQuery CopyParametersFrom(NHibernate.Impl.IDetachedQueryImplementor origin) => throw null;
            public void CopyTo(NHibernate.IDetachedQuery destination) => throw null;
            protected AbstractDetachedQuery() => throw null;
            protected NHibernate.FlushMode flushMode;
            public abstract NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session);
            protected readonly System.Collections.Generic.Dictionary<string, NHibernate.LockMode> lockModes;
            protected readonly System.Collections.Generic.Dictionary<string, NHibernate.Engine.TypedValue> namedListParams;
            protected readonly System.Collections.Generic.Dictionary<string, NHibernate.Engine.TypedValue> namedParams;
            protected readonly System.Collections.Generic.Dictionary<string, System.Collections.IEnumerable> namedUntypeListParams;
            protected readonly System.Collections.Generic.Dictionary<string, object> namedUntypeParams;
            protected readonly System.Collections.IList optionalUntypeParams;
            void NHibernate.Impl.IDetachedQueryImplementor.OverrideInfoFrom(NHibernate.Impl.IDetachedQueryImplementor origin) => throw null;
            void NHibernate.Impl.IDetachedQueryImplementor.OverrideParametersFrom(NHibernate.Impl.IDetachedQueryImplementor origin) => throw null;
            protected readonly System.Collections.Generic.Dictionary<int, NHibernate.Engine.TypedValue> posParams;
            protected readonly System.Collections.Generic.Dictionary<int, object> posUntypeParams;
            protected bool readOnly;
            protected NHibernate.Transform.IResultTransformer resultTransformer;
            protected readonly NHibernate.Engine.RowSelection selection;
            public NHibernate.IDetachedQuery SetAnsiString(int position, string val) => throw null;
            public NHibernate.IDetachedQuery SetAnsiString(string name, string val) => throw null;
            public NHibernate.IDetachedQuery SetBinary(int position, byte[] val) => throw null;
            public NHibernate.IDetachedQuery SetBinary(string name, byte[] val) => throw null;
            public NHibernate.IDetachedQuery SetBoolean(int position, bool val) => throw null;
            public NHibernate.IDetachedQuery SetBoolean(string name, bool val) => throw null;
            public NHibernate.IDetachedQuery SetByte(int position, byte val) => throw null;
            public NHibernate.IDetachedQuery SetByte(string name, byte val) => throw null;
            public virtual NHibernate.IDetachedQuery SetCacheable(bool cacheable) => throw null;
            public virtual NHibernate.IDetachedQuery SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
            public virtual NHibernate.IDetachedQuery SetCacheRegion(string cacheRegion) => throw null;
            public NHibernate.IDetachedQuery SetCharacter(int position, char val) => throw null;
            public NHibernate.IDetachedQuery SetCharacter(string name, char val) => throw null;
            public virtual NHibernate.IDetachedQuery SetComment(string comment) => throw null;
            public NHibernate.IDetachedQuery SetDateTime(int position, System.DateTime val) => throw null;
            public NHibernate.IDetachedQuery SetDateTime(string name, System.DateTime val) => throw null;
            public NHibernate.IDetachedQuery SetDateTimeNoMs(int position, System.DateTime val) => throw null;
            public NHibernate.IDetachedQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null;
            public NHibernate.IDetachedQuery SetDecimal(int position, decimal val) => throw null;
            public NHibernate.IDetachedQuery SetDecimal(string name, decimal val) => throw null;
            public NHibernate.IDetachedQuery SetDouble(int position, double val) => throw null;
            public NHibernate.IDetachedQuery SetDouble(string name, double val) => throw null;
            public NHibernate.IDetachedQuery SetEntity(int position, object val) => throw null;
            public NHibernate.IDetachedQuery SetEntity(string name, object val) => throw null;
            public NHibernate.IDetachedQuery SetEnum(int position, System.Enum val) => throw null;
            public NHibernate.IDetachedQuery SetEnum(string name, System.Enum val) => throw null;
            public virtual NHibernate.IDetachedQuery SetFetchSize(int fetchSize) => throw null;
            public NHibernate.IDetachedQuery SetFirstResult(int firstResult) => throw null;
            public virtual NHibernate.IDetachedQuery SetFlushMode(NHibernate.FlushMode flushMode) => throw null;
            public NHibernate.IDetachedQuery SetGuid(int position, System.Guid val) => throw null;
            public NHibernate.IDetachedQuery SetGuid(string name, System.Guid val) => throw null;
            public NHibernate.IDetachedQuery SetIgnoreUknownNamedParameters(bool ignoredUnknownNamedParameters) => throw null;
            public NHibernate.IDetachedQuery SetInt16(int position, short val) => throw null;
            public NHibernate.IDetachedQuery SetInt16(string name, short val) => throw null;
            public NHibernate.IDetachedQuery SetInt32(int position, int val) => throw null;
            public NHibernate.IDetachedQuery SetInt32(string name, int val) => throw null;
            public NHibernate.IDetachedQuery SetInt64(int position, long val) => throw null;
            public NHibernate.IDetachedQuery SetInt64(string name, long val) => throw null;
            public void SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null;
            public NHibernate.IDetachedQuery SetMaxResults(int maxResults) => throw null;
            public NHibernate.IDetachedQuery SetParameter(int position, object val, NHibernate.Type.IType type) => throw null;
            public NHibernate.IDetachedQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null;
            public NHibernate.IDetachedQuery SetParameter(int position, object val) => throw null;
            public NHibernate.IDetachedQuery SetParameter(string name, object val) => throw null;
            public NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type) => throw null;
            public NHibernate.IDetachedQuery SetParameterList(string name, System.Collections.IEnumerable vals) => throw null;
            public void SetParametersTo(NHibernate.IDetachedQuery destination) => throw null;
            public NHibernate.IDetachedQuery SetProperties(object obj) => throw null;
            protected void SetQueryProperties(NHibernate.IQuery q) => throw null;
            public virtual NHibernate.IDetachedQuery SetReadOnly(bool readOnly) => throw null;
            public NHibernate.IDetachedQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
            public NHibernate.IDetachedQuery SetSingle(int position, float val) => throw null;
            public NHibernate.IDetachedQuery SetSingle(string name, float val) => throw null;
            public NHibernate.IDetachedQuery SetString(int position, string val) => throw null;
            public NHibernate.IDetachedQuery SetString(string name, string val) => throw null;
            public NHibernate.IDetachedQuery SetTime(int position, System.DateTime val) => throw null;
            public NHibernate.IDetachedQuery SetTime(string name, System.DateTime val) => throw null;
            public virtual NHibernate.IDetachedQuery SetTimeout(int timeout) => throw null;
            public NHibernate.IDetachedQuery SetTimestamp(int position, System.DateTime val) => throw null;
            public NHibernate.IDetachedQuery SetTimestamp(string name, System.DateTime val) => throw null;
            protected bool shouldIgnoredUnknownNamedParameters;
        }
        public abstract class AbstractQueryImpl : NHibernate.IQuery
        {
            protected void After() => throw null;
            protected void Before() => throw null;
            public bool Cacheable { get => throw null; }
            public string CacheRegion { get => throw null; }
            protected AbstractQueryImpl(string queryString, NHibernate.FlushMode flushMode, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) => throw null;
            protected virtual NHibernate.Type.IType DetermineType(int paramPosition, object paramValue, NHibernate.Type.IType defaultType) => throw null;
            protected virtual NHibernate.Type.IType DetermineType(int paramPosition, object paramValue) => throw null;
            protected virtual NHibernate.Type.IType DetermineType(string paramName, object paramValue, NHibernate.Type.IType defaultType) => throw null;
            protected virtual NHibernate.Type.IType DetermineType(string paramName, object paramValue) => throw null;
            protected virtual NHibernate.Type.IType DetermineType(string paramName, System.Type clazz) => throw null;
            public abstract System.Collections.IEnumerable Enumerable();
            public abstract System.Collections.Generic.IEnumerable<T> Enumerable<T>();
            public abstract System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            public abstract System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            public abstract int ExecuteUpdate();
            public abstract System.Threading.Tasks.Task<int> ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            protected virtual string ExpandParameterLists(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParamsCopy) => throw null;
            public NHibernate.IFutureEnumerable<T> Future<T>() => throw null;
            public NHibernate.IFutureValue<T> FutureValue<T>() => throw null;
            public virtual NHibernate.Engine.QueryParameters GetQueryParameters() => throw null;
            public virtual NHibernate.Engine.QueryParameters GetQueryParameters(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParams) => throw null;
            protected abstract System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator> GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters);
            protected abstract System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator>> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            public bool HasNamedParameters { get => throw null; }
            public bool IsReadOnly { get => throw null; }
            public abstract System.Collections.IList List();
            public abstract void List(System.Collections.IList results);
            public abstract System.Collections.Generic.IList<T> List<T>();
            public abstract System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            public abstract System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            public abstract System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            protected abstract System.Collections.Generic.IDictionary<string, NHibernate.LockMode> LockModes { get; }
            protected readonly System.Collections.Generic.Dictionary<string, NHibernate.Engine.TypedValue> namedParameterLists;
            protected System.Collections.IDictionary NamedParameterLists { get => throw null; }
            public string[] NamedParameters { get => throw null; }
            protected System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> NamedParams { get => throw null; }
            protected NHibernate.Engine.Query.ParameterMetadata parameterMetadata;
            public string QueryString { get => throw null; }
            public virtual string[] ReturnAliases { get => throw null; }
            public virtual NHibernate.Type.IType[] ReturnTypes { get => throw null; }
            protected NHibernate.Engine.RowSelection RowSelection { get => throw null; }
            public NHibernate.Engine.RowSelection Selection { get => throw null; }
            protected readonly NHibernate.Engine.ISessionImplementor session;
            protected NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public NHibernate.IQuery SetAnsiString(int position, string val) => throw null;
            public NHibernate.IQuery SetAnsiString(string name, string val) => throw null;
            public NHibernate.IQuery SetBinary(int position, byte[] val) => throw null;
            public NHibernate.IQuery SetBinary(string name, byte[] val) => throw null;
            public NHibernate.IQuery SetBoolean(int position, bool val) => throw null;
            public NHibernate.IQuery SetBoolean(string name, bool val) => throw null;
            public NHibernate.IQuery SetByte(int position, byte val) => throw null;
            public NHibernate.IQuery SetByte(string name, byte val) => throw null;
            public NHibernate.IQuery SetCacheable(bool cacheable) => throw null;
            public NHibernate.IQuery SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
            public NHibernate.IQuery SetCacheRegion(string cacheRegion) => throw null;
            public NHibernate.IQuery SetCharacter(int position, char val) => throw null;
            public NHibernate.IQuery SetCharacter(string name, char val) => throw null;
            public NHibernate.IQuery SetCollectionKey(object collectionKey) => throw null;
            public NHibernate.IQuery SetComment(string comment) => throw null;
            public NHibernate.IQuery SetDateTime(int position, System.DateTime val) => throw null;
            public NHibernate.IQuery SetDateTime(string name, System.DateTime val) => throw null;
            public NHibernate.IQuery SetDateTime2(int position, System.DateTime val) => throw null;
            public NHibernate.IQuery SetDateTime2(string name, System.DateTime val) => throw null;
            public NHibernate.IQuery SetDateTimeNoMs(int position, System.DateTime val) => throw null;
            public NHibernate.IQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null;
            public NHibernate.IQuery SetDateTimeOffset(string name, System.DateTimeOffset val) => throw null;
            public NHibernate.IQuery SetDateTimeOffset(int position, System.DateTimeOffset val) => throw null;
            public NHibernate.IQuery SetDecimal(int position, decimal val) => throw null;
            public NHibernate.IQuery SetDecimal(string name, decimal val) => throw null;
            public NHibernate.IQuery SetDouble(int position, double val) => throw null;
            public NHibernate.IQuery SetDouble(string name, double val) => throw null;
            public NHibernate.IQuery SetEntity(int position, object val) => throw null;
            public NHibernate.IQuery SetEntity(string name, object val) => throw null;
            public NHibernate.IQuery SetEnum(int position, System.Enum val) => throw null;
            public NHibernate.IQuery SetEnum(string name, System.Enum val) => throw null;
            public NHibernate.IQuery SetFetchSize(int fetchSize) => throw null;
            public NHibernate.IQuery SetFirstResult(int firstResult) => throw null;
            public NHibernate.IQuery SetFlushMode(NHibernate.FlushMode flushMode) => throw null;
            public NHibernate.IQuery SetGuid(string name, System.Guid val) => throw null;
            public NHibernate.IQuery SetGuid(int position, System.Guid val) => throw null;
            public NHibernate.IQuery SetIgnoreUknownNamedParameters(bool ignoredUnknownNamedParameters) => throw null;
            public NHibernate.IQuery SetInt16(int position, short val) => throw null;
            public NHibernate.IQuery SetInt16(string name, short val) => throw null;
            public NHibernate.IQuery SetInt32(int position, int val) => throw null;
            public NHibernate.IQuery SetInt32(string name, int val) => throw null;
            public NHibernate.IQuery SetInt64(int position, long val) => throw null;
            public NHibernate.IQuery SetInt64(string name, long val) => throw null;
            public abstract NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode);
            public NHibernate.IQuery SetMaxResults(int maxResults) => throw null;
            public void SetOptionalEntityName(string optionalEntityName) => throw null;
            public void SetOptionalId(object optionalId) => throw null;
            public void SetOptionalObject(object optionalObject) => throw null;
            public NHibernate.IQuery SetParameter(int position, object val, NHibernate.Type.IType type) => throw null;
            public NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null;
            public NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type, bool preferMetadataType) => throw null;
            public NHibernate.IQuery SetParameter<T>(int position, T val) => throw null;
            public NHibernate.IQuery SetParameter<T>(string name, T val) => throw null;
            public NHibernate.IQuery SetParameter(string name, object val) => throw null;
            public NHibernate.IQuery SetParameter(int position, object val) => throw null;
            public NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type) => throw null;
            public NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals) => throw null;
            public NHibernate.IQuery SetProperties(System.Collections.IDictionary map) => throw null;
            public NHibernate.IQuery SetProperties(object bean) => throw null;
            public NHibernate.IQuery SetReadOnly(bool readOnly) => throw null;
            public NHibernate.IQuery SetResultTransformer(NHibernate.Transform.IResultTransformer transformer) => throw null;
            public NHibernate.IQuery SetSingle(int position, float val) => throw null;
            public NHibernate.IQuery SetSingle(string name, float val) => throw null;
            public NHibernate.IQuery SetString(int position, string val) => throw null;
            public NHibernate.IQuery SetString(string name, string val) => throw null;
            public NHibernate.IQuery SetTime(int position, System.DateTime val) => throw null;
            public NHibernate.IQuery SetTime(string name, System.DateTime val) => throw null;
            public NHibernate.IQuery SetTimeAsTimeSpan(int position, System.TimeSpan val) => throw null;
            public NHibernate.IQuery SetTimeAsTimeSpan(string name, System.TimeSpan val) => throw null;
            public NHibernate.IQuery SetTimeout(int timeout) => throw null;
            public NHibernate.IQuery SetTimeSpan(int position, System.TimeSpan val) => throw null;
            public NHibernate.IQuery SetTimeSpan(string name, System.TimeSpan val) => throw null;
            public NHibernate.IQuery SetTimestamp(int position, System.DateTime val) => throw null;
            public NHibernate.IQuery SetTimestamp(string name, System.DateTime val) => throw null;
            public override string ToString() => throw null;
            public virtual NHibernate.Type.IType[] TypeArray() => throw null;
            protected virtual System.Collections.Generic.IList<NHibernate.Type.IType> Types { get => throw null; }
            public T UniqueResult<T>() => throw null;
            public object UniqueResult() => throw null;
            public System.Threading.Tasks.Task<T> UniqueResultAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public virtual object[] ValueArray() => throw null;
            protected virtual System.Collections.IList Values { get => throw null; }
            protected virtual void VerifyParameters() => throw null;
            protected virtual void VerifyParameters(bool reserveFirstParameter) => throw null;
        }
        public abstract class AbstractQueryImpl2 : NHibernate.Impl.AbstractQueryImpl
        {
            protected AbstractQueryImpl2(string queryString, NHibernate.FlushMode flushMode, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null;
            public override System.Collections.IEnumerable Enumerable() => throw null;
            public override System.Collections.Generic.IEnumerable<T> Enumerable<T>() => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override int ExecuteUpdate() => throw null;
            public override System.Threading.Tasks.Task<int> ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            protected abstract NHibernate.IQueryExpression ExpandParameters(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParamsCopy);
            protected override System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator> GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator>> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Collections.IList List() => throw null;
            public override void List(System.Collections.IList results) => throw null;
            public override System.Collections.Generic.IList<T> List<T>() => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            protected override System.Collections.Generic.IDictionary<string, NHibernate.LockMode> LockModes { get => throw null; }
            public override NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null;
        }
        public abstract class AbstractSessionImpl : NHibernate.Engine.ISessionImplementor
        {
            protected void AfterOperation(bool success) => throw null;
            protected System.Threading.Tasks.Task AfterOperationAsync(bool success, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract void AfterTransactionBegin(NHibernate.ITransaction tx);
            public abstract void AfterTransactionCompletion(bool successful, NHibernate.ITransaction tx);
            public abstract System.Threading.Tasks.Task AfterTransactionCompletionAsync(bool successful, NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken);
            public virtual bool AutoFlushIfRequired(System.Collections.Generic.ISet<string> querySpaces) => throw null;
            public virtual System.Threading.Tasks.Task<bool> AutoFlushIfRequiredAsync(System.Collections.Generic.ISet<string> querySpaces, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual NHibernate.Engine.IBatcher Batcher { get => throw null; }
            public abstract void BeforeTransactionCompletion(NHibernate.ITransaction tx);
            public abstract System.Threading.Tasks.Task BeforeTransactionCompletionAsync(NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken);
            public System.IDisposable BeginContext() => throw null;
            public System.IDisposable BeginProcess() => throw null;
            public NHibernate.ITransaction BeginTransaction() => throw null;
            public NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel) => throw null;
            public abstract string BestGuessEntityName(object entity);
            public abstract NHibernate.CacheMode CacheMode { get; set; }
            protected virtual void CheckAndUpdateSessionStatus() => throw null;
            protected System.Data.Common.DbConnection CloseConnectionManager() => throw null;
            public abstract void CloseSessionFromSystemTransaction();
            public virtual System.Data.Common.DbConnection Connection { get => throw null; }
            public virtual NHibernate.AdoNet.ConnectionManager ConnectionManager { get => throw null; set { } }
            protected System.Exception Convert(System.Exception sqlException, string message) => throw null;
            public abstract NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression);
            public abstract System.Threading.Tasks.Task<NHibernate.IQuery> CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken);
            public virtual NHibernate.IQuery CreateQuery(NHibernate.IQueryExpression queryExpression) => throw null;
            public virtual NHibernate.IQuery CreateQuery(string queryString) => throw null;
            public virtual NHibernate.Multi.IQueryBatch CreateQueryBatch() => throw null;
            public virtual NHibernate.ISQLQuery CreateSQLQuery(string sql) => throw null;
            protected AbstractSessionImpl(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.ISessionCreationOptions options) => throw null;
            public abstract System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get; }
            protected void EnlistInAmbientTransactionIfNeeded() => throw null;
            public abstract System.Collections.IEnumerable Enumerable(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters);
            public abstract System.Collections.Generic.IEnumerable<T> Enumerable<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters);
            public abstract System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            public abstract System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            public abstract System.Collections.IEnumerable EnumerableFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            public abstract System.Collections.Generic.IEnumerable<T> EnumerableFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            public abstract System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            public abstract System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            protected virtual void ErrorIfClosed() => throw null;
            public abstract int ExecuteNativeUpdate(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.QueryParameters queryParameters);
            public abstract System.Threading.Tasks.Task<int> ExecuteNativeUpdateAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification specification, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            public abstract int ExecuteUpdate(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters);
            public abstract System.Threading.Tasks.Task<int> ExecuteUpdateAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; set { } }
            public abstract string FetchProfile { get; set; }
            public abstract void Flush();
            public abstract System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken);
            public abstract void FlushBeforeTransactionCompletion();
            public abstract System.Threading.Tasks.Task FlushBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken);
            public virtual NHibernate.FlushMode FlushMode { get => throw null; set { } }
            public virtual NHibernate.Multi.IQueryBatch FutureBatch { get => throw null; }
            public abstract NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get; set; }
            public abstract NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get; set; }
            public NHibernate.Cache.CacheKey GenerateCacheKey(object id, NHibernate.Type.IType type, string entityOrRoleName) => throw null;
            public NHibernate.Engine.EntityKey GenerateEntityKey(object id, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            public abstract object GetContextEntityIdentifier(object obj);
            public abstract NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName, object obj);
            public abstract object GetEntityUsingInterceptor(NHibernate.Engine.EntityKey key);
            public abstract System.Threading.Tasks.Task<object> GetEntityUsingInterceptorAsync(NHibernate.Engine.EntityKey key, System.Threading.CancellationToken cancellationToken);
            public abstract NHibernate.Type.IType GetFilterParameterType(string filterParameterName);
            public abstract object GetFilterParameterValue(string filterParameterName);
            protected virtual NHibernate.Engine.Query.IQueryExpressionPlan GetHQLQueryPlan(NHibernate.IQueryExpression queryExpression, bool shallow) => throw null;
            public virtual NHibernate.IQuery GetNamedQuery(string queryName) => throw null;
            public virtual NHibernate.IQuery GetNamedSQLQuery(string name) => throw null;
            protected virtual NHibernate.Engine.Query.NativeSQLQueryPlan GetNativeSQLQueryPlan(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec) => throw null;
            public abstract NHibernate.Hql.IQueryTranslator[] GetQueries(NHibernate.IQueryExpression query, bool scalar);
            public abstract System.Threading.Tasks.Task<NHibernate.Hql.IQueryTranslator[]> GetQueriesAsync(NHibernate.IQueryExpression query, bool scalar, System.Threading.CancellationToken cancellationToken);
            public abstract string GuessEntityName(object entity);
            public abstract object ImmediateLoad(string entityName, object id);
            public abstract System.Threading.Tasks.Task<object> ImmediateLoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken);
            public void Initialize() => throw null;
            public abstract void InitializeCollection(NHibernate.Collection.IPersistentCollection collection, bool writing);
            public abstract System.Threading.Tasks.Task InitializeCollectionAsync(NHibernate.Collection.IPersistentCollection collection, bool writing, System.Threading.CancellationToken cancellationToken);
            public abstract object Instantiate(string clazz, object id);
            public virtual object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null;
            public virtual NHibernate.IInterceptor Interceptor { get => throw null; set { } }
            public abstract object InternalLoad(string entityName, object id, bool eager, bool isNullable);
            public abstract System.Threading.Tasks.Task<object> InternalLoadAsync(string entityName, object id, bool eager, bool isNullable, System.Threading.CancellationToken cancellationToken);
            protected bool IsAlreadyDisposed { get => throw null; set { } }
            public bool IsClosed { get => throw null; }
            public virtual bool IsConnected { get => throw null; }
            public abstract bool IsEventSource { get; }
            public abstract bool IsOpen { get; }
            protected bool IsTransactionCoordinatorShared { get => throw null; }
            public void JoinTransaction() => throw null;
            public virtual System.Collections.IList List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters) => throw null;
            public abstract void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results);
            public virtual System.Collections.Generic.IList<T> List<T>(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters) => throw null;
            public virtual System.Collections.Generic.IList<T> List<T>(NHibernate.Impl.CriteriaImpl criteria) => throw null;
            public abstract void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results);
            public virtual System.Collections.IList List(NHibernate.Impl.CriteriaImpl criteria) => throw null;
            public virtual System.Collections.IList List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public virtual void List(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null;
            public virtual System.Collections.Generic.IList<T> List<T>(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public virtual System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            public virtual System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.IQueryExpression query, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            public virtual System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task ListAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification spec, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results);
            public virtual System.Collections.Generic.IList<T> ListCustomQuery<T>(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public abstract System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            public virtual System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListCustomQueryAsync<T>(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract NHibernate.Event.EventListeners Listeners { get; }
            public abstract System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            public System.Collections.IList ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters) => throw null;
            protected abstract void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results);
            public abstract System.Collections.Generic.IList<T> ListFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters);
            public abstract System.Threading.Tasks.Task<System.Collections.IList> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            public System.Threading.Tasks.Task<System.Collections.IList> ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null;
            protected abstract System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken);
            public abstract System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken);
            public abstract NHibernate.Engine.IPersistenceContext PersistenceContext { get; }
            public System.Linq.IQueryable<T> Query<T>() => throw null;
            public System.Linq.IQueryable<T> Query<T>(string entityName) => throw null;
            public System.Guid SessionId { get => throw null; }
            protected void SetClosed() => throw null;
            public NHibernate.MultiTenancy.TenantConfiguration TenantConfiguration { get => throw null; set { } }
            public string TenantIdentifier { get => throw null; }
            public virtual long Timestamp { get => throw null; set { } }
            public NHibernate.ITransaction Transaction { get => throw null; }
            public NHibernate.Transaction.ITransactionContext TransactionContext { get => throw null; set { } }
            public virtual bool TransactionInProgress { get => throw null; }
        }
        public class CollectionFilterImpl : NHibernate.Impl.QueryImpl
        {
            public CollectionFilterImpl(string queryString, object collection, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null;
            public override System.Collections.IEnumerable Enumerable() => throw null;
            public override System.Collections.Generic.IEnumerable<T> Enumerable<T>() => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            protected override System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator> GetTranslators(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator>> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Collections.IList List() => throw null;
            public override System.Collections.Generic.IList<T> List<T>() => throw null;
            public override void List(System.Collections.IList results) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override NHibernate.Type.IType[] TypeArray() => throw null;
            public override object[] ValueArray() => throw null;
        }
        public class CriteriaImpl : System.ICloneable, NHibernate.ICriteria, NHibernate.Impl.ISupportEntityJoinCriteria, NHibernate.ISupportSelectModeCriteria
        {
            public NHibernate.ICriteria Add(NHibernate.Criterion.ICriterion expression) => throw null;
            public NHibernate.ICriteria Add(NHibernate.ICriteria criteriaInst, NHibernate.Criterion.ICriterion expression) => throw null;
            public NHibernate.ICriteria AddOrder(NHibernate.Criterion.Order ordering) => throw null;
            protected void After() => throw null;
            public string Alias { get => throw null; }
            protected void Before() => throw null;
            public bool Cacheable { get => throw null; }
            public NHibernate.CacheMode? CacheMode { get => throw null; }
            public string CacheRegion { get => throw null; }
            public void ClearOrders() => throw null;
            public object Clone() => throw null;
            public string Comment { get => throw null; }
            public NHibernate.ICriteria CreateAlias(string associationPath, string alias) => throw null;
            public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.ICriteria CreateCriteria(string associationPath) => throw null;
            public NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.ICriteria CreateCriteria(string associationPath, string alias) => throw null;
            public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
            public NHibernate.ICriteria CreateEntityCriteria(string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName) => throw null;
            public sealed class CriterionEntry
            {
                public NHibernate.ICriteria Criteria { get => throw null; }
                public NHibernate.Criterion.ICriterion Criterion { get => throw null; }
                public override string ToString() => throw null;
            }
            public CriteriaImpl(System.Type persistentClass, NHibernate.Engine.ISessionImplementor session) => throw null;
            public CriteriaImpl(System.Type persistentClass, string alias, NHibernate.Engine.ISessionImplementor session) => throw null;
            public CriteriaImpl(string entityOrClassName, NHibernate.Engine.ISessionImplementor session) => throw null;
            public CriteriaImpl(string entityOrClassName, string alias, NHibernate.Engine.ISessionImplementor session) => throw null;
            public string EntityOrClassName { get => throw null; }
            public NHibernate.ICriteria Fetch(NHibernate.SelectMode selectMode, string associationPath, string alias) => throw null;
            public int FetchSize { get => throw null; }
            public int FirstResult { get => throw null; }
            public NHibernate.IFutureEnumerable<T> Future<T>() => throw null;
            public NHibernate.IFutureValue<T> FutureValue<T>() => throw null;
            public NHibernate.ICriteria GetCriteriaByAlias(string alias) => throw null;
            public NHibernate.ICriteria GetCriteriaByPath(string path) => throw null;
            public System.Collections.Generic.HashSet<string> GetEntityFetchLazyProperties(string path) => throw null;
            public NHibernate.FetchMode GetFetchMode(string path) => throw null;
            public System.Type GetRootEntityTypeIfAvailable() => throw null;
            public NHibernate.SelectMode GetSelectMode(string path) => throw null;
            public bool IsReadOnly { get => throw null; }
            public bool IsReadOnlyInitialized { get => throw null; }
            public System.Collections.Generic.IEnumerable<NHibernate.Impl.CriteriaImpl.CriterionEntry> IterateExpressionEntries() => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Impl.CriteriaImpl.OrderEntry> IterateOrderings() => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Impl.CriteriaImpl.Subcriteria> IterateSubcriteria() => throw null;
            public System.Collections.IList List() => throw null;
            public void List(System.Collections.IList results) => throw null;
            public System.Collections.Generic.IList<T> List<T>() => throw null;
            public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Collections.Generic.IDictionary<string, NHibernate.LockMode> LockModes { get => throw null; }
            public bool LookupByNaturalKey { get => throw null; }
            public int MaxResults { get => throw null; }
            public sealed class OrderEntry
            {
                public NHibernate.ICriteria Criteria { get => throw null; }
                public NHibernate.Criterion.Order Order { get => throw null; }
                public override string ToString() => throw null;
            }
            public NHibernate.Criterion.IProjection Projection { get => throw null; }
            public NHibernate.ICriteria ProjectionCriteria { get => throw null; }
            public NHibernate.Transform.IResultTransformer ResultTransformer { get => throw null; }
            public NHibernate.Engine.ISessionImplementor Session { get => throw null; set { } }
            public NHibernate.ICriteria SetCacheable(bool cacheable) => throw null;
            public NHibernate.ICriteria SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
            public NHibernate.ICriteria SetCacheRegion(string cacheRegion) => throw null;
            public NHibernate.ICriteria SetComment(string comment) => throw null;
            public NHibernate.ICriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode) => throw null;
            public NHibernate.ICriteria SetFetchSize(int fetchSize) => throw null;
            public NHibernate.ICriteria SetFirstResult(int firstResult) => throw null;
            public NHibernate.ICriteria SetFlushMode(NHibernate.FlushMode flushMode) => throw null;
            public NHibernate.ICriteria SetLockMode(NHibernate.LockMode lockMode) => throw null;
            public NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null;
            public NHibernate.ICriteria SetMaxResults(int maxResults) => throw null;
            public NHibernate.ICriteria SetProjection(params NHibernate.Criterion.IProjection[] projections) => throw null;
            public NHibernate.ICriteria SetReadOnly(bool readOnly) => throw null;
            public NHibernate.ICriteria SetResultTransformer(NHibernate.Transform.IResultTransformer tupleMapper) => throw null;
            public NHibernate.ICriteria SetTimeout(int timeout) => throw null;
            public sealed class Subcriteria : System.ICloneable, NHibernate.ICriteria, NHibernate.ISupportSelectModeCriteria
            {
                public NHibernate.ICriteria Add(NHibernate.Criterion.ICriterion expression) => throw null;
                public NHibernate.ICriteria AddOrder(NHibernate.Criterion.Order order) => throw null;
                public string Alias { get => throw null; set { } }
                public void ClearOrders() => throw null;
                public object Clone() => throw null;
                public NHibernate.ICriteria CreateAlias(string associationPath, string alias) => throw null;
                public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
                public NHibernate.ICriteria CreateAlias(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.ICriteria CreateCriteria(string associationPath) => throw null;
                public NHibernate.ICriteria CreateCriteria(string associationPath, NHibernate.SqlCommand.JoinType joinType) => throw null;
                public NHibernate.ICriteria CreateCriteria(string associationPath, string alias) => throw null;
                public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType) => throw null;
                public NHibernate.ICriteria CreateCriteria(string associationPath, string alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause) => throw null;
                public NHibernate.ICriteria Fetch(NHibernate.SelectMode selectMode, string associationPath, string alias) => throw null;
                public NHibernate.IFutureEnumerable<T> Future<T>() => throw null;
                public NHibernate.IFutureValue<T> FutureValue<T>() => throw null;
                public NHibernate.ICriteria GetCriteriaByAlias(string alias) => throw null;
                public NHibernate.ICriteria GetCriteriaByPath(string path) => throw null;
                public System.Type GetRootEntityTypeIfAvailable() => throw null;
                public bool HasRestrictions { get => throw null; }
                public bool IsEntityJoin { get => throw null; }
                public bool IsReadOnly { get => throw null; }
                public bool IsReadOnlyInitialized { get => throw null; }
                public string JoinEntityName { get => throw null; }
                public NHibernate.SqlCommand.JoinType JoinType { get => throw null; }
                public System.Collections.IList List() => throw null;
                public void List(System.Collections.IList results) => throw null;
                public System.Collections.Generic.IList<T> List<T>() => throw null;
                public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public NHibernate.LockMode LockMode { get => throw null; }
                public NHibernate.ICriteria Parent { get => throw null; }
                public string Path { get => throw null; }
                public NHibernate.ICriteria SetCacheable(bool cacheable) => throw null;
                public NHibernate.ICriteria SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
                public NHibernate.ICriteria SetCacheRegion(string cacheRegion) => throw null;
                public NHibernate.ICriteria SetComment(string comment) => throw null;
                public NHibernate.ICriteria SetFetchMode(string associationPath, NHibernate.FetchMode mode) => throw null;
                public NHibernate.ICriteria SetFetchSize(int fetchSize) => throw null;
                public NHibernate.ICriteria SetFirstResult(int firstResult) => throw null;
                public NHibernate.ICriteria SetFlushMode(NHibernate.FlushMode flushMode) => throw null;
                public NHibernate.ICriteria SetLockMode(NHibernate.LockMode lockMode) => throw null;
                public NHibernate.ICriteria SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null;
                public NHibernate.ICriteria SetMaxResults(int maxResults) => throw null;
                public NHibernate.ICriteria SetProjection(params NHibernate.Criterion.IProjection[] projections) => throw null;
                public NHibernate.ICriteria SetReadOnly(bool readOnly) => throw null;
                public NHibernate.ICriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultProcessor) => throw null;
                public NHibernate.ICriteria SetTimeout(int timeout) => throw null;
                public T UniqueResult<T>() => throw null;
                public object UniqueResult() => throw null;
                public System.Threading.Tasks.Task<T> UniqueResultAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task<object> UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public NHibernate.Criterion.ICriterion WithClause { get => throw null; }
            }
            public int Timeout { get => throw null; }
            public override string ToString() => throw null;
            public T UniqueResult<T>() => throw null;
            public object UniqueResult() => throw null;
            public System.Threading.Tasks.Task<T> UniqueResultAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        }
        public class DetachedNamedQuery : NHibernate.Impl.AbstractDetachedQuery
        {
            public NHibernate.Impl.DetachedNamedQuery Clone() => throw null;
            public DetachedNamedQuery(string queryName) => throw null;
            public override NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session) => throw null;
            public string QueryName { get => throw null; }
            public override NHibernate.IDetachedQuery SetCacheable(bool cacheable) => throw null;
            public override NHibernate.IDetachedQuery SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
            public override NHibernate.IDetachedQuery SetCacheRegion(string cacheRegion) => throw null;
            public override NHibernate.IDetachedQuery SetComment(string comment) => throw null;
            public override NHibernate.IDetachedQuery SetFetchSize(int fetchSize) => throw null;
            public override NHibernate.IDetachedQuery SetFlushMode(NHibernate.FlushMode flushMode) => throw null;
            public override NHibernate.IDetachedQuery SetReadOnly(bool readOnly) => throw null;
            public override NHibernate.IDetachedQuery SetTimeout(int timeout) => throw null;
        }
        public class DetachedQuery : NHibernate.Impl.AbstractDetachedQuery
        {
            public NHibernate.Impl.DetachedQuery Clone() => throw null;
            public DetachedQuery(string hql) => throw null;
            public override NHibernate.IQuery GetExecutableQuery(NHibernate.ISession session) => throw null;
            public string Hql { get => throw null; }
        }
        public class EnumerableImpl : System.IDisposable, System.Collections.IEnumerable, System.Collections.IEnumerator
        {
            public EnumerableImpl(System.Data.Common.DbDataReader reader, System.Data.Common.DbCommand cmd, NHibernate.Event.IEventSource session, bool readOnly, NHibernate.Type.IType[] types, string[][] columnNames, NHibernate.Engine.RowSelection selection, NHibernate.Hql.HolderInstantiator holderInstantiator) => throw null;
            public EnumerableImpl(System.Data.Common.DbDataReader reader, System.Data.Common.DbCommand cmd, NHibernate.Event.IEventSource session, bool readOnly, NHibernate.Type.IType[] types, string[][] columnNames, NHibernate.Engine.RowSelection selection, NHibernate.Transform.IResultTransformer resultTransformer, string[] returnAliases) => throw null;
            public object Current { get => throw null; }
            public void Dispose() => throw null;
            protected virtual void Dispose(bool isDisposing) => throw null;
            public System.Collections.IEnumerator GetEnumerator() => throw null;
            public bool MoveNext() => throw null;
            public void Reset() => throw null;
        }
        public static class ExpressionProcessor
        {
            public static NHibernate.Criterion.DetachedCriteria FindDetachedCriteria(System.Linq.Expressions.Expression expression) => throw null;
            public static string FindMemberExpression(System.Linq.Expressions.Expression expression) => throw null;
            public static NHibernate.Impl.ExpressionProcessor.ProjectionInfo FindMemberProjection(System.Linq.Expressions.Expression expression) => throw null;
            public static string FindPropertyExpression(System.Linq.Expressions.Expression expression) => throw null;
            public static object FindValue(System.Linq.Expressions.Expression expression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessExpression<T>(System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public static NHibernate.Criterion.ICriterion ProcessExpression(System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public static NHibernate.Criterion.Order ProcessOrder<T>(System.Linq.Expressions.Expression<System.Func<T, object>> expression, System.Func<string, NHibernate.Criterion.Order> orderDelegate) => throw null;
            public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.Expression<System.Func<object>> expression, System.Func<string, NHibernate.Criterion.Order> orderDelegate) => throw null;
            public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.LambdaExpression expression, System.Func<string, NHibernate.Criterion.Order> orderDelegate) => throw null;
            public static NHibernate.Criterion.Order ProcessOrder(System.Linq.Expressions.LambdaExpression expression, System.Func<string, NHibernate.Criterion.Order> orderStringDelegate, System.Func<NHibernate.Criterion.IProjection, NHibernate.Criterion.Order> orderProjectionDelegate) => throw null;
            public static NHibernate.Criterion.AbstractCriterion ProcessSubquery<T>(NHibernate.Impl.LambdaSubqueryType subqueryType, System.Linq.Expressions.Expression<System.Func<T, bool>> expression) => throw null;
            public static NHibernate.Criterion.AbstractCriterion ProcessSubquery(NHibernate.Impl.LambdaSubqueryType subqueryType, System.Linq.Expressions.Expression<System.Func<bool>> expression) => throw null;
            public class ProjectionInfo
            {
                public NHibernate.Criterion.IProjection AsProjection() => throw null;
                public string AsProperty() => throw null;
                public T Create<T>(System.Func<string, T> stringFunc, System.Func<NHibernate.Criterion.IProjection, T> projectionFunc) => throw null;
                public NHibernate.Criterion.ICriterion CreateCriterion(System.Func<string, NHibernate.Criterion.ICriterion> stringFunc, System.Func<NHibernate.Criterion.IProjection, NHibernate.Criterion.ICriterion> projectionFunc) => throw null;
                public NHibernate.Criterion.ICriterion CreateCriterion(System.Func<string, object, NHibernate.Criterion.ICriterion> stringFunc, System.Func<NHibernate.Criterion.IProjection, object, NHibernate.Criterion.ICriterion> projectionFunc, object value) => throw null;
                public NHibernate.Criterion.ICriterion CreateCriterion(NHibernate.Impl.ExpressionProcessor.ProjectionInfo rhs, System.Func<string, string, NHibernate.Criterion.ICriterion> ssFunc, System.Func<string, NHibernate.Criterion.IProjection, NHibernate.Criterion.ICriterion> spFunc, System.Func<NHibernate.Criterion.IProjection, string, NHibernate.Criterion.ICriterion> psFunc, System.Func<NHibernate.Criterion.IProjection, NHibernate.Criterion.IProjection, NHibernate.Criterion.ICriterion> ppFunc) => throw null;
                public NHibernate.Criterion.Order CreateOrder(System.Func<string, NHibernate.Criterion.Order> orderStringDelegate, System.Func<NHibernate.Criterion.IProjection, NHibernate.Criterion.Order> orderProjectionDelegate) => throw null;
                protected ProjectionInfo() => throw null;
                public static NHibernate.Impl.ExpressionProcessor.ProjectionInfo ForProjection(NHibernate.Criterion.IProjection projection) => throw null;
                public static NHibernate.Impl.ExpressionProcessor.ProjectionInfo ForProperty(string property) => throw null;
            }
            public static void RegisterCustomMethodCall(System.Linq.Expressions.Expression<System.Func<bool>> function, System.Func<System.Linq.Expressions.MethodCallExpression, NHibernate.Criterion.ICriterion> functionProcessor) => throw null;
            public static void RegisterCustomProjection<T>(System.Linq.Expressions.Expression<System.Func<T>> function, System.Func<System.Linq.Expressions.MethodCallExpression, NHibernate.Criterion.IProjection> functionProcessor) => throw null;
            public static void RegisterCustomProjection<T>(System.Linq.Expressions.Expression<System.Func<T>> function, System.Func<System.Linq.Expressions.MemberExpression, NHibernate.Criterion.IProjection> functionProcessor) => throw null;
            public static string Signature(System.Reflection.MethodInfo methodInfo) => throw null;
            public static string Signature(System.Reflection.MemberInfo memberInfo) => throw null;
        }
        public class FilterImpl : NHibernate.IFilter
        {
            public void AfterDeserialize(NHibernate.Engine.FilterDefinition factoryDefinition) => throw null;
            public FilterImpl(NHibernate.Engine.FilterDefinition configuration) => throw null;
            public NHibernate.Engine.FilterDefinition FilterDefinition { get => throw null; }
            public object GetParameter(string name) => throw null;
            public int? GetParameterSpan(string name) => throw null;
            public static readonly string MARKER;
            public string Name { get => throw null; }
            public System.Collections.Generic.IDictionary<string, object> Parameters { get => throw null; }
            public NHibernate.IFilter SetParameter(string name, object value) => throw null;
            public NHibernate.IFilter SetParameterList<T>(string name, System.Collections.Generic.ICollection<T> values) => throw null;
            public void Validate() => throw null;
        }
        public abstract class FutureBatch<TQueryApproach, TMultiApproach>
        {
            public void Add<TResult>(TQueryApproach query) => throw null;
            public void Add(TQueryApproach query) => throw null;
            protected virtual void AddResultTransformer(TMultiApproach multiApproach, NHibernate.Transform.IResultTransformer futureResulsTransformer) => throw null;
            protected abstract void AddTo(TMultiApproach multiApproach, TQueryApproach query, System.Type resultType);
            protected abstract string CacheRegion(TQueryApproach query);
            protected abstract void ClearCurrentFutureBatch();
            protected abstract TMultiApproach CreateMultiApproach(bool isCacheable, string cacheRegion);
            protected FutureBatch(NHibernate.Impl.SessionImpl session) => throw null;
            public NHibernate.IFutureEnumerable<TResult> GetEnumerator<TResult>() => throw null;
            public NHibernate.IFutureValue<TResult> GetFutureValue<TResult>() => throw null;
            protected abstract System.Collections.IList GetResultsFrom(TMultiApproach multiApproach);
            protected abstract System.Threading.Tasks.Task<System.Collections.IList> GetResultsFromAsync(TMultiApproach multiApproach, System.Threading.CancellationToken cancellationToken);
            protected abstract bool IsQueryCacheable(TQueryApproach query);
            protected virtual System.Collections.IList List(TQueryApproach query) => throw null;
            protected virtual System.Threading.Tasks.Task<System.Collections.IList> ListAsync(TQueryApproach query, System.Threading.CancellationToken cancellationToken) => throw null;
            protected readonly NHibernate.Impl.SessionImpl session;
        }
        public class FutureCriteriaBatch : NHibernate.Impl.FutureBatch<NHibernate.ICriteria, NHibernate.IMultiCriteria>
        {
            protected override void AddTo(NHibernate.IMultiCriteria multiApproach, NHibernate.ICriteria query, System.Type resultType) => throw null;
            protected override string CacheRegion(NHibernate.ICriteria query) => throw null;
            protected override void ClearCurrentFutureBatch() => throw null;
            protected override NHibernate.IMultiCriteria CreateMultiApproach(bool isCacheable, string cacheRegion) => throw null;
            public FutureCriteriaBatch(NHibernate.Impl.SessionImpl session) : base(default(NHibernate.Impl.SessionImpl)) => throw null;
            protected override System.Collections.IList GetResultsFrom(NHibernate.IMultiCriteria multiApproach) => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.IList> GetResultsFromAsync(NHibernate.IMultiCriteria multiApproach, System.Threading.CancellationToken cancellationToken) => throw null;
            protected override bool IsQueryCacheable(NHibernate.ICriteria query) => throw null;
            protected override System.Collections.IList List(NHibernate.ICriteria query) => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.ICriteria query, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class FutureQueryBatch : NHibernate.Impl.FutureBatch<NHibernate.IQuery, NHibernate.IMultiQuery>
        {
            protected override void AddResultTransformer(NHibernate.IMultiQuery multiApproach, NHibernate.Transform.IResultTransformer futureResulsTransformer) => throw null;
            protected override void AddTo(NHibernate.IMultiQuery multiApproach, NHibernate.IQuery query, System.Type resultType) => throw null;
            protected override string CacheRegion(NHibernate.IQuery query) => throw null;
            protected override void ClearCurrentFutureBatch() => throw null;
            protected override NHibernate.IMultiQuery CreateMultiApproach(bool isCacheable, string cacheRegion) => throw null;
            public FutureQueryBatch(NHibernate.Impl.SessionImpl session) : base(default(NHibernate.Impl.SessionImpl)) => throw null;
            protected override System.Collections.IList GetResultsFrom(NHibernate.IMultiQuery multiApproach) => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.IList> GetResultsFromAsync(NHibernate.IMultiQuery multiApproach, System.Threading.CancellationToken cancellationToken) => throw null;
            protected override bool IsQueryCacheable(NHibernate.IQuery query) => throw null;
            protected override System.Collections.IList List(NHibernate.IQuery query) => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.IQuery query, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public interface IDetachedQueryImplementor
        {
            void CopyTo(NHibernate.IDetachedQuery destination);
            void OverrideInfoFrom(NHibernate.Impl.IDetachedQueryImplementor origin);
            void OverrideParametersFrom(NHibernate.Impl.IDetachedQueryImplementor origin);
            void SetParametersTo(NHibernate.IDetachedQuery destination);
        }
        public interface ISessionCreationOptions
        {
            NHibernate.FlushMode InitialSessionFlushMode { get; }
            NHibernate.ConnectionReleaseMode SessionConnectionReleaseMode { get; }
            NHibernate.IInterceptor SessionInterceptor { get; }
            bool ShouldAutoClose { get; }
            bool ShouldAutoJoinTransaction { get; }
            System.Data.Common.DbConnection UserSuppliedConnection { get; }
        }
        public interface ISessionCreationOptionsWithMultiTenancy
        {
            NHibernate.MultiTenancy.TenantConfiguration TenantConfiguration { get; set; }
        }
        public interface ISharedSessionCreationOptions : NHibernate.Impl.ISessionCreationOptions
        {
            NHibernate.AdoNet.ConnectionManager ConnectionManager { get; }
            bool IsTransactionCoordinatorShared { get; }
        }
        public interface ISupportEntityJoinCriteria
        {
            NHibernate.ICriteria CreateEntityCriteria(string alias, NHibernate.Criterion.ICriterion withClause, NHibernate.SqlCommand.JoinType joinType, string entityName);
        }
        public interface ITranslator
        {
            NHibernate.Loader.Loader Loader { get; }
            System.Collections.Generic.ICollection<string> QuerySpaces { get; }
            string[] ReturnAliases { get; }
            NHibernate.Type.IType[] ReturnTypes { get; }
        }
        public interface ITranslatorWithCustomizableLoader : NHibernate.Impl.ITranslator
        {
            NHibernate.Loader.ILoader QueryLoader { get; }
        }
        public enum LambdaSubqueryType
        {
            Exact = 1,
            All = 2,
            Some = 3,
        }
        public static class MessageHelper
        {
            public static string InfoString(System.Type clazz, object id) => throw null;
            public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object id, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object id, NHibernate.Type.IType identifierType, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object[] ids, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null;
            public static string InfoString(NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            public static string InfoString(NHibernate.Persister.Collection.ICollectionPersister persister, object id) => throw null;
            public static string InfoString(string entityName, string propertyName, object key) => throw null;
            public static string InfoString(NHibernate.Persister.Collection.ICollectionPersister persister, object id, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public static string InfoString(string entityName, object id) => throw null;
        }
        public class MultiCriteriaImpl : NHibernate.IMultiCriteria
        {
            public NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.ICriteria criteria) => throw null;
            public NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria) => throw null;
            public NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria) => throw null;
            public NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null;
            public NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null;
            public NHibernate.IMultiCriteria Add<T>(NHibernate.ICriteria criteria) => throw null;
            public NHibernate.IMultiCriteria Add<T>(string key, NHibernate.ICriteria criteria) => throw null;
            public NHibernate.IMultiCriteria Add<T>(NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null;
            public NHibernate.IMultiCriteria Add<T>(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria) => throw null;
            public NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.IQueryOver queryOver) => throw null;
            public NHibernate.IMultiCriteria Add<T>(NHibernate.IQueryOver<T> queryOver) => throw null;
            public NHibernate.IMultiCriteria Add<U>(NHibernate.IQueryOver queryOver) => throw null;
            public NHibernate.IMultiCriteria Add<T>(string key, NHibernate.IQueryOver<T> queryOver) => throw null;
            public NHibernate.IMultiCriteria Add<U>(string key, NHibernate.IQueryOver queryOver) => throw null;
            public NHibernate.IMultiCriteria ForceCacheRefresh(bool forceRefresh) => throw null;
            public object GetResult(string key) => throw null;
            public System.Threading.Tasks.Task<object> GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            protected virtual System.Collections.IList GetResultList(System.Collections.IList results) => throw null;
            public System.Collections.IList List() => throw null;
            public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public NHibernate.IMultiCriteria SetCacheable(bool cachable) => throw null;
            public NHibernate.IMultiCriteria SetCacheRegion(string cacheRegion) => throw null;
            public NHibernate.IMultiCriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
            public NHibernate.IMultiCriteria SetTimeout(int timeout) => throw null;
            public NHibernate.SqlCommand.SqlString SqlString { get => throw null; }
        }
        public class MultiQueryImpl : NHibernate.IMultiQuery
        {
            public NHibernate.IMultiQuery Add(System.Type resultGenericListType, NHibernate.IQuery query) => throw null;
            public NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query) => throw null;
            public NHibernate.IMultiQuery Add(NHibernate.IQuery query) => throw null;
            public NHibernate.IMultiQuery Add(string key, string hql) => throw null;
            public NHibernate.IMultiQuery Add(string hql) => throw null;
            public NHibernate.IMultiQuery Add<T>(NHibernate.IQuery query) => throw null;
            public NHibernate.IMultiQuery Add<T>(string key, NHibernate.IQuery query) => throw null;
            public NHibernate.IMultiQuery Add<T>(string hql) => throw null;
            public NHibernate.IMultiQuery Add<T>(string key, string hql) => throw null;
            public NHibernate.IMultiQuery AddNamedQuery<T>(string key, string namedQuery) => throw null;
            public NHibernate.IMultiQuery AddNamedQuery(string queryName) => throw null;
            public NHibernate.IMultiQuery AddNamedQuery(string key, string namedQuery) => throw null;
            public NHibernate.IMultiQuery AddNamedQuery<T>(string queryName) => throw null;
            protected void After() => throw null;
            protected void Before() => throw null;
            public MultiQueryImpl(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected System.Collections.Generic.List<object> DoList() => throw null;
            protected System.Threading.Tasks.Task<System.Collections.Generic.List<object>> DoListAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public object GetResult(string key) => throw null;
            public System.Threading.Tasks.Task<object> GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            protected virtual System.Collections.IList GetResultList(System.Collections.IList results) => throw null;
            public System.Collections.IList List() => throw null;
            public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public NHibernate.IMultiQuery SetAnsiString(string name, string val) => throw null;
            public NHibernate.IMultiQuery SetBinary(string name, byte[] val) => throw null;
            public NHibernate.IMultiQuery SetBoolean(string name, bool val) => throw null;
            public NHibernate.IMultiQuery SetByte(string name, byte val) => throw null;
            public NHibernate.IMultiQuery SetCacheable(bool cacheable) => throw null;
            public NHibernate.IMultiQuery SetCacheRegion(string region) => throw null;
            public NHibernate.IMultiQuery SetCharacter(string name, char val) => throw null;
            public NHibernate.IMultiQuery SetDateTime(string name, System.DateTime val) => throw null;
            public NHibernate.IMultiQuery SetDateTime2(string name, System.DateTime val) => throw null;
            public NHibernate.IMultiQuery SetDateTimeNoMs(string name, System.DateTime val) => throw null;
            public NHibernate.IMultiQuery SetDateTimeOffset(string name, System.DateTimeOffset val) => throw null;
            public NHibernate.IMultiQuery SetDecimal(string name, decimal val) => throw null;
            public NHibernate.IMultiQuery SetDouble(string name, double val) => throw null;
            public NHibernate.IMultiQuery SetEntity(string name, object val) => throw null;
            public NHibernate.IMultiQuery SetEnum(string name, System.Enum val) => throw null;
            public NHibernate.IMultiQuery SetFlushMode(NHibernate.FlushMode mode) => throw null;
            public NHibernate.IMultiQuery SetForceCacheRefresh(bool cacheRefresh) => throw null;
            public NHibernate.IMultiQuery SetGuid(string name, System.Guid val) => throw null;
            public NHibernate.IMultiQuery SetInt16(string name, short val) => throw null;
            public NHibernate.IMultiQuery SetInt32(string name, int val) => throw null;
            public NHibernate.IMultiQuery SetInt64(string name, long val) => throw null;
            public NHibernate.IMultiQuery SetParameter(string name, object val, NHibernate.Type.IType type) => throw null;
            public NHibernate.IMultiQuery SetParameter(string name, object val) => throw null;
            public NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type) => throw null;
            public NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals) => throw null;
            public NHibernate.IMultiQuery SetResultTransformer(NHibernate.Transform.IResultTransformer transformer) => throw null;
            public NHibernate.IMultiQuery SetSingle(string name, float val) => throw null;
            public NHibernate.IMultiQuery SetString(string name, string val) => throw null;
            public NHibernate.IMultiQuery SetTime(string name, System.DateTime val) => throw null;
            public NHibernate.IMultiQuery SetTimeAsTimeSpan(string name, System.TimeSpan val) => throw null;
            public NHibernate.IMultiQuery SetTimeout(int timeout) => throw null;
            public NHibernate.IMultiQuery SetTimeSpan(string name, System.TimeSpan val) => throw null;
            public NHibernate.IMultiQuery SetTimestamp(string name, System.DateTime val) => throw null;
            protected NHibernate.SqlCommand.SqlString SqlString { get => throw null; }
            public override string ToString() => throw null;
        }
        public sealed class Printer
        {
            public Printer(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public string ToString(object entity) => throw null;
            public string ToString(NHibernate.Type.IType[] types, object[] values) => throw null;
            public string ToString(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedTypedValues) => throw null;
            public void ToString(object[] entities) => throw null;
        }
        public class QueryImpl : NHibernate.Impl.AbstractQueryImpl2
        {
            public QueryImpl(string queryString, NHibernate.FlushMode flushMode, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null;
            public QueryImpl(string queryString, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Query.ParameterMetadata parameterMetadata) : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) => throw null;
            protected override NHibernate.IQueryExpression ExpandParameters(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParams) => throw null;
        }
        public sealed class SessionFactoryImpl : System.IDisposable, NHibernate.Engine.IMapping, System.Runtime.Serialization.IObjectReference, NHibernate.ISessionFactory, NHibernate.Engine.ISessionFactoryImplementor
        {
            public void Close() => throw null;
            public System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public NHibernate.Connection.IConnectionProvider ConnectionProvider { get => throw null; }
            public SessionFactoryImpl(NHibernate.Cfg.Configuration cfg, NHibernate.Engine.IMapping mapping, NHibernate.Cfg.Settings settings, NHibernate.Event.EventListeners listeners) => throw null;
            public NHibernate.Context.ICurrentSessionContext CurrentSessionContext { get => throw null; }
            public System.Collections.Generic.ICollection<string> DefinedFilterNames { get => throw null; }
            public NHibernate.Dialect.Dialect Dialect { get => throw null; }
            public void Dispose() => throw null;
            public NHibernate.Proxy.IEntityNotFoundDelegate EntityNotFoundDelegate { get => throw null; }
            public NHibernate.Event.EventListeners EventListeners { get => throw null; }
            public void Evict(System.Type persistentClass, object id) => throw null;
            public void Evict(System.Type persistentClass) => throw null;
            public void Evict(System.Collections.Generic.IEnumerable<System.Type> persistentClasses) => throw null;
            public System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task EvictAsync(System.Collections.Generic.IEnumerable<System.Type> persistentClasses, System.Threading.CancellationToken cancellationToken) => throw null;
            public void EvictCollection(string roleName, object id) => throw null;
            public void EvictCollection(string roleName, object id, string tenantIdentifier) => throw null;
            public void EvictCollection(string roleName) => throw null;
            public void EvictCollection(System.Collections.Generic.IEnumerable<string> roleNames) => throw null;
            public System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task EvictCollectionAsync(string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task EvictCollectionAsync(System.Collections.Generic.IEnumerable<string> roleNames, System.Threading.CancellationToken cancellationToken) => throw null;
            public void EvictEntity(string entityName) => throw null;
            public void EvictEntity(System.Collections.Generic.IEnumerable<string> entityNames) => throw null;
            public void EvictEntity(string entityName, object id) => throw null;
            public void EvictEntity(string entityName, object id, string tenantIdentifier) => throw null;
            public System.Threading.Tasks.Task EvictEntityAsync(string entityName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task EvictEntityAsync(System.Collections.Generic.IEnumerable<string> entityNames, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken) => throw null;
            public void EvictQueries() => throw null;
            public void EvictQueries(string cacheRegion) => throw null;
            public System.Threading.Tasks.Task EvictQueriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task EvictQueriesAsync(string cacheRegion, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Collections.Generic.IDictionary<string, NHibernate.Metadata.IClassMetadata> GetAllClassMetadata() => throw null;
            public System.Collections.Generic.IDictionary<string, NHibernate.Metadata.ICollectionMetadata> GetAllCollectionMetadata() => throw null;
            public System.Collections.Generic.IDictionary<string, NHibernate.Cache.ICache> GetAllSecondLevelCacheRegions() => throw null;
            public NHibernate.Metadata.IClassMetadata GetClassMetadata(System.Type persistentClass) => throw null;
            public NHibernate.Metadata.IClassMetadata GetClassMetadata(string entityName) => throw null;
            public NHibernate.Metadata.ICollectionMetadata GetCollectionMetadata(string roleName) => throw null;
            public NHibernate.Persister.Collection.ICollectionPersister GetCollectionPersister(string role) => throw null;
            public System.Collections.Generic.ISet<NHibernate.Persister.Collection.ICollectionPersister> GetCollectionPersisters(System.Collections.Generic.ISet<string> spaces) => throw null;
            public System.Collections.Generic.ISet<string> GetCollectionRolesByEntityParticipant(string entityName) => throw null;
            public NHibernate.ISession GetCurrentSession() => throw null;
            public NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName) => throw null;
            public System.Collections.Generic.ISet<NHibernate.Persister.Entity.IEntityPersister> GetEntityPersisters(System.Collections.Generic.ISet<string> spaces) => throw null;
            public NHibernate.Engine.FilterDefinition GetFilterDefinition(string filterName) => throw null;
            public NHibernate.Id.IIdentifierGenerator GetIdentifierGenerator(string rootEntityName) => throw null;
            public string GetIdentifierPropertyName(string className) => throw null;
            public NHibernate.Type.IType GetIdentifierType(string className) => throw null;
            public string[] GetImplementors(string entityOrClassName) => throw null;
            public string GetImportedClassName(string className) => throw null;
            public NHibernate.Engine.NamedQueryDefinition GetNamedQuery(string queryName) => throw null;
            public NHibernate.Engine.NamedSQLQueryDefinition GetNamedSQLQuery(string queryName) => throw null;
            public NHibernate.Cache.IQueryCache GetQueryCache(string cacheRegion) => throw null;
            public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null;
            public NHibernate.Type.IType GetReferencedPropertyType(string className, string propertyName) => throw null;
            public NHibernate.Engine.ResultSetMappingDefinition GetResultSetMapping(string resultSetName) => throw null;
            public string[] GetReturnAliases(string queryString) => throw null;
            public NHibernate.Type.IType[] GetReturnTypes(string queryString) => throw null;
            public NHibernate.Cache.ICache GetSecondLevelCacheRegion(string regionName) => throw null;
            public bool HasNonIdentifierPropertyNamedId(string className) => throw null;
            public NHibernate.IInterceptor Interceptor { get => throw null; }
            public bool IsClosed { get => throw null; }
            public string Name { get => throw null; }
            public NHibernate.ISession OpenSession() => throw null;
            public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection) => throw null;
            public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, NHibernate.IInterceptor sessionLocalInterceptor) => throw null;
            public NHibernate.ISession OpenSession(NHibernate.IInterceptor sessionLocalInterceptor) => throw null;
            public NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection, bool flushBeforeCompletionEnabled, bool autoCloseSessionEnabled, NHibernate.ConnectionReleaseMode connectionReleaseMode) => throw null;
            public NHibernate.IStatelessSession OpenStatelessSession() => throw null;
            public NHibernate.IStatelessSession OpenStatelessSession(System.Data.Common.DbConnection connection) => throw null;
            public NHibernate.Cache.IQueryCache QueryCache { get => throw null; }
            public NHibernate.Engine.Query.QueryPlanCache QueryPlanCache { get => throw null; }
            public NHibernate.Cfg.Settings Settings { get => throw null; }
            public NHibernate.Exceptions.ISQLExceptionConverter SQLExceptionConverter { get => throw null; }
            public NHibernate.Dialect.Function.SQLFunctionRegistry SQLFunctionRegistry { get => throw null; }
            public NHibernate.Stat.IStatistics Statistics { get => throw null; }
            public NHibernate.Stat.IStatisticsImplementor StatisticsImplementor { get => throw null; }
            public NHibernate.Transaction.ITransactionFactory TransactionFactory { get => throw null; }
            public NHibernate.Persister.Entity.IEntityPersister TryGetEntityPersister(string entityName) => throw null;
            public string TryGetGuessEntityName(System.Type implementor) => throw null;
            public NHibernate.Cache.UpdateTimestampsCache UpdateTimestampsCache { get => throw null; }
            public string Uuid { get => throw null; }
            public NHibernate.ISessionBuilder WithOptions() => throw null;
            public NHibernate.IStatelessSessionBuilder WithStatelessOptions() => throw null;
        }
        public static class SessionFactoryObjectFactory
        {
            public static void AddInstance(string uid, string name, NHibernate.ISessionFactory instance, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public static NHibernate.ISessionFactory GetInstance(string uid) => throw null;
            public static NHibernate.ISessionFactory GetNamedInstance(string name) => throw null;
            public static void RemoveInstance(string uid, string name, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
        }
        public class SessionIdLoggingContext : System.IDisposable
        {
            public static System.IDisposable CreateOrNull(System.Guid id) => throw null;
            public SessionIdLoggingContext(System.Guid id) => throw null;
            public void Dispose() => throw null;
            public static System.Guid? SessionId { get => throw null; set { } }
        }
        public sealed class SessionImpl : NHibernate.Impl.AbstractSessionImpl, System.Runtime.Serialization.IDeserializationCallback, System.IDisposable, NHibernate.Event.IEventSource, System.Runtime.Serialization.ISerializable, NHibernate.ISession, NHibernate.Engine.ISessionImplementor
        {
            public NHibernate.Engine.ActionQueue ActionQueue { get => throw null; }
            public override void AfterTransactionBegin(NHibernate.ITransaction tx) => throw null;
            public override void AfterTransactionCompletion(bool success, NHibernate.ITransaction tx) => throw null;
            public override System.Threading.Tasks.Task AfterTransactionCompletionAsync(bool success, NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool AutoFlushIfRequired(System.Collections.Generic.ISet<string> querySpaces) => throw null;
            public override System.Threading.Tasks.Task<bool> AutoFlushIfRequiredAsync(System.Collections.Generic.ISet<string> querySpaces, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool AutoFlushSuspended { get => throw null; }
            public override void BeforeTransactionCompletion(NHibernate.ITransaction tx) => throw null;
            public override System.Threading.Tasks.Task BeforeTransactionCompletionAsync(NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string BestGuessEntityName(object entity) => throw null;
            public override NHibernate.CacheMode CacheMode { get => throw null; set { } }
            public void CancelQuery() => throw null;
            public void Clear() => throw null;
            public System.Data.Common.DbConnection Close() => throw null;
            public override void CloseSessionFromSystemTransaction() => throw null;
            public NHibernate.ConnectionReleaseMode ConnectionReleaseMode { get => throw null; }
            public bool Contains(object obj) => throw null;
            public NHibernate.ICriteria CreateCriteria<T>() where T : class => throw null;
            public NHibernate.ICriteria CreateCriteria(System.Type persistentClass) => throw null;
            public NHibernate.ICriteria CreateCriteria<T>(string alias) where T : class => throw null;
            public NHibernate.ICriteria CreateCriteria(System.Type persistentClass, string alias) => throw null;
            public NHibernate.ICriteria CreateCriteria(string entityName, string alias) => throw null;
            public NHibernate.ICriteria CreateCriteria(string entityName) => throw null;
            public NHibernate.IQuery CreateFilter(object collection, string queryString) => throw null;
            public override NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression) => throw null;
            public System.Threading.Tasks.Task<NHibernate.IQuery> CreateFilterAsync(object collection, string queryString, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task<NHibernate.IQuery> CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.IMultiCriteria CreateMultiCriteria() => throw null;
            public NHibernate.IMultiQuery CreateMultiQuery() => throw null;
            public bool DefaultReadOnly { get => throw null; set { } }
            public void Delete(object obj) => throw null;
            public void Delete(string entityName, object obj) => throw null;
            public int Delete(string query) => throw null;
            public int Delete(string query, object value, NHibernate.Type.IType type) => throw null;
            public int Delete(string query, object[] values, NHibernate.Type.IType[] types) => throw null;
            public void Delete(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet<object> transientEntities) => throw null;
            public System.Threading.Tasks.Task DeleteAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task DeleteAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<int> DeleteAsync(string query, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<int> DeleteAsync(string query, object value, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<int> DeleteAsync(string query, object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task DeleteAsync(string entityName, object child, bool isCascadeDeleteEnabled, System.Collections.Generic.ISet<object> transientEntities, System.Threading.CancellationToken cancellationToken) => throw null;
            public void DisableFilter(string filterName) => throw null;
            public System.Data.Common.DbConnection Disconnect() => throw null;
            public void Dispose() => throw null;
            public override System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get => throw null; }
            public NHibernate.IFilter EnableFilter(string filterName) => throw null;
            public override System.Collections.Generic.IEnumerable<T> Enumerable<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Collections.IEnumerable Enumerable(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Collections.IEnumerable EnumerableFilter(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Collections.Generic.IEnumerable<T> EnumerableFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public void Evict(object obj) => throw null;
            public System.Threading.Tasks.Task EvictAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override int ExecuteNativeUpdate(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification nativeQuerySpecification, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Threading.Tasks.Task<int> ExecuteNativeUpdateAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification nativeQuerySpecification, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int ExecuteUpdate(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Threading.Tasks.Task<int> ExecuteUpdateAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string FetchProfile { get => throw null; set { } }
            public override void Flush() => throw null;
            public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public bool FlushBeforeCompletionEnabled { get => throw null; }
            public override void FlushBeforeTransactionCompletion() => throw null;
            public override System.Threading.Tasks.Task FlushBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public void ForceFlush(NHibernate.Engine.EntityEntry entityEntry) => throw null;
            public System.Threading.Tasks.Task ForceFlushAsync(NHibernate.Engine.EntityEntry entityEntry, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get => throw null; set { } }
            public override NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get => throw null; set { } }
            public T Get<T>(object id) => throw null;
            public T Get<T>(object id, NHibernate.LockMode lockMode) => throw null;
            public object Get(System.Type entityClass, object id) => throw null;
            public object Get(System.Type clazz, object id, NHibernate.LockMode lockMode) => throw null;
            public object Get(string entityName, object id, NHibernate.LockMode lockMode) => throw null;
            public object Get(string entityName, object id) => throw null;
            public System.Threading.Tasks.Task<T> GetAsync<T>(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<T> GetAsync<T>(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(System.Type entityClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(System.Type clazz, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override object GetContextEntityIdentifier(object obj) => throw null;
            public NHibernate.LockMode GetCurrentLockMode(object obj) => throw null;
            public NHibernate.IFilter GetEnabledFilter(string filterName) => throw null;
            public string GetEntityName(object obj) => throw null;
            public System.Threading.Tasks.Task<string> GetEntityNameAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName, object obj) => throw null;
            public override object GetEntityUsingInterceptor(NHibernate.Engine.EntityKey key) => throw null;
            public override System.Threading.Tasks.Task<object> GetEntityUsingInterceptorAsync(NHibernate.Engine.EntityKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Type.IType GetFilterParameterType(string filterParameterName) => throw null;
            public override object GetFilterParameterValue(string filterParameterName) => throw null;
            public object GetIdentifier(object obj) => throw null;
            void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public override NHibernate.Hql.IQueryTranslator[] GetQueries(NHibernate.IQueryExpression query, bool scalar) => throw null;
            public override System.Threading.Tasks.Task<NHibernate.Hql.IQueryTranslator[]> GetQueriesAsync(NHibernate.IQueryExpression query, bool scalar, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.ISession GetSession(NHibernate.EntityMode entityMode) => throw null;
            public NHibernate.Engine.ISessionImplementor GetSessionImplementation() => throw null;
            public override string GuessEntityName(object entity) => throw null;
            public override object ImmediateLoad(string entityName, object id) => throw null;
            public override System.Threading.Tasks.Task<object> ImmediateLoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void InitializeCollection(NHibernate.Collection.IPersistentCollection collection, bool writing) => throw null;
            public override System.Threading.Tasks.Task InitializeCollectionAsync(NHibernate.Collection.IPersistentCollection collection, bool writing, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Instantiate(string clazz, object id) => throw null;
            public override object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null;
            public override object InternalLoad(string entityName, object id, bool eager, bool isNullable) => throw null;
            public override System.Threading.Tasks.Task<object> InternalLoadAsync(string entityName, object id, bool eager, bool isNullable, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool IsAutoCloseSessionEnabled { get => throw null; }
            public bool IsDirty() => throw null;
            public System.Threading.Tasks.Task<bool> IsDirtyAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override bool IsEventSource { get => throw null; }
            public override bool IsOpen { get => throw null; }
            public bool IsReadOnly(object entityOrProxy) => throw null;
            public override void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null;
            public override System.Collections.Generic.IList<T> List<T>(NHibernate.Impl.CriteriaImpl criteria) => throw null;
            public override void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results) => throw null;
            public override System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null;
            public override System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Event.EventListeners Listeners { get => throw null; }
            protected override void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null;
            public override System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Collections.Generic.IList<T> ListFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected override System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IList> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public void Load(object obj, object id) => throw null;
            public T Load<T>(object id) => throw null;
            public T Load<T>(object id, NHibernate.LockMode lockMode) => throw null;
            public object Load(System.Type entityClass, object id, NHibernate.LockMode lockMode) => throw null;
            public object Load(string entityName, object id) => throw null;
            public object Load(string entityName, object id, NHibernate.LockMode lockMode) => throw null;
            public object Load(System.Type entityClass, object id) => throw null;
            public System.Threading.Tasks.Task LoadAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<T> LoadAsync<T>(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<T> LoadAsync<T>(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> LoadAsync(System.Type entityClass, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> LoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> LoadAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> LoadAsync(System.Type entityClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public void Lock(object obj, NHibernate.LockMode lockMode) => throw null;
            public void Lock(string entityName, object obj, NHibernate.LockMode lockMode) => throw null;
            public System.Threading.Tasks.Task LockAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task LockAsync(string entityName, object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public void Merge(string entityName, object obj, System.Collections.IDictionary copiedAlready) => throw null;
            public object Merge(string entityName, object obj) => throw null;
            public T Merge<T>(T entity) where T : class => throw null;
            public T Merge<T>(string entityName, T entity) where T : class => throw null;
            public object Merge(object obj) => throw null;
            public System.Threading.Tasks.Task MergeAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task<object> MergeAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<T> MergeAsync<T>(T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null;
            public System.Threading.Tasks.Task<T> MergeAsync<T>(string entityName, T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class => throw null;
            public System.Threading.Tasks.Task<object> MergeAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            public void Persist(string entityName, object obj, System.Collections.IDictionary createdAlready) => throw null;
            public void Persist(string entityName, object obj) => throw null;
            public void Persist(object obj) => throw null;
            public System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Collections.IDictionary createdAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task PersistAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; }
            public void PersistOnFlush(string entityName, object obj, System.Collections.IDictionary copiedAlready) => throw null;
            public void PersistOnFlush(string entityName, object obj) => throw null;
            public void PersistOnFlush(object obj) => throw null;
            public System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task PersistOnFlushAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task PersistOnFlushAsync(object obj, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.IQueryOver<T, T> QueryOver<T>() where T : class => throw null;
            public NHibernate.IQueryOver<T, T> QueryOver<T>(System.Linq.Expressions.Expression<System.Func<T>> alias) where T : class => throw null;
            public NHibernate.IQueryOver<T, T> QueryOver<T>(string entityName) where T : class => throw null;
            public NHibernate.IQueryOver<T, T> QueryOver<T>(string entityName, System.Linq.Expressions.Expression<System.Func<T>> alias) where T : class => throw null;
            public void Reconnect() => throw null;
            public void Reconnect(System.Data.Common.DbConnection conn) => throw null;
            public void Refresh(object obj, System.Collections.IDictionary refreshedAlready) => throw null;
            public void Refresh(object obj) => throw null;
            public void Refresh(object obj, NHibernate.LockMode lockMode) => throw null;
            public System.Threading.Tasks.Task RefreshAsync(object obj, System.Collections.IDictionary refreshedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task RefreshAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task RefreshAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public void Replicate(object obj, NHibernate.ReplicationMode replicationMode) => throw null;
            public void Replicate(string entityName, object obj, NHibernate.ReplicationMode replicationMode) => throw null;
            public System.Threading.Tasks.Task ReplicateAsync(object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task ReplicateAsync(string entityName, object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public object Save(object obj) => throw null;
            public object Save(string entityName, object obj) => throw null;
            public void Save(string entityName, object obj, object id) => throw null;
            public void Save(object obj, object id) => throw null;
            public System.Threading.Tasks.Task<object> SaveAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> SaveAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task SaveAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task SaveAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public void SaveOrUpdate(object obj) => throw null;
            public void SaveOrUpdate(string entityName, object obj) => throw null;
            public void SaveOrUpdate(string entityName, object obj, object id) => throw null;
            public System.Threading.Tasks.Task SaveOrUpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public NHibernate.ISessionFactory SessionFactory { get => throw null; }
            public NHibernate.ISharedSessionBuilder SessionWithOptions() => throw null;
            public NHibernate.ISession SetBatchSize(int batchSize) => throw null;
            public void SetReadOnly(object entityOrProxy, bool readOnly) => throw null;
            public bool ShouldAutoClose { get => throw null; }
            public NHibernate.ISharedStatelessSessionBuilder StatelessSessionWithOptions() => throw null;
            public NHibernate.Stat.ISessionStatistics Statistics { get => throw null; }
            public System.IDisposable SuspendAutoFlush() => throw null;
            public void Update(object obj) => throw null;
            public void Update(string entityName, object obj) => throw null;
            public void Update(string entityName, object obj, object id) => throw null;
            public void Update(object obj, object id) => throw null;
            public System.Threading.Tasks.Task UpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task UpdateAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            internal SessionImpl() : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(NHibernate.Impl.ISessionCreationOptions)) { }
        }
        public class SqlQueryImpl : NHibernate.Impl.AbstractQueryImpl, NHibernate.IQuery, NHibernate.ISQLQuery, NHibernate.ISynchronizableQuery<NHibernate.ISynchronizableSQLQuery>, NHibernate.ISynchronizableSQLQuery
        {
            public NHibernate.ISQLQuery AddEntity(System.Type entityClass) => throw null;
            public NHibernate.ISQLQuery AddEntity(string entityName) => throw null;
            public NHibernate.ISQLQuery AddEntity(string alias, string entityName) => throw null;
            public NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass) => throw null;
            public NHibernate.ISQLQuery AddEntity(string alias, string entityName, NHibernate.LockMode lockMode) => throw null;
            public NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass, NHibernate.LockMode lockMode) => throw null;
            public NHibernate.ISQLQuery AddJoin(string alias, string path) => throw null;
            public NHibernate.ISQLQuery AddJoin(string alias, string path, NHibernate.LockMode lockMode) => throw null;
            public NHibernate.ISQLQuery AddScalar(string columnAlias, NHibernate.Type.IType type) => throw null;
            public NHibernate.ISynchronizableSQLQuery AddSynchronizedEntityClass(System.Type entityType) => throw null;
            public NHibernate.ISynchronizableSQLQuery AddSynchronizedEntityName(string entityName) => throw null;
            public NHibernate.ISynchronizableSQLQuery AddSynchronizedQuerySpace(string querySpace) => throw null;
            public override System.Collections.IEnumerable Enumerable() => throw null;
            public override System.Collections.Generic.IEnumerable<T> Enumerable<T>() => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override int ExecuteUpdate() => throw null;
            public override System.Threading.Tasks.Task<int> ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification GenerateQuerySpecification(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> parameters) => throw null;
            public override NHibernate.Engine.QueryParameters GetQueryParameters(System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParams) => throw null;
            public System.Collections.Generic.IReadOnlyCollection<string> GetSynchronizedQuerySpaces() => throw null;
            protected override System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator> GetTranslators(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<NHibernate.Impl.ITranslator>> GetTranslatorsAsync(NHibernate.Engine.ISessionImplementor sessionImplementor, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Collections.IList List() => throw null;
            public override void List(System.Collections.IList results) => throw null;
            public override System.Collections.Generic.IList<T> List<T>() => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            protected override System.Collections.Generic.IDictionary<string, NHibernate.LockMode> LockModes { get => throw null; }
            public override string[] ReturnAliases { get => throw null; }
            public override NHibernate.Type.IType[] ReturnTypes { get => throw null; }
            public override NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode) => throw null;
            public NHibernate.ISQLQuery SetResultSetMapping(string name) => throw null;
            public override NHibernate.Type.IType[] TypeArray() => throw null;
            protected override System.Collections.Generic.IList<NHibernate.Type.IType> Types { get => throw null; }
            public override object[] ValueArray() => throw null;
            protected override System.Collections.IList Values { get => throw null; }
            protected override void VerifyParameters() => throw null;
            protected override void VerifyParameters(bool reserveFirstParameter) => throw null;
            internal SqlQueryImpl() : base(default(string), default(NHibernate.FlushMode), default(NHibernate.Engine.ISessionImplementor), default(NHibernate.Engine.Query.ParameterMetadata)) { }
        }
        public class StatelessSessionImpl : NHibernate.Impl.AbstractSessionImpl, System.IDisposable, NHibernate.IStatelessSession
        {
            public override void AfterTransactionBegin(NHibernate.ITransaction tx) => throw null;
            public override void AfterTransactionCompletion(bool successful, NHibernate.ITransaction tx) => throw null;
            public override System.Threading.Tasks.Task AfterTransactionCompletionAsync(bool successful, NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void BeforeTransactionCompletion(NHibernate.ITransaction tx) => throw null;
            public override System.Threading.Tasks.Task BeforeTransactionCompletionAsync(NHibernate.ITransaction tx, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string BestGuessEntityName(object entity) => throw null;
            public override NHibernate.CacheMode CacheMode { get => throw null; set { } }
            public void Close() => throw null;
            public override void CloseSessionFromSystemTransaction() => throw null;
            public NHibernate.ICriteria CreateCriteria<T>() where T : class => throw null;
            public NHibernate.ICriteria CreateCriteria<T>(string alias) where T : class => throw null;
            public NHibernate.ICriteria CreateCriteria(System.Type entityType) => throw null;
            public NHibernate.ICriteria CreateCriteria(System.Type entityType, string alias) => throw null;
            public NHibernate.ICriteria CreateCriteria(string entityName) => throw null;
            public NHibernate.ICriteria CreateCriteria(string entityName, string alias) => throw null;
            public override NHibernate.IQuery CreateFilter(object collection, NHibernate.IQueryExpression queryExpression) => throw null;
            public override System.Threading.Tasks.Task<NHibernate.IQuery> CreateFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, System.Threading.CancellationToken cancellationToken) => throw null;
            public void Delete(object entity) => throw null;
            public void Delete(string entityName, object entity) => throw null;
            public System.Threading.Tasks.Task DeleteAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task DeleteAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public void Dispose() => throw null;
            protected void Dispose(bool isDisposing) => throw null;
            public override System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get => throw null; }
            public override System.Collections.IEnumerable Enumerable(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Collections.Generic.IEnumerable<T> Enumerable<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Collections.IEnumerable EnumerableFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null;
            public override System.Collections.Generic.IEnumerable<T> EnumerableFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int ExecuteNativeUpdate(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification nativeSQLQuerySpecification, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Threading.Tasks.Task<int> ExecuteNativeUpdateAsync(NHibernate.Engine.Query.Sql.NativeSQLQuerySpecification nativeSQLQuerySpecification, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int ExecuteUpdate(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public override System.Threading.Tasks.Task<int> ExecuteUpdateAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string FetchProfile { get => throw null; set { } }
            public override void Flush() => throw null;
            public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override void FlushBeforeTransactionCompletion() => throw null;
            public override System.Threading.Tasks.Task FlushBeforeTransactionCompletionAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.FlushMode FlushMode { get => throw null; set { } }
            public override NHibernate.Impl.FutureCriteriaBatch FutureCriteriaBatch { get => throw null; set { } }
            public override NHibernate.Impl.FutureQueryBatch FutureQueryBatch { get => throw null; set { } }
            public object Get(string entityName, object id) => throw null;
            public T Get<T>(object id) => throw null;
            public object Get(string entityName, object id, NHibernate.LockMode lockMode) => throw null;
            public T Get<T>(object id, NHibernate.LockMode lockMode) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<T> GetAsync<T>(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<T> GetAsync<T>(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override object GetContextEntityIdentifier(object obj) => throw null;
            public override NHibernate.Persister.Entity.IEntityPersister GetEntityPersister(string entityName, object obj) => throw null;
            public override object GetEntityUsingInterceptor(NHibernate.Engine.EntityKey key) => throw null;
            public override System.Threading.Tasks.Task<object> GetEntityUsingInterceptorAsync(NHibernate.Engine.EntityKey key, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Type.IType GetFilterParameterType(string filterParameterName) => throw null;
            public override object GetFilterParameterValue(string filterParameterName) => throw null;
            public override NHibernate.Hql.IQueryTranslator[] GetQueries(NHibernate.IQueryExpression query, bool scalar) => throw null;
            public override System.Threading.Tasks.Task<NHibernate.Hql.IQueryTranslator[]> GetQueriesAsync(NHibernate.IQueryExpression query, bool scalar, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Engine.ISessionImplementor GetSessionImplementation() => throw null;
            public override string GuessEntityName(object entity) => throw null;
            public override object ImmediateLoad(string entityName, object id) => throw null;
            public override System.Threading.Tasks.Task<object> ImmediateLoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void InitializeCollection(NHibernate.Collection.IPersistentCollection collection, bool writing) => throw null;
            public override System.Threading.Tasks.Task InitializeCollectionAsync(NHibernate.Collection.IPersistentCollection collection, bool writing, System.Threading.CancellationToken cancellationToken) => throw null;
            public object Insert(object entity) => throw null;
            public object Insert(string entityName, object entity) => throw null;
            public System.Threading.Tasks.Task<object> InsertAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<object> InsertAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public override object Instantiate(string clazz, object id) => throw null;
            public override object Instantiate(NHibernate.Persister.Entity.IEntityPersister persister, object id) => throw null;
            public override NHibernate.IInterceptor Interceptor { get => throw null; }
            public override object InternalLoad(string entityName, object id, bool eager, bool isNullable) => throw null;
            public override System.Threading.Tasks.Task<object> InternalLoadAsync(string entityName, object id, bool eager, bool isNullable, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsEventSource { get => throw null; }
            public override bool IsOpen { get => throw null; }
            public override void List(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null;
            public override System.Collections.Generic.IList<T> List<T>(NHibernate.Impl.CriteriaImpl criteria) => throw null;
            public override void List(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results) => throw null;
            public override System.Threading.Tasks.Task ListAsync(NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(NHibernate.Impl.CriteriaImpl criteria, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task ListAsync(NHibernate.Impl.CriteriaImpl criteria, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void ListCustomQuery(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results) => throw null;
            public override System.Threading.Tasks.Task ListCustomQueryAsync(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.QueryParameters queryParameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Event.EventListeners Listeners { get => throw null; }
            public override System.Collections.IList ListFilter(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null;
            protected override void ListFilter(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results) => throw null;
            public override System.Collections.Generic.IList<T> ListFilter<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.IList> ListFilterAsync(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null;
            protected override System.Threading.Tasks.Task ListFilterAsync(object collection, NHibernate.IQueryExpression queryExpression, NHibernate.Engine.QueryParameters parameters, System.Collections.IList results, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListFilterAsync<T>(object collection, string filter, NHibernate.Engine.QueryParameters parameters, System.Threading.CancellationToken cancellationToken) => throw null;
            public void ManagedClose() => throw null;
            public System.Threading.Tasks.Task ManagedCloseAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public void ManagedFlush() => throw null;
            public System.Threading.Tasks.Task ManagedFlushAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Engine.IPersistenceContext PersistenceContext { get => throw null; }
            public NHibernate.IQueryOver<T, T> QueryOver<T>() where T : class => throw null;
            public NHibernate.IQueryOver<T, T> QueryOver<T>(System.Linq.Expressions.Expression<System.Func<T>> alias) where T : class => throw null;
            public void Refresh(object entity) => throw null;
            public void Refresh(string entityName, object entity) => throw null;
            public void Refresh(object entity, NHibernate.LockMode lockMode) => throw null;
            public void Refresh(string entityName, object entity, NHibernate.LockMode lockMode) => throw null;
            public System.Threading.Tasks.Task RefreshAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task RefreshAsync(object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public NHibernate.IStatelessSession SetBatchSize(int batchSize) => throw null;
            public override long Timestamp { get => throw null; }
            public void Update(object entity) => throw null;
            public void Update(string entityName, object entity) => throw null;
            public System.Threading.Tasks.Task UpdateAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task UpdateAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            internal StatelessSessionImpl() : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(NHibernate.Impl.ISessionCreationOptions)) { }
        }
        public static partial class TranslatorExtensions
        {
            public static NHibernate.Loader.ILoader GetQueryLoader(this NHibernate.Impl.ITranslator translator) => throw null;
        }
    }
    public interface IMultiCriteria
    {
        NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.ICriteria criteria);
        NHibernate.IMultiCriteria Add<T>(NHibernate.ICriteria criteria);
        NHibernate.IMultiCriteria Add<T>(string key, NHibernate.ICriteria criteria);
        NHibernate.IMultiCriteria Add<T>(NHibernate.Criterion.DetachedCriteria detachedCriteria);
        NHibernate.IMultiCriteria Add<T>(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria);
        NHibernate.IMultiCriteria Add(NHibernate.ICriteria criteria);
        NHibernate.IMultiCriteria Add(string key, NHibernate.ICriteria criteria);
        NHibernate.IMultiCriteria Add(NHibernate.Criterion.DetachedCriteria detachedCriteria);
        NHibernate.IMultiCriteria Add(string key, NHibernate.Criterion.DetachedCriteria detachedCriteria);
        NHibernate.IMultiCriteria Add(System.Type resultGenericListType, NHibernate.IQueryOver queryOver);
        NHibernate.IMultiCriteria Add<T>(NHibernate.IQueryOver<T> queryOver);
        NHibernate.IMultiCriteria Add<U>(NHibernate.IQueryOver queryOver);
        NHibernate.IMultiCriteria Add<T>(string key, NHibernate.IQueryOver<T> queryOver);
        NHibernate.IMultiCriteria Add<U>(string key, NHibernate.IQueryOver queryOver);
        NHibernate.IMultiCriteria ForceCacheRefresh(bool forceRefresh);
        object GetResult(string key);
        System.Threading.Tasks.Task<object> GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Collections.IList List();
        System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IMultiCriteria SetCacheable(bool cachable);
        NHibernate.IMultiCriteria SetCacheRegion(string region);
        NHibernate.IMultiCriteria SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer);
    }
    public interface IMultiQuery
    {
        NHibernate.IMultiQuery Add(System.Type resultGenericListType, NHibernate.IQuery query);
        NHibernate.IMultiQuery Add<T>(NHibernate.IQuery query);
        NHibernate.IMultiQuery Add<T>(string key, NHibernate.IQuery query);
        NHibernate.IMultiQuery Add<T>(string key, string hql);
        NHibernate.IMultiQuery Add<T>(string hql);
        NHibernate.IMultiQuery Add(string key, NHibernate.IQuery query);
        NHibernate.IMultiQuery Add(NHibernate.IQuery query);
        NHibernate.IMultiQuery Add(string key, string hql);
        NHibernate.IMultiQuery Add(string hql);
        NHibernate.IMultiQuery AddNamedQuery<T>(string queryName);
        NHibernate.IMultiQuery AddNamedQuery<T>(string key, string queryName);
        NHibernate.IMultiQuery AddNamedQuery(string queryName);
        NHibernate.IMultiQuery AddNamedQuery(string key, string queryName);
        object GetResult(string key);
        System.Threading.Tasks.Task<object> GetResultAsync(string key, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Collections.IList List();
        System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IMultiQuery SetAnsiString(string name, string val);
        NHibernate.IMultiQuery SetBinary(string name, byte[] val);
        NHibernate.IMultiQuery SetBoolean(string name, bool val);
        NHibernate.IMultiQuery SetByte(string name, byte val);
        NHibernate.IMultiQuery SetCacheable(bool cacheable);
        NHibernate.IMultiQuery SetCacheRegion(string region);
        NHibernate.IMultiQuery SetCharacter(string name, char val);
        NHibernate.IMultiQuery SetDateTime(string name, System.DateTime val);
        NHibernate.IMultiQuery SetDateTime2(string name, System.DateTime val);
        NHibernate.IMultiQuery SetDateTimeNoMs(string name, System.DateTime val);
        NHibernate.IMultiQuery SetDateTimeOffset(string name, System.DateTimeOffset val);
        NHibernate.IMultiQuery SetDecimal(string name, decimal val);
        NHibernate.IMultiQuery SetDouble(string name, double val);
        NHibernate.IMultiQuery SetEntity(string name, object val);
        NHibernate.IMultiQuery SetEnum(string name, System.Enum val);
        NHibernate.IMultiQuery SetFlushMode(NHibernate.FlushMode mode);
        NHibernate.IMultiQuery SetForceCacheRefresh(bool forceCacheRefresh);
        NHibernate.IMultiQuery SetGuid(string name, System.Guid val);
        NHibernate.IMultiQuery SetInt16(string name, short val);
        NHibernate.IMultiQuery SetInt32(string name, int val);
        NHibernate.IMultiQuery SetInt64(string name, long val);
        NHibernate.IMultiQuery SetParameter(string name, object val, NHibernate.Type.IType type);
        NHibernate.IMultiQuery SetParameter(string name, object val);
        NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type);
        NHibernate.IMultiQuery SetParameterList(string name, System.Collections.IEnumerable vals);
        NHibernate.IMultiQuery SetResultTransformer(NHibernate.Transform.IResultTransformer transformer);
        NHibernate.IMultiQuery SetSingle(string name, float val);
        NHibernate.IMultiQuery SetString(string name, string val);
        NHibernate.IMultiQuery SetTime(string name, System.DateTime val);
        NHibernate.IMultiQuery SetTimeAsTimeSpan(string name, System.TimeSpan val);
        NHibernate.IMultiQuery SetTimeout(int timeout);
        NHibernate.IMultiQuery SetTimeSpan(string name, System.TimeSpan val);
        NHibernate.IMultiQuery SetTimestamp(string name, System.DateTime val);
    }
    public interface INHibernateLogger
    {
        bool IsEnabled(NHibernate.NHibernateLogLevel logLevel);
        void Log(NHibernate.NHibernateLogLevel logLevel, NHibernate.NHibernateLogValues state, System.Exception exception);
    }
    public interface INHibernateLoggerFactory
    {
        NHibernate.INHibernateLogger LoggerFor(string keyName);
        NHibernate.INHibernateLogger LoggerFor(System.Type type);
    }
    public class InstantiationException : NHibernate.HibernateException
    {
        public InstantiationException(string message, System.Type type) => throw null;
        public InstantiationException(string message, System.Exception innerException, System.Type type) => throw null;
        protected InstantiationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override string Message { get => throw null; }
        public System.Type PersistentType { get => throw null; }
    }
    namespace Intercept
    {
        public abstract class AbstractFieldInterceptor : NHibernate.Intercept.IFieldInterceptor
        {
            public void ClearDirty() => throw null;
            protected AbstractFieldInterceptor(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet<string> uninitializedFields, System.Collections.Generic.ISet<string> unwrapProxyFieldNames, string entityName, System.Type mappedClass) => throw null;
            public string EntityName { get => throw null; }
            public System.Collections.Generic.ISet<string> GetUninitializedFields() => throw null;
            public bool Initializing { get => throw null; }
            public object Intercept(object target, string fieldName, object value) => throw null;
            public object Intercept(object target, string fieldName, object value, bool setter) => throw null;
            public static readonly object InvokeImplementation;
            public bool IsDirty { get => throw null; }
            public bool IsInitialized { get => throw null; }
            public bool IsInitializedField(string field) => throw null;
            public System.Type MappedClass { get => throw null; }
            public void MarkDirty() => throw null;
            public NHibernate.Engine.ISessionImplementor Session { get => throw null; set { } }
            public System.Collections.Generic.ISet<string> UninitializedFields { get => throw null; }
        }
        public class DefaultDynamicLazyFieldInterceptor : NHibernate.Intercept.IFieldInterceptorAccessor, NHibernate.Proxy.DynamicProxy.IInterceptor
        {
            public DefaultDynamicLazyFieldInterceptor() => throw null;
            public NHibernate.Intercept.IFieldInterceptor FieldInterceptor { get => throw null; set { } }
            public object Intercept(NHibernate.Proxy.DynamicProxy.InvocationInfo info) => throw null;
        }
        public class DefaultFieldInterceptor : NHibernate.Intercept.AbstractFieldInterceptor
        {
            public DefaultFieldInterceptor(NHibernate.Engine.ISessionImplementor session, System.Collections.Generic.ISet<string> uninitializedFields, System.Collections.Generic.ISet<string> unwrapProxyFieldNames, string entityName, System.Type mappedClass) : base(default(NHibernate.Engine.ISessionImplementor), default(System.Collections.Generic.ISet<string>), default(System.Collections.Generic.ISet<string>), default(string), default(System.Type)) => throw null;
        }
        public static class FieldInterceptionHelper
        {
            public static void ClearDirty(object entity) => throw null;
            public static NHibernate.Intercept.IFieldInterceptor ExtractFieldInterceptor(object entity) => throw null;
            public static NHibernate.Intercept.IFieldInterceptor InjectFieldInterceptor(object entity, string entityName, System.Type mappedClass, System.Collections.Generic.ISet<string> uninitializedFieldNames, System.Collections.Generic.ISet<string> unwrapProxyFieldNames, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static bool IsInstrumented(System.Type entityClass) => throw null;
            public static bool IsInstrumented(object entity) => throw null;
            public static void MarkDirty(object entity) => throw null;
        }
        public static partial class FieldInterceptorExtensions
        {
            public static object Intercept(this NHibernate.Intercept.IFieldInterceptor interceptor, object target, string fieldName, object value, bool setter) => throw null;
        }
        public interface IFieldInterceptor
        {
            void ClearDirty();
            string EntityName { get; }
            object Intercept(object target, string fieldName, object value);
            bool IsDirty { get; }
            bool IsInitialized { get; }
            bool IsInitializedField(string field);
            System.Type MappedClass { get; }
            void MarkDirty();
            NHibernate.Engine.ISessionImplementor Session { get; set; }
        }
        public interface IFieldInterceptorAccessor
        {
            NHibernate.Intercept.IFieldInterceptor FieldInterceptor { get; set; }
        }
        public interface ILazyPropertyInitializer
        {
            object InitializeLazyProperty(string fieldName, object entity, NHibernate.Engine.ISessionImplementor session);
        }
        public struct LazyPropertyInitializer
        {
            public static readonly object UnfetchedProperty;
        }
        public struct UnfetchedLazyProperty
        {
        }
    }
    public class InvalidProxyTypeException : NHibernate.MappingException
    {
        public InvalidProxyTypeException(System.Collections.Generic.ICollection<string> errors) : base(default(string)) => throw null;
        public InvalidProxyTypeException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
        public System.Collections.Generic.ICollection<string> Errors { get => throw null; }
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    public interface IQuery
    {
        System.Collections.IEnumerable Enumerable();
        System.Collections.Generic.IEnumerable<T> Enumerable<T>();
        System.Threading.Tasks.Task<System.Collections.IEnumerable> EnumerableAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<T>> EnumerableAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        int ExecuteUpdate();
        System.Threading.Tasks.Task<int> ExecuteUpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IFutureEnumerable<T> Future<T>();
        NHibernate.IFutureValue<T> FutureValue<T>();
        bool IsReadOnly { get; }
        System.Collections.IList List();
        void List(System.Collections.IList results);
        System.Collections.Generic.IList<T> List<T>();
        System.Threading.Tasks.Task<System.Collections.IList> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task ListAsync(System.Collections.IList results, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> ListAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        string[] NamedParameters { get; }
        string QueryString { get; }
        string[] ReturnAliases { get; }
        NHibernate.Type.IType[] ReturnTypes { get; }
        NHibernate.IQuery SetAnsiString(int position, string val);
        NHibernate.IQuery SetAnsiString(string name, string val);
        NHibernate.IQuery SetBinary(int position, byte[] val);
        NHibernate.IQuery SetBinary(string name, byte[] val);
        NHibernate.IQuery SetBoolean(int position, bool val);
        NHibernate.IQuery SetBoolean(string name, bool val);
        NHibernate.IQuery SetByte(int position, byte val);
        NHibernate.IQuery SetByte(string name, byte val);
        NHibernate.IQuery SetCacheable(bool cacheable);
        NHibernate.IQuery SetCacheMode(NHibernate.CacheMode cacheMode);
        NHibernate.IQuery SetCacheRegion(string cacheRegion);
        NHibernate.IQuery SetCharacter(int position, char val);
        NHibernate.IQuery SetCharacter(string name, char val);
        NHibernate.IQuery SetComment(string comment);
        NHibernate.IQuery SetDateTime(int position, System.DateTime val);
        NHibernate.IQuery SetDateTime(string name, System.DateTime val);
        NHibernate.IQuery SetDateTime2(int position, System.DateTime val);
        NHibernate.IQuery SetDateTime2(string name, System.DateTime val);
        NHibernate.IQuery SetDateTimeNoMs(int position, System.DateTime val);
        NHibernate.IQuery SetDateTimeNoMs(string name, System.DateTime val);
        NHibernate.IQuery SetDateTimeOffset(int position, System.DateTimeOffset val);
        NHibernate.IQuery SetDateTimeOffset(string name, System.DateTimeOffset val);
        NHibernate.IQuery SetDecimal(int position, decimal val);
        NHibernate.IQuery SetDecimal(string name, decimal val);
        NHibernate.IQuery SetDouble(int position, double val);
        NHibernate.IQuery SetDouble(string name, double val);
        NHibernate.IQuery SetEntity(int position, object val);
        NHibernate.IQuery SetEntity(string name, object val);
        NHibernate.IQuery SetEnum(int position, System.Enum val);
        NHibernate.IQuery SetEnum(string name, System.Enum val);
        NHibernate.IQuery SetFetchSize(int fetchSize);
        NHibernate.IQuery SetFirstResult(int firstResult);
        NHibernate.IQuery SetFlushMode(NHibernate.FlushMode flushMode);
        NHibernate.IQuery SetGuid(int position, System.Guid val);
        NHibernate.IQuery SetGuid(string name, System.Guid val);
        NHibernate.IQuery SetInt16(int position, short val);
        NHibernate.IQuery SetInt16(string name, short val);
        NHibernate.IQuery SetInt32(int position, int val);
        NHibernate.IQuery SetInt32(string name, int val);
        NHibernate.IQuery SetInt64(int position, long val);
        NHibernate.IQuery SetInt64(string name, long val);
        NHibernate.IQuery SetLockMode(string alias, NHibernate.LockMode lockMode);
        NHibernate.IQuery SetMaxResults(int maxResults);
        NHibernate.IQuery SetParameter(int position, object val, NHibernate.Type.IType type);
        NHibernate.IQuery SetParameter(string name, object val, NHibernate.Type.IType type);
        NHibernate.IQuery SetParameter<T>(int position, T val);
        NHibernate.IQuery SetParameter<T>(string name, T val);
        NHibernate.IQuery SetParameter(int position, object val);
        NHibernate.IQuery SetParameter(string name, object val);
        NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals, NHibernate.Type.IType type);
        NHibernate.IQuery SetParameterList(string name, System.Collections.IEnumerable vals);
        NHibernate.IQuery SetProperties(object obj);
        NHibernate.IQuery SetReadOnly(bool readOnly);
        NHibernate.IQuery SetResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer);
        NHibernate.IQuery SetSingle(int position, float val);
        NHibernate.IQuery SetSingle(string name, float val);
        NHibernate.IQuery SetString(int position, string val);
        NHibernate.IQuery SetString(string name, string val);
        NHibernate.IQuery SetTime(int position, System.DateTime val);
        NHibernate.IQuery SetTime(string name, System.DateTime val);
        NHibernate.IQuery SetTimeAsTimeSpan(int position, System.TimeSpan val);
        NHibernate.IQuery SetTimeAsTimeSpan(string name, System.TimeSpan val);
        NHibernate.IQuery SetTimeout(int timeout);
        NHibernate.IQuery SetTimeSpan(int position, System.TimeSpan val);
        NHibernate.IQuery SetTimeSpan(string name, System.TimeSpan val);
        NHibernate.IQuery SetTimestamp(int position, System.DateTime val);
        NHibernate.IQuery SetTimestamp(string name, System.DateTime val);
        object UniqueResult();
        T UniqueResult<T>();
        System.Threading.Tasks.Task<object> UniqueResultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> UniqueResultAsync<T>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
    }
    public interface IQueryExpression
    {
        string Key { get; }
        System.Collections.Generic.IList<NHibernate.Engine.Query.NamedParameterDescriptor> ParameterDescriptors { get; }
        NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, bool filter);
        System.Type Type { get; }
    }
    public interface IQueryOver<TRoot> : NHibernate.IQueryOver
    {
        NHibernate.IQueryOver<TRoot> Cacheable();
        NHibernate.IQueryOver<TRoot> CacheMode(NHibernate.CacheMode cacheMode);
        NHibernate.IQueryOver<TRoot> CacheRegion(string cacheRegion);
        NHibernate.IQueryOver<TRoot> ClearOrders();
        NHibernate.IQueryOver<TRoot, TRoot> Clone();
        NHibernate.IFutureEnumerable<TRoot> Future();
        NHibernate.IFutureEnumerable<U> Future<U>();
        NHibernate.IFutureValue<TRoot> FutureValue();
        NHibernate.IFutureValue<U> FutureValue<U>();
        System.Collections.Generic.IList<TRoot> List();
        System.Collections.Generic.IList<U> List<U>();
        System.Threading.Tasks.Task<System.Collections.Generic.IList<TRoot>> ListAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<System.Collections.Generic.IList<U>> ListAsync<U>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IQueryOver<TRoot> ReadOnly();
        int RowCount();
        System.Threading.Tasks.Task<int> RowCountAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        long RowCountInt64();
        System.Threading.Tasks.Task<long> RowCountInt64Async(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        TRoot SingleOrDefault();
        U SingleOrDefault<U>();
        System.Threading.Tasks.Task<TRoot> SingleOrDefaultAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<U> SingleOrDefaultAsync<U>(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IQueryOver<TRoot> Skip(int firstResult);
        NHibernate.IQueryOver<TRoot> Take(int maxResults);
        NHibernate.IQueryOver<TRoot, TRoot> ToRowCountInt64Query();
        NHibernate.IQueryOver<TRoot, TRoot> ToRowCountQuery();
    }
    public interface IQueryOver
    {
        NHibernate.ICriteria RootCriteria { get; }
        NHibernate.ICriteria UnderlyingCriteria { get; }
    }
    public interface IQueryOver<TRoot, TSubType> : NHibernate.IQueryOver<TRoot>, NHibernate.IQueryOver
    {
        NHibernate.IQueryOver<TRoot, TSubType> And(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> And(System.Linq.Expressions.Expression<System.Func<bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> And(NHibernate.Criterion.ICriterion expression);
        NHibernate.IQueryOver<TRoot, TSubType> AndNot(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> AndNot(System.Linq.Expressions.Expression<System.Func<bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> AndNot(NHibernate.Criterion.ICriterion expression);
        NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> AndRestrictionOn(System.Linq.Expressions.Expression<System.Func<TSubType, object>> expression);
        NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> AndRestrictionOn(System.Linq.Expressions.Expression<System.Func<object>> expression);
        NHibernate.Criterion.Lambda.IQueryOverFetchBuilder<TRoot, TSubType> Fetch(System.Linq.Expressions.Expression<System.Func<TRoot, object>> path);
        NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> Full { get; }
        NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> Inner { get; }
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias);
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias);
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias(System.Linq.Expressions.Expression<System.Func<object>> path, System.Linq.Expressions.Expression<System.Func<object>> alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IQueryOver<TRoot, TSubType> JoinAlias<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<U>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<TSubType, System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType);
        NHibernate.IQueryOver<TRoot, U> JoinQueryOver<U>(System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IEnumerable<U>>> path, System.Linq.Expressions.Expression<System.Func<U>> alias, NHibernate.SqlCommand.JoinType joinType, NHibernate.Criterion.ICriterion withClause);
        NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> Left { get; }
        NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> Lock();
        NHibernate.Criterion.Lambda.IQueryOverLockBuilder<TRoot, TSubType> Lock(System.Linq.Expressions.Expression<System.Func<object>> alias);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> OrderBy(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> OrderBy(System.Linq.Expressions.Expression<System.Func<object>> path);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> OrderBy(NHibernate.Criterion.IProjection projection);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> OrderByAlias(System.Linq.Expressions.Expression<System.Func<object>> path);
        NHibernate.Criterion.Lambda.IQueryOverJoinBuilder<TRoot, TSubType> Right { get; }
        NHibernate.IQueryOver<TRoot, TSubType> Select(params System.Linq.Expressions.Expression<System.Func<TRoot, object>>[] projections);
        NHibernate.IQueryOver<TRoot, TSubType> Select(params NHibernate.Criterion.IProjection[] projections);
        NHibernate.IQueryOver<TRoot, TSubType> SelectList(System.Func<NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<TRoot>, NHibernate.Criterion.Lambda.QueryOverProjectionBuilder<TRoot>> list);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> ThenBy(System.Linq.Expressions.Expression<System.Func<TSubType, object>> path);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> ThenBy(System.Linq.Expressions.Expression<System.Func<object>> path);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> ThenBy(NHibernate.Criterion.IProjection projection);
        NHibernate.Criterion.Lambda.IQueryOverOrderBuilder<TRoot, TSubType> ThenByAlias(System.Linq.Expressions.Expression<System.Func<object>> path);
        NHibernate.IQueryOver<TRoot, TSubType> TransformUsing(NHibernate.Transform.IResultTransformer resultTransformer);
        NHibernate.IQueryOver<TRoot, TSubType> Where(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> Where(System.Linq.Expressions.Expression<System.Func<bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> Where(NHibernate.Criterion.ICriterion expression);
        NHibernate.IQueryOver<TRoot, TSubType> WhereNot(System.Linq.Expressions.Expression<System.Func<TSubType, bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> WhereNot(System.Linq.Expressions.Expression<System.Func<bool>> expression);
        NHibernate.IQueryOver<TRoot, TSubType> WhereNot(NHibernate.Criterion.ICriterion expression);
        NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> WhereRestrictionOn(System.Linq.Expressions.Expression<System.Func<TSubType, object>> expression);
        NHibernate.Criterion.Lambda.IQueryOverRestrictionBuilder<TRoot, TSubType> WhereRestrictionOn(System.Linq.Expressions.Expression<System.Func<object>> expression);
        NHibernate.Criterion.Lambda.IQueryOverSubqueryBuilder<TRoot, TSubType> WithSubquery { get; }
    }
    public interface ISession : System.IDisposable
    {
        NHibernate.ITransaction BeginTransaction();
        NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel);
        NHibernate.CacheMode CacheMode { get; set; }
        void CancelQuery();
        void Clear();
        System.Data.Common.DbConnection Close();
        System.Data.Common.DbConnection Connection { get; }
        bool Contains(object obj);
        NHibernate.ICriteria CreateCriteria<T>() where T : class;
        NHibernate.ICriteria CreateCriteria<T>(string alias) where T : class;
        NHibernate.ICriteria CreateCriteria(System.Type persistentClass);
        NHibernate.ICriteria CreateCriteria(System.Type persistentClass, string alias);
        NHibernate.ICriteria CreateCriteria(string entityName);
        NHibernate.ICriteria CreateCriteria(string entityName, string alias);
        NHibernate.IQuery CreateFilter(object collection, string queryString);
        System.Threading.Tasks.Task<NHibernate.IQuery> CreateFilterAsync(object collection, string queryString, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IMultiCriteria CreateMultiCriteria();
        NHibernate.IMultiQuery CreateMultiQuery();
        NHibernate.IQuery CreateQuery(string queryString);
        NHibernate.ISQLQuery CreateSQLQuery(string queryString);
        bool DefaultReadOnly { get; set; }
        void Delete(object obj);
        void Delete(string entityName, object obj);
        int Delete(string query);
        int Delete(string query, object value, NHibernate.Type.IType type);
        int Delete(string query, object[] values, NHibernate.Type.IType[] types);
        System.Threading.Tasks.Task DeleteAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task DeleteAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<int> DeleteAsync(string query, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<int> DeleteAsync(string query, object value, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<int> DeleteAsync(string query, object[] values, NHibernate.Type.IType[] types, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void DisableFilter(string filterName);
        System.Data.Common.DbConnection Disconnect();
        NHibernate.IFilter EnableFilter(string filterName);
        void Evict(object obj);
        System.Threading.Tasks.Task EvictAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void Flush();
        System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.FlushMode FlushMode { get; set; }
        object Get(System.Type clazz, object id);
        object Get(System.Type clazz, object id, NHibernate.LockMode lockMode);
        object Get(string entityName, object id);
        T Get<T>(object id);
        T Get<T>(object id, NHibernate.LockMode lockMode);
        System.Threading.Tasks.Task<object> GetAsync(System.Type clazz, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> GetAsync(System.Type clazz, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> GetAsync<T>(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> GetAsync<T>(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.LockMode GetCurrentLockMode(object obj);
        NHibernate.IFilter GetEnabledFilter(string filterName);
        string GetEntityName(object obj);
        System.Threading.Tasks.Task<string> GetEntityNameAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        object GetIdentifier(object obj);
        NHibernate.IQuery GetNamedQuery(string queryName);
        NHibernate.ISession GetSession(NHibernate.EntityMode entityMode);
        NHibernate.Engine.ISessionImplementor GetSessionImplementation();
        bool IsConnected { get; }
        bool IsDirty();
        System.Threading.Tasks.Task<bool> IsDirtyAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        bool IsOpen { get; }
        bool IsReadOnly(object entityOrProxy);
        void JoinTransaction();
        object Load(System.Type theType, object id, NHibernate.LockMode lockMode);
        object Load(string entityName, object id, NHibernate.LockMode lockMode);
        object Load(System.Type theType, object id);
        T Load<T>(object id, NHibernate.LockMode lockMode);
        T Load<T>(object id);
        object Load(string entityName, object id);
        void Load(object obj, object id);
        System.Threading.Tasks.Task<object> LoadAsync(System.Type theType, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> LoadAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> LoadAsync(System.Type theType, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> LoadAsync<T>(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> LoadAsync<T>(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> LoadAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task LoadAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void Lock(object obj, NHibernate.LockMode lockMode);
        void Lock(string entityName, object obj, NHibernate.LockMode lockMode);
        System.Threading.Tasks.Task LockAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task LockAsync(string entityName, object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        object Merge(object obj);
        object Merge(string entityName, object obj);
        T Merge<T>(T entity) where T : class;
        T Merge<T>(string entityName, T entity) where T : class;
        System.Threading.Tasks.Task<object> MergeAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> MergeAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> MergeAsync<T>(T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class;
        System.Threading.Tasks.Task<T> MergeAsync<T>(string entityName, T entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) where T : class;
        void Persist(object obj);
        void Persist(string entityName, object obj);
        System.Threading.Tasks.Task PersistAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task PersistAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Linq.IQueryable<T> Query<T>();
        System.Linq.IQueryable<T> Query<T>(string entityName);
        NHibernate.IQueryOver<T, T> QueryOver<T>() where T : class;
        NHibernate.IQueryOver<T, T> QueryOver<T>(System.Linq.Expressions.Expression<System.Func<T>> alias) where T : class;
        NHibernate.IQueryOver<T, T> QueryOver<T>(string entityName) where T : class;
        NHibernate.IQueryOver<T, T> QueryOver<T>(string entityName, System.Linq.Expressions.Expression<System.Func<T>> alias) where T : class;
        void Reconnect();
        void Reconnect(System.Data.Common.DbConnection connection);
        void Refresh(object obj);
        void Refresh(object obj, NHibernate.LockMode lockMode);
        System.Threading.Tasks.Task RefreshAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task RefreshAsync(object obj, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void Replicate(object obj, NHibernate.ReplicationMode replicationMode);
        void Replicate(string entityName, object obj, NHibernate.ReplicationMode replicationMode);
        System.Threading.Tasks.Task ReplicateAsync(object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task ReplicateAsync(string entityName, object obj, NHibernate.ReplicationMode replicationMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        object Save(object obj);
        void Save(object obj, object id);
        object Save(string entityName, object obj);
        void Save(string entityName, object obj, object id);
        System.Threading.Tasks.Task<object> SaveAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task SaveAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> SaveAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task SaveAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void SaveOrUpdate(object obj);
        void SaveOrUpdate(string entityName, object obj);
        void SaveOrUpdate(string entityName, object obj, object id);
        System.Threading.Tasks.Task SaveOrUpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task SaveOrUpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.ISessionFactory SessionFactory { get; }
        NHibernate.ISharedSessionBuilder SessionWithOptions();
        NHibernate.ISession SetBatchSize(int batchSize);
        void SetReadOnly(object entityOrProxy, bool readOnly);
        NHibernate.Stat.ISessionStatistics Statistics { get; }
        NHibernate.ITransaction Transaction { get; }
        void Update(object obj);
        void Update(object obj, object id);
        void Update(string entityName, object obj);
        void Update(string entityName, object obj, object id);
        System.Threading.Tasks.Task UpdateAsync(object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task UpdateAsync(object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task UpdateAsync(string entityName, object obj, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
    }
    public interface ISessionBuilder : NHibernate.ISessionBuilder<NHibernate.ISessionBuilder>
    {
    }
    public interface ISessionBuilder<T> where T : NHibernate.ISessionBuilder<T>
    {
        T AutoClose(bool autoClose);
        T AutoJoinTransaction(bool autoJoinTransaction);
        T Connection(System.Data.Common.DbConnection connection);
        T ConnectionReleaseMode(NHibernate.ConnectionReleaseMode connectionReleaseMode);
        T FlushMode(NHibernate.FlushMode flushMode);
        T Interceptor(NHibernate.IInterceptor interceptor);
        T NoInterceptor();
        NHibernate.ISession OpenSession();
    }
    public interface ISessionFactory : System.IDisposable
    {
        void Close();
        System.Threading.Tasks.Task CloseAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Collections.Generic.ICollection<string> DefinedFilterNames { get; }
        void Evict(System.Type persistentClass);
        void Evict(System.Type persistentClass, object id);
        System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task EvictAsync(System.Type persistentClass, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void EvictCollection(string roleName);
        void EvictCollection(string roleName, object id);
        System.Threading.Tasks.Task EvictCollectionAsync(string roleName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task EvictCollectionAsync(string roleName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void EvictEntity(string entityName);
        void EvictEntity(string entityName, object id);
        System.Threading.Tasks.Task EvictEntityAsync(string entityName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task EvictEntityAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void EvictQueries();
        void EvictQueries(string cacheRegion);
        System.Threading.Tasks.Task EvictQueriesAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task EvictQueriesAsync(string cacheRegion, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Collections.Generic.IDictionary<string, NHibernate.Metadata.IClassMetadata> GetAllClassMetadata();
        System.Collections.Generic.IDictionary<string, NHibernate.Metadata.ICollectionMetadata> GetAllCollectionMetadata();
        NHibernate.Metadata.IClassMetadata GetClassMetadata(System.Type persistentClass);
        NHibernate.Metadata.IClassMetadata GetClassMetadata(string entityName);
        NHibernate.Metadata.ICollectionMetadata GetCollectionMetadata(string roleName);
        NHibernate.ISession GetCurrentSession();
        NHibernate.Engine.FilterDefinition GetFilterDefinition(string filterName);
        bool IsClosed { get; }
        NHibernate.ISession OpenSession(System.Data.Common.DbConnection connection);
        NHibernate.ISession OpenSession(NHibernate.IInterceptor sessionLocalInterceptor);
        NHibernate.ISession OpenSession(System.Data.Common.DbConnection conn, NHibernate.IInterceptor sessionLocalInterceptor);
        NHibernate.ISession OpenSession();
        NHibernate.IStatelessSession OpenStatelessSession();
        NHibernate.IStatelessSession OpenStatelessSession(System.Data.Common.DbConnection connection);
        NHibernate.Stat.IStatistics Statistics { get; }
        NHibernate.ISessionBuilder WithOptions();
        NHibernate.IStatelessSessionBuilder WithStatelessOptions();
    }
    public interface ISharedSessionBuilder : NHibernate.ISessionBuilder<NHibernate.ISharedSessionBuilder>
    {
        NHibernate.ISharedSessionBuilder AutoClose();
        NHibernate.ISharedSessionBuilder AutoJoinTransaction();
        NHibernate.ISharedSessionBuilder Connection();
        NHibernate.ISharedSessionBuilder ConnectionReleaseMode();
        NHibernate.ISharedSessionBuilder FlushMode();
        NHibernate.ISharedSessionBuilder Interceptor();
    }
    public interface ISharedStatelessSessionBuilder : NHibernate.IStatelessSessionBuilder
    {
        NHibernate.ISharedStatelessSessionBuilder AutoJoinTransaction(bool autoJoinTransaction);
        NHibernate.ISharedStatelessSessionBuilder AutoJoinTransaction();
        NHibernate.ISharedStatelessSessionBuilder Connection(System.Data.Common.DbConnection connection);
        NHibernate.ISharedStatelessSessionBuilder Connection();
    }
    public interface ISQLQuery : NHibernate.IQuery
    {
        NHibernate.ISQLQuery AddEntity(string entityName);
        NHibernate.ISQLQuery AddEntity(string alias, string entityName);
        NHibernate.ISQLQuery AddEntity(string alias, string entityName, NHibernate.LockMode lockMode);
        NHibernate.ISQLQuery AddEntity(System.Type entityClass);
        NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass);
        NHibernate.ISQLQuery AddEntity(string alias, System.Type entityClass, NHibernate.LockMode lockMode);
        NHibernate.ISQLQuery AddJoin(string alias, string path);
        NHibernate.ISQLQuery AddJoin(string alias, string path, NHibernate.LockMode lockMode);
        NHibernate.ISQLQuery AddScalar(string columnAlias, NHibernate.Type.IType type);
        NHibernate.ISQLQuery SetResultSetMapping(string name);
    }
    public interface IStatelessSession : System.IDisposable
    {
        NHibernate.ITransaction BeginTransaction();
        NHibernate.ITransaction BeginTransaction(System.Data.IsolationLevel isolationLevel);
        void Close();
        System.Data.Common.DbConnection Connection { get; }
        NHibernate.ICriteria CreateCriteria<T>() where T : class;
        NHibernate.ICriteria CreateCriteria<T>(string alias) where T : class;
        NHibernate.ICriteria CreateCriteria(System.Type entityType);
        NHibernate.ICriteria CreateCriteria(System.Type entityType, string alias);
        NHibernate.ICriteria CreateCriteria(string entityName);
        NHibernate.ICriteria CreateCriteria(string entityName, string alias);
        NHibernate.IQuery CreateQuery(string queryString);
        NHibernate.ISQLQuery CreateSQLQuery(string queryString);
        void Delete(object entity);
        void Delete(string entityName, object entity);
        System.Threading.Tasks.Task DeleteAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task DeleteAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        object Get(string entityName, object id);
        T Get<T>(object id);
        object Get(string entityName, object id, NHibernate.LockMode lockMode);
        T Get<T>(object id, NHibernate.LockMode lockMode);
        System.Threading.Tasks.Task<object> GetAsync(string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> GetAsync<T>(object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> GetAsync(string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<T> GetAsync<T>(object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IQuery GetNamedQuery(string queryName);
        NHibernate.Engine.ISessionImplementor GetSessionImplementation();
        object Insert(object entity);
        object Insert(string entityName, object entity);
        System.Threading.Tasks.Task<object> InsertAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task<object> InsertAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        bool IsConnected { get; }
        bool IsOpen { get; }
        void JoinTransaction();
        System.Linq.IQueryable<T> Query<T>();
        System.Linq.IQueryable<T> Query<T>(string entityName);
        NHibernate.IQueryOver<T, T> QueryOver<T>() where T : class;
        NHibernate.IQueryOver<T, T> QueryOver<T>(System.Linq.Expressions.Expression<System.Func<T>> alias) where T : class;
        void Refresh(object entity);
        void Refresh(string entityName, object entity);
        void Refresh(object entity, NHibernate.LockMode lockMode);
        void Refresh(string entityName, object entity, NHibernate.LockMode lockMode);
        System.Threading.Tasks.Task RefreshAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task RefreshAsync(object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task RefreshAsync(string entityName, object entity, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        NHibernate.IStatelessSession SetBatchSize(int batchSize);
        NHibernate.ITransaction Transaction { get; }
        void Update(object entity);
        void Update(string entityName, object entity);
        System.Threading.Tasks.Task UpdateAsync(object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        System.Threading.Tasks.Task UpdateAsync(string entityName, object entity, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
    }
    public interface IStatelessSessionBuilder
    {
        NHibernate.IStatelessSessionBuilder AutoJoinTransaction(bool autoJoinTransaction);
        NHibernate.IStatelessSessionBuilder Connection(System.Data.Common.DbConnection connection);
        NHibernate.IStatelessSession OpenStatelessSession();
    }
    public interface ISupportSelectModeCriteria
    {
        NHibernate.ICriteria Fetch(NHibernate.SelectMode selectMode, string associationPath, string alias);
    }
    public interface ISynchronizableQuery<T> where T : NHibernate.ISynchronizableQuery<T>
    {
        T AddSynchronizedEntityClass(System.Type entityType);
        T AddSynchronizedEntityName(string entityName);
        T AddSynchronizedQuerySpace(string querySpace);
        System.Collections.Generic.IReadOnlyCollection<string> GetSynchronizedQuerySpaces();
    }
    public interface ISynchronizableSQLQuery : NHibernate.IQuery, NHibernate.ISQLQuery, NHibernate.ISynchronizableQuery<NHibernate.ISynchronizableSQLQuery>
    {
    }
    public interface ITransaction : System.IDisposable
    {
        void Begin();
        void Begin(System.Data.IsolationLevel isolationLevel);
        void Commit();
        System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        void Enlist(System.Data.Common.DbCommand command);
        bool IsActive { get; }
        void RegisterSynchronization(NHibernate.Transaction.ISynchronization synchronization);
        void Rollback();
        System.Threading.Tasks.Task RollbackAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
        bool WasCommitted { get; }
        bool WasRolledBack { get; }
    }
    public class LazyInitializationException : NHibernate.HibernateException
    {
        public LazyInitializationException(string entityName, object entityId, string message) => throw null;
        public LazyInitializationException(string message) => throw null;
        public LazyInitializationException(System.Exception innerException) => throw null;
        public LazyInitializationException(string message, System.Exception innerException) => throw null;
        protected LazyInitializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public object EntityId { get => throw null; }
        public string EntityName { get => throw null; }
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Linq
    {
        namespace Clauses
        {
            public abstract class NhClauseBase
            {
                public void Accept(Remotion.Linq.IQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                protected abstract void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index);
                protected NhClauseBase() => throw null;
            }
            public class NhHavingClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause
            {
                protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public NHibernate.Linq.Clauses.NhHavingClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public NhHavingClause(System.Linq.Expressions.Expression predicate) => throw null;
                public System.Linq.Expressions.Expression Predicate { get => throw null; set { } }
                public override string ToString() => throw null;
                public void TransformExpressions(System.Func<System.Linq.Expressions.Expression, System.Linq.Expressions.Expression> transformation) => throw null;
            }
            public class NhJoinClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IFromClause, Remotion.Linq.Clauses.IQuerySource
            {
                protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public NHibernate.Linq.Clauses.NhJoinClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public void CopyFromSource(Remotion.Linq.Clauses.IFromClause source) => throw null;
                public NhJoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression) => throw null;
                public NhJoinClause(string itemName, System.Type itemType, System.Linq.Expressions.Expression fromExpression, System.Collections.Generic.IEnumerable<NHibernate.Linq.Clauses.NhWithClause> restrictions) => throw null;
                public System.Linq.Expressions.Expression FromExpression { get => throw null; set { } }
                public bool IsInner { get => throw null; }
                public string ItemName { get => throw null; set { } }
                public System.Type ItemType { get => throw null; set { } }
                public void MakeInner() => throw null;
                public System.Collections.ObjectModel.ObservableCollection<NHibernate.Linq.Clauses.NhWithClause> Restrictions { get => throw null; }
                public override string ToString() => throw null;
                public void TransformExpressions(System.Func<System.Linq.Expressions.Expression, System.Linq.Expressions.Expression> transformation) => throw null;
            }
            public class NhOuterJoinClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause, Remotion.Linq.Clauses.IQuerySource
            {
                protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public Remotion.Linq.Clauses.IBodyClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public NhOuterJoinClause(Remotion.Linq.Clauses.JoinClause joinClause) => throw null;
                public string ItemName { get => throw null; }
                public System.Type ItemType { get => throw null; }
                public Remotion.Linq.Clauses.JoinClause JoinClause { get => throw null; }
                public void TransformExpressions(System.Func<System.Linq.Expressions.Expression, System.Linq.Expressions.Expression> transformation) => throw null;
            }
            public class NhWithClause : NHibernate.Linq.Clauses.NhClauseBase, Remotion.Linq.Clauses.IBodyClause, Remotion.Linq.Clauses.IClause
            {
                protected override void Accept(NHibernate.Linq.INhQueryModelVisitor visitor, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                Remotion.Linq.Clauses.IBodyClause Remotion.Linq.Clauses.IBodyClause.Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public NHibernate.Linq.Clauses.NhWithClause Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public NhWithClause(System.Linq.Expressions.Expression predicate) => throw null;
                public System.Linq.Expressions.Expression Predicate { get => throw null; set { } }
                public override string ToString() => throw null;
                public void TransformExpressions(System.Func<System.Linq.Expressions.Expression, System.Linq.Expressions.Expression> transformation) => throw null;
            }
        }
        public class DefaultQueryProvider : NHibernate.Linq.INhQueryProvider, System.Linq.IQueryProvider, NHibernate.Linq.IQueryProviderWithOptions, NHibernate.Linq.ISupportFutureBatchNhQueryProvider
        {
            public object Collection { get => throw null; }
            public virtual System.Linq.IQueryable CreateQuery(System.Linq.Expressions.Expression expression) => throw null;
            public virtual System.Linq.IQueryable<T> CreateQuery<T>(System.Linq.Expressions.Expression expression) => throw null;
            protected virtual System.Linq.IQueryProvider CreateWithOptions(NHibernate.Linq.NhQueryableOptions options) => throw null;
            public DefaultQueryProvider(NHibernate.Engine.ISessionImplementor session) => throw null;
            public DefaultQueryProvider(NHibernate.Engine.ISessionImplementor session, object collection) => throw null;
            protected DefaultQueryProvider(NHibernate.Engine.ISessionImplementor session, object collection, NHibernate.Linq.NhQueryableOptions options) => throw null;
            public virtual object Execute(System.Linq.Expressions.Expression expression) => throw null;
            public TResult Execute<TResult>(System.Linq.Expressions.Expression expression) => throw null;
            public System.Threading.Tasks.Task<TResult> ExecuteAsync<TResult>(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Threading.Tasks.Task<object> ExecuteAsync(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null;
            public int ExecuteDml<T>(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression) => throw null;
            public System.Threading.Tasks.Task<int> ExecuteDmlAsync<T>(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual NHibernate.IFutureEnumerable<TResult> ExecuteFuture<TResult>(System.Linq.Expressions.Expression expression) => throw null;
            public virtual NHibernate.IFutureValue<TResult> ExecuteFutureValue<TResult>(System.Linq.Expressions.Expression expression) => throw null;
            public virtual System.Collections.Generic.IList<TResult> ExecuteList<TResult>(System.Linq.Expressions.Expression expression) => throw null;
            public virtual System.Threading.Tasks.Task<System.Collections.Generic.IList<TResult>> ExecuteListAsync<TResult>(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual object ExecuteQuery(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhQuery) => throw null;
            protected virtual object ExecuteQuery(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query) => throw null;
            protected virtual System.Threading.Tasks.Task<object> ExecuteQueryAsync(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhQuery, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual System.Threading.Tasks.Task<object> ExecuteQueryAsync(NHibernate.Linq.NhLinqExpression nhLinqExpression, NHibernate.IQuery query, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.IQuery GetPreparedQuery(System.Linq.Expressions.Expression expression, out NHibernate.Linq.NhLinqExpression nhExpression) => throw null;
            protected virtual NHibernate.Linq.NhLinqExpression PrepareQuery(System.Linq.Expressions.Expression expression, out NHibernate.IQuery query) => throw null;
            public virtual NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            protected void SetParameters(NHibernate.IQuery query, System.Collections.Generic.IDictionary<string, NHibernate.Param.NamedParameter> parameters) => throw null;
            public virtual void SetResultTransformerAndAdditionalCriteria(NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhExpression, System.Collections.Generic.IDictionary<string, System.Tuple<object, NHibernate.Type.IType>> parameters) => throw null;
            public System.Linq.IQueryProvider WithOptions(System.Action<NHibernate.Linq.NhQueryableOptions> setOptions) => throw null;
        }
        public class DmlExpressionRewriter
        {
            public static System.Linq.Expressions.Expression PrepareExpression<TSource, TTarget>(System.Linq.Expressions.Expression sourceExpression, System.Linq.Expressions.Expression<System.Func<TSource, TTarget>> expression) => throw null;
            public static System.Linq.Expressions.Expression PrepareExpression<TSource>(System.Linq.Expressions.Expression sourceExpression, System.Collections.Generic.IReadOnlyDictionary<string, System.Linq.Expressions.Expression> assignments) => throw null;
            public static System.Linq.Expressions.Expression PrepareExpressionFromAnonymous<TSource>(System.Linq.Expressions.Expression sourceExpression, System.Linq.Expressions.Expression<System.Func<TSource, object>> expression) => throw null;
        }
        public static class DmlExtensionMethods
        {
            public static int Delete<TSource>(this System.Linq.IQueryable<TSource> source) => throw null;
            public static System.Threading.Tasks.Task<int> DeleteAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static NHibernate.Linq.InsertBuilder<TSource> InsertBuilder<TSource>(this System.Linq.IQueryable<TSource> source) => throw null;
            public static int InsertInto<TSource, TTarget>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TTarget>> expression) => throw null;
            public static int InsertInto<TSource, TTarget>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, object>> expression) => throw null;
            public static System.Threading.Tasks.Task<int> InsertIntoAsync<TSource, TTarget>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TTarget>> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int> InsertIntoAsync<TSource, TTarget>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, object>> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static int Update<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TSource>> expression) => throw null;
            public static int Update<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, object>> expression) => throw null;
            public static System.Threading.Tasks.Task<int> UpdateAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TSource>> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int> UpdateAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, object>> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static NHibernate.Linq.UpdateBuilder<TSource> UpdateBuilder<TSource>(this System.Linq.IQueryable<TSource> source) => throw null;
            public static int UpdateVersioned<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TSource>> expression) => throw null;
            public static int UpdateVersioned<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, object>> expression) => throw null;
            public static System.Threading.Tasks.Task<int> UpdateVersionedAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TSource>> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int> UpdateVersionedAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, object>> expression, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        }
        public static class EagerFetchingExtensionMethods
        {
            public static NHibernate.Linq.INhFetchRequest<TOriginating, TRelated> Fetch<TOriginating, TRelated>(this System.Linq.IQueryable<TOriginating> query, System.Linq.Expressions.Expression<System.Func<TOriginating, TRelated>> relatedObjectSelector) => throw null;
            public static NHibernate.Linq.INhFetchRequest<TOriginating, TOriginating> FetchLazyProperties<TOriginating>(this System.Linq.IQueryable<TOriginating> query) => throw null;
            public static NHibernate.Linq.INhFetchRequest<TOriginating, TRelated> FetchMany<TOriginating, TRelated>(this System.Linq.IQueryable<TOriginating> query, System.Linq.Expressions.Expression<System.Func<TOriginating, System.Collections.Generic.IEnumerable<TRelated>>> relatedObjectSelector) => throw null;
            public static NHibernate.Linq.INhFetchRequest<TQueried, TRelated> ThenFetch<TQueried, TFetch, TRelated>(this NHibernate.Linq.INhFetchRequest<TQueried, TFetch> query, System.Linq.Expressions.Expression<System.Func<TFetch, TRelated>> relatedObjectSelector) => throw null;
            public static NHibernate.Linq.INhFetchRequest<TQueried, TRelated> ThenFetchMany<TQueried, TFetch, TRelated>(this NHibernate.Linq.INhFetchRequest<TQueried, TFetch> query, System.Linq.Expressions.Expression<System.Func<TFetch, System.Collections.Generic.IEnumerable<TRelated>>> relatedObjectSelector) => throw null;
        }
        public static class EnumerableHelper
        {
            public static System.Reflection.MethodInfo GetMethod(string name, System.Type[] parameterTypes) => throw null;
            public static System.Reflection.MethodInfo GetMethod(string name, System.Type[] parameterTypes, System.Type[] genericTypeParameters) => throw null;
        }
        public static partial class ExpressionExtensions
        {
            public static bool IsGroupingElementOf(this Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression, Remotion.Linq.Clauses.ResultOperators.GroupResultOperator groupBy) => throw null;
            public static bool IsGroupingKey(this System.Linq.Expressions.MemberExpression expression) => throw null;
            public static bool IsGroupingKeyOf(this System.Linq.Expressions.MemberExpression expression, Remotion.Linq.Clauses.ResultOperators.GroupResultOperator groupBy) => throw null;
        }
        namespace Expressions
        {
            public abstract class NhAggregatedExpression : NHibernate.Linq.Expressions.NhExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public virtual bool AllowsNullableReturnType { get => throw null; }
                public abstract System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression);
                protected NhAggregatedExpression(System.Linq.Expressions.Expression expression) => throw null;
                protected NhAggregatedExpression(System.Linq.Expressions.Expression expression, System.Type type) => throw null;
                public System.Linq.Expressions.Expression Expression { get => throw null; }
                public override sealed System.Type Type { get => throw null; }
                protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null;
            }
            public class NhAverageExpression : NHibernate.Linq.Expressions.NhAggregatedExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null;
                public NhAverageExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null;
            }
            public abstract class NhCountExpression : NHibernate.Linq.Expressions.NhAggregatedExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public override bool AllowsNullableReturnType { get => throw null; }
                protected NhCountExpression(System.Linq.Expressions.Expression expression, System.Type type) : base(default(System.Linq.Expressions.Expression)) => throw null;
            }
            public class NhDistinctExpression : NHibernate.Linq.Expressions.NhAggregatedExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null;
                public NhDistinctExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null;
            }
            public abstract class NhExpression : System.Linq.Expressions.Expression
            {
                protected override sealed System.Linq.Expressions.Expression Accept(System.Linq.Expressions.ExpressionVisitor visitor) => throw null;
                protected abstract System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor);
                protected NhExpression() => throw null;
                public override sealed System.Linq.Expressions.ExpressionType NodeType { get => throw null; }
            }
            public class NhLongCountExpression : NHibernate.Linq.Expressions.NhCountExpression
            {
                public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null;
                public NhLongCountExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression), default(System.Type)) => throw null;
            }
            public class NhMaxExpression : NHibernate.Linq.Expressions.NhAggregatedExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null;
                public NhMaxExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null;
            }
            public class NhMinExpression : NHibernate.Linq.Expressions.NhAggregatedExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null;
                public NhMinExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null;
            }
            public class NhNewExpression : NHibernate.Linq.Expressions.NhExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> Arguments { get => throw null; }
                public NhNewExpression(System.Collections.Generic.IList<string> members, System.Collections.Generic.IList<System.Linq.Expressions.Expression> arguments) => throw null;
                public System.Collections.ObjectModel.ReadOnlyCollection<string> Members { get => throw null; }
                public override System.Type Type { get => throw null; }
                protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null;
            }
            public class NhNominatedExpression : NHibernate.Linq.Expressions.NhExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public NhNominatedExpression(System.Linq.Expressions.Expression expression) => throw null;
                public System.Linq.Expressions.Expression Expression { get => throw null; }
                public override System.Type Type { get => throw null; }
                protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null;
            }
            public class NhShortCountExpression : NHibernate.Linq.Expressions.NhCountExpression
            {
                public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null;
                public NhShortCountExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression), default(System.Type)) => throw null;
            }
            public class NhStarExpression : NHibernate.Linq.Expressions.NhExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public NhStarExpression(System.Linq.Expressions.Expression expression) => throw null;
                public System.Linq.Expressions.Expression Expression { get => throw null; }
                public override System.Type Type { get => throw null; }
                protected override System.Linq.Expressions.Expression VisitChildren(System.Linq.Expressions.ExpressionVisitor visitor) => throw null;
            }
            public class NhSumExpression : NHibernate.Linq.Expressions.NhAggregatedExpression
            {
                protected override System.Linq.Expressions.Expression Accept(NHibernate.Linq.Visitors.NhExpressionVisitor visitor) => throw null;
                public override System.Linq.Expressions.Expression CreateNew(System.Linq.Expressions.Expression expression) => throw null;
                public NhSumExpression(System.Linq.Expressions.Expression expression) : base(default(System.Linq.Expressions.Expression)) => throw null;
            }
        }
        public class ExpressionToHqlTranslationResults
        {
            public System.Collections.Generic.List<System.Action<NHibernate.IQuery, System.Collections.Generic.IDictionary<string, System.Tuple<object, NHibernate.Type.IType>>>> AdditionalCriteria { get => throw null; }
            public ExpressionToHqlTranslationResults(NHibernate.Hql.Ast.HqlTreeNode statement, System.Collections.Generic.IList<System.Linq.Expressions.LambdaExpression> itemTransformers, System.Collections.Generic.IList<System.Linq.Expressions.LambdaExpression> listTransformers, System.Collections.Generic.IList<System.Linq.Expressions.LambdaExpression> postExecuteTransformers, System.Collections.Generic.List<System.Action<NHibernate.IQuery, System.Collections.Generic.IDictionary<string, System.Tuple<object, NHibernate.Type.IType>>>> additionalCriteria, System.Type executeResultTypeOverride) => throw null;
            public System.Type ExecuteResultTypeOverride { get => throw null; }
            public System.Delegate PostExecuteTransformer { get => throw null; }
            public NHibernate.Linq.ResultTransformer ResultTransformer { get => throw null; }
            public NHibernate.Hql.Ast.HqlTreeNode Statement { get => throw null; }
        }
        namespace ExpressionTransformers
        {
            public class RemoveCharToIntConversion : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer<System.Linq.Expressions.BinaryExpression>
            {
                public RemoveCharToIntConversion() => throw null;
                public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; }
                public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.BinaryExpression expression) => throw null;
            }
            public class RemoveRedundantCast : Remotion.Linq.Parsing.ExpressionVisitors.Transformation.IExpressionTransformer<System.Linq.Expressions.UnaryExpression>
            {
                public RemoveRedundantCast() => throw null;
                public System.Linq.Expressions.ExpressionType[] SupportedExpressionTypes { get => throw null; }
                public System.Linq.Expressions.Expression Transform(System.Linq.Expressions.UnaryExpression expression) => throw null;
            }
        }
        namespace Functions
        {
            public class AllHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public AllHqlGenerator() => throw null;
            }
            public class AnyHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public AnyHqlGenerator() => throw null;
            }
            public abstract class BaseHqlGeneratorForMethod : NHibernate.Linq.Functions.IHqlGeneratorForMethod
            {
                public virtual bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public abstract NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor);
                protected BaseHqlGeneratorForMethod() => throw null;
                protected static readonly NHibernate.INHibernateLogger Log;
                public System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> SupportedMethods { get => throw null; set { } }
                public virtual bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null;
            }
            public abstract class BaseHqlGeneratorForProperty : NHibernate.Linq.Functions.IHqlGeneratorForProperty
            {
                public abstract NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor);
                protected BaseHqlGeneratorForProperty() => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> SupportedProperties { get => throw null; set { } }
            }
            public class CollectionContainsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public CollectionContainsGenerator() => throw null;
                public override bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null;
            }
            public class CollectionContainsRuntimeHqlGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator
            {
                public CollectionContainsRuntimeHqlGenerator() => throw null;
                public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null;
                public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null;
            }
            public class ContainsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public ContainsGenerator() => throw null;
            }
            public class ConvertToBooleanGenerator : NHibernate.Linq.Functions.ConvertToGenerator<bool>
            {
                public ConvertToBooleanGenerator() => throw null;
            }
            public class ConvertToDateTimeGenerator : NHibernate.Linq.Functions.ConvertToGenerator<System.DateTime>
            {
                public ConvertToDateTimeGenerator() => throw null;
            }
            public class ConvertToDecimalGenerator : NHibernate.Linq.Functions.ConvertToGenerator<decimal>
            {
                public ConvertToDecimalGenerator() => throw null;
            }
            public class ConvertToDoubleGenerator : NHibernate.Linq.Functions.ConvertToGenerator<double>
            {
                public ConvertToDoubleGenerator() => throw null;
            }
            public abstract class ConvertToGenerator<T> : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                protected ConvertToGenerator() => throw null;
            }
            public class ConvertToInt32Generator : NHibernate.Linq.Functions.ConvertToGenerator<int>
            {
                public ConvertToInt32Generator() => throw null;
            }
            public class DateTimeNowHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator
            {
                public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public DateTimeNowHqlGenerator() => throw null;
                public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null;
            }
            public class DateTimePropertiesHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public DateTimePropertiesHqlGenerator() => throw null;
            }
            public class DefaultLinqToHqlGeneratorsRegistry : NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry
            {
                public DefaultLinqToHqlGeneratorsRegistry() => throw null;
                protected bool GetRuntimeMethodGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod methodGenerator) => throw null;
                public virtual void RegisterGenerator(System.Reflection.MethodInfo method, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null;
                public virtual void RegisterGenerator(System.Reflection.MemberInfo property, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null;
                public void RegisterGenerator(NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator generator) => throw null;
                public virtual bool TryGetGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null;
                public virtual bool TryGetGenerator(System.Reflection.MemberInfo property, out NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null;
            }
            public class DictionaryContainsKeyGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public DictionaryContainsKeyGenerator() => throw null;
            }
            public class DictionaryContainsKeyRuntimeHqlGenerator : NHibernate.Linq.Functions.DictionaryRuntimeMethodHqlGeneratorBase<NHibernate.Linq.Functions.DictionaryContainsKeyGenerator>
            {
                public DictionaryContainsKeyRuntimeHqlGenerator() => throw null;
                protected override string MethodName { get => throw null; }
            }
            public class DictionaryItemGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public DictionaryItemGenerator() => throw null;
            }
            public class DictionaryItemRuntimeHqlGenerator : NHibernate.Linq.Functions.DictionaryRuntimeMethodHqlGeneratorBase<NHibernate.Linq.Functions.DictionaryItemGenerator>
            {
                public DictionaryItemRuntimeHqlGenerator() => throw null;
                protected override string MethodName { get => throw null; }
            }
            public abstract class DictionaryRuntimeMethodHqlGeneratorBase<TGenerator> : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator where TGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, new()
            {
                protected DictionaryRuntimeMethodHqlGeneratorBase() => throw null;
                public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null;
                protected abstract string MethodName { get; }
                public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null;
            }
            public class EndsWithGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public EndsWithGenerator() => throw null;
            }
            public class EqualsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public EqualsGenerator() => throw null;
            }
            public class GenericDictionaryContainsKeyRuntimeHqlGenerator : NHibernate.Linq.Functions.GenericDictionaryRuntimeMethodHqlGeneratorBase<NHibernate.Linq.Functions.DictionaryContainsKeyGenerator>
            {
                public GenericDictionaryContainsKeyRuntimeHqlGenerator() => throw null;
                protected override string MethodName { get => throw null; }
            }
            public class GenericDictionaryItemRuntimeHqlGenerator : NHibernate.Linq.Functions.GenericDictionaryRuntimeMethodHqlGeneratorBase<NHibernate.Linq.Functions.DictionaryItemGenerator>
            {
                public GenericDictionaryItemRuntimeHqlGenerator() => throw null;
                protected override string MethodName { get => throw null; }
            }
            public abstract class GenericDictionaryRuntimeMethodHqlGeneratorBase<TGenerator> : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator where TGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, new()
            {
                protected GenericDictionaryRuntimeMethodHqlGeneratorBase() => throw null;
                public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null;
                protected abstract string MethodName { get; }
                public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null;
            }
            public class GetCharsGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public GetCharsGenerator() => throw null;
            }
            public class HqlGeneratorForExtensionMethod : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public HqlGeneratorForExtensionMethod(NHibernate.Linq.LinqExtensionMethodAttribute attribute, System.Reflection.MethodInfo method) => throw null;
            }
            public static partial class HqlGeneratorForPropertyExtensions
            {
                public static bool AllowPreEvaluation(this NHibernate.Linq.Functions.IHqlGeneratorForProperty generator, System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            }
            public interface IAllowPreEvaluationHqlGenerator
            {
                bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory);
                bool IgnoreInstance(System.Reflection.MemberInfo member);
            }
            public interface IHqlGeneratorForMethod
            {
                NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor);
                System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> SupportedMethods { get; }
            }
            public interface IHqlGeneratorForProperty
            {
                NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor);
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> SupportedProperties { get; }
            }
            public interface ILinqToHqlGeneratorsRegistry
            {
                void RegisterGenerator(System.Reflection.MethodInfo method, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator);
                void RegisterGenerator(System.Reflection.MemberInfo property, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator);
                void RegisterGenerator(NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator generator);
                bool TryGetGenerator(System.Reflection.MethodInfo method, out NHibernate.Linq.Functions.IHqlGeneratorForMethod generator);
                bool TryGetGenerator(System.Reflection.MemberInfo property, out NHibernate.Linq.Functions.IHqlGeneratorForProperty generator);
            }
            public class IndexOfGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public IndexOfGenerator() => throw null;
            }
            public interface IRuntimeMethodHqlGenerator
            {
                NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method);
                bool SupportsMethod(System.Reflection.MethodInfo method);
            }
            public class LengthGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForProperty
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MemberInfo member, System.Linq.Expressions.Expression expression, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public LengthGenerator() => throw null;
            }
            public class LikeGenerator : NHibernate.Linq.Functions.IHqlGeneratorForMethod, NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator
            {
                public bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public LikeGenerator() => throw null;
                public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> SupportedMethods { get => throw null; }
                public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null;
                public bool TryGetCollectionParameter(System.Linq.Expressions.MethodCallExpression expression, out System.Linq.Expressions.ConstantExpression collectionParameter) => throw null;
            }
            public static partial class LinqToHqlGeneratorsRegistryExtensions
            {
                public static void Merge(this NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry registry, NHibernate.Linq.Functions.IHqlGeneratorForMethod generator) => throw null;
                public static void Merge(this NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry registry, NHibernate.Linq.Functions.IHqlGeneratorForProperty generator) => throw null;
            }
            public sealed class LinqToHqlGeneratorsRegistryFactory
            {
                public static NHibernate.Linq.Functions.ILinqToHqlGeneratorsRegistry CreateGeneratorsRegistry(System.Collections.Generic.IDictionary<string, string> properties) => throw null;
                public LinqToHqlGeneratorsRegistryFactory() => throw null;
            }
            public class MathGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression expression, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public MathGenerator() => throw null;
            }
            public class MaxHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public MaxHqlGenerator() => throw null;
            }
            public class MinHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public MinHqlGenerator() => throw null;
            }
            public class NewGuidHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator
            {
                public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public NewGuidHqlGenerator() => throw null;
                public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null;
            }
            public class RandomHqlGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod, NHibernate.Linq.Functions.IAllowPreEvaluationHqlGenerator
            {
                public bool AllowPreEvaluation(System.Reflection.MemberInfo member, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public RandomHqlGenerator() => throw null;
                public bool IgnoreInstance(System.Reflection.MemberInfo member) => throw null;
            }
            public class ReplaceGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public ReplaceGenerator() => throw null;
            }
            public class StandardLinqExtensionMethodGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator
            {
                public StandardLinqExtensionMethodGenerator() => throw null;
                public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null;
                public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null;
            }
            public class StartsWithGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override bool AllowsNullableReturnType(System.Reflection.MethodInfo method) => throw null;
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public StartsWithGenerator() => throw null;
            }
            public class SubStringGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public SubStringGenerator() => throw null;
            }
            public class ToLowerGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public ToLowerGenerator() => throw null;
            }
            public class ToStringHqlGeneratorForMethod : NHibernate.Linq.Functions.IHqlGeneratorForMethod
            {
                public NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public ToStringHqlGeneratorForMethod() => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MethodInfo> SupportedMethods { get => throw null; }
            }
            public class ToStringRuntimeMethodHqlGenerator : NHibernate.Linq.Functions.IRuntimeMethodHqlGenerator
            {
                public ToStringRuntimeMethodHqlGenerator() => throw null;
                public NHibernate.Linq.Functions.IHqlGeneratorForMethod GetMethodGenerator(System.Reflection.MethodInfo method) => throw null;
                public bool SupportsMethod(System.Reflection.MethodInfo method) => throw null;
            }
            public class ToUpperGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public ToUpperGenerator() => throw null;
            }
            public class TrimGenerator : NHibernate.Linq.Functions.BaseHqlGeneratorForMethod
            {
                public override NHibernate.Hql.Ast.HqlTreeNode BuildHql(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression> arguments, NHibernate.Hql.Ast.HqlTreeBuilder treeBuilder, NHibernate.Linq.Visitors.IHqlExpressionVisitor visitor) => throw null;
                public TrimGenerator() => throw null;
            }
        }
        namespace GroupBy
        {
            public static class AggregatingGroupByRewriter
            {
                public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null;
            }
            public class ClientSideSelect : NHibernate.Linq.ResultOperators.ClientSideTransformOperator
            {
                public ClientSideSelect(System.Linq.Expressions.LambdaExpression selectClause) => throw null;
                public System.Linq.Expressions.LambdaExpression SelectClause { get => throw null; }
            }
            public class ClientSideSelect2 : NHibernate.Linq.ResultOperators.ClientSideTransformOperator
            {
                public ClientSideSelect2(System.Linq.Expressions.LambdaExpression selectClause) => throw null;
                public System.Linq.Expressions.LambdaExpression SelectClause { get => throw null; }
            }
            public static class NonAggregatingGroupByRewriter
            {
                public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null;
            }
        }
        namespace GroupJoin
        {
            public static class AggregatingGroupJoinRewriter
            {
                public static void ReWrite(Remotion.Linq.QueryModel model) => throw null;
            }
            public class GroupJoinSelectClauseRewriter : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public static System.Linq.Expressions.Expression ReWrite(System.Linq.Expressions.Expression expression, NHibernate.Linq.GroupJoin.IsAggregatingResults results) => throw null;
                protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null;
            }
            public class IsAggregatingResults
            {
                public System.Collections.Generic.List<Remotion.Linq.Clauses.GroupJoinClause> AggregatingClauses { get => throw null; set { } }
                public IsAggregatingResults() => throw null;
                public System.Collections.Generic.List<Remotion.Linq.Clauses.GroupJoinClause> NonAggregatingClauses { get => throw null; set { } }
                public System.Collections.Generic.List<System.Linq.Expressions.Expression> NonAggregatingExpressions { get => throw null; set { } }
            }
            public class LocateGroupJoinQuerySource : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public LocateGroupJoinQuerySource(NHibernate.Linq.GroupJoin.IsAggregatingResults results) => throw null;
                public Remotion.Linq.Clauses.GroupJoinClause Detect(System.Linq.Expressions.Expression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null;
            }
        }
        public interface ILinqQueryExpression : NHibernate.IQueryExpression
        {
            void CopyExpressionTranslation(NHibernate.Linq.NhLinqExpressionCache cache);
            NHibernate.Linq.ExpressionToHqlTranslationResults ExpressionToHqlTranslationResults { get; }
            System.Collections.Generic.IDictionary<string, System.Tuple<NHibernate.Type.IType, bool>> GetNamedParameterTypes();
        }
        public interface INhFetchRequest<TQueried, TFetch> : System.Collections.Generic.IEnumerable<TQueried>, System.Collections.IEnumerable, System.Linq.IOrderedQueryable<TQueried>, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable<TQueried>
        {
        }
        public interface INhQueryModelVisitor : Remotion.Linq.IQueryModelVisitor
        {
            void VisitNhHavingClause(NHibernate.Linq.Clauses.NhHavingClause nhWhereClause, Remotion.Linq.QueryModel queryModel, int index);
            void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause nhJoinClause, Remotion.Linq.QueryModel queryModel, int index);
            void VisitNhWithClause(NHibernate.Linq.Clauses.NhWithClause nhWhereClause, Remotion.Linq.QueryModel queryModel, int index);
        }
        public interface INhQueryProvider : System.Linq.IQueryProvider
        {
            System.Threading.Tasks.Task<TResult> ExecuteAsync<TResult>(System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken);
            int ExecuteDml<T>(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression);
            System.Threading.Tasks.Task<int> ExecuteDmlAsync<T>(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression, System.Threading.CancellationToken cancellationToken);
            NHibernate.IFutureEnumerable<TResult> ExecuteFuture<TResult>(System.Linq.Expressions.Expression expression);
            NHibernate.IFutureValue<TResult> ExecuteFutureValue<TResult>(System.Linq.Expressions.Expression expression);
            void SetResultTransformerAndAdditionalCriteria(NHibernate.IQuery query, NHibernate.Linq.NhLinqExpression nhExpression, System.Collections.Generic.IDictionary<string, System.Tuple<object, NHibernate.Type.IType>> parameters);
        }
        public class InsertBuilder<TSource, TTarget>
        {
            public int Insert() => throw null;
            public System.Threading.Tasks.Task<int> InsertAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public NHibernate.Linq.InsertBuilder<TSource, TTarget> Value<TProp>(System.Linq.Expressions.Expression<System.Func<TTarget, TProp>> property, System.Linq.Expressions.Expression<System.Func<TSource, TProp>> expression) => throw null;
            public NHibernate.Linq.InsertBuilder<TSource, TTarget> Value<TProp>(System.Linq.Expressions.Expression<System.Func<TTarget, TProp>> property, TProp value) => throw null;
        }
        public class InsertBuilder<TSource>
        {
            public NHibernate.Linq.InsertBuilder<TSource, TTarget> Into<TTarget>() => throw null;
        }
        public class IntermediateHqlTree
        {
            public void AddAdditionalCriteria(System.Action<NHibernate.IQuery, System.Collections.Generic.IDictionary<string, System.Tuple<object, NHibernate.Type.IType>>> criteria) => throw null;
            public void AddDistinctRootOperator() => throw null;
            public void AddFromClause(NHibernate.Hql.Ast.HqlTreeNode from) => throw null;
            public void AddFromLastChildClause(params NHibernate.Hql.Ast.HqlTreeNode[] nodes) => throw null;
            public void AddGroupByClause(NHibernate.Hql.Ast.HqlGroupBy groupBy) => throw null;
            public void AddHavingClause(NHibernate.Hql.Ast.HqlBooleanExpression where) => throw null;
            public void AddInsertClause(NHibernate.Hql.Ast.HqlIdent target, NHibernate.Hql.Ast.HqlRange columnSpec) => throw null;
            public void AddItemTransformer(System.Linq.Expressions.LambdaExpression transformer) => throw null;
            public void AddListTransformer(System.Linq.Expressions.LambdaExpression lambda) => throw null;
            public void AddOrderByClause(NHibernate.Hql.Ast.HqlExpression orderBy, NHibernate.Hql.Ast.HqlDirectionStatement direction) => throw null;
            public void AddPostExecuteTransformer(System.Linq.Expressions.LambdaExpression lambda) => throw null;
            public void AddSelectClause(NHibernate.Hql.Ast.HqlTreeNode select) => throw null;
            public void AddSet(NHibernate.Hql.Ast.HqlEquality equality) => throw null;
            public void AddSkipClause(NHibernate.Hql.Ast.HqlExpression toSkip) => throw null;
            public void AddTakeClause(NHibernate.Hql.Ast.HqlExpression toTake) => throw null;
            public void AddWhereClause(NHibernate.Hql.Ast.HqlBooleanExpression where) => throw null;
            public IntermediateHqlTree(bool root, NHibernate.Linq.QueryMode mode) => throw null;
            public System.Type ExecuteResultTypeOverride { get => throw null; set { } }
            public NHibernate.Linq.ExpressionToHqlTranslationResults GetTranslation() => throw null;
            public bool IsRoot { get => throw null; }
            public NHibernate.Hql.Ast.HqlTreeNode Root { get => throw null; }
            public void SetRoot(NHibernate.Hql.Ast.HqlTreeNode newRoot) => throw null;
            public NHibernate.Hql.Ast.HqlTreeBuilder TreeBuilder { get => throw null; }
        }
        public interface IQueryableOptions
        {
            NHibernate.Linq.IQueryableOptions SetCacheable(bool cacheable);
            NHibernate.Linq.IQueryableOptions SetCacheMode(NHibernate.CacheMode cacheMode);
            NHibernate.Linq.IQueryableOptions SetCacheRegion(string cacheRegion);
            NHibernate.Linq.IQueryableOptions SetTimeout(int timeout);
        }
        public interface IQueryProviderWithOptions : System.Linq.IQueryProvider
        {
            System.Linq.IQueryProvider WithOptions(System.Action<NHibernate.Linq.NhQueryableOptions> setOptions);
        }
        public interface ISupportFutureBatchNhQueryProvider
        {
            NHibernate.IQuery GetPreparedQuery(System.Linq.Expressions.Expression expression, out NHibernate.Linq.NhLinqExpression nhExpression);
            NHibernate.Engine.ISessionImplementor Session { get; }
        }
        public class LinqExtensionMethodAttribute : NHibernate.Linq.LinqExtensionMethodAttributeBase
        {
            public LinqExtensionMethodAttribute() : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null;
            public LinqExtensionMethodAttribute(string name) : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null;
            public LinqExtensionMethodAttribute(NHibernate.Linq.LinqExtensionPreEvaluation preEvaluation) : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null;
            public LinqExtensionMethodAttribute(string name, NHibernate.Linq.LinqExtensionPreEvaluation preEvaluation) : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null;
            public string Name { get => throw null; }
        }
        public abstract class LinqExtensionMethodAttributeBase : System.Attribute
        {
            protected LinqExtensionMethodAttributeBase(NHibernate.Linq.LinqExtensionPreEvaluation preEvaluation) => throw null;
            public NHibernate.Linq.LinqExtensionPreEvaluation PreEvaluation { get => throw null; }
        }
        public static class LinqExtensionMethods
        {
            public static System.Threading.Tasks.Task<bool> AllAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<bool> AnyAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<bool> AnyAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> AverageAsync(this System.Linq.IQueryable<int> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> AverageAsync(this System.Linq.IQueryable<int?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> AverageAsync(this System.Linq.IQueryable<long> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> AverageAsync(this System.Linq.IQueryable<long?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float> AverageAsync(this System.Linq.IQueryable<float> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float?> AverageAsync(this System.Linq.IQueryable<float?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> AverageAsync(this System.Linq.IQueryable<double> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> AverageAsync(this System.Linq.IQueryable<double?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal> AverageAsync(this System.Linq.IQueryable<decimal> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal?> AverageAsync(this System.Linq.IQueryable<decimal?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, int>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, int?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, long>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, long?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, float>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float?> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, float?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, double>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, double?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, decimal>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal?> AverageAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, decimal?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Linq.IQueryable<T> Cacheable<T>(this System.Linq.IQueryable<T> query) => throw null;
            public static System.Linq.IQueryable<T> CacheMode<T>(this System.Linq.IQueryable<T> query, NHibernate.CacheMode cacheMode) => throw null;
            public static System.Linq.IQueryable<T> CacheRegion<T>(this System.Linq.IQueryable<T> query, string region) => throw null;
            public static System.Threading.Tasks.Task<int> CountAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int> CountAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> FirstAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> FirstAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> FirstOrDefaultAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> FirstOrDefaultAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Linq.IQueryable<TResult> LeftJoin<TOuter, TInner, TKey, TResult>(this System.Linq.IQueryable<TOuter> outer, System.Linq.IQueryable<TInner> inner, System.Linq.Expressions.Expression<System.Func<TOuter, TKey>> outerKeySelector, System.Linq.Expressions.Expression<System.Func<TInner, TKey>> innerKeySelector, System.Linq.Expressions.Expression<System.Func<TOuter, TInner, TResult>> resultSelector) => throw null;
            public static System.Threading.Tasks.Task<long> LongCountAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<long> LongCountAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static T MappedAs<T>(this T parameter, NHibernate.Type.IType type) => throw null;
            public static System.Threading.Tasks.Task<TSource> MaxAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TResult> MaxAsync<TSource, TResult>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TResult>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> MinAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TResult> MinAsync<TSource, TResult>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, TResult>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Linq.IQueryable<T> SetOptions<T>(this System.Linq.IQueryable<T> query, System.Action<NHibernate.Linq.IQueryableOptions> setOptions) => throw null;
            public static System.Threading.Tasks.Task<TSource> SingleAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> SingleAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> SingleOrDefaultAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<TSource> SingleOrDefaultAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int> SumAsync(this System.Linq.IQueryable<int> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int?> SumAsync(this System.Linq.IQueryable<int?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<long> SumAsync(this System.Linq.IQueryable<long> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<long?> SumAsync(this System.Linq.IQueryable<long?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float> SumAsync(this System.Linq.IQueryable<float> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float?> SumAsync(this System.Linq.IQueryable<float?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> SumAsync(this System.Linq.IQueryable<double> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> SumAsync(this System.Linq.IQueryable<double?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal> SumAsync(this System.Linq.IQueryable<decimal> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal?> SumAsync(this System.Linq.IQueryable<decimal?> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, int>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<int?> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, int?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<long> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, long>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<long?> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, long?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, float>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<float?> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, float?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, double>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<double?> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, double?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, decimal>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Threading.Tasks.Task<decimal?> SumAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, decimal?>> selector, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Linq.IQueryable<T> Timeout<T>(this System.Linq.IQueryable<T> query, int timeout) => throw null;
            public static NHibernate.IFutureEnumerable<TSource> ToFuture<TSource>(this System.Linq.IQueryable<TSource> source) => throw null;
            public static NHibernate.IFutureValue<TSource> ToFutureValue<TSource>(this System.Linq.IQueryable<TSource> source) => throw null;
            public static NHibernate.IFutureValue<TResult> ToFutureValue<TSource, TResult>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<System.Func<System.Linq.IQueryable<TSource>, TResult>> selector) => throw null;
            public static System.Threading.Tasks.Task<System.Collections.Generic.List<TSource>> ToListAsync<TSource>(this System.Linq.IQueryable<TSource> source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public static System.Linq.IQueryable<T> WithLock<T>(this System.Linq.IQueryable<T> query, NHibernate.LockMode lockMode) => throw null;
            public static System.Collections.Generic.IEnumerable<T> WithLock<T>(this System.Collections.Generic.IEnumerable<T> query, NHibernate.LockMode lockMode) => throw null;
            public static System.Linq.IQueryable<T> WithOptions<T>(this System.Linq.IQueryable<T> query, System.Action<NHibernate.Linq.NhQueryableOptions> setOptions) => throw null;
        }
        public enum LinqExtensionPreEvaluation
        {
            NoEvaluation = 0,
            AllowPreEvaluation = 1,
        }
        public class NhFetchRequest<TQueried, TFetch> : Remotion.Linq.QueryableBase<TQueried>, System.Collections.Generic.IEnumerable<TQueried>, System.Collections.IEnumerable, NHibernate.Linq.INhFetchRequest<TQueried, TFetch>, System.Linq.IOrderedQueryable<TQueried>, System.Linq.IOrderedQueryable, System.Linq.IQueryable, System.Linq.IQueryable<TQueried>
        {
            public NhFetchRequest(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression) : base(default(System.Linq.IQueryProvider)) => throw null;
        }
        public class NHibernateNodeTypeProvider : Remotion.Linq.Parsing.Structure.INodeTypeProvider
        {
            public NHibernateNodeTypeProvider() => throw null;
            public System.Type GetNodeType(System.Reflection.MethodInfo method) => throw null;
            public bool IsRegistered(System.Reflection.MethodInfo method) => throw null;
        }
        public class NhLinqDmlExpression<T> : NHibernate.Linq.NhLinqExpression
        {
            public NhLinqDmlExpression(NHibernate.Linq.QueryMode queryMode, System.Linq.Expressions.Expression expression, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) : base(default(System.Linq.Expressions.Expression), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            protected override System.Type TargetType { get => throw null; }
        }
        public class NhLinqExpression : NHibernate.Linq.ILinqQueryExpression, NHibernate.IQueryExpression
        {
            public bool CanCachePlan { get => throw null; }
            public void CopyExpressionTranslation(NHibernate.Linq.NhLinqExpressionCache cache) => throw null;
            public NhLinqExpression(System.Linq.Expressions.Expression expression, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
            public NHibernate.Linq.ExpressionToHqlTranslationResults ExpressionToHqlTranslationResults { get => throw null; }
            public System.Collections.Generic.IDictionary<string, System.Tuple<NHibernate.Type.IType, bool>> GetNamedParameterTypes() => throw null;
            public string Key { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, NHibernate.Param.NamedParameter> NamedParameters { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Engine.Query.NamedParameterDescriptor> ParameterDescriptors { get => throw null; }
            public System.Collections.Generic.IDictionary<string, System.Tuple<object, NHibernate.Type.IType>> ParameterValuesByName { get => throw null; }
            protected virtual NHibernate.Linq.QueryMode QueryMode { get => throw null; }
            public NHibernate.Linq.NhLinqExpressionReturnType ReturnType { get => throw null; }
            protected virtual System.Type TargetType { get => throw null; }
            public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, bool filter) => throw null;
            public System.Type Type { get => throw null; }
        }
        public class NhLinqExpressionCache : NHibernate.IQueryExpression
        {
            public NHibernate.Linq.ExpressionToHqlTranslationResults ExpressionToHqlTranslationResults { get => throw null; }
            public string Key { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Engine.Query.NamedParameterDescriptor> ParameterDescriptors { get => throw null; }
            public NHibernate.Hql.Ast.ANTLR.Tree.IASTNode Translate(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, bool filter) => throw null;
            public System.Type Type { get => throw null; }
        }
        public enum NhLinqExpressionReturnType
        {
            Sequence = 0,
            Scalar = 1,
        }
        public class NhQueryable<T> : Remotion.Linq.QueryableBase<T>, System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
        {
            public NhQueryable(NHibernate.Engine.ISessionImplementor session) : base(default(System.Linq.IQueryProvider)) => throw null;
            public NhQueryable(NHibernate.Engine.ISessionImplementor session, string entityName) : base(default(System.Linq.IQueryProvider)) => throw null;
            public NhQueryable(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression) : base(default(System.Linq.IQueryProvider)) => throw null;
            public NhQueryable(System.Linq.IQueryProvider provider, System.Linq.Expressions.Expression expression, string entityName) : base(default(System.Linq.IQueryProvider)) => throw null;
            public NhQueryable(NHibernate.Engine.ISessionImplementor session, object collection) : base(default(System.Linq.IQueryProvider)) => throw null;
            public string EntityName { get => throw null; }
            System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerable<T>.GetEnumerator() => throw null;
            public override string ToString() => throw null;
        }
        public class NhQueryableOptions : NHibernate.Linq.IQueryableOptions
        {
            protected void Apply(NHibernate.IQuery query) => throw null;
            protected bool? Cacheable { get => throw null; }
            protected NHibernate.CacheMode? CacheMode { get => throw null; }
            protected string CacheRegion { get => throw null; }
            protected NHibernate.Linq.NhQueryableOptions Clone() => throw null;
            protected string Comment { get => throw null; }
            public NhQueryableOptions() => throw null;
            protected NHibernate.FlushMode? FlushMode { get => throw null; }
            protected bool? ReadOnly { get => throw null; }
            NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheable(bool cacheable) => throw null;
            public NHibernate.Linq.NhQueryableOptions SetCacheable(bool cacheable) => throw null;
            NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
            public NHibernate.Linq.NhQueryableOptions SetCacheMode(NHibernate.CacheMode cacheMode) => throw null;
            NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetCacheRegion(string cacheRegion) => throw null;
            public NHibernate.Linq.NhQueryableOptions SetCacheRegion(string cacheRegion) => throw null;
            public NHibernate.Linq.NhQueryableOptions SetComment(string comment) => throw null;
            public NHibernate.Linq.NhQueryableOptions SetFlushMode(NHibernate.FlushMode flushMode) => throw null;
            public NHibernate.Linq.NhQueryableOptions SetReadOnly(bool readOnly) => throw null;
            NHibernate.Linq.IQueryableOptions NHibernate.Linq.IQueryableOptions.SetTimeout(int timeout) => throw null;
            public NHibernate.Linq.NhQueryableOptions SetTimeout(int timeout) => throw null;
            protected int? Timeout { get => throw null; }
        }
        public static class NhRelinqQueryParser
        {
            public static Remotion.Linq.QueryModel Parse(System.Linq.Expressions.Expression expression) => throw null;
            public static System.Linq.Expressions.Expression PreTransform(System.Linq.Expressions.Expression expression) => throw null;
            public static NHibernate.Linq.Visitors.PreTransformationResult PreTransform(System.Linq.Expressions.Expression expression, NHibernate.Linq.Visitors.PreTransformationParameters parameters) => throw null;
        }
        public class NoPreEvaluationAttribute : NHibernate.Linq.LinqExtensionMethodAttributeBase
        {
            public NoPreEvaluationAttribute() : base(default(NHibernate.Linq.LinqExtensionPreEvaluation)) => throw null;
        }
        public enum QueryMode
        {
            Select = 0,
            Delete = 1,
            Update = 2,
            UpdateVersioned = 3,
            Insert = 4,
        }
        public class QuerySourceNamer
        {
            public void Add(Remotion.Linq.Clauses.IQuerySource querySource) => throw null;
            public QuerySourceNamer() => throw null;
            public string GetName(Remotion.Linq.Clauses.IQuerySource querySource) => throw null;
        }
        public static class ReflectionHelper
        {
            public static System.Reflection.MethodInfo GetMethod<TSource>(System.Linq.Expressions.Expression<System.Action<TSource>> method) => throw null;
            public static System.Reflection.MethodInfo GetMethod(System.Linq.Expressions.Expression<System.Action> method) => throw null;
            public static System.Reflection.MethodInfo GetMethodDefinition<TSource>(System.Linq.Expressions.Expression<System.Action<TSource>> method) => throw null;
            public static System.Reflection.MethodInfo GetMethodDefinition(System.Linq.Expressions.Expression<System.Action> method) => throw null;
            public static System.Reflection.MemberInfo GetProperty<TSource, TResult>(System.Linq.Expressions.Expression<System.Func<TSource, TResult>> property) => throw null;
        }
        namespace ResultOperators
        {
            public class ClientSideTransformOperator : Remotion.Linq.Clauses.ResultOperatorBase
            {
                public override Remotion.Linq.Clauses.ResultOperatorBase Clone(Remotion.Linq.Clauses.CloneContext cloneContext) => throw null;
                public ClientSideTransformOperator() => throw null;
                public override Remotion.Linq.Clauses.StreamedData.IStreamedData ExecuteInMemory(Remotion.Linq.Clauses.StreamedData.IStreamedData input) => throw null;
                public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null;
                public override void TransformExpressions(System.Func<System.Linq.Expressions.Expression, System.Linq.Expressions.Expression> transformation) => throw null;
            }
            public class NonAggregatingGroupBy : NHibernate.Linq.ResultOperators.ClientSideTransformOperator
            {
                public NonAggregatingGroupBy(Remotion.Linq.Clauses.ResultOperators.GroupResultOperator groupBy) => throw null;
                public override Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo GetOutputDataInfo(Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo inputInfo) => throw null;
                public Remotion.Linq.Clauses.ResultOperators.GroupResultOperator GroupBy { get => throw null; }
            }
        }
        public class ResultTransformer : System.IEquatable<NHibernate.Linq.ResultTransformer>, NHibernate.Transform.IResultTransformer
        {
            public ResultTransformer(System.Func<object[], object> itemTransformation, System.Func<System.Collections.Generic.IEnumerable<object>, object> listTransformation) => throw null;
            public bool Equals(NHibernate.Linq.ResultTransformer other) => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public System.Collections.IList TransformList(System.Collections.IList collection) => throw null;
            public object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        namespace ReWriters
        {
            public class AddJoinsReWriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor
            {
                public bool IsEntity(System.Type type) => throw null;
                public bool IsIdentifier(System.Type type, string propertyName) => throw null;
                public static void ReWrite(Remotion.Linq.QueryModel queryModel, NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null;
                public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitNhHavingClause(NHibernate.Linq.Clauses.NhHavingClause havingClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public void VisitNhOuterJoinClause(NHibernate.Linq.Clauses.NhOuterJoinClause nhOuterJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitOrdering(Remotion.Linq.Clauses.Ordering ordering, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause, int index) => throw null;
                public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            public class ArrayIndexExpressionFlattener : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public ArrayIndexExpressionFlattener() => throw null;
                public static void ReWrite(Remotion.Linq.QueryModel model) => throw null;
                protected override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null;
            }
            public class MergeAggregatingResultsRewriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase
            {
                public static void ReWrite(Remotion.Linq.QueryModel model) => throw null;
                public override void VisitOrdering(Remotion.Linq.Clauses.Ordering ordering, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.OrderByClause orderByClause, int index) => throw null;
                public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            public class MoveOrderByToEndRewriter
            {
                public MoveOrderByToEndRewriter() => throw null;
                public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null;
            }
            public class QueryReferenceExpressionFlattener : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public static void ReWrite(Remotion.Linq.QueryModel model) => throw null;
                protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression subQuery) => throw null;
            }
            public class RemoveUnnecessaryBodyOperators : NHibernate.Linq.Visitors.NhQueryModelVisitorBase
            {
                public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            public class ResultOperatorRemover : NHibernate.Linq.Visitors.NhQueryModelVisitorBase
            {
                public static void Remove(Remotion.Linq.QueryModel queryModel, System.Func<Remotion.Linq.Clauses.ResultOperatorBase, bool> predicate) => throw null;
                public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            public class ResultOperatorRewriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase
            {
                public static NHibernate.Linq.ReWriters.ResultOperatorRewriterResult Rewrite(Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null;
            }
            public class ResultOperatorRewriterResult
            {
                public ResultOperatorRewriterResult(System.Collections.Generic.IEnumerable<Remotion.Linq.Clauses.ResultOperatorBase> rewrittenOperators, Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo evaluationType) => throw null;
                public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo EvaluationType { get => throw null; }
                public System.Collections.Generic.IEnumerable<Remotion.Linq.Clauses.ResultOperatorBase> RewrittenOperators { get => throw null; }
            }
        }
        public static class SqlMethods
        {
            public static bool Like(this string matchExpression, string sqlLikePattern) => throw null;
            public static bool Like(this string matchExpression, string sqlLikePattern, char escapeCharacter) => throw null;
        }
        public class UpdateBuilder<TSource>
        {
            public NHibernate.Linq.UpdateBuilder<TSource> Set<TProp>(System.Linq.Expressions.Expression<System.Func<TSource, TProp>> property, System.Linq.Expressions.Expression<System.Func<TSource, TProp>> expression) => throw null;
            public NHibernate.Linq.UpdateBuilder<TSource> Set<TProp>(System.Linq.Expressions.Expression<System.Func<TSource, TProp>> property, TProp value) => throw null;
            public int Update() => throw null;
            public System.Threading.Tasks.Task<int> UpdateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public int UpdateVersioned() => throw null;
            public System.Threading.Tasks.Task<int> UpdateVersionedAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        }
        namespace Visitors
        {
            public static class BooleanToCaseConvertor
            {
                public static System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> Convert(System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> hqlTreeNodes) => throw null;
                public static NHibernate.Hql.Ast.HqlExpression ConvertBooleanToCase(NHibernate.Hql.Ast.HqlExpression node) => throw null;
            }
            public class EqualityHqlGenerator
            {
                public EqualityHqlGenerator(NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null;
                public NHibernate.Hql.Ast.HqlBooleanExpression Visit(System.Linq.Expressions.Expression innerKeySelector, System.Linq.Expressions.Expression outerKeySelector) => throw null;
            }
            public class ExpressionKeyVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public override string ToString() => throw null;
                public static string Visit(System.Linq.Expressions.Expression expression, System.Collections.Generic.IDictionary<System.Linq.Expressions.ConstantExpression, NHibernate.Param.NamedParameter> parameters) => throw null;
                public static string Visit(System.Linq.Expressions.Expression rootExpression, System.Collections.Generic.IDictionary<System.Linq.Expressions.ConstantExpression, NHibernate.Param.NamedParameter> parameters, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                protected override System.Linq.Expressions.Expression VisitBinary(System.Linq.Expressions.BinaryExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitConditional(System.Linq.Expressions.ConditionalExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitDynamic(System.Linq.Expressions.DynamicExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitLambda<T>(System.Linq.Expressions.Expression<T> expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitMember(System.Linq.Expressions.MemberExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitNew(System.Linq.Expressions.NewExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitParameter(System.Linq.Expressions.ParameterExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitTypeBinary(System.Linq.Expressions.TypeBinaryExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression expression) => throw null;
            }
            public class ExpressionParameterVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public ExpressionParameterVisitor(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                public ExpressionParameterVisitor(NHibernate.Linq.Visitors.PreTransformationResult preTransformationResult) => throw null;
                public static System.Collections.Generic.IDictionary<System.Linq.Expressions.ConstantExpression, NHibernate.Param.NamedParameter> Visit(System.Linq.Expressions.Expression expression, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                public static System.Collections.Generic.IDictionary<System.Linq.Expressions.ConstantExpression, NHibernate.Param.NamedParameter> Visit(NHibernate.Linq.Visitors.PreTransformationResult preTransformationResult) => throw null;
                protected override System.Linq.Expressions.Expression VisitConstant(System.Linq.Expressions.ConstantExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitInvocation(System.Linq.Expressions.InvocationExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitMethodCall(System.Linq.Expressions.MethodCallExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitUnary(System.Linq.Expressions.UnaryExpression node) => throw null;
            }
            public class HqlGeneratorExpressionVisitor : NHibernate.Linq.Visitors.IHqlExpressionVisitor
            {
                public HqlGeneratorExpressionVisitor(NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null;
                public NHibernate.ISessionFactory SessionFactory { get => throw null; }
                public static NHibernate.Hql.Ast.HqlTreeNode Visit(System.Linq.Expressions.Expression expression, NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null;
                public NHibernate.Hql.Ast.HqlTreeNode Visit(System.Linq.Expressions.Expression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitBinaryExpression(System.Linq.Expressions.BinaryExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitConditionalExpression(System.Linq.Expressions.ConditionalExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitConstantExpression(System.Linq.Expressions.ConstantExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitExpression(System.Linq.Expressions.Expression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitLambdaExpression(System.Linq.Expressions.LambdaExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitMemberExpression(System.Linq.Expressions.MemberExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitMethodCallExpression(System.Linq.Expressions.MethodCallExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNewArrayExpression(System.Linq.Expressions.NewArrayExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNhAverage(NHibernate.Linq.Expressions.NhAverageExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNhCount(NHibernate.Linq.Expressions.NhCountExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNhDistinct(NHibernate.Linq.Expressions.NhDistinctExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNhMax(NHibernate.Linq.Expressions.NhMaxExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNhMin(NHibernate.Linq.Expressions.NhMinExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNhStar(NHibernate.Linq.Expressions.NhStarExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitNhSum(NHibernate.Linq.Expressions.NhSumExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitParameterExpression(System.Linq.Expressions.ParameterExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitQuerySourceReferenceExpression(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitSubQueryExpression(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null;
                protected NHibernate.Hql.Ast.HqlTreeNode VisitUnaryExpression(System.Linq.Expressions.UnaryExpression expression) => throw null;
            }
            public interface IExpressionTransformerRegistrar
            {
                void Register(Remotion.Linq.Parsing.ExpressionVisitors.Transformation.ExpressionTransformerRegistry expressionTransformerRegistry);
            }
            public interface IHqlExpressionVisitor
            {
                NHibernate.ISessionFactory SessionFactory { get; }
                NHibernate.Hql.Ast.HqlTreeNode Visit(System.Linq.Expressions.Expression expression);
            }
            public interface IJoiner
            {
                System.Linq.Expressions.Expression AddJoin(System.Linq.Expressions.Expression expression, string key);
                bool CanAddJoin(System.Linq.Expressions.Expression expression);
                void MakeInnerIfJoined(string key);
            }
            public interface IQueryModelRewriterFactory
            {
                Remotion.Linq.QueryModelVisitorBase CreateVisitor(NHibernate.Linq.Visitors.VisitorParameters parameters);
            }
            public class Joiner : NHibernate.Linq.Visitors.IJoiner
            {
                public System.Linq.Expressions.Expression AddJoin(System.Linq.Expressions.Expression expression, string key) => throw null;
                public bool CanAddJoin(System.Linq.Expressions.Expression expression) => throw null;
                public System.Collections.Generic.IEnumerable<NHibernate.Linq.Clauses.NhJoinClause> Joins { get => throw null; }
                public void MakeInnerIfJoined(string key) => throw null;
            }
            public class LeftJoinRewriter : NHibernate.Linq.Visitors.NhQueryModelVisitorBase
            {
                public LeftJoinRewriter() => throw null;
                public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            public class NameGenerator
            {
                public NameGenerator(Remotion.Linq.QueryModel model) => throw null;
                public string GetNewName() => throw null;
            }
            public class NhExpressionVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public NhExpressionVisitor() => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhAggregated(NHibernate.Linq.Expressions.NhAggregatedExpression node) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhAverage(NHibernate.Linq.Expressions.NhAverageExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhCount(NHibernate.Linq.Expressions.NhCountExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhDistinct(NHibernate.Linq.Expressions.NhDistinctExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhMax(NHibernate.Linq.Expressions.NhMaxExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhMin(NHibernate.Linq.Expressions.NhMinExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhNew(NHibernate.Linq.Expressions.NhNewExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhNominated(NHibernate.Linq.Expressions.NhNominatedExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhStar(NHibernate.Linq.Expressions.NhStarExpression expression) => throw null;
                protected virtual System.Linq.Expressions.Expression VisitNhSum(NHibernate.Linq.Expressions.NhSumExpression expression) => throw null;
            }
            public class NhQueryModelVisitorBase : Remotion.Linq.QueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor, Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator.ISupportedByIQueryModelVistor
            {
                public NhQueryModelVisitorBase() => throw null;
                public virtual void VisitNhHavingClause(NHibernate.Linq.Clauses.NhHavingClause havingClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public virtual void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public virtual void VisitNhWithClause(NHibernate.Linq.Clauses.NhWithClause nhWhereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            public class NonAggregatingGroupJoinRewriter
            {
                public static void ReWrite(Remotion.Linq.QueryModel model) => throw null;
            }
            public static class ParameterTypeLocator
            {
                public static void SetParameterTypes(System.Collections.Generic.IDictionary<System.Linq.Expressions.ConstantExpression, NHibernate.Param.NamedParameter> parameters, Remotion.Linq.QueryModel queryModel, System.Type targetType, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
            }
            public class PossibleValueSet
            {
                public NHibernate.Linq.Visitors.PossibleValueSet Add(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet And(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet AndAlso(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet ArrayLength(System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet BitwiseNot(System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Coalesce(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public bool Contains(object obj) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Convert(System.Type resultType) => throw null;
                public static NHibernate.Linq.Visitors.PossibleValueSet Create(System.Type expressionType, params object[] values) => throw null;
                public static NHibernate.Linq.Visitors.PossibleValueSet CreateAllNonNullValues(System.Type expressionType) => throw null;
                public static NHibernate.Linq.Visitors.PossibleValueSet CreateAllValues(System.Type expressionType) => throw null;
                public static NHibernate.Linq.Visitors.PossibleValueSet CreateNull(System.Type expressionType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Divide(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Equal(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet ExclusiveOr(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet GreaterThan(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet GreaterThanOrEqual(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet IsNotNull() => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet IsNull() => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet LeftShift(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet LessThan(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet LessThanOrEqual(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet MemberAccess(System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Modulo(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Multiply(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Negate(System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Not() => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet NotEqual(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Or(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet OrElse(NHibernate.Linq.Visitors.PossibleValueSet pvs) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Power(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet RightShift(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet Subtract(NHibernate.Linq.Visitors.PossibleValueSet pvs, System.Type resultType) => throw null;
                public NHibernate.Linq.Visitors.PossibleValueSet UnaryPlus(System.Type resultType) => throw null;
            }
            public class PreTransformationParameters
            {
                public PreTransformationParameters(NHibernate.Linq.QueryMode queryMode, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                public bool MinimizeParameters { get => throw null; set { } }
                public NHibernate.Linq.QueryMode QueryMode { get => throw null; }
                public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; }
            }
            public class PreTransformationResult
            {
                public System.Linq.Expressions.Expression Expression { get => throw null; }
                public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; }
            }
            public class QueryExpressionSourceIdentifer : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public QueryExpressionSourceIdentifer(NHibernate.Linq.Visitors.QuerySourceIdentifier identifier) => throw null;
                protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null;
            }
            public class QueryModelVisitor : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor
            {
                public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo CurrentEvaluationType { get => throw null; }
                public static NHibernate.Linq.ExpressionToHqlTranslationResults GenerateHqlQuery(Remotion.Linq.QueryModel queryModel, NHibernate.Linq.Visitors.VisitorParameters parameters, bool root, NHibernate.Linq.NhLinqExpressionReturnType? rootReturnType) => throw null;
                public Remotion.Linq.QueryModel Model { get => throw null; }
                public Remotion.Linq.Clauses.StreamedData.IStreamedDataInfo PreviousEvaluationType { get => throw null; }
                public NHibernate.Linq.ReWriters.ResultOperatorRewriterResult RewrittenOperatorResult { get => throw null; }
                public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause groupJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitNhHavingClause(NHibernate.Linq.Clauses.NhHavingClause havingClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public void VisitNhOuterJoinClause(NHibernate.Linq.Clauses.NhOuterJoinClause outerJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitNhWithClause(NHibernate.Linq.Clauses.NhWithClause withClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitOrderByClause(Remotion.Linq.Clauses.OrderByClause orderByClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public NHibernate.Linq.Visitors.VisitorParameters VisitorParameters { get => throw null; }
                public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitWhereClause(Remotion.Linq.Clauses.WhereClause whereClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            public class QuerySourceIdentifier : NHibernate.Linq.Visitors.NhQueryModelVisitorBase, NHibernate.Linq.INhQueryModelVisitor, Remotion.Linq.IQueryModelVisitor
            {
                public NHibernate.Linq.QuerySourceNamer Namer { get => throw null; }
                public static void Visit(NHibernate.Linq.QuerySourceNamer namer, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitGroupJoinClause(Remotion.Linq.Clauses.GroupJoinClause groupJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, Remotion.Linq.Clauses.GroupJoinClause groupJoinClause) => throw null;
                public override void VisitJoinClause(Remotion.Linq.Clauses.JoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public void VisitNhOuterJoinClause(NHibernate.Linq.Clauses.NhOuterJoinClause outerJoinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitResultOperator(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitSelectClause(Remotion.Linq.Clauses.SelectClause selectClause, Remotion.Linq.QueryModel queryModel) => throw null;
            }
            public class QuerySourceLocator : NHibernate.Linq.Visitors.NhQueryModelVisitorBase
            {
                public static Remotion.Linq.Clauses.IQuerySource FindQuerySource(Remotion.Linq.QueryModel queryModel, System.Type type) => throw null;
                public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitNhJoinClause(NHibernate.Linq.Clauses.NhJoinClause joinClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
            }
            namespace ResultOperatorProcessors
            {
                public interface IResultOperatorProcessor<T>
                {
                    void Process(T resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree);
                }
                public class ProcessAggregate : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator>
                {
                    public ProcessAggregate() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.AggregateResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessAggregateFromSeed : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator>
                {
                    public ProcessAggregateFromSeed() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.AggregateFromSeedResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessAll : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.AllResultOperator>
                {
                    public ProcessAll() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.AllResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessAny : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.AnyResultOperator>
                {
                    public ProcessAny() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.AnyResultOperator anyOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessAsQueryable : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator>
                {
                    public ProcessAsQueryable() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.AsQueryableResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessCast : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.CastResultOperator>
                {
                    public ProcessCast() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.CastResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessClientSideSelect : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<NHibernate.Linq.GroupBy.ClientSideSelect>
                {
                    public ProcessClientSideSelect() => throw null;
                    public void Process(NHibernate.Linq.GroupBy.ClientSideSelect resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessClientSideSelect2 : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<NHibernate.Linq.GroupBy.ClientSideSelect2>
                {
                    public ProcessClientSideSelect2() => throw null;
                    public void Process(NHibernate.Linq.GroupBy.ClientSideSelect2 resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessContains : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator>
                {
                    public ProcessContains() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.ContainsResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessFetch
                {
                    public ProcessFetch() => throw null;
                    public void Process(Remotion.Linq.EagerFetching.FetchRequestBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                    public void Process(Remotion.Linq.EagerFetching.FetchRequestBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree, string sourceAlias) => throw null;
                }
                public class ProcessFetchMany : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetch, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.EagerFetching.FetchManyRequest>
                {
                    public ProcessFetchMany() => throw null;
                    public void Process(Remotion.Linq.EagerFetching.FetchManyRequest resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessFetchOne : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFetch, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.EagerFetching.FetchOneRequest>
                {
                    public ProcessFetchOne() => throw null;
                    public void Process(Remotion.Linq.EagerFetching.FetchOneRequest resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessFirst : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirstOrSingleBase, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.FirstResultOperator>
                {
                    public ProcessFirst() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.FirstResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessFirstOrSingleBase
                {
                    protected static void AddClientSideEval(System.Reflection.MethodInfo target, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                    public ProcessFirstOrSingleBase() => throw null;
                }
                public class ProcessGroupBy : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.GroupResultOperator>
                {
                    public ProcessGroupBy() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.GroupResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessNonAggregatingGroupBy : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<NHibernate.Linq.ResultOperators.NonAggregatingGroupBy>
                {
                    public ProcessNonAggregatingGroupBy() => throw null;
                    public void Process(NHibernate.Linq.ResultOperators.NonAggregatingGroupBy resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessOfType : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator>
                {
                    public ProcessOfType() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.OfTypeResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessResultOperatorReturn
                {
                    public System.Action<NHibernate.IQuery, System.Collections.Generic.IDictionary<string, System.Tuple<object, NHibernate.Type.IType>>> AdditionalCriteria { get => throw null; set { } }
                    public NHibernate.Hql.Ast.HqlTreeNode AdditionalFrom { get => throw null; set { } }
                    public ProcessResultOperatorReturn() => throw null;
                    public NHibernate.Hql.Ast.HqlGroupBy GroupBy { get => throw null; set { } }
                    public System.Linq.Expressions.LambdaExpression ListTransformer { get => throw null; set { } }
                    public System.Linq.Expressions.LambdaExpression PostExecuteTransformer { get => throw null; set { } }
                    public NHibernate.Hql.Ast.HqlTreeNode TreeNode { get => throw null; set { } }
                    public NHibernate.Hql.Ast.HqlBooleanExpression WhereClause { get => throw null; set { } }
                }
                public class ProcessSingle : NHibernate.Linq.Visitors.ResultOperatorProcessors.ProcessFirstOrSingleBase, NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.SingleResultOperator>
                {
                    public ProcessSingle() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.SingleResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessSkip : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.SkipResultOperator>
                {
                    public ProcessSkip() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.SkipResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ProcessTake : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<Remotion.Linq.Clauses.ResultOperators.TakeResultOperator>
                {
                    public ProcessTake() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperators.TakeResultOperator resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModelVisitor, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ResultOperatorMap
                {
                    public void Add<TOperator, TProcessor>() where TOperator : Remotion.Linq.Clauses.ResultOperatorBase where TProcessor : NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<TOperator>, new() => throw null;
                    public ResultOperatorMap() => throw null;
                    public void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public class ResultOperatorProcessor<T> : NHibernate.Linq.Visitors.ResultOperatorProcessors.ResultOperatorProcessorBase where T : Remotion.Linq.Clauses.ResultOperatorBase
                {
                    public ResultOperatorProcessor(NHibernate.Linq.Visitors.ResultOperatorProcessors.IResultOperatorProcessor<T> processor) => throw null;
                    public override void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree) => throw null;
                }
                public abstract class ResultOperatorProcessorBase
                {
                    protected ResultOperatorProcessorBase() => throw null;
                    public abstract void Process(Remotion.Linq.Clauses.ResultOperatorBase resultOperator, NHibernate.Linq.Visitors.QueryModelVisitor queryModel, NHibernate.Linq.IntermediateHqlTree tree);
                }
            }
            public class SelectClauseVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public SelectClauseVisitor(System.Type inputType, NHibernate.Linq.Visitors.VisitorParameters parameters) => throw null;
                public System.Collections.Generic.IEnumerable<NHibernate.Hql.Ast.HqlExpression> GetHqlNodes() => throw null;
                public System.Linq.Expressions.LambdaExpression ProjectionExpression { get => throw null; }
                public override System.Linq.Expressions.Expression Visit(System.Linq.Expressions.Expression expression) => throw null;
                public void VisitSelector(System.Linq.Expressions.Expression expression) => throw null;
                public void VisitSelector(System.Linq.Expressions.Expression expression, bool isSubQuery) => throw null;
            }
            public class SubQueryFromClauseFlattener : NHibernate.Linq.Visitors.NhQueryModelVisitorBase
            {
                public SubQueryFromClauseFlattener() => throw null;
                public static void ReWrite(Remotion.Linq.QueryModel queryModel) => throw null;
                public override void VisitAdditionalFromClause(Remotion.Linq.Clauses.AdditionalFromClause fromClause, Remotion.Linq.QueryModel queryModel, int index) => throw null;
                public override void VisitMainFromClause(Remotion.Linq.Clauses.MainFromClause fromClause, Remotion.Linq.QueryModel queryModel) => throw null;
            }
            public class SwapQuerySourceVisitor : Remotion.Linq.Parsing.RelinqExpressionVisitor
            {
                public SwapQuerySourceVisitor(Remotion.Linq.Clauses.IQuerySource oldClause, Remotion.Linq.Clauses.IQuerySource newClause) => throw null;
                public System.Linq.Expressions.Expression Swap(System.Linq.Expressions.Expression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitQuerySourceReference(Remotion.Linq.Clauses.Expressions.QuerySourceReferenceExpression expression) => throw null;
                protected override System.Linq.Expressions.Expression VisitSubQuery(Remotion.Linq.Clauses.Expressions.SubQueryExpression expression) => throw null;
            }
            public class VisitorParameters
            {
                public System.Collections.Generic.IDictionary<System.Linq.Expressions.ConstantExpression, NHibernate.Param.NamedParameter> ConstantToParameterMap { get => throw null; }
                public VisitorParameters(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, System.Collections.Generic.IDictionary<System.Linq.Expressions.ConstantExpression, NHibernate.Param.NamedParameter> constantToParameterMap, System.Collections.Generic.List<NHibernate.Engine.Query.NamedParameterDescriptor> requiredHqlParameters, NHibernate.Linq.QuerySourceNamer querySourceNamer, System.Type targetEntityType, NHibernate.Linq.QueryMode rootQueryMode) => throw null;
                public NHibernate.Linq.QuerySourceNamer QuerySourceNamer { get => throw null; set { } }
                public System.Collections.Generic.List<NHibernate.Engine.Query.NamedParameterDescriptor> RequiredHqlParameters { get => throw null; }
                public NHibernate.Linq.QueryMode RootQueryMode { get => throw null; }
                public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; }
                public System.Type TargetEntityType { get => throw null; }
            }
            public static class VisitorUtil
            {
                public static string GetMemberPath(this System.Linq.Expressions.MemberExpression memberExpression) => throw null;
                public static bool IsBooleanConstant(System.Linq.Expressions.Expression expression, out bool value) => throw null;
                public static bool IsDynamicComponentDictionaryGetter(System.Reflection.MethodInfo method, System.Linq.Expressions.Expression targetObject, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments, NHibernate.ISessionFactory sessionFactory, out string memberName) => throw null;
                public static bool IsDynamicComponentDictionaryGetter(System.Linq.Expressions.MethodCallExpression expression, NHibernate.ISessionFactory sessionFactory, out string memberName) => throw null;
                public static bool IsDynamicComponentDictionaryGetter(System.Linq.Expressions.MethodCallExpression expression, NHibernate.ISessionFactory sessionFactory) => throw null;
                public static bool IsNullConstant(System.Linq.Expressions.Expression expression) => throw null;
                public static System.Linq.Expressions.Expression Replace(this System.Linq.Expressions.Expression expression, System.Linq.Expressions.Expression oldExpression, System.Linq.Expressions.Expression newExpression) => throw null;
            }
        }
    }
    namespace Loader
    {
        public abstract class AbstractEntityJoinWalker : NHibernate.Loader.JoinWalker
        {
            protected virtual void AddAssociations() => throw null;
            protected string Alias { get => throw null; }
            public abstract string Comment { get; }
            protected virtual NHibernate.Loader.OuterJoinableAssociation CreateRootAssociation() => throw null;
            public AbstractEntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
            public AbstractEntityJoinWalker(string rootSqlAlias, NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
            protected virtual void InitAll(NHibernate.SqlCommand.SqlString whereString, NHibernate.SqlCommand.SqlString orderByString, NHibernate.LockMode lockMode) => throw null;
            protected void InitProjection(NHibernate.SqlCommand.SqlString projectionString, NHibernate.SqlCommand.SqlString whereString, NHibernate.SqlCommand.SqlString orderByString, NHibernate.SqlCommand.SqlString groupByString, NHibernate.SqlCommand.SqlString havingString, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.LockMode lockMode) => throw null;
            protected void InitProjection(NHibernate.SqlCommand.SqlString projectionString, NHibernate.SqlCommand.SqlString whereString, NHibernate.SqlCommand.SqlString orderByString, NHibernate.SqlCommand.SqlString groupByString, NHibernate.SqlCommand.SqlString havingString, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.LockMode lockMode, System.Collections.Generic.IList<NHibernate.Criterion.EntityProjection> entityProjections) => throw null;
            protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null;
            protected NHibernate.Persister.Entity.IOuterJoinLoadable Persister { get => throw null; }
            public override string ToString() => throw null;
            protected virtual NHibernate.SqlCommand.SqlString WhereFragment { get => throw null; }
        }
        public abstract class BasicLoader : NHibernate.Loader.Loader
        {
            protected override sealed NHibernate.Loader.ICollectionAliases[] CollectionAliases { get => throw null; }
            protected abstract string[] CollectionSuffixes { get; }
            public BasicLoader(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            protected override sealed NHibernate.Loader.IEntityAliases[] EntityAliases { get => throw null; }
            public static string GenerateSuffix(int index) => throw null;
            public static string[] GenerateSuffixes(int length) => throw null;
            public static string[] GenerateSuffixes(int seed, int length) => throw null;
            protected virtual System.Collections.Generic.IDictionary<string, string[]> GetCollectionUserProvidedAlias(int index) => throw null;
            protected static readonly string[] NoSuffix;
            protected override void PostInstantiate() => throw null;
            protected abstract string[] Suffixes { get; }
        }
        public enum BatchFetchStyle
        {
            Legacy = 0,
            Dynamic = 1,
        }
        namespace Collection
        {
            public abstract class AbstractBatchingCollectionInitializer : NHibernate.Loader.Collection.ICollectionInitializer
            {
                protected NHibernate.Persister.Collection.IQueryableCollection CollectionPersister { get => throw null; }
                protected AbstractBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection collectionPersister) => throw null;
                public abstract void Initialize(object id, NHibernate.Engine.ISessionImplementor session);
                public abstract System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            }
            public class BasicCollectionJoinWalker : NHibernate.Loader.Collection.CollectionJoinWalker
            {
                public BasicCollectionJoinWalker(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                public override string ToString() => throw null;
            }
            public class BasicCollectionLoader : NHibernate.Loader.Collection.CollectionLoader
            {
                public BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.Engine.ISessionFactoryImplementor session, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                public BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected BasicCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected virtual void InitializeFromWalker(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.SqlCommand.SqlString subquery, int batchSize, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            }
            public class BatchingCollectionInitializer : NHibernate.Loader.Collection.AbstractBatchingCollectionInitializer
            {
                public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingOneToManyInitializer(NHibernate.Persister.Collection.OneToManyPersister persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public static NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public BatchingCollectionInitializer(NHibernate.Persister.Collection.ICollectionPersister collectionPersister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) : base(default(NHibernate.Persister.Collection.IQueryableCollection)) => throw null;
                public BatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) : base(default(NHibernate.Persister.Collection.IQueryableCollection)) => throw null;
                public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public abstract class BatchingCollectionInitializerBuilder
            {
                public virtual NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public virtual NHibernate.Loader.Collection.ICollectionInitializer CreateBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters);
                protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters);
                protected BatchingCollectionInitializerBuilder() => throw null;
            }
            public abstract class CollectionJoinWalker : NHibernate.Loader.JoinWalker
            {
                public CollectionJoinWalker(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected NHibernate.SqlCommand.SqlStringBuilder WhereString(string alias, string[] columnNames, NHibernate.SqlCommand.SqlString subselect, int batchSize) => throw null;
            }
            public class CollectionLoader : NHibernate.Loader.OuterJoinLoader, NHibernate.Loader.Collection.ICollectionInitializer
            {
                protected NHibernate.Persister.Collection.IQueryableCollection CollectionPersister { get => throw null; }
                protected virtual System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> CreateParameterSpecificationsAndAssignBackTrack(System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.Parameter> sqlPatameters) => throw null;
                public CollectionLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                protected NHibernate.SqlCommand.SqlString GetSubSelectWithLimits(NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection<NHibernate.Param.IParameterSpecification> parameterSpecs, NHibernate.Engine.RowSelection processedRowSelection, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> parameters) => throw null;
                public virtual void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override bool IsSubselectLoadingEnabled { get => throw null; }
                protected NHibernate.Type.IType KeyType { get => throw null; }
                public override string ToString() => throw null;
            }
            public class DynamicBatchingCollectionInitializerBuilder : NHibernate.Loader.Collection.BatchingCollectionInitializerBuilder
            {
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public DynamicBatchingCollectionInitializerBuilder() => throw null;
            }
            public interface ICollectionInitializer
            {
                void Initialize(object id, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            }
            public class LegacyBatchingCollectionInitializerBuilder : NHibernate.Loader.Collection.BatchingCollectionInitializerBuilder
            {
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingCollectionInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateRealBatchingOneToManyInitializer(NHibernate.Persister.Collection.IQueryableCollection persister, int maxBatchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public LegacyBatchingCollectionInitializerBuilder() => throw null;
            }
            public class OneToManyJoinWalker : NHibernate.Loader.Collection.CollectionJoinWalker
            {
                public OneToManyJoinWalker(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override string GenerateAliasForColumn(string rootAlias, string column) => throw null;
                protected override bool IsDuplicateAssociation(string foreignKeyTable, string[] foreignKeyColumns) => throw null;
                public override string ToString() => throw null;
            }
            public class OneToManyLoader : NHibernate.Loader.Collection.CollectionLoader
            {
                public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, NHibernate.Engine.ISessionFactoryImplementor session, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                public OneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, int batchSize, NHibernate.SqlCommand.SqlString subquery, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected virtual void InitializeFromWalker(NHibernate.Persister.Collection.IQueryableCollection oneToManyPersister, NHibernate.SqlCommand.SqlString subquery, int batchSize, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            }
            public class SubselectCollectionLoader : NHibernate.Loader.Collection.BasicCollectionLoader
            {
                public SubselectCollectionLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection<NHibernate.Engine.EntityKey> entityKeys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class SubselectOneToManyLoader : NHibernate.Loader.Collection.OneToManyLoader
            {
                public SubselectOneToManyLoader(NHibernate.Persister.Collection.IQueryableCollection persister, NHibernate.SqlCommand.SqlString subquery, System.Collections.Generic.ICollection<NHibernate.Engine.EntityKey> entityKeys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Collection.IQueryableCollection), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                public override void Initialize(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public override System.Threading.Tasks.Task InitializeAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
        }
        namespace Criteria
        {
            public class ComponentCollectionCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider
            {
                public ComponentCollectionCriteriaInfoProvider(NHibernate.Persister.Collection.IQueryableCollection persister) => throw null;
                public NHibernate.Type.IType GetType(string relativePath) => throw null;
                public string Name { get => throw null; }
                public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; }
                public string[] Spaces { get => throw null; }
            }
            public class CriteriaJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker
            {
                protected override void AddAssociations() => throw null;
                public override string Comment { get => throw null; }
                protected override NHibernate.Loader.OuterJoinableAssociation CreateRootAssociation() => throw null;
                public CriteriaJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Loader.Criteria.CriteriaQueryTranslator translator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.ICriteria criteria, string rootEntityName, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override string GenerateRootAlias(string tableName) => throw null;
                protected override string GenerateTableAlias(int n, string path, string pathAlias, NHibernate.Persister.Entity.IJoinable joinable) => throw null;
                protected override System.Collections.Generic.IReadOnlyCollection<string> GetChildAliases(string parentSqlAlias, string childPath) => throw null;
                protected override System.Collections.Generic.ISet<string> GetEntityFetchLazyProperties(string path) => throw null;
                protected override NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string pathAlias, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null;
                protected override NHibernate.SelectMode GetSelectMode(string path) => throw null;
                protected override NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null;
                public bool[] IncludeInResultRow { get => throw null; }
                public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                public NHibernate.Type.IType[] ResultTypes { get => throw null; }
                public string[] UserAliases { get => throw null; }
                protected override void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path) => throw null;
                protected override NHibernate.SqlCommand.SqlString WhereFragment { get => throw null; }
            }
            public class CriteriaLoader : NHibernate.Loader.OuterJoinLoader
            {
                protected override NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sqlSelectString, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, NHibernate.Dialect.Dialect dialect) => throw null;
                protected override bool AreResultSetRowsTransformedImmediately() => throw null;
                public CriteriaLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl rootCriteria, string rootEntityName, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override System.Collections.Generic.ISet<string>[] EntityFetchLazyProperties { get => throw null; }
                public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes) => throw null;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer customResultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object> GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer customResultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
                protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object[]> GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool[] IncludeInResultRow { get => throw null; }
                public override bool IsCacheable(NHibernate.Engine.QueryParameters queryParameters) => throw null;
                protected override bool IsChildFetchEntity(int i) => throw null;
                protected override bool IsCollectionPersisterCacheable(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null;
                public override bool IsSubselectLoadingEnabled { get => throw null; }
                public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
                protected override string[] ResultRowAliases { get => throw null; }
                public NHibernate.Loader.Criteria.CriteriaQueryTranslator Translator { get => throw null; }
            }
            public class CriteriaQueryTranslator : NHibernate.Criterion.ICriteriaQuery, NHibernate.Loader.Criteria.ISupportEntityProjectionCriteriaQuery
            {
                public System.Collections.Generic.ICollection<NHibernate.Param.NamedParameter> CollectedParameters { get => throw null; }
                public System.Collections.Generic.ICollection<NHibernate.Param.IParameterSpecification> CollectedParameterSpecifications { get => throw null; }
                public NHibernate.SqlCommand.Parameter CreateSkipParameter(int value) => throw null;
                public NHibernate.SqlCommand.Parameter CreateTakeParameter(int value) => throw null;
                public CriteriaQueryTranslator(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl criteria, string rootEntityName, string rootSQLAlias, NHibernate.Criterion.ICriteriaQuery outerQuery) => throw null;
                public CriteriaQueryTranslator(NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Impl.CriteriaImpl criteria, string rootEntityName, string rootSQLAlias) => throw null;
                public class EntityJoinInfo
                {
                    public NHibernate.ICriteria Criteria;
                    public EntityJoinInfo() => throw null;
                    public NHibernate.Persister.Entity.IQueryable Persister;
                }
                public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
                public string GenerateSQLAlias() => throw null;
                public System.Collections.Generic.IReadOnlyCollection<string> GetChildAliases(string parentSqlAlias, string childPath) => throw null;
                public string GetColumn(NHibernate.ICriteria criteria, string propertyName) => throw null;
                public string[] GetColumnAliasesUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null;
                public string[] GetColumns(NHibernate.ICriteria subcriteria, string propertyName) => throw null;
                public string[] GetColumnsUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null;
                public NHibernate.ICriteria GetCriteria(string path) => throw null;
                public NHibernate.ICriteria GetCriteria(string path, string critAlias) => throw null;
                public string GetEntityName(NHibernate.ICriteria criteria) => throw null;
                public string GetEntityName(NHibernate.ICriteria subcriteria, string propertyName) => throw null;
                public System.Collections.Generic.IList<NHibernate.Criterion.EntityProjection> GetEntityProjections() => throw null;
                public NHibernate.SqlCommand.SqlString GetGroupBy() => throw null;
                public NHibernate.SqlCommand.SqlString GetHavingCondition() => throw null;
                public string[] GetIdentifierColumns(NHibernate.ICriteria subcriteria) => throw null;
                public NHibernate.Type.IType GetIdentifierType(NHibernate.ICriteria subcriteria) => throw null;
                public int GetIndexForAlias() => throw null;
                public NHibernate.SqlCommand.JoinType GetJoinType(string path) => throw null;
                public NHibernate.SqlCommand.JoinType GetJoinType(string path, string critAlias) => throw null;
                public NHibernate.SqlCommand.SqlString GetOrderBy() => throw null;
                public string GetPropertyName(string propertyName) => throw null;
                public NHibernate.Engine.QueryParameters GetQueryParameters() => throw null;
                public System.Collections.Generic.ISet<string> GetQuerySpaces() => throw null;
                public NHibernate.SqlCommand.SqlString GetSelect() => throw null;
                public string GetSQLAlias(NHibernate.ICriteria criteria) => throw null;
                public string GetSQLAlias(NHibernate.ICriteria criteria, string propertyName) => throw null;
                public NHibernate.Type.IType GetType(NHibernate.ICriteria subcriteria, string propertyName) => throw null;
                public NHibernate.Engine.TypedValue GetTypedIdentifierValue(NHibernate.ICriteria subcriteria, object value) => throw null;
                public NHibernate.Engine.TypedValue GetTypedValue(NHibernate.ICriteria subcriteria, string propertyName, object value) => throw null;
                public NHibernate.Type.IType GetTypeUsingProjection(NHibernate.ICriteria subcriteria, string propertyName) => throw null;
                public NHibernate.SqlCommand.SqlString GetWhereCondition() => throw null;
                public NHibernate.SqlCommand.SqlString GetWithClause(string path) => throw null;
                public NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null;
                protected static bool HasGroupedOrAggregateProjection(NHibernate.Criterion.IProjection[] projections) => throw null;
                public bool HasProjection { get => throw null; }
                public bool IsJoin(string path) => throw null;
                public bool IsJoin(string path, string critAlias) => throw null;
                public System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.Parameter> NewQueryParameter(NHibernate.Engine.TypedValue parameter) => throw null;
                public string[] ProjectedAliases { get => throw null; }
                public string[] ProjectedColumnAliases { get => throw null; }
                public NHibernate.Type.IType[] ProjectedTypes { get => throw null; }
                public void RegisterEntityProjection(NHibernate.Criterion.EntityProjection projection) => throw null;
                public NHibernate.SqlCommand.SqlString RenderSQLAliases(NHibernate.SqlCommand.SqlString sqlTemplate) => throw null;
                public NHibernate.Impl.CriteriaImpl RootCriteria { get => throw null; }
                NHibernate.ICriteria NHibernate.Loader.Criteria.ISupportEntityProjectionCriteriaQuery.RootCriteria { get => throw null; }
                public static readonly string RootSqlAlias;
                public string RootSQLAlias { get => throw null; }
                public int SQLAliasCount { get => throw null; }
                public bool TryGetType(NHibernate.ICriteria subcriteria, string propertyName, out NHibernate.Type.IType type) => throw null;
                public System.Collections.Generic.ISet<NHibernate.Persister.Collection.ICollectionPersister> UncacheableCollectionPersisters { get => throw null; }
            }
            public class EntityCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider
            {
                public EntityCriteriaInfoProvider(NHibernate.Persister.Entity.IQueryable persister) => throw null;
                public NHibernate.Type.IType GetType(string relativePath) => throw null;
                public string Name { get => throw null; }
                public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; }
                public string[] Spaces { get => throw null; }
            }
            public interface ICriteriaInfoProvider
            {
                NHibernate.Type.IType GetType(string relativePath);
                string Name { get; }
                NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get; }
                string[] Spaces { get; }
            }
            public interface ISupportEntityProjectionCriteriaQuery
            {
                void RegisterEntityProjection(NHibernate.Criterion.EntityProjection projection);
                NHibernate.ICriteria RootCriteria { get; }
            }
            public class ScalarCollectionCriteriaInfoProvider : NHibernate.Loader.Criteria.ICriteriaInfoProvider
            {
                public ScalarCollectionCriteriaInfoProvider(NHibernate.Hql.Util.SessionFactoryHelper helper, string role) => throw null;
                public NHibernate.Type.IType GetType(string relativePath) => throw null;
                public string Name { get => throw null; }
                public NHibernate.Persister.Entity.IPropertyMapping PropertyMapping { get => throw null; }
                public string[] Spaces { get => throw null; }
            }
        }
        namespace Custom
        {
            public class CollectionFetchReturn : NHibernate.Loader.Custom.FetchReturn
            {
                public NHibernate.Loader.ICollectionAliases CollectionAliases { get => throw null; }
                public CollectionFetchReturn(string alias, NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, NHibernate.Loader.ICollectionAliases collectionAliases, NHibernate.Loader.IEntityAliases elementEntityAliases, NHibernate.LockMode lockMode) : base(default(NHibernate.Loader.Custom.NonScalarReturn), default(string), default(string), default(NHibernate.LockMode)) => throw null;
                public NHibernate.Loader.IEntityAliases ElementEntityAliases { get => throw null; }
            }
            public class CollectionReturn : NHibernate.Loader.Custom.NonScalarReturn
            {
                public NHibernate.Loader.ICollectionAliases CollectionAliases { get => throw null; }
                public CollectionReturn(string alias, string ownerEntityName, string ownerProperty, NHibernate.Loader.ICollectionAliases collectionAliases, NHibernate.Loader.IEntityAliases elementEntityAliases, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null;
                public NHibernate.Loader.IEntityAliases ElementEntityAliases { get => throw null; }
                public string OwnerEntityName { get => throw null; }
                public string OwnerProperty { get => throw null; }
            }
            public class ColumnCollectionAliases : NHibernate.Loader.ICollectionAliases
            {
                public ColumnCollectionAliases(System.Collections.Generic.IDictionary<string, string[]> userProvidedAliases, NHibernate.Persister.Collection.ISqlLoadableCollection persister) => throw null;
                public string Suffix { get => throw null; }
                public string[] SuffixedElementAliases { get => throw null; }
                public string SuffixedIdentifierAlias { get => throw null; }
                public string[] SuffixedIndexAliases { get => throw null; }
                public string[] SuffixedKeyAliases { get => throw null; }
                public override string ToString() => throw null;
            }
            public class ColumnEntityAliases : NHibernate.Loader.DefaultEntityAliases
            {
                public ColumnEntityAliases(System.Collections.Generic.IDictionary<string, string[]> returnProperties, NHibernate.Persister.Entity.ILoadable persister, string suffix) : base(default(NHibernate.Persister.Entity.ILoadable), default(string)) => throw null;
                protected override string GetDiscriminatorAlias(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null;
                protected override string[] GetIdentifierAliases(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null;
                protected override string[] GetPropertyAliases(NHibernate.Persister.Entity.ILoadable persister, int j) => throw null;
            }
            public class CustomLoader : NHibernate.Loader.Loader
            {
                public override void AutoDiscoverTypes(System.Data.Common.DbDataReader rs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null;
                protected override NHibernate.Loader.ICollectionAliases[] CollectionAliases { get => throw null; }
                protected override int[] CollectionOwners { get => throw null; }
                protected override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; }
                public CustomLoader(NHibernate.Loader.Custom.ICustomQuery customQuery, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                protected override NHibernate.Loader.IEntityAliases[] EntityAliases { get => throw null; }
                public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; }
                public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModesMap) => throw null;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object> GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
                protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object[]> GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool[] IncludeInResultRow { get => throw null; }
                public interface IResultColumnProcessor
                {
                    object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session);
                    System.Threading.Tasks.Task<object> ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                    void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList<NHibernate.Type.IType> types, System.Collections.Generic.IList<string> aliases);
                }
                public override bool IsCacheable(NHibernate.Engine.QueryParameters queryParameters) => throw null;
                public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null;
                public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
                public class MetaData
                {
                    public MetaData(System.Data.Common.DbDataReader resultSet) => throw null;
                    public int GetColumnCount() => throw null;
                    public string GetColumnName(int position) => throw null;
                    public int GetColumnPosition(string columnName) => throw null;
                    public NHibernate.Type.IType GetHibernateType(int columnPos) => throw null;
                }
                public System.Collections.Generic.IEnumerable<string> NamedParameters { get => throw null; }
                public class NonScalarResultColumnProcessor : NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor
                {
                    public NonScalarResultColumnProcessor(int position) => throw null;
                    public object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null;
                    public System.Threading.Tasks.Task<object> ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                    public void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList<NHibernate.Type.IType> types, System.Collections.Generic.IList<string> aliases) => throw null;
                }
                protected override int[] Owners { get => throw null; }
                public override string QueryIdentifier { get => throw null; }
                public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                protected override void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null;
                protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
                protected override string[] ResultRowAliases { get => throw null; }
                public class ResultRowProcessor
                {
                    public object BuildResultRow(object[] data, System.Data.Common.DbDataReader resultSet, bool hasTransformer, NHibernate.Engine.ISessionImplementor session) => throw null;
                    public object[] BuildResultRow(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null;
                    public System.Threading.Tasks.Task<object> BuildResultRowAsync(object[] data, System.Data.Common.DbDataReader resultSet, bool hasTransformer, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                    public System.Threading.Tasks.Task<object[]> BuildResultRowAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                    public NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor[] ColumnProcessors { get => throw null; }
                    public ResultRowProcessor(bool hasScalars, NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor[] columnProcessors) => throw null;
                    public void PrepareForAutoDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata) => throw null;
                }
                public string[] ReturnAliases { get => throw null; }
                public class ScalarResultColumnProcessor : NHibernate.Loader.Custom.CustomLoader.IResultColumnProcessor
                {
                    public ScalarResultColumnProcessor(int position) => throw null;
                    public ScalarResultColumnProcessor(string alias, NHibernate.Type.IType type) => throw null;
                    public object Extract(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session) => throw null;
                    public System.Threading.Tasks.Task<object> ExtractAsync(object[] data, System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                    public void PerformDiscovery(NHibernate.Loader.Custom.CustomLoader.MetaData metadata, System.Collections.Generic.IList<NHibernate.Type.IType> types, System.Collections.Generic.IList<string> aliases) => throw null;
                }
                public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; }
            }
            public class EntityFetchReturn : NHibernate.Loader.Custom.FetchReturn
            {
                public EntityFetchReturn(string alias, NHibernate.Loader.IEntityAliases entityAliases, NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, NHibernate.LockMode lockMode) : base(default(NHibernate.Loader.Custom.NonScalarReturn), default(string), default(string), default(NHibernate.LockMode)) => throw null;
                public NHibernate.Loader.IEntityAliases EntityAliases { get => throw null; }
            }
            public abstract class FetchReturn : NHibernate.Loader.Custom.NonScalarReturn
            {
                public FetchReturn(NHibernate.Loader.Custom.NonScalarReturn owner, string ownerProperty, string alias, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null;
                public NHibernate.Loader.Custom.NonScalarReturn Owner { get => throw null; }
                public string OwnerProperty { get => throw null; }
            }
            public interface ICustomQuery
            {
                System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> CollectedParametersSpecifications { get; }
                System.Collections.Generic.IList<NHibernate.Loader.Custom.IReturn> CustomQueryReturns { get; }
                System.Collections.Generic.ISet<string> QuerySpaces { get; }
                NHibernate.SqlCommand.SqlString SQL { get; }
            }
            public interface IReturn
            {
            }
            public abstract class NonScalarReturn : NHibernate.Loader.Custom.IReturn
            {
                public string Alias { get => throw null; }
                public NonScalarReturn(string alias, NHibernate.LockMode lockMode) => throw null;
                public NHibernate.LockMode LockMode { get => throw null; }
            }
            public class RootReturn : NHibernate.Loader.Custom.NonScalarReturn
            {
                public RootReturn(string alias, string entityName, NHibernate.Loader.IEntityAliases entityAliases, NHibernate.LockMode lockMode) : base(default(string), default(NHibernate.LockMode)) => throw null;
                public NHibernate.Loader.IEntityAliases EntityAliases { get => throw null; }
                public string EntityName { get => throw null; }
            }
            public class ScalarReturn : NHibernate.Loader.Custom.IReturn
            {
                public string ColumnAlias { get => throw null; }
                public ScalarReturn(NHibernate.Type.IType type, string columnAlias) => throw null;
                public NHibernate.Type.IType Type { get => throw null; }
            }
            namespace Sql
            {
                public class SQLCustomQuery : NHibernate.Loader.Custom.ICustomQuery
                {
                    public System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> CollectedParametersSpecifications { get => throw null; }
                    public SQLCustomQuery(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, string sqlQuery, System.Collections.Generic.ICollection<string> additionalQuerySpaces, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                    public System.Collections.Generic.IList<NHibernate.Loader.Custom.IReturn> CustomQueryReturns { get => throw null; }
                    public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                    public NHibernate.SqlCommand.SqlString SQL { get => throw null; }
                }
                public class SQLQueryParser
                {
                    public System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> CollectedParametersSpecifications { get => throw null; }
                    public SQLQueryParser(NHibernate.Engine.ISessionFactoryImplementor factory, string sqlQuery, NHibernate.Loader.Custom.Sql.SQLQueryParser.IParserContext context) => throw null;
                    public interface IParserContext
                    {
                        NHibernate.Persister.Collection.ISqlLoadableCollection GetCollectionPersisterByAlias(string alias);
                        string GetCollectionSuffixByAlias(string alias);
                        NHibernate.Persister.Entity.ISqlLoadable GetEntityPersisterByAlias(string alias);
                        string GetEntitySuffixByAlias(string alias);
                        System.Collections.Generic.IDictionary<string, string[]> GetPropertyResultsMapByAlias(string alias);
                        bool IsCollectionAlias(string aliasName);
                        bool IsEntityAlias(string aliasName);
                    }
                    public class ParameterSubstitutionRecognizer : NHibernate.Engine.Query.ParameterParser.IRecognizer
                    {
                        public ParameterSubstitutionRecognizer(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                        public void JpaPositionalParameter(string name, int position) => throw null;
                        public void NamedParameter(string name, int position) => throw null;
                        public void OrdinalParameter(int position) => throw null;
                        public void Other(char character) => throw null;
                        public void Other(string sqlPart) => throw null;
                        public void OutParameter(int position) => throw null;
                        public System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> ParametersSpecifications { get => throw null; }
                    }
                    public NHibernate.SqlCommand.SqlString Process() => throw null;
                    public bool QueryHasAliases { get => throw null; }
                }
                public class SQLQueryReturnProcessor
                {
                    public SQLQueryReturnProcessor(NHibernate.Engine.Query.Sql.INativeSQLQueryReturn[] queryReturns, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                    public System.Collections.IList GenerateCustomReturns(bool queryHadAliases) => throw null;
                    public NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.ResultAliasContext Process() => throw null;
                    public class ResultAliasContext
                    {
                        public ResultAliasContext(NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor parent) => throw null;
                        public NHibernate.Persister.Collection.ISqlLoadableCollection GetCollectionPersister(string alias) => throw null;
                        public string GetCollectionSuffix(string alias) => throw null;
                        public NHibernate.Persister.Entity.ISqlLoadable GetEntityPersister(string alias) => throw null;
                        public string GetEntitySuffix(string alias) => throw null;
                        public string GetOwnerAlias(string alias) => throw null;
                        public System.Collections.Generic.IDictionary<string, string[]> GetPropertyResultsMap(string alias) => throw null;
                    }
                }
            }
        }
        public class DefaultEntityAliases : NHibernate.Loader.IEntityAliases
        {
            public DefaultEntityAliases(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null;
            public DefaultEntityAliases(System.Collections.Generic.IDictionary<string, string[]> userProvidedAliases, NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null;
            protected virtual string GetDiscriminatorAlias(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null;
            protected virtual string[] GetIdentifierAliases(NHibernate.Persister.Entity.ILoadable persister, string suffix) => throw null;
            protected virtual string[] GetPropertyAliases(NHibernate.Persister.Entity.ILoadable persister, int j) => throw null;
            public string[][] GetSuffixedPropertyAliases(NHibernate.Persister.Entity.ILoadable persister) => throw null;
            public string RowIdAlias { get => throw null; }
            public string SuffixedDiscriminatorAlias { get => throw null; }
            public string[] SuffixedKeyAliases { get => throw null; }
            public string[][] SuffixedPropertyAliases { get => throw null; }
            public string[] SuffixedVersionAliases { get => throw null; }
        }
        namespace Entity
        {
            public abstract class AbstractBatchingEntityLoader : NHibernate.Loader.Entity.IUniqueEntityLoader
            {
                protected virtual NHibernate.Engine.QueryParameters BuildQueryParameters(object id, object[] ids, object optionalObject) => throw null;
                protected AbstractBatchingEntityLoader(NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                protected object GetObjectFromList(System.Collections.IList results, object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public abstract object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session);
                public abstract System.Threading.Tasks.Task<object> LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                protected NHibernate.Persister.Entity.IEntityPersister Persister { get => throw null; }
            }
            public abstract class AbstractEntityLoader : NHibernate.Loader.OuterJoinLoader, NHibernate.Loader.Entity.IUniqueEntityLoader
            {
                protected AbstractEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Type.IType uniqueKeyType, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected readonly string entityName;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object> GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool IsSingleRowLoader { get => throw null; }
                public object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected virtual object Load(NHibernate.Engine.ISessionImplementor session, object id, object optionalObject, object optionalId) => throw null;
                public System.Threading.Tasks.Task<object> LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual System.Threading.Tasks.Task<object> LoadAsync(NHibernate.Engine.ISessionImplementor session, object id, object optionalObject, object optionalId, System.Threading.CancellationToken cancellationToken) => throw null;
                protected static readonly NHibernate.INHibernateLogger log;
                protected readonly NHibernate.Persister.Entity.IOuterJoinLoadable persister;
                protected NHibernate.Type.IType UniqueKeyType { get => throw null; }
            }
            public class BatchingEntityLoader : NHibernate.Loader.Entity.AbstractBatchingEntityLoader
            {
                public static NHibernate.Loader.Entity.IUniqueEntityLoader CreateBatchingEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int maxBatchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public BatchingEntityLoader(NHibernate.Persister.Entity.IEntityPersister persister, int[] batchSizes, NHibernate.Loader.Loader[] loaders) : base(default(NHibernate.Persister.Entity.IEntityPersister)) => throw null;
                public override object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null;
                public override System.Threading.Tasks.Task<object> LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public abstract class BatchingEntityLoaderBuilder
            {
                protected abstract NHibernate.Loader.Entity.IUniqueEntityLoader BuildBatchingLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters);
                public virtual NHibernate.Loader.Entity.IUniqueEntityLoader BuildLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                protected BatchingEntityLoaderBuilder() => throw null;
            }
            public class CascadeEntityJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker
            {
                public override string Comment { get => throw null; }
                public CascadeEntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.CascadingAction action, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null;
                protected override bool IsTooManyCollections { get => throw null; }
            }
            public class CascadeEntityLoader : NHibernate.Loader.Entity.AbstractEntityLoader
            {
                public CascadeEntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.Engine.CascadingAction action, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
            }
            public class CollectionElementLoader : NHibernate.Loader.OuterJoinLoader
            {
                public CollectionElementLoader(NHibernate.Persister.Collection.IQueryableCollection collectionPersister, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer transformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object> GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer transformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool IsSingleRowLoader { get => throw null; }
                public virtual object LoadElement(NHibernate.Engine.ISessionImplementor session, object key, object index) => throw null;
                public virtual System.Threading.Tasks.Task<object> LoadElementAsync(NHibernate.Engine.ISessionImplementor session, object key, object index, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class DynamicBatchingEntityLoaderBuilder : NHibernate.Loader.Entity.BatchingEntityLoaderBuilder
            {
                protected override NHibernate.Loader.Entity.IUniqueEntityLoader BuildBatchingLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public DynamicBatchingEntityLoaderBuilder() => throw null;
            }
            public class EntityJoinWalker : NHibernate.Loader.AbstractEntityJoinWalker
            {
                public override string Comment { get => throw null; }
                public EntityJoinWalker(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string[] uniqueKey, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override string GenerateAliasForColumn(string rootAlias, string column) => throw null;
                protected override bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null;
            }
            public class EntityLoader : NHibernate.Loader.Entity.AbstractEntityLoader
            {
                public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                public EntityLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string[] uniqueKey, NHibernate.Type.IType uniqueKeyType, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Persister.Entity.IOuterJoinLoadable), default(NHibernate.Type.IType), default(NHibernate.Engine.ISessionFactoryImplementor), default(System.Collections.Generic.IDictionary<string, NHibernate.IFilter>)) => throw null;
                protected override bool IsSingleRowLoader { get => throw null; }
                public object LoadByUniqueKey(NHibernate.Engine.ISessionImplementor session, object key) => throw null;
                public System.Threading.Tasks.Task<object> LoadByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, object key, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public interface IUniqueEntityLoader
            {
                object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            }
            public class LegacyBatchingEntityLoaderBuilder : NHibernate.Loader.Entity.BatchingEntityLoaderBuilder
            {
                protected override NHibernate.Loader.Entity.IUniqueEntityLoader BuildBatchingLoader(NHibernate.Persister.Entity.IOuterJoinLoadable persister, int batchSize, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public LegacyBatchingEntityLoaderBuilder() => throw null;
            }
        }
        public class GeneratedCollectionAliases : NHibernate.Loader.ICollectionAliases
        {
            public GeneratedCollectionAliases(System.Collections.Generic.IDictionary<string, string[]> userProvidedAliases, NHibernate.Persister.Collection.ICollectionPersister persister, string suffix) => throw null;
            public GeneratedCollectionAliases(NHibernate.Persister.Collection.ICollectionPersister persister, string str) => throw null;
            public string Suffix { get => throw null; }
            public string[] SuffixedElementAliases { get => throw null; }
            public string SuffixedIdentifierAlias { get => throw null; }
            public string[] SuffixedIndexAliases { get => throw null; }
            public string[] SuffixedKeyAliases { get => throw null; }
            public override string ToString() => throw null;
        }
        namespace Hql
        {
            public interface IQueryLoader : NHibernate.Loader.ILoader
            {
                System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session);
                System.Threading.Tasks.Task<System.Collections.IEnumerable> GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken);
                System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters);
                System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken);
            }
            public interface IQueryLoaderFactory
            {
                NHibernate.Loader.Hql.IQueryLoader Create(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl queryTranslator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause);
            }
            public class QueryLoader : NHibernate.Loader.BasicLoader, NHibernate.Loader.ILoader, NHibernate.Loader.Hql.IQueryLoader
            {
                protected override string[] Aliases { get => throw null; }
                protected override NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, NHibernate.Dialect.Dialect dialect) => throw null;
                protected override int[] CollectionOwners { get => throw null; }
                protected override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; }
                protected override string[] CollectionSuffixes { get => throw null; }
                public QueryLoader(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl queryTranslator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                protected override bool[] EntityEagerPropertyFetches { get => throw null; }
                protected override System.Collections.Generic.ISet<string>[] EntityFetchLazyProperties { get => throw null; }
                public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; }
                public System.Collections.IEnumerable GetEnumerable(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session) => throw null;
                public System.Threading.Tasks.Task<System.Collections.IEnumerable> GetEnumerableAsync(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Event.IEventSource session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes) => throw null;
                protected override System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications() => throw null;
                protected override object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object> GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
                protected override object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<object[]> GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override bool[] IncludeInResultRow { get => throw null; }
                public override bool IsCacheable(NHibernate.Engine.QueryParameters queryParameters) => throw null;
                protected override bool IsCollectionPersisterCacheable(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null;
                public override bool IsSubselectLoadingEnabled { get => throw null; }
                public System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null;
                public System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; }
                protected override int[] Owners { get => throw null; }
                public override string QueryIdentifier { get => throw null; }
                protected override void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null;
                protected override NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
                protected override string[] ResultRowAliases { get => throw null; }
                public NHibernate.Type.IType[] ReturnTypes { get => throw null; }
                public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; }
                protected override string[] Suffixes { get => throw null; }
                protected override bool UpgradeLocks() => throw null;
            }
            public class QueryLoaderFactory : NHibernate.Loader.Hql.IQueryLoaderFactory
            {
                public NHibernate.Loader.Hql.IQueryLoader Create(NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl queryTranslator, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Hql.Ast.ANTLR.Tree.SelectClause selectClause) => throw null;
                public QueryLoaderFactory() => throw null;
            }
        }
        public interface ICollectionAliases
        {
            string Suffix { get; }
            string[] SuffixedElementAliases { get; }
            string SuffixedIdentifierAlias { get; }
            string[] SuffixedIndexAliases { get; }
            string[] SuffixedKeyAliases { get; }
        }
        public interface IEntityAliases
        {
            string[][] GetSuffixedPropertyAliases(NHibernate.Persister.Entity.ILoadable persister);
            string RowIdAlias { get; }
            string SuffixedDiscriminatorAlias { get; }
            string[] SuffixedKeyAliases { get; }
            string[][] SuffixedPropertyAliases { get; }
            string[] SuffixedVersionAliases { get; }
        }
        public interface ILoader
        {
            void AutoDiscoverTypes(System.Data.Common.DbDataReader rs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer);
            NHibernate.Loader.Loader.QueryCacheInfo CacheInfo { get; }
            NHibernate.Type.IType[] CacheTypes { get; }
            NHibernate.SqlCommand.ISqlCommand CreateSqlCommand(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session);
            void CreateSubselects(System.Collections.Generic.List<NHibernate.Engine.EntityKey[]> keys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session);
            NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get; }
            NHibernate.Engine.ISessionFactoryImplementor Factory { get; }
            NHibernate.Cache.QueryKey GenerateQueryKey(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters);
            NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes);
            System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer);
            object GetRowFromResultSet(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.LockMode[] lockModeArray, NHibernate.Engine.EntityKey optionalObjectKey, System.Collections.IList hydratedObjects, NHibernate.Engine.EntityKey[] keys, bool returnProxies, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder, System.Action<NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.CachePutData> cacheBatchingHandler);
            System.Threading.Tasks.Task<object> GetRowFromResultSetAsync(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.LockMode[] lockModeArray, NHibernate.Engine.EntityKey optionalObjectKey, System.Collections.IList hydratedObjects, NHibernate.Engine.EntityKey[] keys, bool returnProxies, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder, System.Action<NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.CachePutData> cacheBatchingHandler, System.Threading.CancellationToken cancellationToken);
            void HandleEmptyCollections(object[] keys, object resultSetId, NHibernate.Engine.ISessionImplementor session);
            void InitializeEntitiesAndCollections(System.Collections.IList hydratedObjects, System.Data.Common.DbDataReader reader, NHibernate.Engine.ISessionImplementor session, bool readOnly, NHibernate.Cache.CacheBatcher cacheBatcher);
            System.Threading.Tasks.Task InitializeEntitiesAndCollectionsAsync(System.Collections.IList hydratedObjects, System.Data.Common.DbDataReader reader, NHibernate.Engine.ISessionImplementor session, bool readOnly, NHibernate.Cache.CacheBatcher cacheBatcher, System.Threading.CancellationToken cancellationToken);
            bool IsCacheable(NHibernate.Engine.QueryParameters queryParameters);
            bool IsCacheable(NHibernate.Engine.QueryParameters queryParameters, bool supportsQueryCache, System.Collections.Generic.IEnumerable<NHibernate.Persister.IPersister> persisters);
            bool IsSubselectLoadingEnabled { get; }
            void LoadCollection(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType type);
            System.Threading.Tasks.Task LoadCollectionAsync(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken);
            void LoadCollectionBatch(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType type);
            System.Threading.Tasks.Task LoadCollectionBatchAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken);
            string QueryIdentifier { get; }
            NHibernate.Type.IType[] ResultTypes { get; }
            NHibernate.SqlCommand.SqlString SqlString { get; }
            void StopLoadingCollections(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader reader);
            string ToString();
            System.Collections.IList TransformCacheableResults(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.CacheableResultTransformer transformer, System.Collections.IList result);
            bool UseLimit(NHibernate.Engine.RowSelection selection, NHibernate.Dialect.Dialect dialect);
        }
        public class JoinWalker
        {
            public string[] Aliases { get => throw null; set { } }
            protected sealed class AssociationKey
            {
                public AssociationKey(string[] columns, string table) => throw null;
                public override bool Equals(object other) => throw null;
                public override int GetHashCode() => throw null;
            }
            protected readonly System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations;
            public bool[] ChildFetchEntities { get => throw null; set { } }
            protected class CollectionJoinQueueEntry : NHibernate.Loader.JoinWalker.IJoinQueueEntry
            {
                public CollectionJoinQueueEntry(NHibernate.Persister.Collection.IQueryableCollection persister, string alias, string path, string pathAlias) => throw null;
                public void Walk(NHibernate.Loader.JoinWalker walker) => throw null;
            }
            public int[] CollectionOwners { get => throw null; set { } }
            public NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; set { } }
            public string[] CollectionSuffixes { get => throw null; set { } }
            protected static int CountCollectionPersisters(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations) => throw null;
            protected static int CountEntityPersisters(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations) => throw null;
            protected JoinWalker(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public class DependentAlias
            {
                public string Alias { get => throw null; set { } }
                public DependentAlias() => throw null;
                public string[] DependsOn { get => throw null; set { } }
            }
            protected NHibernate.Dialect.Dialect Dialect { get => throw null; }
            public bool[] EagerPropertyFetches { get => throw null; set { } }
            protected System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get => throw null; }
            public System.Collections.Generic.ISet<string>[] EntityFetchLazyProperties { get => throw null; set { } }
            protected class EntityJoinQueueEntry : NHibernate.Loader.JoinWalker.IJoinQueueEntry
            {
                public EntityJoinQueueEntry(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path) => throw null;
                public void Walk(NHibernate.Loader.JoinWalker walker) => throw null;
            }
            protected NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
            protected virtual string GenerateAliasForColumn(string rootAlias, string column) => throw null;
            protected virtual string GenerateRootAlias(string description) => throw null;
            protected virtual string GenerateTableAlias(int n, string path, NHibernate.Persister.Entity.IJoinable joinable) => throw null;
            protected virtual string GenerateTableAlias(int n, string path, string pathAlias, NHibernate.Persister.Entity.IJoinable joinable) => throw null;
            protected virtual System.Collections.Generic.IReadOnlyCollection<string> GetChildAliases(string parentSqlAlias, string childPath) => throw null;
            protected virtual System.Collections.Generic.ISet<string> GetEntityFetchLazyProperties(string path) => throw null;
            protected virtual NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null;
            protected virtual NHibernate.SqlCommand.JoinType GetJoinType(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, string path, string pathAlias, string lhsTable, string[] lhsColumns, bool nullable, int currentDepth, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null;
            protected NHibernate.SqlCommand.JoinType GetJoinType(bool nullable, int currentDepth) => throw null;
            protected static string GetSelectFragment(NHibernate.Loader.OuterJoinableAssociation join, string entitySuffix, string collectionSuffix, NHibernate.Loader.OuterJoinableAssociation next = default(NHibernate.Loader.OuterJoinableAssociation)) => throw null;
            protected virtual NHibernate.SelectMode GetSelectMode(string path) => throw null;
            protected virtual NHibernate.SqlCommand.SqlString GetWithClause(string path) => throw null;
            protected virtual NHibernate.SqlCommand.SqlString GetWithClause(string path, string pathAlias) => throw null;
            protected interface IJoinQueueEntry
            {
                void Walk(NHibernate.Loader.JoinWalker walker);
            }
            protected void InitPersisters(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations, NHibernate.LockMode lockMode) => throw null;
            protected virtual bool IsDuplicateAssociation(string foreignKeyTable, string[] foreignKeyColumns) => throw null;
            protected virtual bool IsDuplicateAssociation(string lhsTable, string[] lhsColumnNames, NHibernate.Type.IAssociationType type) => throw null;
            protected bool IsJoinable(NHibernate.SqlCommand.JoinType joinType, System.Collections.Generic.ISet<NHibernate.Loader.JoinWalker.AssociationKey> visitedAssociationKeys, string lhsTable, string[] lhsColumnNames, NHibernate.Type.IAssociationType type, int depth) => throw null;
            protected virtual bool IsJoinedFetchEnabled(NHibernate.Type.IAssociationType type, NHibernate.FetchMode config, NHibernate.Engine.CascadeStyle cascadeStyle) => throw null;
            protected bool IsJoinedFetchEnabledInMapping(NHibernate.FetchMode config, NHibernate.Type.IAssociationType type) => throw null;
            protected virtual bool IsTooDeep(int currentDepth) => throw null;
            protected virtual bool IsTooManyCollections { get => throw null; }
            public NHibernate.LockMode[] LockModeArray { get => throw null; set { } }
            protected NHibernate.SqlCommand.SqlString MergeOrderings(NHibernate.SqlCommand.SqlString ass, NHibernate.SqlCommand.SqlString orderBy) => throw null;
            protected NHibernate.SqlCommand.SqlString MergeOrderings(string ass, NHibernate.SqlCommand.SqlString orderBy) => throw null;
            protected NHibernate.SqlCommand.SqlString MergeOrderings(string ass, string orderBy) => throw null;
            protected NHibernate.SqlCommand.JoinFragment MergeOuterJoins(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations) => throw null;
            protected class NextLevelJoinQueueEntry : NHibernate.Loader.JoinWalker.IJoinQueueEntry
            {
                public static readonly NHibernate.Loader.JoinWalker.NextLevelJoinQueueEntry Instance;
                public void Walk(NHibernate.Loader.JoinWalker walker) => throw null;
            }
            protected NHibernate.SqlCommand.SqlString OrderBy(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations, NHibernate.SqlCommand.SqlString orderBy) => throw null;
            protected NHibernate.SqlCommand.SqlString OrderBy(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations, string orderBy) => throw null;
            protected NHibernate.SqlCommand.SqlString OrderBy(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations) => throw null;
            public NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; set { } }
            public int[] Owners { get => throw null; set { } }
            public NHibernate.Persister.Entity.ILoadable[] Persisters { get => throw null; set { } }
            protected void ProcessJoins() => throw null;
            public string SelectString(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations) => throw null;
            public NHibernate.SqlCommand.SqlString SqlString { get => throw null; set { } }
            protected static string SubPath(string path, string property) => throw null;
            public string[] Suffixes { get => throw null; set { } }
            protected void WalkCollectionTree(NHibernate.Persister.Collection.IQueryableCollection persister, string alias) => throw null;
            protected void WalkComponentTree(NHibernate.Type.IAbstractComponentType componentType, int begin, string alias, string path, NHibernate.Engine.ILhsAssociationTypeSqlInfo associationTypeSQLInfo) => throw null;
            protected void WalkComponentTree(NHibernate.Type.IAbstractComponentType componentType, int begin, string alias, string path, int currentDepth, NHibernate.Engine.ILhsAssociationTypeSqlInfo associationTypeSQLInfo) => throw null;
            protected void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias) => throw null;
            protected virtual void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path) => throw null;
            protected virtual void WalkEntityTree(NHibernate.Persister.Entity.IOuterJoinLoadable persister, string alias, string path, int currentDepth) => throw null;
            protected virtual NHibernate.SqlCommand.SqlStringBuilder WhereString(string alias, string[] columnNames, int batchSize) => throw null;
        }
        public abstract class Loader : NHibernate.Loader.ILoader
        {
            protected NHibernate.SqlCommand.SqlString AddLimitsParametersIfNeeded(NHibernate.SqlCommand.SqlString sqlString, System.Collections.Generic.ICollection<NHibernate.Param.IParameterSpecification> parameterSpecs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected void AdjustQueryParametersForSubSelectFetching(NHibernate.SqlCommand.SqlString filteredSqlString, System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> parameterSpecsWithFilters, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected virtual string[] Aliases { get => throw null; }
            protected virtual NHibernate.SqlCommand.SqlString ApplyLocks(NHibernate.SqlCommand.SqlString sql, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, NHibernate.Dialect.Dialect dialect) => throw null;
            protected virtual bool AreResultSetRowsTransformedImmediately() => throw null;
            protected virtual void AutoDiscoverTypes(System.Data.Common.DbDataReader rs) => throw null;
            public virtual void AutoDiscoverTypes(System.Data.Common.DbDataReader rs, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null;
            public virtual NHibernate.Loader.Loader.QueryCacheInfo CacheInfo { get => throw null; }
            protected void CachePersistersWithCollections(System.Collections.Generic.IEnumerable<int> resultTypePersisters) => throw null;
            public NHibernate.Type.IType[] CacheTypes { get => throw null; }
            protected abstract NHibernate.Loader.ICollectionAliases[] CollectionAliases { get; }
            protected virtual int[] CollectionOwners { get => throw null; }
            protected virtual NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; }
            public virtual NHibernate.SqlCommand.ISqlCommand CreateSqlCommand(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void CreateSubselects(System.Collections.Generic.List<NHibernate.Engine.EntityKey[]> keys, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected Loader(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null;
            protected System.Collections.IList DoList(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> DoListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> DoListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> DoListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder, System.Threading.CancellationToken cancellationToken) => throw null;
            protected abstract NHibernate.Loader.IEntityAliases[] EntityAliases { get; }
            protected virtual bool[] EntityEagerPropertyFetches { get => throw null; }
            protected virtual System.Collections.Generic.ISet<string>[] EntityFetchLazyProperties { get => throw null; }
            public abstract NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get; }
            protected NHibernate.SqlCommand.SqlString ExpandDynamicFilterParameters(NHibernate.SqlCommand.SqlString sqlString, System.Collections.Generic.ICollection<NHibernate.Param.IParameterSpecification> parameterSpecs, NHibernate.Engine.ISessionImplementor session) => throw null;
            public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
            public NHibernate.Cache.QueryKey GenerateQueryKey(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public abstract NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes);
            protected abstract System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> GetParameterSpecifications();
            protected virtual object GetResultColumnOrRow(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual System.Threading.Tasks.Task<object> GetResultColumnOrRowAsync(object[] row, NHibernate.Transform.IResultTransformer resultTransformer, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual System.Collections.IList GetResultList(System.Collections.IList results, NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
            protected virtual object[] GetResultRow(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual System.Threading.Tasks.Task<object[]> GetResultRowAsync(object[] row, System.Data.Common.DbDataReader rs, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Data.Common.DbDataReader GetResultSet(System.Data.Common.DbCommand st, bool autoDiscoverTypes, bool callable, NHibernate.Engine.RowSelection selection, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected System.Data.Common.DbDataReader GetResultSet(System.Data.Common.DbCommand st, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, NHibernate.Transform.IResultTransformer forcedResultTransformer) => throw null;
            protected System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetResultSetAsync(System.Data.Common.DbCommand st, bool autoDiscoverTypes, bool callable, NHibernate.Engine.RowSelection selection, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Threading.Tasks.Task<System.Data.Common.DbDataReader> GetResultSetAsync(System.Data.Common.DbCommand st, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, NHibernate.Transform.IResultTransformer forcedResultTransformer, System.Threading.CancellationToken cancellationToken) => throw null;
            public object GetRowFromResultSet(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.LockMode[] lockModeArray, NHibernate.Engine.EntityKey optionalObjectKey, System.Collections.IList hydratedObjects, NHibernate.Engine.EntityKey[] keys, bool returnProxies, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder, System.Action<NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.CachePutData> cacheBatchingHandler) => throw null;
            public System.Threading.Tasks.Task<object> GetRowFromResultSetAsync(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, NHibernate.LockMode[] lockModeArray, NHibernate.Engine.EntityKey optionalObjectKey, System.Collections.IList hydratedObjects, NHibernate.Engine.EntityKey[] keys, bool returnProxies, NHibernate.Transform.IResultTransformer forcedResultTransformer, NHibernate.Cache.QueryCacheResultBuilder queryCacheResultBuilder, System.Action<NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.CachePutData> cacheBatchingHandler, System.Threading.CancellationToken cancellationToken) => throw null;
            public void HandleEmptyCollections(object[] keys, object resultSetId, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected bool HasSubselectLoadableCollections() => throw null;
            protected NHibernate.Hql.Util.SessionFactoryHelper Helper { get => throw null; }
            protected virtual bool[] IncludeInResultRow { get => throw null; }
            public void InitializeEntitiesAndCollections(System.Collections.IList hydratedObjects, System.Data.Common.DbDataReader reader, NHibernate.Engine.ISessionImplementor session, bool readOnly, NHibernate.Cache.CacheBatcher cacheBatcher) => throw null;
            public System.Threading.Tasks.Task InitializeEntitiesAndCollectionsAsync(System.Collections.IList hydratedObjects, System.Data.Common.DbDataReader reader, NHibernate.Engine.ISessionImplementor session, bool readOnly, NHibernate.Cache.CacheBatcher cacheBatcher, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual bool IsCacheable(NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public bool IsCacheable(NHibernate.Engine.QueryParameters queryParameters, bool supportsQueryCache, System.Collections.Generic.IEnumerable<NHibernate.Persister.IPersister> persisters) => throw null;
            protected virtual bool IsChildFetchEntity(int i) => throw null;
            protected virtual bool IsCollectionPersisterCacheable(NHibernate.Persister.Collection.ICollectionPersister collectionPersister) => throw null;
            protected virtual bool IsSingleRowLoader { get => throw null; }
            public virtual bool IsSubselectLoadingEnabled { get => throw null; }
            protected System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet<string> querySpaces, NHibernate.Type.IType[] resultTypes) => throw null;
            protected System.Collections.IList List(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet<string> querySpaces) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet<string> querySpaces, NHibernate.Type.IType[] resultTypes, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> ListAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, System.Collections.Generic.ISet<string> querySpaces, System.Threading.CancellationToken cancellationToken) => throw null;
            public void LoadCollection(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType type) => throw null;
            public System.Threading.Tasks.Task LoadCollectionAsync(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken) => throw null;
            public void LoadCollectionBatch(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType type) => throw null;
            public System.Threading.Tasks.Task LoadCollectionBatchAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken) => throw null;
            protected void LoadCollectionSubselect(NHibernate.Engine.ISessionImplementor session, object[] ids, object[] parameterValues, NHibernate.Type.IType[] parameterTypes, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters, NHibernate.Type.IType type) => throw null;
            protected System.Threading.Tasks.Task LoadCollectionSubselectAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, object[] parameterValues, NHibernate.Type.IType[] parameterTypes, System.Collections.Generic.IDictionary<string, NHibernate.Engine.TypedValue> namedParameters, NHibernate.Type.IType type, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Collections.IList LoadEntity(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType identifierType, object optionalObject, string optionalEntityName, object optionalIdentifier, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            protected System.Collections.IList LoadEntity(NHibernate.Engine.ISessionImplementor session, object key, object index, NHibernate.Type.IType keyType, NHibernate.Type.IType indexType, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> LoadEntityAsync(NHibernate.Engine.ISessionImplementor session, object id, NHibernate.Type.IType identifierType, object optionalObject, string optionalEntityName, object optionalIdentifier, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> LoadEntityAsync(NHibernate.Engine.ISessionImplementor session, object key, object index, NHibernate.Type.IType keyType, NHibernate.Type.IType indexType, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Collections.IList LoadEntityBatch(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType idType, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
            protected System.Collections.IList LoadEntityBatch(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> LoadEntityBatchAsync(NHibernate.Engine.ISessionImplementor session, object[] ids, NHibernate.Type.IType idType, object optionalObject, string optionalEntityName, object optionalId, NHibernate.Persister.Entity.IEntityPersister persister, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Threading.Tasks.Task<System.Collections.IList> LoadEntityBatchAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Entity.IEntityPersister persister, NHibernate.Engine.QueryParameters queryParameters, System.Threading.CancellationToken cancellationToken) => throw null;
            protected object LoadSingleRow(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, bool returnProxies) => throw null;
            protected System.Threading.Tasks.Task<object> LoadSingleRowAsync(System.Data.Common.DbDataReader resultSet, NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.QueryParameters queryParameters, bool returnProxies, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; }
            protected virtual int[] Owners { get => throw null; }
            protected virtual void PostInstantiate() => throw null;
            protected virtual System.Data.Common.DbCommand PrepareQueryCommand(NHibernate.Engine.QueryParameters queryParameters, bool scroll, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual System.Threading.Tasks.Task<System.Data.Common.DbCommand> PrepareQueryCommandAsync(NHibernate.Engine.QueryParameters queryParameters, bool scroll, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual NHibernate.SqlCommand.SqlString PreprocessSQL(NHibernate.SqlCommand.SqlString sql, NHibernate.Engine.QueryParameters parameters, NHibernate.Dialect.Dialect dialect) => throw null;
            public sealed class QueryCacheInfo
            {
                public System.Collections.Generic.IReadOnlyList<int> AdditionalEntities { get => throw null; set { } }
                public NHibernate.Type.IType[] CacheTypes { get => throw null; set { } }
                public QueryCacheInfo() => throw null;
            }
            public virtual string QueryIdentifier { get => throw null; }
            protected virtual void ResetEffectiveExpectedType(System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected virtual NHibernate.Transform.IResultTransformer ResolveResultTransformer(NHibernate.Transform.IResultTransformer resultTransformer) => throw null;
            protected virtual string[] ResultRowAliases { get => throw null; }
            public NHibernate.Type.IType[] ResultTypes { get => throw null; set { } }
            public abstract NHibernate.SqlCommand.SqlString SqlString { get; }
            public void StopLoadingCollections(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbDataReader reader) => throw null;
            public override string ToString() => throw null;
            public System.Collections.IList TransformCacheableResults(NHibernate.Engine.QueryParameters queryParameters, NHibernate.Transform.CacheableResultTransformer transformer, System.Collections.IList result) => throw null;
            protected bool TryGetLimitString(NHibernate.Dialect.Dialect dialect, NHibernate.SqlCommand.SqlString queryString, int? offset, int? limit, NHibernate.SqlCommand.Parameter offsetParameter, NHibernate.SqlCommand.Parameter limitParameter, out NHibernate.SqlCommand.SqlString result) => throw null;
            protected virtual bool UpgradeLocks() => throw null;
            public bool UseLimit(NHibernate.Engine.RowSelection selection, NHibernate.Dialect.Dialect dialect) => throw null;
        }
        public sealed class OuterJoinableAssociation
        {
            public void AddJoins(NHibernate.SqlCommand.JoinFragment outerjoin) => throw null;
            public void AddManyToManyJoin(NHibernate.SqlCommand.JoinFragment outerjoin, NHibernate.Persister.Collection.IQueryableCollection collection) => throw null;
            public OuterJoinableAssociation(NHibernate.Type.IAssociationType joinableType, string lhsAlias, string[] lhsColumns, string rhsAlias, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString withClause, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, NHibernate.SelectMode selectMode) => throw null;
            public OuterJoinableAssociation(NHibernate.Type.IAssociationType joinableType, string lhsAlias, string[] lhsColumns, string rhsAlias, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString withClause, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public System.Collections.Generic.ISet<string> EntityFetchLazyProperties { get => throw null; set { } }
            public int GetOwner(System.Collections.Generic.IList<NHibernate.Loader.OuterJoinableAssociation> associations) => throw null;
            public bool IsCollection { get => throw null; }
            public bool IsManyToManyWith(NHibernate.Loader.OuterJoinableAssociation other) => throw null;
            public NHibernate.Persister.Entity.IJoinable Joinable { get => throw null; }
            public NHibernate.Type.IAssociationType JoinableType { get => throw null; }
            public NHibernate.SqlCommand.JoinType JoinType { get => throw null; }
            public NHibernate.SqlCommand.SqlString On { get => throw null; }
            public string RHSAlias { get => throw null; }
            public string RHSUniqueKeyName { get => throw null; }
            public NHibernate.SelectMode SelectMode { get => throw null; }
            public void ValidateJoin(string path) => throw null;
        }
        public abstract class OuterJoinLoader : NHibernate.Loader.BasicLoader
        {
            protected override string[] Aliases { get => throw null; }
            protected override int[] CollectionOwners { get => throw null; }
            protected override NHibernate.Persister.Collection.ICollectionPersister[] CollectionPersisters { get => throw null; }
            protected override string[] CollectionSuffixes { get => throw null; }
            protected OuterJoinLoader(NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) : base(default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
            protected NHibernate.Dialect.Dialect Dialect { get => throw null; }
            public System.Collections.Generic.IDictionary<string, NHibernate.IFilter> EnabledFilters { get => throw null; }
            protected override bool[] EntityEagerPropertyFetches { get => throw null; }
            public override NHibernate.Persister.Entity.ILoadable[] EntityPersisters { get => throw null; }
            public override NHibernate.LockMode[] GetLockModes(System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes) => throw null;
            protected void InitFromWalker(NHibernate.Loader.JoinWalker walker) => throw null;
            protected override NHibernate.Type.EntityType[] OwnerAssociationTypes { get => throw null; }
            protected override int[] Owners { get => throw null; }
            public override NHibernate.SqlCommand.SqlString SqlString { get => throw null; }
            protected override string[] Suffixes { get => throw null; }
        }
    }
    public sealed class LockMode
    {
        public override bool Equals(object obj) => throw null;
        public bool Equals(NHibernate.LockMode other) => throw null;
        public static readonly NHibernate.LockMode Force;
        public override int GetHashCode() => throw null;
        public bool GreaterThan(NHibernate.LockMode mode) => throw null;
        public bool LessThan(NHibernate.LockMode mode) => throw null;
        public static NHibernate.LockMode None;
        public static NHibernate.LockMode Read;
        public override string ToString() => throw null;
        public static NHibernate.LockMode Upgrade;
        public static NHibernate.LockMode UpgradeNoWait;
        public static NHibernate.LockMode Write;
    }
    public class Log4NetLogger : NHibernate.IInternalLogger
    {
        public Log4NetLogger(object logger) => throw null;
        public void Debug(object message) => throw null;
        public void Debug(object message, System.Exception exception) => throw null;
        public void DebugFormat(string format, params object[] args) => throw null;
        public void Error(object message) => throw null;
        public void Error(object message, System.Exception exception) => throw null;
        public void ErrorFormat(string format, params object[] args) => throw null;
        public void Fatal(object message) => throw null;
        public void Fatal(object message, System.Exception exception) => throw null;
        public void Info(object message) => throw null;
        public void Info(object message, System.Exception exception) => throw null;
        public void InfoFormat(string format, params object[] args) => throw null;
        public bool IsDebugEnabled { get => throw null; }
        public bool IsErrorEnabled { get => throw null; }
        public bool IsFatalEnabled { get => throw null; }
        public bool IsInfoEnabled { get => throw null; }
        public bool IsWarnEnabled { get => throw null; }
        public void Warn(object message) => throw null;
        public void Warn(object message, System.Exception exception) => throw null;
        public void WarnFormat(string format, params object[] args) => throw null;
    }
    public class Log4NetLoggerFactory : NHibernate.ILoggerFactory
    {
        public Log4NetLoggerFactory() => throw null;
        public NHibernate.IInternalLogger LoggerFor(string keyName) => throw null;
        public NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null;
    }
    public class LoggerProvider
    {
        public LoggerProvider() => throw null;
        public static NHibernate.IInternalLogger LoggerFor(string keyName) => throw null;
        public static NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null;
        public static void SetLoggersFactory(NHibernate.ILoggerFactory loggerFactory) => throw null;
    }
    namespace Mapping
    {
        public abstract class AbstractAuxiliaryDatabaseObject : NHibernate.Mapping.IAuxiliaryDatabaseObject, NHibernate.Mapping.IRelationalModel
        {
            public void AddDialectScope(string dialectName) => throw null;
            public bool AppliesToDialect(NHibernate.Dialect.Dialect dialect) => throw null;
            protected AbstractAuxiliaryDatabaseObject() => throw null;
            protected AbstractAuxiliaryDatabaseObject(System.Collections.Generic.HashSet<string> dialectScopes) => throw null;
            public System.Collections.Generic.HashSet<string> DialectScopes { get => throw null; }
            public System.Collections.Generic.IDictionary<string, string> Parameters { get => throw null; }
            public void SetParameterValues(System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public abstract string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema);
            public abstract string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema);
        }
        public class Any : NHibernate.Mapping.SimpleValue
        {
            public Any(NHibernate.Mapping.Table table) => throw null;
            public virtual string IdentifierTypeName { get => throw null; set { } }
            public virtual string MetaType { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<object, string> MetaValues { get => throw null; set { } }
            public void ResetCachedType() => throw null;
            public override void SetTypeUsingReflection(string className, string propertyName, string access) => throw null;
            public override NHibernate.Type.IType Type { get => throw null; }
        }
        public class Array : NHibernate.Mapping.List
        {
            public Array(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; }
            public System.Type ElementClass { get => throw null; }
            public string ElementClassName { get => throw null; set { } }
            public override bool IsArray { get => throw null; }
        }
        public class Backref : NHibernate.Mapping.Property
        {
            public override bool BackRef { get => throw null; }
            public string CollectionRole { get => throw null; set { } }
            public Backref() => throw null;
            public string EntityName { get => throw null; set { } }
            public override bool IsBasicPropertyAccessor { get => throw null; }
            protected override NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; }
        }
        public class Bag : NHibernate.Mapping.Collection
        {
            public override void CreatePrimaryKey() => throw null;
            public Bag(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; }
        }
        namespace ByCode
        {
            public abstract class AbstractExplicitlyDeclaredModel : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder
            {
                public void AddAsAny(System.Reflection.MemberInfo member) => throw null;
                public void AddAsArray(System.Reflection.MemberInfo member) => throw null;
                public void AddAsBag(System.Reflection.MemberInfo member) => throw null;
                public void AddAsComponent(System.Type type) => throw null;
                public void AddAsDynamicComponent(System.Reflection.MemberInfo member, System.Type componentTemplate) => throw null;
                public void AddAsIdBag(System.Reflection.MemberInfo member) => throw null;
                public void AddAsList(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToAnyRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToManyItemRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToManyKeyRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToOneRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsMap(System.Reflection.MemberInfo member) => throw null;
                public void AddAsNaturalId(System.Reflection.MemberInfo member) => throw null;
                public void AddAsOneToManyRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsOneToOneRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPartOfComposedId(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPersistentMember(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPoid(System.Reflection.MemberInfo member) => throw null;
                public void AddAsProperty(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPropertySplit(NHibernate.Mapping.ByCode.SplitDefinition definition) => throw null;
                public void AddAsRootEntity(System.Type type) => throw null;
                public void AddAsSet(System.Reflection.MemberInfo member) => throw null;
                public void AddAsTablePerClassEntity(System.Type type) => throw null;
                protected virtual void AddAsTablePerClassEntity(System.Type type, bool rootEntityMustExists) => throw null;
                public void AddAsTablePerClassHierarchyEntity(System.Type type) => throw null;
                protected virtual void AddAsTablePerClassHierarchyEntity(System.Type type, bool rootEntityMustExists) => throw null;
                public void AddAsTablePerConcreteClassEntity(System.Type type) => throw null;
                protected virtual void AddAsTablePerConcreteClassEntity(System.Type type, bool rootEntityMustExists) => throw null;
                public void AddAsVersionProperty(System.Reflection.MemberInfo member) => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Any { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Arrays { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Bags { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> Components { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ComposedIds { get => throw null; }
                protected AbstractExplicitlyDeclaredModel() => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Dictionaries { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> DynamicComponents { get => throw null; }
                protected void EnlistTypeRegistration(System.Type type, System.Action<System.Type> registration) => throw null;
                protected void ExecuteDelayedRootEntitiesRegistrations() => throw null;
                protected void ExecuteDelayedTypeRegistration(System.Type type) => throw null;
                public virtual System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null;
                protected System.Collections.Generic.IEnumerable<System.Type> GetRootEntitiesOf(System.Type entityType) => throw null;
                protected System.Type GetSingleRootEntityOrNull(System.Type entityType) => throw null;
                public string GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null;
                public System.Collections.Generic.IEnumerable<string> GetSplitGroupsFor(System.Type type) => throw null;
                protected bool HasDelayedEntityRegistration(System.Type type) => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> IdBags { get => throw null; }
                public abstract bool IsComponent(System.Type type);
                protected bool IsMappedForTablePerClassEntities(System.Type type) => throw null;
                protected bool IsMappedForTablePerClassHierarchyEntities(System.Type type) => throw null;
                protected bool IsMappedForTablePerConcreteClassEntities(System.Type type) => throw null;
                public abstract bool IsRootEntity(System.Type entityType);
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ItemManyToManyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> KeyManyToManyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Lists { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToAnyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToOneRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NaturalIds { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToManyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToOneRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> PersistentMembers { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Poids { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Properties { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> RootEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Sets { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Mapping.ByCode.SplitDefinition> SplitDefinitions { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> TablePerClassEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> TablePerClassHierarchyEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> TablePerConcreteClassEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> VersionProperties { get => throw null; }
            }
            public enum Accessor
            {
                Property = 0,
                Field = 1,
                NoSetter = 2,
                ReadOnly = 3,
                None = 4,
                Backfield = 5,
            }
            public class AssignedGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public AssignedGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public static partial class BasePlainPropertyContainerMapperExtensions
            {
                public static void Component<TContainer, TComponent>(this NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TContainer> mapper, System.Linq.Expressions.Expression<System.Func<TContainer, System.Collections.Generic.IDictionary<string, object>>> property, TComponent dynamicComponentTemplate, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) where TComponent : class => throw null;
            }
            public abstract class CacheInclude
            {
                public static NHibernate.Mapping.ByCode.CacheInclude All;
                public class AllCacheInclude : NHibernate.Mapping.ByCode.CacheInclude
                {
                    public AllCacheInclude() => throw null;
                }
                protected CacheInclude() => throw null;
                public static NHibernate.Mapping.ByCode.CacheInclude NonLazy;
                public class NonLazyCacheInclude : NHibernate.Mapping.ByCode.CacheInclude
                {
                    public NonLazyCacheInclude() => throw null;
                }
            }
            public abstract class CacheUsage
            {
                protected CacheUsage() => throw null;
                public static NHibernate.Mapping.ByCode.CacheUsage Never;
                public static NHibernate.Mapping.ByCode.CacheUsage NonstrictReadWrite;
                public static NHibernate.Mapping.ByCode.CacheUsage ReadOnly;
                public static NHibernate.Mapping.ByCode.CacheUsage ReadWrite;
                public static NHibernate.Mapping.ByCode.CacheUsage Transactional;
            }
            [System.Flags]
            public enum Cascade
            {
                None = 0,
                Persist = 2,
                Refresh = 4,
                Merge = 8,
                Remove = 16,
                Detach = 32,
                ReAttach = 64,
                DeleteOrphans = 128,
                All = 256,
            }
            public static partial class CascadeExtensions
            {
                public static NHibernate.Mapping.ByCode.Cascade Exclude(this NHibernate.Mapping.ByCode.Cascade source, NHibernate.Mapping.ByCode.Cascade value) => throw null;
                public static bool Has(this NHibernate.Mapping.ByCode.Cascade source, NHibernate.Mapping.ByCode.Cascade value) => throw null;
                public static NHibernate.Mapping.ByCode.Cascade Include(this NHibernate.Mapping.ByCode.Cascade source, NHibernate.Mapping.ByCode.Cascade value) => throw null;
            }
            public abstract class CollectionFetchMode
            {
                protected CollectionFetchMode() => throw null;
                public static NHibernate.Mapping.ByCode.CollectionFetchMode Join;
                public static NHibernate.Mapping.ByCode.CollectionFetchMode Select;
                public static NHibernate.Mapping.ByCode.CollectionFetchMode Subselect;
            }
            public enum CollectionLazy
            {
                Lazy = 0,
                NoLazy = 1,
                Extra = 2,
            }
            public static partial class CollectionPropertiesMapperExtensions
            {
                public static void Type<TEntity, TElement>(this NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement> mapper, string collectionType) => throw null;
                public static void Type(this NHibernate.Mapping.ByCode.ICollectionPropertiesMapper mapper, string collectionType) => throw null;
            }
            public static partial class CollectionSqlsWithCheckMapperExtensions
            {
                public static void SqlDelete(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                public static void SqlDeleteAll(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                public static void SqlInsert(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                public static void SqlUpdate(this NHibernate.Mapping.ByCode.ICollectionSqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
            }
            public static partial class ColumnsAndFormulasMapperExtensions
            {
                public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IElementMapper mapper, params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IManyToManyMapper mapper, params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper, params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IMapKeyMapper mapper, params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                public static void ColumnsAndFormulas(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                public static void Formulas(this NHibernate.Mapping.ByCode.IElementMapper mapper, params string[] formulas) => throw null;
                public static void Formulas(this NHibernate.Mapping.ByCode.IManyToManyMapper mapper, params string[] formulas) => throw null;
                public static void Formulas(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, params string[] formulas) => throw null;
                public static void Formulas(this NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper, params string[] formulas) => throw null;
                public static void Formulas(this NHibernate.Mapping.ByCode.IMapKeyMapper mapper, params string[] formulas) => throw null;
                public static void Formulas(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, params string[] formulas) => throw null;
            }
            public static partial class ComponentAttributesMapperExtensions
            {
                public static void LazyGroup(this NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper, string name) => throw null;
                public static void LazyGroup<TComponent>(this NHibernate.Mapping.ByCode.IComponentAttributesMapper<TComponent> mapper, string name) => throw null;
            }
            namespace Conformist
            {
                public class ClassMapping<T> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ClassCustomizer<T> where T : class
                {
                    public ClassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                }
                public class ComponentMapping<T> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.ComponentCustomizer<T>
                {
                    public ComponentMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                }
                public class JoinedSubclassMapping<T> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.JoinedSubclassCustomizer<T> where T : class
                {
                    public JoinedSubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                }
                public class SubclassMapping<T> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.SubclassCustomizer<T> where T : class
                {
                    public SubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                }
                public class UnionSubclassMapping<T> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.UnionSubclassCustomizer<T> where T : class
                {
                    public UnionSubclassMapping() : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                }
            }
            public class ConventionModelMapper : NHibernate.Mapping.ByCode.ModelMapper
            {
                protected virtual void AppendDefaultEvents() => throw null;
                protected virtual void ComponentParentNoSetterToField(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper componentMapper) => throw null;
                protected virtual void ComponentParentToFieldAccessor(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper componentMapper) => throw null;
                public ConventionModelMapper() => throw null;
                public void IsAny(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsArray(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsBag(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsComponent(System.Func<System.Type, bool, bool> match) => throw null;
                public void IsDictionary(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsEntity(System.Func<System.Type, bool, bool> match) => throw null;
                public void IsIdBag(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsList(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsManyToMany(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsManyToOne(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsMemberOfNaturalId(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsOneToMany(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsOneToOne(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsPersistentId(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsPersistentProperty(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsProperty(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsRootEntity(System.Func<System.Type, bool, bool> match) => throw null;
                public void IsSet(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsTablePerClass(System.Func<System.Type, bool, bool> match) => throw null;
                public void IsTablePerClassHierarchy(System.Func<System.Type, bool, bool> match) => throw null;
                public void IsTablePerClassSplit(System.Func<NHibernate.Mapping.ByCode.SplitDefinition, bool, bool> match) => throw null;
                public void IsTablePerConcreteClass(System.Func<System.Type, bool, bool> match) => throw null;
                public void IsVersion(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                protected bool MatchNoSetterProperty(System.Reflection.MemberInfo subject) => throw null;
                protected bool MatchPropertyToField(System.Reflection.MemberInfo subject) => throw null;
                protected bool MatchReadOnlyProperty(System.Reflection.MemberInfo subject) => throw null;
                protected virtual void MemberNoSetterToField(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper propertyCustomizer) => throw null;
                protected virtual void MemberReadOnlyAccessor(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper propertyCustomizer) => throw null;
                protected virtual void MemberToFieldAccessor(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper propertyCustomizer) => throw null;
                protected virtual void NoPoidGuid(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IClassAttributesMapper classCustomizer) => throw null;
                protected virtual void NoSetterPoidToField(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IClassAttributesMapper classCustomizer) => throw null;
                protected NHibernate.Mapping.ByCode.SimpleModelInspector SimpleModelInspector { get => throw null; }
                public void SplitsFor(System.Func<System.Type, System.Collections.Generic.IEnumerable<string>, System.Collections.Generic.IEnumerable<string>> getPropertiesSplitsId) => throw null;
            }
            public class CounterGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public CounterGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class EnhancedSequenceGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public EnhancedSequenceGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class EnhancedTableGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public EnhancedTableGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public static partial class EntitySqlsWithCheckMapperExtensions
            {
                public static void SqlDelete(this NHibernate.Mapping.ByCode.IEntitySqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                public static void SqlInsert(this NHibernate.Mapping.ByCode.IEntitySqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                public static void SqlUpdate(this NHibernate.Mapping.ByCode.IEntitySqlsMapper mapper, string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
            }
            public class ExplicitlyDeclaredModel : NHibernate.Mapping.ByCode.AbstractExplicitlyDeclaredModel, NHibernate.Mapping.ByCode.IModelInspector
            {
                public ExplicitlyDeclaredModel() => throw null;
                public virtual System.Collections.Generic.IEnumerable<string> GetPropertiesSplits(System.Type type) => throw null;
                public virtual bool IsAny(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsArray(System.Reflection.MemberInfo role) => throw null;
                public virtual bool IsBag(System.Reflection.MemberInfo role) => throw null;
                public override bool IsComponent(System.Type type) => throw null;
                public virtual bool IsDictionary(System.Reflection.MemberInfo role) => throw null;
                public virtual bool IsDynamicComponent(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsEntity(System.Type type) => throw null;
                public virtual bool IsIdBag(System.Reflection.MemberInfo role) => throw null;
                public virtual bool IsList(System.Reflection.MemberInfo role) => throw null;
                public bool IsManyToAny(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsManyToManyItem(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsManyToManyKey(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsManyToOne(System.Reflection.MemberInfo member) => throw null;
                public bool IsMemberOfComposedId(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsMemberOfNaturalId(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsOneToMany(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsOneToOne(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsPersistentId(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsPersistentProperty(System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsProperty(System.Reflection.MemberInfo member) => throw null;
                public override bool IsRootEntity(System.Type type) => throw null;
                public virtual bool IsSet(System.Reflection.MemberInfo role) => throw null;
                public virtual bool IsTablePerClass(System.Type type) => throw null;
                public virtual bool IsTablePerClassHierarchy(System.Type type) => throw null;
                public virtual bool IsTablePerClassSplit(System.Type type, object splitGroupId, System.Reflection.MemberInfo member) => throw null;
                public virtual bool IsTablePerConcreteClass(System.Type type) => throw null;
                public virtual bool IsVersion(System.Reflection.MemberInfo member) => throw null;
            }
            public class FakeModelExplicitDeclarationsHolder : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder
            {
                public void AddAsAny(System.Reflection.MemberInfo member) => throw null;
                public void AddAsArray(System.Reflection.MemberInfo member) => throw null;
                public void AddAsBag(System.Reflection.MemberInfo member) => throw null;
                public void AddAsComponent(System.Type type) => throw null;
                public void AddAsDynamicComponent(System.Reflection.MemberInfo member, System.Type componentTemplate) => throw null;
                public void AddAsIdBag(System.Reflection.MemberInfo member) => throw null;
                public void AddAsList(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToAnyRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToManyItemRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToManyKeyRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsManyToOneRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsMap(System.Reflection.MemberInfo member) => throw null;
                public void AddAsNaturalId(System.Reflection.MemberInfo member) => throw null;
                public void AddAsOneToManyRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsOneToOneRelation(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPartOfComposedId(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPersistentMember(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPoid(System.Reflection.MemberInfo member) => throw null;
                public void AddAsProperty(System.Reflection.MemberInfo member) => throw null;
                public void AddAsPropertySplit(NHibernate.Mapping.ByCode.SplitDefinition definition) => throw null;
                public void AddAsRootEntity(System.Type type) => throw null;
                public void AddAsSet(System.Reflection.MemberInfo member) => throw null;
                public void AddAsTablePerClassEntity(System.Type type) => throw null;
                public void AddAsTablePerClassHierarchyEntity(System.Type type) => throw null;
                public void AddAsTablePerConcreteClassEntity(System.Type type) => throw null;
                public void AddAsVersionProperty(System.Reflection.MemberInfo member) => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Any { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Arrays { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Bags { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> Components { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ComposedIds { get => throw null; }
                public FakeModelExplicitDeclarationsHolder() => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Dictionaries { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> DynamicComponents { get => throw null; }
                public System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null;
                public string GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null;
                public System.Collections.Generic.IEnumerable<string> GetSplitGroupsFor(System.Type type) => throw null;
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> IdBags { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ItemManyToManyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> KeyManyToManyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Lists { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToAnyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToOneRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NaturalIds { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToManyRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToOneRelations { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> PersistentMembers { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Poids { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Properties { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> RootEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Sets { get => throw null; }
                public System.Collections.Generic.IEnumerable<NHibernate.Mapping.ByCode.SplitDefinition> SplitDefinitions { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> TablePerClassEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> TablePerClassHierarchyEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> TablePerClassHierarchyJoinEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Type> TablePerConcreteClassEntities { get => throw null; }
                public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> VersionProperties { get => throw null; }
            }
            public abstract class FetchKind
            {
                protected FetchKind() => throw null;
                public static NHibernate.Mapping.ByCode.FetchKind Join;
                public static NHibernate.Mapping.ByCode.FetchKind Select;
            }
            public static class ForClass<T>
            {
                public static System.Reflection.FieldInfo Field(string fieldName) => throw null;
            }
            public class ForeignGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public ForeignGeneratorDef(System.Reflection.MemberInfo foreignProperty) => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public static class Generators
            {
                public static NHibernate.Mapping.ByCode.IGeneratorDef Assigned { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Counter { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef EnhancedSequence { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef EnhancedTable { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Foreign<TEntity>(System.Linq.Expressions.Expression<System.Func<TEntity, object>> property) => throw null;
                public static NHibernate.Mapping.ByCode.IGeneratorDef Foreign(System.Reflection.MemberInfo property) => throw null;
                public static NHibernate.Mapping.ByCode.IGeneratorDef Guid { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef GuidComb { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef HighLow { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Identity { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Increment { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Native { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef NativeGuid { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Select { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Sequence { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef SequenceHiLo { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef SequenceIdentity { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef Table { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef TriggerIdentity { get => throw null; }
                public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex() => throw null;
                public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex(string format) => throw null;
                public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDHex(string format, string separator) => throw null;
                public static NHibernate.Mapping.ByCode.IGeneratorDef UUIDString { get => throw null; }
            }
            public class GuidCombGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public GuidCombGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class GuidGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public GuidGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class HighLowGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public HighLowGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public interface IAccessorPropertyMapper
            {
                void Access(NHibernate.Mapping.ByCode.Accessor accessor);
                void Access(System.Type accessorType);
            }
            public interface IAnyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle);
                void Columns(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> idColumnMapping, System.Action<NHibernate.Mapping.ByCode.IColumnMapper> classColumnMapping);
                void IdType(NHibernate.Type.IType idType);
                void IdType<TIdType>();
                void IdType(System.Type idType);
                void Index(string indexName);
                void Insert(bool consideredInInsertQuery);
                void Lazy(bool isLazy);
                void MetaType(NHibernate.Type.IType metaType);
                void MetaType<TMetaType>();
                void MetaType(System.Type metaType);
                void MetaValue(object value, System.Type entityType);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IBagPropertiesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
            }
            public interface IBagPropertiesMapper<TEntity, TElement> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
            }
            public interface IBasePlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
            {
                void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping);
                void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper> mapping);
                void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper> mapping);
            }
            public interface IBasePlainPropertyContainerMapper<TContainer> : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TContainer>
            {
                void Any<TProperty>(System.Linq.Expressions.Expression<System.Func<TContainer, TProperty>> property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) where TProperty : class;
                void Any<TProperty>(string notVisiblePropertyOrFieldName, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) where TProperty : class;
                void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TContainer, TComponent>> property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping);
                void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TContainer, TComponent>> property);
                void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TContainer, System.Collections.IDictionary>> property, TComponent dynamicComponentTemplate, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping);
                void Component<TComponent>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping);
                void Component<TComponent>(string notVisiblePropertyOrFieldName);
                void Component<TComponent>(string notVisiblePropertyOrFieldName, TComponent dynamicComponentTemplate, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping);
            }
            public interface ICacheMapper
            {
                void Include(NHibernate.Mapping.ByCode.CacheInclude cacheInclude);
                void Region(string regionName);
                void Usage(NHibernate.Mapping.ByCode.CacheUsage cacheUsage);
            }
            public interface IClassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper
            {
                void Abstract(bool isAbstract);
                void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping);
                void Catalog(string catalogName);
                void Check(string check);
                void ComponentAsId(System.Reflection.MemberInfo idProperty, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdMapper> idMapper);
                void ComposedId(System.Action<NHibernate.Mapping.ByCode.IComposedIdMapper> idPropertiesMapping);
                void Discriminator(System.Action<NHibernate.Mapping.ByCode.IDiscriminatorMapper> discriminatorMapping);
                void DiscriminatorValue(object value);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
                void Id(System.Action<NHibernate.Mapping.ByCode.IIdMapper> idMapper);
                void Id(System.Reflection.MemberInfo idProperty, System.Action<NHibernate.Mapping.ByCode.IIdMapper> idMapper);
                void Mutable(bool isMutable);
                void NaturalId(System.Action<NHibernate.Mapping.ByCode.INaturalIdMapper> naturalIdMapping);
                void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode);
                void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type);
                void Schema(string schemaName);
                void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action);
                void Table(string tableName);
                void Version(System.Reflection.MemberInfo versionProperty, System.Action<NHibernate.Mapping.ByCode.IVersionMapper> versionMapping);
                void Where(string whereClause);
            }
            public interface IClassAttributesMapper<TEntity> : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class
            {
                void Abstract(bool isAbstract);
                void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping);
                void Catalog(string catalogName);
                void ComponentAsId<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> idProperty);
                void ComponentAsId<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> idProperty, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdMapper<TComponent>> idMapper);
                void ComponentAsId<TComponent>(string notVisiblePropertyOrFieldName);
                void ComponentAsId<TComponent>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdMapper<TComponent>> idMapper);
                void ComposedId(System.Action<NHibernate.Mapping.ByCode.IComposedIdMapper<TEntity>> idPropertiesMapping);
                void Discriminator(System.Action<NHibernate.Mapping.ByCode.IDiscriminatorMapper> discriminatorMapping);
                void DiscriminatorValue(object value);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
                void Id<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> idProperty);
                void Id<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> idProperty, System.Action<NHibernate.Mapping.ByCode.IIdMapper> idMapper);
                void Id(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IIdMapper> idMapper);
                void Mutable(bool isMutable);
                void NaturalId(System.Action<NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>> naturalIdPropertiesMapping, System.Action<NHibernate.Mapping.ByCode.INaturalIdAttributesMapper> naturalIdMapping);
                void NaturalId(System.Action<NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>> naturalIdPropertiesMapping);
                void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode);
                void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type);
                void Schema(string schemaName);
                void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action);
                void Table(string tableName);
                void Version<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> versionProperty, System.Action<NHibernate.Mapping.ByCode.IVersionMapper> versionMapping);
                void Version(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IVersionMapper> versionMapping);
                void Where(string whereClause);
            }
            public interface IClassMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
            {
                void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper> splitMapping);
            }
            public interface IClassMapper<TEntity> : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IClassAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity> where TEntity : class
            {
                void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper<TEntity>> splitMapping);
            }
            public interface ICollectionElementRelation
            {
                void Component(System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper> mapping);
                void Element(System.Action<NHibernate.Mapping.ByCode.IElementMapper> mapping);
                void ManyToAny(System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> mapping);
                void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IManyToManyMapper> mapping);
                void OneToMany(System.Action<NHibernate.Mapping.ByCode.IOneToManyMapper> mapping);
            }
            public interface ICollectionElementRelation<TElement>
            {
                void Component(System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper<TElement>> mapping);
                void Element();
                void Element(System.Action<NHibernate.Mapping.ByCode.IElementMapper> mapping);
                void ManyToAny(System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> mapping);
                void ManyToAny<TIdTypeOfMetaType>(System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> mapping);
                void ManyToMany();
                void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IManyToManyMapper> mapping);
                void OneToMany();
                void OneToMany(System.Action<NHibernate.Mapping.ByCode.IOneToManyMapper> mapping);
            }
            public interface ICollectionIdMapper
            {
                void Column(string name);
                void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator);
                void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action<NHibernate.Mapping.ByCode.IGeneratorMapper> generatorMapping);
                void Length(int length);
                void Type(NHibernate.Type.IIdentifierType persistentType);
            }
            public interface ICollectionPropertiesContainerMapper
            {
                void Bag(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping);
                void IdBag(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping);
                void List(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping);
                void Map(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping);
                void Set(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping);
            }
            public interface ICollectionPropertiesContainerMapper<TEntity>
            {
                void Bag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Bag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping);
                void Bag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Bag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping);
                void IdBag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void IdBag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping);
                void IdBag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void IdBag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping);
                void List<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void List<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping);
                void List<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void List<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping);
                void Map<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Map<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Map<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping);
                void Map<TKey, TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Map<TKey, TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Map<TKey, TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping);
                void Set<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Set<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping);
                void Set<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping);
                void Set<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping);
            }
            public interface ICollectionPropertiesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void BatchSize(int value);
                void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping);
                void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle);
                void Catalog(string catalogName);
                void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
                void Inverse(bool value);
                void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping);
                void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy);
                void Mutable(bool value);
                void OrderBy(System.Reflection.MemberInfo property);
                void OrderBy(string sqlOrderByClause);
                void Persister(System.Type persister);
                void Schema(string schemaName);
                void Sort();
                void Sort<TComparer>();
                void Table(string tableName);
                void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType;
                void Type(System.Type collectionType);
                void Where(string sqlWhereClause);
            }
            public interface ICollectionPropertiesMapper<TEntity, TElement> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void BatchSize(int value);
                void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping);
                void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle);
                void Catalog(string catalogName);
                void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
                void Inverse(bool value);
                void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper<TEntity>> keyMapping);
                void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy);
                void Mutable(bool value);
                void OrderBy<TProperty>(System.Linq.Expressions.Expression<System.Func<TElement, TProperty>> property);
                void OrderBy(string sqlOrderByClause);
                void Persister<TPersister>() where TPersister : NHibernate.Persister.Collection.ICollectionPersister;
                void Schema(string schemaName);
                void Sort();
                void Sort<TComparer>();
                void Table(string tableName);
                void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType;
                void Type(System.Type collectionType);
                void Where(string sqlWhereClause);
            }
            public interface ICollectionSqlsMapper
            {
                void Loader(string namedQueryReference);
                void SqlDelete(string sql);
                void SqlDeleteAll(string sql);
                void SqlInsert(string sql);
                void SqlUpdate(string sql);
                void Subselect(string sql);
            }
            public interface ICollectionSqlsWithCheckMapper
            {
                void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck);
                void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck);
                void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck);
                void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck);
            }
            public interface IColumnMapper
            {
                void Check(string checkConstraint);
                void Default(object defaultValue);
                void Index(string indexName);
                void Length(int length);
                void Name(string name);
                void NotNullable(bool notnull);
                void Precision(short precision);
                void Scale(short scale);
                void SqlType(string sqltype);
                void Unique(bool unique);
                void UniqueKey(string uniquekeyName);
            }
            public interface IColumnOrFormulaMapper : NHibernate.Mapping.ByCode.IColumnMapper
            {
                void Formula(string formula);
            }
            public interface IColumnsAndFormulasMapper : NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void ColumnsAndFormulas(params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper);
                void Formula(string formula);
                void Formulas(params string[] formulas);
            }
            public interface IColumnsMapper
            {
                void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper);
                void Column(string name);
                void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper);
            }
            public interface IComponentAsIdAttributesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper
            {
                void Class(System.Type componentType);
                void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType);
            }
            public interface IComponentAsIdAttributesMapper<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper
            {
                void Class<TConcrete>() where TConcrete : TComponent;
                void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType);
            }
            public interface IComponentAsIdMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
            {
            }
            public interface IComponentAsIdMapper<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>
            {
            }
            public interface IComponentAttributesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Class(System.Type componentType);
                void Insert(bool consideredInInsertQuery);
                void Lazy(bool isLazy);
                void Parent(System.Reflection.MemberInfo parent);
                void Parent(System.Reflection.MemberInfo parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping);
                void Unique(bool unique);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IComponentAttributesMapper<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Class<TConcrete>() where TConcrete : TComponent;
                void Insert(bool consideredInInsertQuery);
                void Lazy(bool isLazy);
                void Parent<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> parent) where TProperty : class;
                void Parent<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) where TProperty : class;
                void Parent(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> mapping);
                void Unique(bool unique);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IComponentElementMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
            {
                void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper> mapping);
            }
            public interface IComponentElementMapper<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>
            {
                void Component<TNestedComponent>(System.Linq.Expressions.Expression<System.Func<TComponent, TNestedComponent>> property, System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper<TNestedComponent>> mapping) where TNestedComponent : class;
                void Component<TNestedComponent>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper<TNestedComponent>> mapping) where TNestedComponent : class;
            }
            public interface IComponentMapKeyMapper
            {
                void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping);
                void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping);
            }
            public interface IComponentMapKeyMapper<TComponent>
            {
                void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class;
                void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping);
                void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> property);
            }
            public interface IComponentMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
            {
            }
            public interface IComponentMapper<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IComponentAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TComponent>
            {
            }
            public interface IComponentParentMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper
            {
            }
            public interface IComposedIdMapper : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
            {
            }
            public interface IComposedIdMapper<TEntity> : NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity> where TEntity : class
            {
            }
            public interface IConformistHoldersProvider
            {
                NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get; }
                NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder { get; }
            }
            public class IdentityGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public IdentityGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public interface IDiscriminatorMapper
            {
                void Column(string column);
                void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper);
                void Force(bool force);
                void Formula(string formula);
                void Insert(bool applyOnApplyOnInsert);
                void Length(int length);
                void NotNullable(bool isNotNullable);
                void Type(NHibernate.Type.IType persistentType);
                void Type(NHibernate.Type.IDiscriminatorType persistentType);
                void Type<TPersistentType>() where TPersistentType : NHibernate.Type.IDiscriminatorType;
                void Type(System.Type persistentType);
            }
            public static partial class IdMapperExtensions
            {
                public static void Type<TPersistentType>(this NHibernate.Mapping.ByCode.IIdMapper idMapper) => throw null;
                public static void Type<TPersistentType>(this NHibernate.Mapping.ByCode.IIdMapper idMapper, object parameters) => throw null;
                public static void Type(this NHibernate.Mapping.ByCode.IIdMapper idMapper, System.Type persistentType, object parameters) => throw null;
            }
            public interface IDynamicComponentAttributesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Insert(bool consideredInInsertQuery);
                void Unique(bool unique);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IDynamicComponentAttributesMapper<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Insert(bool consideredInInsertQuery);
                void Unique(bool unique);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IDynamicComponentMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
            {
            }
            public interface IDynamicComponentMapper<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TComponent>
            {
            }
            public interface IElementMapper : NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void Formula(string formula);
                void Length(int length);
                void NotNullable(bool notnull);
                void Precision(short precision);
                void Scale(short scale);
                void Type(NHibernate.Type.IType persistentType);
                void Type<TPersistentType>();
                void Type<TPersistentType>(object parameters);
                void Type(System.Type persistentType, object parameters);
                void Unique(bool unique);
            }
            public interface IEntityAttributesMapper
            {
                void BatchSize(int value);
                void DynamicInsert(bool value);
                void DynamicUpdate(bool value);
                void EntityName(string value);
                void Lazy(bool value);
                void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister;
                void Proxy(System.Type proxy);
                void SelectBeforeUpdate(bool value);
                void Synchronize(params string[] table);
            }
            public interface IEntityPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper
            {
                void OptimisticLock(bool takeInConsiderationForOptimisticLock);
            }
            public interface IEntitySqlsMapper
            {
                void Loader(string namedQueryReference);
                void SqlDelete(string sql);
                void SqlInsert(string sql);
                void SqlUpdate(string sql);
                void Subselect(string sql);
            }
            public interface IEntitySqlsWithCheckMapper
            {
                void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck);
                void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck);
                void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck);
            }
            public interface IFilterMapper
            {
                void Condition(string sqlCondition);
            }
            public interface IGenerator
            {
            }
            public interface IGeneratorDef
            {
                string Class { get; }
                System.Type DefaultReturnType { get; }
                object Params { get; }
                bool SupportedAsCollectionElementId { get; }
            }
            public interface IGeneratorMapper
            {
                void Params(object generatorParameters);
                void Params(System.Collections.Generic.IDictionary<string, object> generatorParameters);
            }
            public interface IIdBagPropertiesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Id(System.Action<NHibernate.Mapping.ByCode.ICollectionIdMapper> idMapping);
            }
            public interface IIdBagPropertiesMapper<TEntity, TElement> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Id(System.Action<NHibernate.Mapping.ByCode.ICollectionIdMapper> idMapping);
            }
            public interface IIdMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator);
                void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action<NHibernate.Mapping.ByCode.IGeneratorMapper> generatorMapping);
                void Length(int length);
                void Type(NHibernate.Type.IIdentifierType persistentType);
                void UnsavedValue(object value);
            }
            public interface IJoinAttributesMapper : NHibernate.Mapping.ByCode.IEntitySqlsMapper
            {
                void Catalog(string catalogName);
                void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode);
                void Inverse(bool value);
                void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping);
                void Optional(bool isOptional);
                void Schema(string schemaName);
                void Table(string tableName);
            }
            public interface IJoinAttributesMapper<TEntity> : NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class
            {
                void Catalog(string catalogName);
                void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode);
                void Inverse(bool value);
                void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper<TEntity>> keyMapping);
                void Optional(bool isOptional);
                void Schema(string schemaName);
                void Table(string tableName);
            }
            public interface IJoinedSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper
            {
                void Abstract(bool isAbstract);
                void Catalog(string catalogName);
                void Extends(System.Type baseType);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
                void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping);
                void Schema(string schemaName);
                void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action);
                void Table(string tableName);
            }
            public interface IJoinedSubclassAttributesMapper<TEntity> : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class
            {
                void Abstract(bool isAbstract);
                void Catalog(string catalogName);
                void Extends(System.Type baseType);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
                void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper<TEntity>> keyMapping);
                void Schema(string schemaName);
                void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action);
                void Table(string tableName);
            }
            public interface IJoinedSubclassMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
            {
            }
            public interface IJoinedSubclassMapper<TEntity> : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity> where TEntity : class
            {
            }
            public interface IJoinMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
            {
            }
            public interface IJoinMapper<TEntity> : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity> where TEntity : class
            {
            }
            public interface IKeyMapper : NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void ForeignKey(string foreignKeyName);
                void NotNullable(bool notnull);
                void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction);
                void PropertyRef(System.Reflection.MemberInfo property);
                void Unique(bool unique);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IKeyMapper<TEntity> : NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void ForeignKey(string foreignKeyName);
                void NotNullable(bool notnull);
                void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction);
                void PropertyRef<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> propertyGetter);
                void Unique(bool unique);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IListIndexMapper
            {
                void Base(int baseIndex);
                void Column(string columnName);
                void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper);
            }
            public interface IListPropertiesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Index(System.Action<NHibernate.Mapping.ByCode.IListIndexMapper> listIndexMapping);
            }
            public interface IListPropertiesMapper<TEntity, TElement> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Index(System.Action<NHibernate.Mapping.ByCode.IListIndexMapper> listIndexMapping);
            }
            public interface IManyToAnyMapper
            {
                void Columns(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> idColumnMapping, System.Action<NHibernate.Mapping.ByCode.IColumnMapper> classColumnMapping);
                void IdType(NHibernate.Type.IType idType);
                void IdType<TIdType>();
                void IdType(System.Type idType);
                void MetaType(NHibernate.Type.IType metaType);
                void MetaType<TMetaType>();
                void MetaType(System.Type metaType);
                void MetaValue(object value, System.Type entityType);
            }
            public interface IManyToManyMapper : NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void Class(System.Type entityType);
                void EntityName(string entityName);
                void ForeignKey(string foreignKeyName);
                void Formula(string formula);
                void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation);
                void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode);
                void Where(string sqlWhereClause);
            }
            public interface IManyToOneMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle);
                void Class(System.Type entityType);
                void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode);
                void ForeignKey(string foreignKeyName);
                void Formula(string formula);
                void Index(string indexName);
                void Insert(bool consideredInInsertQuery);
                void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation);
                void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode);
                void NotNullable(bool notnull);
                void PropertyRef(string propertyReferencedName);
                void Unique(bool unique);
                void UniqueKey(string uniquekeyName);
                void Update(bool consideredInUpdateQuery);
            }
            public interface IMapKeyManyToManyMapper : NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void ForeignKey(string foreignKeyName);
                void Formula(string formula);
            }
            public interface IMapKeyMapper : NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void Formula(string formula);
                void Length(int length);
                void Type(NHibernate.Type.IType persistentType);
                void Type<TPersistentType>();
                void Type(System.Type persistentType);
            }
            public interface IMapKeyRelation
            {
                void Component(System.Action<NHibernate.Mapping.ByCode.IComponentMapKeyMapper> mapping);
                void Element(System.Action<NHibernate.Mapping.ByCode.IMapKeyMapper> mapping);
                void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper> mapping);
            }
            public interface IMapKeyRelation<TKey>
            {
                void Component(System.Action<NHibernate.Mapping.ByCode.IComponentMapKeyMapper<TKey>> mapping);
                void Element();
                void Element(System.Action<NHibernate.Mapping.ByCode.IMapKeyMapper> mapping);
                void ManyToMany();
                void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper> mapping);
            }
            public interface IMapPropertiesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
            }
            public interface IMapPropertiesMapper<TEntity, TKey, TElement> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
            }
            public interface IMinimalPlainPropertyContainerMapper
            {
                void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping);
                void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping);
            }
            public interface IMinimalPlainPropertyContainerMapper<TContainer>
            {
                void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TContainer, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class;
                void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TContainer, TProperty>> property) where TProperty : class;
                void ManyToOne<TProperty>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class;
                void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TContainer, TProperty>> property);
                void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TContainer, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping);
                void Property(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping);
            }
            public interface IModelExplicitDeclarationsHolder
            {
                void AddAsAny(System.Reflection.MemberInfo member);
                void AddAsArray(System.Reflection.MemberInfo member);
                void AddAsBag(System.Reflection.MemberInfo member);
                void AddAsComponent(System.Type type);
                void AddAsDynamicComponent(System.Reflection.MemberInfo member, System.Type componentTemplate);
                void AddAsIdBag(System.Reflection.MemberInfo member);
                void AddAsList(System.Reflection.MemberInfo member);
                void AddAsManyToAnyRelation(System.Reflection.MemberInfo member);
                void AddAsManyToManyItemRelation(System.Reflection.MemberInfo member);
                void AddAsManyToManyKeyRelation(System.Reflection.MemberInfo member);
                void AddAsManyToOneRelation(System.Reflection.MemberInfo member);
                void AddAsMap(System.Reflection.MemberInfo member);
                void AddAsNaturalId(System.Reflection.MemberInfo member);
                void AddAsOneToManyRelation(System.Reflection.MemberInfo member);
                void AddAsOneToOneRelation(System.Reflection.MemberInfo member);
                void AddAsPartOfComposedId(System.Reflection.MemberInfo member);
                void AddAsPersistentMember(System.Reflection.MemberInfo member);
                void AddAsPoid(System.Reflection.MemberInfo member);
                void AddAsProperty(System.Reflection.MemberInfo member);
                void AddAsPropertySplit(NHibernate.Mapping.ByCode.SplitDefinition definition);
                void AddAsRootEntity(System.Type type);
                void AddAsSet(System.Reflection.MemberInfo member);
                void AddAsTablePerClassEntity(System.Type type);
                void AddAsTablePerClassHierarchyEntity(System.Type type);
                void AddAsTablePerConcreteClassEntity(System.Type type);
                void AddAsVersionProperty(System.Reflection.MemberInfo member);
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Any { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Arrays { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Bags { get; }
                System.Collections.Generic.IEnumerable<System.Type> Components { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ComposedIds { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Dictionaries { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> DynamicComponents { get; }
                System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member);
                string GetSplitGroupFor(System.Reflection.MemberInfo member);
                System.Collections.Generic.IEnumerable<string> GetSplitGroupsFor(System.Type type);
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> IdBags { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ItemManyToManyRelations { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> KeyManyToManyRelations { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Lists { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToAnyRelations { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToOneRelations { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NaturalIds { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToManyRelations { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToOneRelations { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> PersistentMembers { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Poids { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Properties { get; }
                System.Collections.Generic.IEnumerable<System.Type> RootEntities { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Sets { get; }
                System.Collections.Generic.IEnumerable<NHibernate.Mapping.ByCode.SplitDefinition> SplitDefinitions { get; }
                System.Collections.Generic.IEnumerable<System.Type> TablePerClassEntities { get; }
                System.Collections.Generic.IEnumerable<System.Type> TablePerClassHierarchyEntities { get; }
                System.Collections.Generic.IEnumerable<System.Type> TablePerConcreteClassEntities { get; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> VersionProperties { get; }
            }
            public interface IModelInspector
            {
                System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member);
                System.Collections.Generic.IEnumerable<string> GetPropertiesSplits(System.Type type);
                bool IsAny(System.Reflection.MemberInfo member);
                bool IsArray(System.Reflection.MemberInfo role);
                bool IsBag(System.Reflection.MemberInfo role);
                bool IsComponent(System.Type type);
                bool IsDictionary(System.Reflection.MemberInfo role);
                bool IsDynamicComponent(System.Reflection.MemberInfo member);
                bool IsEntity(System.Type type);
                bool IsIdBag(System.Reflection.MemberInfo role);
                bool IsList(System.Reflection.MemberInfo role);
                bool IsManyToAny(System.Reflection.MemberInfo member);
                bool IsManyToManyItem(System.Reflection.MemberInfo member);
                bool IsManyToManyKey(System.Reflection.MemberInfo member);
                bool IsManyToOne(System.Reflection.MemberInfo member);
                bool IsMemberOfComposedId(System.Reflection.MemberInfo member);
                bool IsMemberOfNaturalId(System.Reflection.MemberInfo member);
                bool IsOneToMany(System.Reflection.MemberInfo member);
                bool IsOneToOne(System.Reflection.MemberInfo member);
                bool IsPersistentId(System.Reflection.MemberInfo member);
                bool IsPersistentProperty(System.Reflection.MemberInfo member);
                bool IsProperty(System.Reflection.MemberInfo member);
                bool IsRootEntity(System.Type type);
                bool IsSet(System.Reflection.MemberInfo role);
                bool IsTablePerClass(System.Type type);
                bool IsTablePerClassHierarchy(System.Type type);
                bool IsTablePerClassSplit(System.Type type, object splitGroupId, System.Reflection.MemberInfo member);
                bool IsTablePerConcreteClass(System.Type type);
                bool IsVersion(System.Reflection.MemberInfo member);
            }
            namespace Impl
            {
                public abstract class AbstractBasePropertyContainerMapper
                {
                    protected abstract void AddProperty(object property);
                    public virtual void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) => throw null;
                    public virtual void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper> mapping) => throw null;
                    public virtual void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper> mapping) => throw null;
                    protected System.Type container;
                    protected System.Type Container { get => throw null; }
                    protected AbstractBasePropertyContainerMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    protected virtual bool IsMemberSupportedByMappedContainer(System.Reflection.MemberInfo property) => throw null;
                    public virtual void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) => throw null;
                    protected NHibernate.Cfg.MappingSchema.HbmMapping mapDoc;
                    protected NHibernate.Cfg.MappingSchema.HbmMapping MapDoc { get => throw null; }
                    public virtual void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                }
                public abstract class AbstractPropertyContainerMapper : NHibernate.Mapping.ByCode.Impl.AbstractBasePropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
                {
                    public virtual void Bag(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    protected AbstractPropertyContainerMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public virtual void IdBag(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public virtual void List(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public virtual void Map(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public virtual void OneToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper> mapping) => throw null;
                    public virtual void Set(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                }
                public class AccessorPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public AccessorPropertyMapper(System.Type declaringType, string propertyName, System.Action<string> accesorValueSetter) => throw null;
                    public string PropertyName { get => throw null; set { } }
                }
                public class AnyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IAnyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Columns(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> idColumnMapping, System.Action<NHibernate.Mapping.ByCode.IColumnMapper> classColumnMapping) => throw null;
                    public AnyMapper(System.Reflection.MemberInfo member, System.Type foreignIdType, NHibernate.Cfg.MappingSchema.HbmAny any, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public AnyMapper(System.Reflection.MemberInfo member, System.Type foreignIdType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmAny any, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void IdType(NHibernate.Type.IType idType) => throw null;
                    public void IdType<TIdType>() => throw null;
                    public void IdType(System.Type idType) => throw null;
                    public void Index(string indexName) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(bool isLazy) => throw null;
                    public void MetaType(NHibernate.Type.IType metaType) => throw null;
                    public void MetaType<TMetaType>() => throw null;
                    public void MetaType(System.Type metaType) => throw null;
                    public void MetaValue(object value, System.Type entityType) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public delegate void AnyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper propertyCustomizer);
                public class BagMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBagPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public BagMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmBag mapping) => throw null;
                    public BagMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmBag mapping) => throw null;
                    public System.Type ElementType { get => throw null; }
                    public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Inverse(bool value) => throw null;
                    public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Mutable(bool value) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void OrderBy(System.Reflection.MemberInfo property) => throw null;
                    public void OrderBy(string sqlOrderByClause) => throw null;
                    public System.Type OwnerType { get => throw null; }
                    public void Persister(System.Type persister) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void Sort() => throw null;
                    public void Sort<TComparer>() => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlDeleteAll(string sql) => throw null;
                    public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Table(string tableName) => throw null;
                    public void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null;
                    public void Type(System.Type collectionType) => throw null;
                    public void Type(string collectionType) => throw null;
                    public void Where(string sqlWhereClause) => throw null;
                }
                public delegate void BagMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper propertyCustomizer);
                public class CacheMapper : NHibernate.Mapping.ByCode.ICacheMapper
                {
                    public CacheMapper(NHibernate.Cfg.MappingSchema.HbmCache cacheMapping) => throw null;
                    public void Include(NHibernate.Mapping.ByCode.CacheInclude cacheInclude) => throw null;
                    public void Region(string regionName) => throw null;
                    public void Usage(NHibernate.Mapping.ByCode.CacheUsage cacheUsage) => throw null;
                }
                public static class CascadeConverter
                {
                    public static string ToCascadeString(this NHibernate.Mapping.ByCode.Cascade source) => throw null;
                }
                public class ClassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IClassAttributesMapper, NHibernate.Mapping.ByCode.IClassMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
                {
                    public void Abstract(bool isAbstract) => throw null;
                    protected override void AddProperty(object property) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public void Check(string check) => throw null;
                    public void ComponentAsId(System.Reflection.MemberInfo idProperty, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdMapper> mapper) => throw null;
                    public void ComposedId(System.Action<NHibernate.Mapping.ByCode.IComposedIdMapper> idPropertiesMapping) => throw null;
                    public ClassMapper(System.Type rootClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, System.Reflection.MemberInfo idProperty) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public void Discriminator(System.Action<NHibernate.Mapping.ByCode.IDiscriminatorMapper> discriminatorMapping) => throw null;
                    public void DiscriminatorValue(object value) => throw null;
                    public void DynamicInsert(bool value) => throw null;
                    public void DynamicUpdate(bool value) => throw null;
                    public void EntityName(string value) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Id(System.Action<NHibernate.Mapping.ByCode.IIdMapper> mapper) => throw null;
                    public void Id(System.Reflection.MemberInfo idProperty, System.Action<NHibernate.Mapping.ByCode.IIdMapper> mapper) => throw null;
                    public void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper> splitMapping) => throw null;
                    public System.Collections.Generic.Dictionary<string, NHibernate.Mapping.ByCode.IJoinMapper> JoinMappers { get => throw null; }
                    public void Lazy(bool value) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Mutable(bool isMutable) => throw null;
                    public void NaturalId(System.Action<NHibernate.Mapping.ByCode.INaturalIdMapper> naturalIdMapping) => throw null;
                    public void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode) => throw null;
                    public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                    public void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type) => throw null;
                    public void Proxy(System.Type proxy) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null;
                    public void SelectBeforeUpdate(bool value) => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Synchronize(params string[] table) => throw null;
                    public void Table(string tableName) => throw null;
                    public void Version(System.Reflection.MemberInfo versionProperty, System.Action<NHibernate.Mapping.ByCode.IVersionMapper> versionMapping) => throw null;
                    public void Where(string whereClause) => throw null;
                }
                public class CollectionElementRelation : NHibernate.Mapping.ByCode.ICollectionElementRelation
                {
                    public void Component(System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper> mapping) => throw null;
                    public CollectionElementRelation(System.Type collectionElementType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, System.Action<object> elementRelationshipAssing) => throw null;
                    public void Element(System.Action<NHibernate.Mapping.ByCode.IElementMapper> mapping) => throw null;
                    public void ManyToAny(System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> mapping) => throw null;
                    public void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IManyToManyMapper> mapping) => throw null;
                    public void OneToMany(System.Action<NHibernate.Mapping.ByCode.IOneToManyMapper> mapping) => throw null;
                }
                public class CollectionIdMapper : NHibernate.Mapping.ByCode.ICollectionIdMapper
                {
                    public void Column(string name) => throw null;
                    public CollectionIdMapper(NHibernate.Cfg.MappingSchema.HbmCollectionId hbmId) => throw null;
                    public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator) => throw null;
                    public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action<NHibernate.Mapping.ByCode.IGeneratorMapper> generatorMapping) => throw null;
                    public void Length(int length) => throw null;
                    public void Type(NHibernate.Type.IIdentifierType persistentType) => throw null;
                }
                public class ColumnMapper : NHibernate.Mapping.ByCode.IColumnMapper
                {
                    public void Check(string checkConstraint) => throw null;
                    public ColumnMapper(NHibernate.Cfg.MappingSchema.HbmColumn mapping, string memberName) => throw null;
                    public void Default(object defaultValue) => throw null;
                    public void Index(string indexName) => throw null;
                    public void Length(int length) => throw null;
                    public void Name(string name) => throw null;
                    public void NotNullable(bool notnull) => throw null;
                    public void Precision(short precision) => throw null;
                    public void Scale(short scale) => throw null;
                    public void SqlType(string sqltype) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void UniqueKey(string uniquekeyName) => throw null;
                }
                public class ColumnOrFormulaMapper : NHibernate.Mapping.ByCode.Impl.ColumnMapper, NHibernate.Mapping.ByCode.IColumnMapper, NHibernate.Mapping.ByCode.IColumnOrFormulaMapper
                {
                    public ColumnOrFormulaMapper(NHibernate.Cfg.MappingSchema.HbmColumn columnMapping, string memberName, NHibernate.Cfg.MappingSchema.HbmFormula formulaMapping) : base(default(NHibernate.Cfg.MappingSchema.HbmColumn), default(string)) => throw null;
                    public void Formula(string formula) => throw null;
                    public static object[] GetItemsFor(System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper, string baseDefaultColumnName) => throw null;
                }
                public class ComponentAsIdLikeComponentAttributesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Class(System.Type componentType) => throw null;
                    public ComponentAsIdLikeComponentAttributesMapper(NHibernate.Mapping.ByCode.IComponentAsIdMapper realMapper) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(bool isLazy) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public class ComponentAsIdMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper, NHibernate.Mapping.ByCode.IComponentAsIdMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    protected void AddProperty(object property) => throw null;
                    public void Class(System.Type componentType) => throw null;
                    public NHibernate.Cfg.MappingSchema.HbmCompositeId CompositeId { get => throw null; }
                    public ComponentAsIdMapper(System.Type componentType, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmCompositeId id, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) => throw null;
                    public void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                    public void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType) => throw null;
                }
                public class ComponentElementMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    protected void AddProperty(object property) => throw null;
                    public void Class(System.Type componentConcreteType) => throw null;
                    public void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper> mapping) => throw null;
                    public ComponentElementMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, NHibernate.Cfg.MappingSchema.HbmCompositeElement component) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(bool isLazy) => throw null;
                    public void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) => throw null;
                    public void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public class ComponentMapKeyMapper : NHibernate.Mapping.ByCode.IComponentMapKeyMapper
                {
                    protected void AddProperty(object property) => throw null;
                    public NHibernate.Cfg.MappingSchema.HbmCompositeMapKey CompositeMapKeyMapping { get => throw null; }
                    public ComponentMapKeyMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmCompositeMapKey component, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) => throw null;
                    public void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                }
                public class ComponentMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IComponentMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    protected override void AddProperty(object property) => throw null;
                    public void Class(System.Type componentType) => throw null;
                    public ComponentMapper(NHibernate.Cfg.MappingSchema.HbmComponent component, System.Type componentType, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public ComponentMapper(NHibernate.Cfg.MappingSchema.HbmComponent component, System.Type componentType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(bool isLazy) => throw null;
                    public void LazyGroup(string name) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public delegate void ComponentMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper propertyCustomizer);
                public class ComponentNestedElementMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper, NHibernate.Mapping.ByCode.IComponentElementMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    protected void AddProperty(object property) => throw null;
                    public void Class(System.Type componentConcreteType) => throw null;
                    public void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper> mapping) => throw null;
                    public ComponentNestedElementMapper(System.Type componentType, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc, NHibernate.Cfg.MappingSchema.HbmNestedCompositeElement component, System.Reflection.MemberInfo declaringComponentMember) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(bool isLazy) => throw null;
                    public void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent) => throw null;
                    public void Parent(System.Reflection.MemberInfo parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) => throw null;
                    public void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public class ComponentParentMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentParentMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public ComponentParentMapper(NHibernate.Cfg.MappingSchema.HbmParent parent, System.Reflection.MemberInfo member) => throw null;
                }
                public class ComposedIdMapper : NHibernate.Mapping.ByCode.IComposedIdMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
                {
                    protected void AddProperty(object property) => throw null;
                    public NHibernate.Cfg.MappingSchema.HbmCompositeId ComposedId { get => throw null; }
                    public ComposedIdMapper(System.Type container, NHibernate.Cfg.MappingSchema.HbmCompositeId id, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) => throw null;
                    public void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                }
                public class CustomizersHolder : NHibernate.Mapping.ByCode.Impl.ICustomizersHolder
                {
                    public void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IClassMapper> classCustomizer) => throw null;
                    public void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.ISubclassMapper> classCustomizer) => throw null;
                    public void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper> classCustomizer) => throw null;
                    public void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper> classCustomizer) => throw null;
                    public void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IComponentAttributesMapper> classCustomizer) => throw null;
                    public void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IJoinAttributesMapper> joinCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.ICollectionPropertiesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IComponentAttributesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper> propertyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IManyToManyMapper> collectionRelationManyToManyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IElementMapper> collectionRelationElementCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IOneToManyMapper> collectionRelationOneToManyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> collectionRelationManyToAnyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper> mapKeyManyToManyCustomizer) => throw null;
                    public void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IMapKeyMapper> mapKeyElementCustomizer) => throw null;
                    public CustomizersHolder() => throw null;
                    public System.Collections.Generic.IEnumerable<System.Type> GetAllCustomizedEntities() => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToAnyMapper mapper) => throw null;
                    public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IClassMapper mapper) => throw null;
                    public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.ISubclassMapper mapper) => throw null;
                    public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper) => throw null;
                    public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper) => throw null;
                    public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper) => throw null;
                    public void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinAttributesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper) => throw null;
                    public void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapper) => throw null;
                    public void Merge(NHibernate.Mapping.ByCode.Impl.CustomizersHolder source) => throw null;
                }
                namespace CustomizersImpl
                {
                    public class BagPropertiesCustomizer<TEntity, TElement> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer<TEntity, TElement>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
                    {
                        public BagPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                    }
                    public class ClassCustomizer<TEntity> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TEntity>, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IClassAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.IClassMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity> where TEntity : class
                    {
                        public void Abstract(bool isAbstract) => throw null;
                        public void BatchSize(int value) => throw null;
                        public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                        public void Catalog(string catalogName) => throw null;
                        public void Check(string tableName) => throw null;
                        public void ComponentAsId<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> idProperty) => throw null;
                        public void ComponentAsId<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> idProperty, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdMapper<TComponent>> idMapper) => throw null;
                        public void ComponentAsId<TComponent>(string notVisiblePropertyOrFieldName) => throw null;
                        public void ComponentAsId<TComponent>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdMapper<TComponent>> idMapper) => throw null;
                        public void ComposedId(System.Action<NHibernate.Mapping.ByCode.IComposedIdMapper<TEntity>> idPropertiesMapping) => throw null;
                        public ClassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; }
                        public void Discriminator(System.Action<NHibernate.Mapping.ByCode.IDiscriminatorMapper> discriminatorMapping) => throw null;
                        public void DiscriminatorValue(object value) => throw null;
                        public void DynamicInsert(bool value) => throw null;
                        public void DynamicUpdate(bool value) => throw null;
                        public void EntityName(string value) => throw null;
                        NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; }
                        public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                        public void Id<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> idProperty) => throw null;
                        public void Id<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> idProperty, System.Action<NHibernate.Mapping.ByCode.IIdMapper> idMapper) => throw null;
                        public void Id(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IIdMapper> idMapper) => throw null;
                        public void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper<TEntity>> splitMapping) => throw null;
                        public void Lazy(bool value) => throw null;
                        public void Loader(string namedQueryReference) => throw null;
                        public void Mutable(bool isMutable) => throw null;
                        public void NaturalId(System.Action<NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>> naturalIdPropertiesMapping, System.Action<NHibernate.Mapping.ByCode.INaturalIdAttributesMapper> naturalIdMapping) => throw null;
                        public void NaturalId(System.Action<NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>> naturalIdPropertiesMapping) => throw null;
                        public void OptimisticLock(NHibernate.Mapping.ByCode.OptimisticLockMode mode) => throw null;
                        public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                        public void Polymorphism(NHibernate.Mapping.ByCode.PolymorphismType type) => throw null;
                        public void Proxy(System.Type proxy) => throw null;
                        public void Schema(string schemaName) => throw null;
                        public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null;
                        public void SelectBeforeUpdate(bool value) => throw null;
                        public void SqlDelete(string sql) => throw null;
                        public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlInsert(string sql) => throw null;
                        public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlUpdate(string sql) => throw null;
                        public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void Subselect(string sql) => throw null;
                        public void Synchronize(params string[] table) => throw null;
                        public void Table(string tableName) => throw null;
                        public void Version<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> versionProperty, System.Action<NHibernate.Mapping.ByCode.IVersionMapper> versionMapping) => throw null;
                        public void Version(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IVersionMapper> versionMapping) => throw null;
                        public void Where(string whereClause) => throw null;
                    }
                    public class CollectionElementCustomizer : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IElementMapper
                    {
                        public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                        public void Column(string name) => throw null;
                        public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                        public CollectionElementCustomizer(NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; }
                        public void Formula(string formula) => throw null;
                        public void Length(int length) => throw null;
                        public void NotNullable(bool notnull) => throw null;
                        public void Precision(short precision) => throw null;
                        public void Scale(short scale) => throw null;
                        public void Type(NHibernate.Type.IType persistentType) => throw null;
                        public void Type<TPersistentType>() => throw null;
                        public void Type<TPersistentType>(object parameters) => throw null;
                        public void Type(System.Type persistentType, object parameters) => throw null;
                        public void Unique(bool unique) => throw null;
                    }
                    public class CollectionElementRelationCustomizer<TElement> : NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>
                    {
                        public void Component(System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper<TElement>> mapping) => throw null;
                        public CollectionElementRelationCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void Element() => throw null;
                        public void Element(System.Action<NHibernate.Mapping.ByCode.IElementMapper> mapping) => throw null;
                        public void ManyToAny(System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> mapping) => throw null;
                        public void ManyToAny<TIdTypeOfMetaType>(System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> mapping) => throw null;
                        public void ManyToMany() => throw null;
                        public void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IManyToManyMapper> mapping) => throw null;
                        public void OneToMany() => throw null;
                        public void OneToMany(System.Action<NHibernate.Mapping.ByCode.IOneToManyMapper> mapping) => throw null;
                    }
                    public class CollectionKeyCustomizer<TEntity> : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IKeyMapper<TEntity>
                    {
                        public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                        public void Column(string columnName) => throw null;
                        public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                        public CollectionKeyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; }
                        public void ForeignKey(string foreignKeyName) => throw null;
                        public void NotNullable(bool notnull) => throw null;
                        public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null;
                        public void PropertyRef<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> propertyGetter) => throw null;
                        public void Unique(bool unique) => throw null;
                        public void Update(bool consideredInUpdateQuery) => throw null;
                    }
                    public class CollectionPropertiesCustomizer<TEntity, TElement> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
                    {
                        public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                        public void Access(System.Type accessorType) => throw null;
                        public void BatchSize(int value) => throw null;
                        public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                        public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                        public void Catalog(string catalogName) => throw null;
                        public CollectionPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; }
                        public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null;
                        public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                        public void Inverse(bool value) => throw null;
                        public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper<TEntity>> keyMapping) => throw null;
                        public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null;
                        public void Loader(string namedQueryReference) => throw null;
                        public void Mutable(bool value) => throw null;
                        public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                        public void OrderBy<TProperty>(System.Linq.Expressions.Expression<System.Func<TElement, TProperty>> property) => throw null;
                        public void OrderBy(string sqlOrderByClause) => throw null;
                        public void Persister<TPersister>() where TPersister : NHibernate.Persister.Collection.ICollectionPersister => throw null;
                        public NHibernate.Mapping.ByCode.PropertyPath PropertyPath { get => throw null; }
                        public void Schema(string schemaName) => throw null;
                        public void Sort() => throw null;
                        public void Sort<TComparer>() => throw null;
                        public void SqlDelete(string sql) => throw null;
                        public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlDeleteAll(string sql) => throw null;
                        public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlInsert(string sql) => throw null;
                        public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlUpdate(string sql) => throw null;
                        public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void Subselect(string sql) => throw null;
                        public void Table(string tableName) => throw null;
                        public void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null;
                        public void Type(System.Type collectionType) => throw null;
                        public void Type(string collectionType) => throw null;
                        public void Where(string sqlWhereClause) => throw null;
                    }
                    public class ComponentAsIdCustomizer<TComponent> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TComponent>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IComponentAsIdMapper<TComponent>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>
                    {
                        public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                        public void Access(System.Type accessorType) => throw null;
                        public void Class<TConcrete>() where TConcrete : TComponent => throw null;
                        public ComponentAsIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        public void UnsavedValue(NHibernate.Mapping.ByCode.UnsavedValueType unsavedValueType) => throw null;
                    }
                    public class ComponentCustomizer<TComponent> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TComponent>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IComponentAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IComponentMapper<TComponent>, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TComponent>
                    {
                        public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                        public void Access(System.Type accessorType) => throw null;
                        public void Class<TConcrete>() where TConcrete : TComponent => throw null;
                        public ComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        public ComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; }
                        NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; }
                        public void Insert(bool consideredInInsertQuery) => throw null;
                        public void Lazy(bool isLazy) => throw null;
                        public void LazyGroup(string name) => throw null;
                        public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                        public void Parent<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> parent) where TProperty : class => throw null;
                        public void Parent(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) => throw null;
                        public void Parent<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) where TProperty : class => throw null;
                        public void Unique(bool unique) => throw null;
                        public void Update(bool consideredInUpdateQuery) => throw null;
                    }
                    public class ComponentElementCustomizer<TComponent> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IComponentAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IComponentElementMapper<TComponent>, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>
                    {
                        public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                        public void Access(System.Type accessorType) => throw null;
                        public void Class<TConcrete>() where TConcrete : TComponent => throw null;
                        public void Component<TNestedComponent>(System.Linq.Expressions.Expression<System.Func<TComponent, TNestedComponent>> property, System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper<TNestedComponent>> mapping) where TNestedComponent : class => throw null;
                        public void Component<TNestedComponent>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentElementMapper<TNestedComponent>> mapping) where TNestedComponent : class => throw null;
                        public ComponentElementCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingNameOrThrow(string memberName) => throw null;
                        public void Insert(bool consideredInInsertQuery) => throw null;
                        public void Lazy(bool isLazy) => throw null;
                        public void LazyGroup(string name) => throw null;
                        public void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        public void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> property) where TProperty : class => throw null;
                        public void ManyToOne<TProperty>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                        public void Parent(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) => throw null;
                        public void Parent<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> parent) where TProperty : class => throw null;
                        public void Parent<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> parent, System.Action<NHibernate.Mapping.ByCode.IComponentParentMapper> parentMapping) where TProperty : class => throw null;
                        public void Property(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        public void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        public void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TComponent, TProperty>> property) => throw null;
                        public void Unique(bool unique) => throw null;
                        public void Update(bool consideredInUpdateQuery) => throw null;
                    }
                    public class ComposedIdCustomizer<TEntity> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TEntity>, NHibernate.Mapping.ByCode.IComposedIdMapper<TEntity>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity> where TEntity : class
                    {
                        public ComposedIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        protected override void RegisterManyToOneMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        protected override void RegisterPropertyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                    }
                    public class DynamicComponentCustomizer<TComponent> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TComponent>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper<TComponent>, NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TComponent>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TComponent>
                    {
                        public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                        public void Access(System.Type accessorType) => throw null;
                        public DynamicComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        protected override System.Reflection.MemberInfo GetRequiredPropertyOrFieldByName(string memberName) => throw null;
                        public void Insert(bool consideredInInsertQuery) => throw null;
                        public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                        public void Unique(bool unique) => throw null;
                        public void Update(bool consideredInUpdateQuery) => throw null;
                    }
                    public class IdBagPropertiesCustomizer<TEntity, TElement> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer<TEntity, TElement>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>
                    {
                        public IdBagPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                        public void Id(System.Action<NHibernate.Mapping.ByCode.ICollectionIdMapper> idMapping) => throw null;
                    }
                    public class JoinCustomizer<TEntity> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TEntity>, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.IJoinMapper<TEntity>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity> where TEntity : class
                    {
                        public void Catalog(string catalogName) => throw null;
                        public JoinCustomizer(string splitGroupId, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null;
                        public void Inverse(bool value) => throw null;
                        public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper<TEntity>> keyMapping) => throw null;
                        public void Loader(string namedQueryReference) => throw null;
                        public void Optional(bool isOptional) => throw null;
                        protected override void RegisterAnyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) where TProperty : class => throw null;
                        protected override void RegisterBagMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected override void RegisterComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping) => throw null;
                        protected override void RegisterDynamicComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.IDictionary>> property, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) => throw null;
                        protected override void RegisterDynamicComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<string, object>>> property, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) where TComponent : class => throw null;
                        protected override void RegisterIdBagMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected override void RegisterListMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected override void RegisterManyToOneMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        protected override void RegisterMapMapping<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected override void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        protected override void RegisterPropertyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        protected override void RegisterSetMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Schema(string schemaName) => throw null;
                        public void SqlDelete(string sql) => throw null;
                        public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlInsert(string sql) => throw null;
                        public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlUpdate(string sql) => throw null;
                        public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void Subselect(string sql) => throw null;
                        public void Table(string tableName) => throw null;
                    }
                    public class JoinedSubclassCustomizer<TEntity> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TEntity>, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.IJoinedSubclassMapper<TEntity>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity> where TEntity : class
                    {
                        public void Abstract(bool isAbstract) => throw null;
                        public void BatchSize(int value) => throw null;
                        public void Catalog(string catalogName) => throw null;
                        public JoinedSubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; }
                        public void DynamicInsert(bool value) => throw null;
                        public void DynamicUpdate(bool value) => throw null;
                        public void EntityName(string value) => throw null;
                        NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; }
                        public void Extends(System.Type baseType) => throw null;
                        public void Extends(string entityOrClassName) => throw null;
                        public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                        public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper<TEntity>> keyMapping) => throw null;
                        public void Lazy(bool value) => throw null;
                        public void Loader(string namedQueryReference) => throw null;
                        public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                        public void Proxy(System.Type proxy) => throw null;
                        public void Schema(string schemaName) => throw null;
                        public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null;
                        public void SelectBeforeUpdate(bool value) => throw null;
                        public void SqlDelete(string sql) => throw null;
                        public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlInsert(string sql) => throw null;
                        public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlUpdate(string sql) => throw null;
                        public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void Subselect(string sql) => throw null;
                        public void Synchronize(params string[] table) => throw null;
                        public void Table(string tableName) => throw null;
                    }
                    public class JoinedSubclassKeyCustomizer<TEntity> : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IKeyMapper<TEntity> where TEntity : class
                    {
                        public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                        public void Column(string columnName) => throw null;
                        public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                        public JoinedSubclassKeyCustomizer(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; }
                        public void ForeignKey(string foreignKeyName) => throw null;
                        public void NotNullable(bool notnull) => throw null;
                        public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null;
                        public void PropertyRef<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> propertyGetter) => throw null;
                        public void Unique(bool unique) => throw null;
                        public void Update(bool consideredInUpdateQuery) => throw null;
                    }
                    public class JoinKeyCustomizer<TEntity> : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IKeyMapper<TEntity> where TEntity : class
                    {
                        public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                        public void Column(string columnName) => throw null;
                        public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                        public JoinKeyCustomizer(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; }
                        public void ForeignKey(string foreignKeyName) => throw null;
                        public void NotNullable(bool notnull) => throw null;
                        public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null;
                        public void PropertyRef<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> propertyGetter) => throw null;
                        public void Unique(bool unique) => throw null;
                        public void Update(bool consideredInUpdateQuery) => throw null;
                    }
                    public class ListPropertiesCustomizer<TEntity, TElement> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer<TEntity, TElement>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>
                    {
                        public ListPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                        public void Index(System.Action<NHibernate.Mapping.ByCode.IListIndexMapper> listIndexMapping) => throw null;
                    }
                    public class ManyToAnyCustomizer : NHibernate.Mapping.ByCode.IManyToAnyMapper
                    {
                        public void Columns(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> idColumnMapping, System.Action<NHibernate.Mapping.ByCode.IColumnMapper> classColumnMapping) => throw null;
                        public ManyToAnyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void IdType(NHibernate.Type.IType idType) => throw null;
                        public void IdType<TIdType>() => throw null;
                        public void IdType(System.Type idType) => throw null;
                        public void MetaType(NHibernate.Type.IType metaType) => throw null;
                        public void MetaType<TMetaType>() => throw null;
                        public void MetaType(System.Type metaType) => throw null;
                        public void MetaValue(object value, System.Type entityType) => throw null;
                    }
                    public class ManyToManyCustomizer : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IManyToManyMapper
                    {
                        public void Class(System.Type entityType) => throw null;
                        public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                        public void Column(string name) => throw null;
                        public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                        public ManyToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void EntityName(string entityName) => throw null;
                        public void ForeignKey(string foreignKeyName) => throw null;
                        public void Formula(string formula) => throw null;
                        public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null;
                        public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null;
                        public void Where(string sqlWhereClause) => throw null;
                    }
                    public class MapKeyComponentCustomizer<TKey> : NHibernate.Mapping.ByCode.IComponentMapKeyMapper<TKey>
                    {
                        public MapKeyComponentCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TKey, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        public void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TKey, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        public void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TKey, TProperty>> property) => throw null;
                    }
                    public class MapKeyCustomizer : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IMapKeyMapper
                    {
                        public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                        public void Column(string name) => throw null;
                        public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                        public MapKeyCustomizer(NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void Formula(string formula) => throw null;
                        public void Length(int length) => throw null;
                        public void Type(NHibernate.Type.IType persistentType) => throw null;
                        public void Type<TPersistentType>() => throw null;
                        public void Type(System.Type persistentType) => throw null;
                    }
                    public class MapKeyManyToManyCustomizer : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper
                    {
                        public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                        public void Column(string name) => throw null;
                        public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                        public MapKeyManyToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void ForeignKey(string foreignKeyName) => throw null;
                        public void Formula(string formula) => throw null;
                    }
                    public class MapKeyRelationCustomizer<TKey> : NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>
                    {
                        public void Component(System.Action<NHibernate.Mapping.ByCode.IComponentMapKeyMapper<TKey>> mapping) => throw null;
                        public MapKeyRelationCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void Element() => throw null;
                        public void Element(System.Action<NHibernate.Mapping.ByCode.IMapKeyMapper> mapping) => throw null;
                        public void ManyToMany() => throw null;
                        public void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper> mapping) => throw null;
                    }
                    public class MapPropertiesCustomizer<TEntity, TKey, TElement> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer<TEntity, TElement>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>
                    {
                        public MapPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                    }
                    public class NaturalIdCustomizer<TEntity> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TEntity>, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity> where TEntity : class
                    {
                        public NaturalIdCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        protected override void RegisterAnyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) where TProperty : class => throw null;
                        protected override void RegisterComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping) => throw null;
                        protected override void RegisterManyToOneMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        protected override void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        protected override void RegisterPropertyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                    }
                    public class OneToManyCustomizer : NHibernate.Mapping.ByCode.IOneToManyMapper
                    {
                        public void Class(System.Type entityType) => throw null;
                        public OneToManyCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) => throw null;
                        public void EntityName(string entityName) => throw null;
                        public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null;
                    }
                    public class PropertyContainerCustomizer<TEntity>
                    {
                        public void Any<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) where TProperty : class => throw null;
                        public void Any<TProperty>(string notVisiblePropertyOrFieldName, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) where TProperty : class => throw null;
                        public void Bag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Bag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                        public void Bag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Bag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                        public void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping) => throw null;
                        public void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> property) => throw null;
                        public void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.IDictionary>> property, TComponent dynamicComponentTemplate, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) => throw null;
                        public void Component<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<string, object>>> property, TComponent dynamicComponentTemplate, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) where TComponent : class => throw null;
                        public void Component<TComponent>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping) => throw null;
                        public void Component<TComponent>(string notVisiblePropertyOrFieldName) => throw null;
                        public void Component<TComponent>(string notVisiblePropertyOrFieldName, TComponent dynamicComponentTemplate, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) => throw null;
                        public PropertyContainerCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath) => throw null;
                        protected NHibernate.Mapping.ByCode.Impl.ICustomizersHolder CustomizersHolder { get => throw null; }
                        protected NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder ExplicitDeclarationsHolder { get => throw null; }
                        public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingNameOrThrow(string memberName) => throw null;
                        protected virtual System.Reflection.MemberInfo GetRequiredPropertyOrFieldByName(string memberName) => throw null;
                        public void IdBag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void IdBag<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                        public void IdBag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void IdBag<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                        public void List<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void List<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                        public void List<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void List<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                        public void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        public void ManyToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property) where TProperty : class => throw null;
                        public void ManyToOne<TProperty>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        public void Map<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Map<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping) => throw null;
                        public void Map<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Map<TKey, TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Map<TKey, TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Map<TKey, TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping) => throw null;
                        public void OneToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper<TProperty>> mapping) where TProperty : class => throw null;
                        public void OneToOne<TProperty>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper<TProperty>> mapping) where TProperty : class => throw null;
                        public void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property) => throw null;
                        public void Property<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        public void Property(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        protected NHibernate.Mapping.ByCode.PropertyPath PropertyPath { get => throw null; }
                        protected void RegistePropertyMapping(System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected virtual void RegisterAnyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) where TProperty : class => throw null;
                        protected void RegisterAnyMapping<TProperty>(System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping, System.Type idTypeOfMetaType, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null;
                        protected virtual void RegisterBagMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected void RegisterBagMapping<TElement>(System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected virtual void RegisterComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, TComponent>> property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping) => throw null;
                        protected void RegisterComponentMapping<TComponent>(System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected virtual void RegisterDynamicComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.IDictionary>> property, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) => throw null;
                        protected virtual void RegisterDynamicComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.IDictionary>> property, System.Type componentType, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) => throw null;
                        protected virtual void RegisterDynamicComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<string, object>>> property, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) where TComponent : class => throw null;
                        protected virtual void RegisterDynamicComponentMapping<TComponent>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<string, object>>> property, System.Type componentType, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping) => throw null;
                        protected void RegisterDynamicComponentMapping<TComponent>(System.Type componentType, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected void RegisterDynamicComponentMapping<TComponent>(System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper<TComponent>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected virtual void RegisterIdBagMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected virtual void RegisterIdBagMapping<TElement>(System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected virtual void RegisterListMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected void RegisterListMapping<TElement>(System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected virtual void RegisterManyToOneMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) where TProperty : class => throw null;
                        protected void RegisterManyToOneMapping<TProperty>(System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null;
                        protected virtual void RegisterMapMapping<TKey, TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IDictionary<TKey, TElement>>> property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected virtual void RegisterMapMapping<TKey, TElement>(System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper<TEntity, TKey, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation<TKey>> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        protected virtual void RegisterNoVisiblePropertyMapping(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        protected void RegisterOneToOneMapping<TProperty>(System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper<TProperty>> mapping, params System.Reflection.MemberInfo[] members) where TProperty : class => throw null;
                        protected virtual void RegisterPropertyMapping<TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                        protected virtual void RegisterSetMapping<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        protected void RegisterSetMapping<TElement>(System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping, params System.Reflection.MemberInfo[] members) => throw null;
                        public void Set<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Set<TElement>(System.Linq.Expressions.Expression<System.Func<TEntity, System.Collections.Generic.IEnumerable<TElement>>> property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                        public void Set<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation<TElement>> mapping) => throw null;
                        public void Set<TElement>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>> collectionMapping) => throw null;
                    }
                    public class SetPropertiesCustomizer<TEntity, TElement> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.CollectionPropertiesCustomizer<TEntity, TElement>, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ISetPropertiesMapper<TEntity, TElement>
                    {
                        public SetPropertiesCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.PropertyPath), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder)) => throw null;
                    }
                    public class SubclassCustomizer<TEntity> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TEntity>, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ISubclassAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.ISubclassMapper<TEntity> where TEntity : class
                    {
                        public void Abstract(bool isAbstract) => throw null;
                        public void BatchSize(int value) => throw null;
                        public SubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; }
                        public void DiscriminatorValue(object value) => throw null;
                        public void DynamicInsert(bool value) => throw null;
                        public void DynamicUpdate(bool value) => throw null;
                        public void EntityName(string value) => throw null;
                        NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; }
                        public void Extends(System.Type baseType) => throw null;
                        public void Extends(string entityOrClassName) => throw null;
                        public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                        public void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper<TEntity>> splitMapping) => throw null;
                        public void Lazy(bool value) => throw null;
                        public void Loader(string namedQueryReference) => throw null;
                        public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                        public void Proxy(System.Type proxy) => throw null;
                        public void SelectBeforeUpdate(bool value) => throw null;
                        public void SqlDelete(string sql) => throw null;
                        public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlInsert(string sql) => throw null;
                        public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlUpdate(string sql) => throw null;
                        public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void Subselect(string sql) => throw null;
                        public void Synchronize(params string[] table) => throw null;
                    }
                    public class UnionSubclassCustomizer<TEntity> : NHibernate.Mapping.ByCode.Impl.CustomizersImpl.PropertyContainerCustomizer<TEntity>, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IConformistHoldersProvider, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper<TEntity>, NHibernate.Mapping.ByCode.IUnionSubclassMapper<TEntity> where TEntity : class
                    {
                        public void Abstract(bool isAbstract) => throw null;
                        public void BatchSize(int value) => throw null;
                        public void Catalog(string catalogName) => throw null;
                        public UnionSubclassCustomizer(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizersHolder) : base(default(NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder), default(NHibernate.Mapping.ByCode.Impl.ICustomizersHolder), default(NHibernate.Mapping.ByCode.PropertyPath)) => throw null;
                        NHibernate.Mapping.ByCode.Impl.ICustomizersHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.CustomizersHolder { get => throw null; }
                        public void DynamicInsert(bool value) => throw null;
                        public void DynamicUpdate(bool value) => throw null;
                        public void EntityName(string value) => throw null;
                        NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder NHibernate.Mapping.ByCode.IConformistHoldersProvider.ExplicitDeclarationsHolder { get => throw null; }
                        public void Extends(System.Type baseType) => throw null;
                        public void Extends(string entityOrClassName) => throw null;
                        public void Lazy(bool value) => throw null;
                        public void Loader(string namedQueryReference) => throw null;
                        public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                        public void Proxy(System.Type proxy) => throw null;
                        public void Schema(string schemaName) => throw null;
                        public void SelectBeforeUpdate(bool value) => throw null;
                        public void SqlDelete(string sql) => throw null;
                        public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlInsert(string sql) => throw null;
                        public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void SqlUpdate(string sql) => throw null;
                        public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                        public void Subselect(string sql) => throw null;
                        public void Synchronize(params string[] table) => throw null;
                        public void Table(string tableName) => throw null;
                    }
                }
                public class DefaultCandidatePersistentMembersProvider : NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider
                {
                    public DefaultCandidatePersistentMembersProvider() => throw null;
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetComponentMembers(System.Type componentClass) => throw null;
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetEntityMembersForPoid(System.Type entityClass) => throw null;
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetRootEntityMembers(System.Type entityClass) => throw null;
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetSubEntityMembers(System.Type entityClass, System.Type entitySuperclass) => throw null;
                    protected System.Collections.Generic.IEnumerable<System.Reflection.FieldInfo> GetUserDeclaredFields(System.Type type) => throw null;
                }
                public class DiscriminatorMapper : NHibernate.Mapping.ByCode.IDiscriminatorMapper
                {
                    public void Column(string column) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public DiscriminatorMapper(NHibernate.Cfg.MappingSchema.HbmDiscriminator discriminatorMapping) => throw null;
                    public void Force(bool force) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Insert(bool applyOnInsert) => throw null;
                    public void Length(int length) => throw null;
                    public void NotNullable(bool isNotNullable) => throw null;
                    public void Type(NHibernate.Type.IType persistentType) => throw null;
                    public void Type(NHibernate.Type.IDiscriminatorType persistentType) => throw null;
                    public void Type<TPersistentType>() where TPersistentType : NHibernate.Type.IDiscriminatorType => throw null;
                    public void Type(System.Type persistentType) => throw null;
                }
                public class DynamicComponentMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper, NHibernate.Mapping.ByCode.IDynamicComponentMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    protected void AddProperty(object property) => throw null;
                    public void Any(System.Reflection.MemberInfo property, System.Type idTypeOfMetaType, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> mapping) => throw null;
                    public void Bag(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IComponentMapper> mapping) => throw null;
                    public void Component(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentMapper> mapping) => throw null;
                    public DynamicComponentMapper(NHibernate.Cfg.MappingSchema.HbmDynamicComponent component, System.Reflection.MemberInfo declaringTypeMember, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void IdBag(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void List(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public void ManyToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> mapping) => throw null;
                    public void Map(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.IMapKeyRelation> keyMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public void OneToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper> mapping) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Property(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> mapping) => throw null;
                    public void Set(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper> collectionMapping, System.Action<NHibernate.Mapping.ByCode.ICollectionElementRelation> mapping) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public class ElementMapper : NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IElementMapper
                {
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public void ColumnsAndFormulas(params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                    public ElementMapper(System.Type elementType, NHibernate.Cfg.MappingSchema.HbmElement elementMapping) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Formulas(params string[] formulas) => throw null;
                    public void Length(int length) => throw null;
                    public void NotNullable(bool notnull) => throw null;
                    public void Precision(short precision) => throw null;
                    public void Scale(short scale) => throw null;
                    public void Type(NHibernate.Type.IType persistentType) => throw null;
                    public void Type<TPersistentType>() => throw null;
                    public void Type<TPersistentType>(object parameters) => throw null;
                    public void Type(System.Type persistentType, object parameters) => throw null;
                    public void Unique(bool unique) => throw null;
                }
                public delegate void ElementMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper collectionRelationElementCustomizer);
                public class ExplicitDeclarationsHolder : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder
                {
                    public void AddAsAny(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsArray(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsBag(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsComponent(System.Type type) => throw null;
                    public void AddAsDynamicComponent(System.Reflection.MemberInfo member, System.Type componentTemplate) => throw null;
                    public void AddAsIdBag(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsList(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsManyToAnyRelation(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsManyToManyItemRelation(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsManyToManyKeyRelation(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsManyToOneRelation(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsMap(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsNaturalId(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsOneToManyRelation(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsOneToOneRelation(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsPartOfComposedId(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsPersistentMember(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsPoid(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsProperty(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsPropertySplit(NHibernate.Mapping.ByCode.SplitDefinition definition) => throw null;
                    public void AddAsRootEntity(System.Type type) => throw null;
                    public void AddAsSet(System.Reflection.MemberInfo member) => throw null;
                    public void AddAsTablePerClassEntity(System.Type type) => throw null;
                    public void AddAsTablePerClassHierarchyEntity(System.Type type) => throw null;
                    public void AddAsTablePerConcreteClassEntity(System.Type type) => throw null;
                    public void AddAsVersionProperty(System.Reflection.MemberInfo member) => throw null;
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Any { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Arrays { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Bags { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Type> Components { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ComposedIds { get => throw null; }
                    public ExplicitDeclarationsHolder() => throw null;
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Dictionaries { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> DynamicComponents { get => throw null; }
                    public System.Type GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null;
                    public string GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null;
                    public System.Collections.Generic.IEnumerable<string> GetSplitGroupsFor(System.Type type) => throw null;
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> IdBags { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ItemManyToManyRelations { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> KeyManyToManyRelations { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Lists { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToAnyRelations { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> ManyToOneRelations { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NaturalIds { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToManyRelations { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> OneToOneRelations { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> PersistentMembers { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Poids { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Properties { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Type> RootEntities { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> Sets { get => throw null; }
                    public System.Collections.Generic.IEnumerable<NHibernate.Mapping.ByCode.SplitDefinition> SplitDefinitions { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Type> TablePerClassEntities { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Type> TablePerClassHierarchyEntities { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Type> TablePerConcreteClassEntities { get => throw null; }
                    public System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> VersionProperties { get => throw null; }
                }
                public class FilterMapper : NHibernate.Mapping.ByCode.IFilterMapper
                {
                    public void Condition(string sqlCondition) => throw null;
                    public FilterMapper(string filterName, NHibernate.Cfg.MappingSchema.HbmFilter filter) => throw null;
                }
                public class GeneratorMapper : NHibernate.Mapping.ByCode.IGeneratorMapper
                {
                    public GeneratorMapper(NHibernate.Cfg.MappingSchema.HbmGenerator generator) => throw null;
                    public void Params(object generatorParameters) => throw null;
                    public void Params(System.Collections.Generic.IDictionary<string, object> generatorParameters) => throw null;
                }
                public interface ICandidatePersistentMembersProvider
                {
                    System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetComponentMembers(System.Type componentClass);
                    System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetEntityMembersForPoid(System.Type entityClass);
                    System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetRootEntityMembers(System.Type entityClass);
                    System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetSubEntityMembers(System.Type entityClass, System.Type entitySuperclass);
                }
                public interface ICustomizersHolder
                {
                    void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IClassMapper> classCustomizer);
                    void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.ISubclassMapper> classCustomizer);
                    void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper> classCustomizer);
                    void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper> classCustomizer);
                    void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IComponentAttributesMapper> classCustomizer);
                    void AddCustomizer(System.Type type, System.Action<NHibernate.Mapping.ByCode.IJoinAttributesMapper> classCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IPropertyMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IManyToOneMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IAnyMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.ISetPropertiesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IBagPropertiesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IListPropertiesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IMapPropertiesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IIdBagPropertiesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.ICollectionPropertiesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IComponentAttributesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper> propertyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper> mapKeyManyToManyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IMapKeyMapper> mapKeyElementCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IManyToManyMapper> collectionRelationManyToManyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IElementMapper> collectionRelationElementCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IOneToManyMapper> collectionRelationOneToManyCustomizer);
                    void AddCustomizer(NHibernate.Mapping.ByCode.PropertyPath member, System.Action<NHibernate.Mapping.ByCode.IManyToAnyMapper> collectionRelationManyToAnyCustomizer);
                    System.Collections.Generic.IEnumerable<System.Type> GetAllCustomizedEntities();
                    void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IClassMapper mapper);
                    void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.ISubclassMapper mapper);
                    void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper);
                    void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper);
                    void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper);
                    void InvokeCustomizers(System.Type type, NHibernate.Mapping.ByCode.IJoinAttributesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IAnyMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IBagPropertiesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAttributesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IComponentAsIdAttributesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IDynamicComponentAttributesMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IElementMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper mapper);
                    void InvokeCustomizers(NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToAnyMapper mapper);
                }
                public class IdBagMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public IdBagMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmIdbag mapping) => throw null;
                    public IdBagMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmIdbag mapping) => throw null;
                    public System.Type ElementType { get => throw null; }
                    public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Id(System.Action<NHibernate.Mapping.ByCode.ICollectionIdMapper> idMapping) => throw null;
                    public void Inverse(bool value) => throw null;
                    public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Mutable(bool value) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void OrderBy(System.Reflection.MemberInfo property) => throw null;
                    public void OrderBy(string sqlOrderByClause) => throw null;
                    public System.Type OwnerType { get => throw null; }
                    public void Persister(System.Type persister) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void Sort() => throw null;
                    public void Sort<TComparer>() => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlDeleteAll(string sql) => throw null;
                    public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Table(string tableName) => throw null;
                    public void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null;
                    public void Type(System.Type collectionType) => throw null;
                    public void Type(string collectionType) => throw null;
                    public void Where(string sqlWhereClause) => throw null;
                }
                public delegate void IdBagMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IIdBagPropertiesMapper propertyCustomizer);
                public class IdMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IIdMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public IdMapper(NHibernate.Cfg.MappingSchema.HbmId hbmId) => throw null;
                    public IdMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmId hbmId) => throw null;
                    public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator) => throw null;
                    public void Generator(NHibernate.Mapping.ByCode.IGeneratorDef generator, System.Action<NHibernate.Mapping.ByCode.IGeneratorMapper> generatorMapping) => throw null;
                    public void Length(int length) => throw null;
                    public void Type(NHibernate.Type.IIdentifierType persistentType) => throw null;
                    public void Type(System.Type persistentType, object parameters) => throw null;
                    public void UnsavedValue(object value) => throw null;
                }
                public class JoinedSubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper, NHibernate.Mapping.ByCode.IJoinedSubclassMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper
                {
                    public void Abstract(bool isAbstract) => throw null;
                    protected override void AddProperty(object property) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public JoinedSubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public void DynamicInsert(bool value) => throw null;
                    public void DynamicUpdate(bool value) => throw null;
                    public void EntityName(string value) => throw null;
                    public void Extends(System.Type baseType) => throw null;
                    public void Extends(string entityOrClassName) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping) => throw null;
                    public void Lazy(bool value) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                    public void Proxy(System.Type proxy) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void SchemaAction(NHibernate.Mapping.ByCode.SchemaAction action) => throw null;
                    public void SelectBeforeUpdate(bool value) => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Synchronize(params string[] table) => throw null;
                    public void Table(string tableName) => throw null;
                }
                public delegate void JoinedSubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper joinedSubclassCustomizer);
                public class JoinMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IJoinAttributesMapper, NHibernate.Mapping.ByCode.IJoinMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
                {
                    protected override void AddProperty(object property) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public JoinMapper(System.Type container, string splitGroupId, NHibernate.Cfg.MappingSchema.HbmJoin hbmJoin, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null;
                    public void Inverse(bool value) => throw null;
                    public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Optional(bool isOptional) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Table(string tableName) => throw null;
                    public event NHibernate.Mapping.ByCode.Impl.TableNameChangedHandler TableNameChanged;
                }
                public class KeyManyToOneMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IManyToOneMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Class(System.Type entityType) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public KeyManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmKeyManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void EntityName(string entityName) => throw null;
                    public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null;
                    public void ForeignKey(string foreignKeyName) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Index(string indexName) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null;
                    public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null;
                    public void NotNullable(bool notnull) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void PropertyRef(string propertyReferencedName) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void UniqueKey(string uniquekeyName) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public class KeyMapper : NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IKeyMapper
                {
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public KeyMapper(System.Type ownerEntityType, NHibernate.Cfg.MappingSchema.HbmKey mapping) => throw null;
                    public static string DefaultColumnName(System.Type ownerEntityType) => throw null;
                    public void ForeignKey(string foreignKeyName) => throw null;
                    public void NotNullable(bool notnull) => throw null;
                    public void OnDelete(NHibernate.Mapping.ByCode.OnDeleteAction deleteAction) => throw null;
                    public void PropertyRef(System.Reflection.MemberInfo property) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public class KeyPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IPropertyMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public KeyPropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmKeyProperty propertyMapping) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation) => throw null;
                    public void Index(string indexName) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(bool isLazy) => throw null;
                    public void Length(int length) => throw null;
                    public void NotNullable(bool notnull) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Precision(short precision) => throw null;
                    public void Scale(short scale) => throw null;
                    public void Type(NHibernate.Type.IType persistentType) => throw null;
                    public void Type<TPersistentType>() => throw null;
                    public void Type<TPersistentType>(object parameters) => throw null;
                    public void Type(System.Type persistentType, object parameters) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void UniqueKey(string uniquekeyName) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public class ListIndexMapper : NHibernate.Mapping.ByCode.IListIndexMapper
                {
                    public void Base(int baseIndex) => throw null;
                    public void Column(string columnName) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public ListIndexMapper(System.Type ownerEntityType, NHibernate.Cfg.MappingSchema.HbmListIndex mapping) => throw null;
                }
                public class ListMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IListPropertiesMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public ListMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmList mapping) => throw null;
                    public ListMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmList mapping) => throw null;
                    public System.Type ElementType { get => throw null; }
                    public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Index(System.Action<NHibernate.Mapping.ByCode.IListIndexMapper> listIndexMapping) => throw null;
                    public void Inverse(bool value) => throw null;
                    public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Mutable(bool value) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void OrderBy(System.Reflection.MemberInfo property) => throw null;
                    public void OrderBy(string sqlOrderByClause) => throw null;
                    public System.Type OwnerType { get => throw null; }
                    public void Persister(System.Type persister) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void Sort() => throw null;
                    public void Sort<TComparer>() => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlDeleteAll(string sql) => throw null;
                    public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Table(string tableName) => throw null;
                    public void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null;
                    public void Type(System.Type collectionType) => throw null;
                    public void Type(string collectionType) => throw null;
                    public void Where(string sqlWhereClause) => throw null;
                }
                public delegate void ListMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IListPropertiesMapper propertyCustomizer);
                public class ManyToAnyMapper : NHibernate.Mapping.ByCode.IManyToAnyMapper
                {
                    public void Columns(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> idColumnMapping, System.Action<NHibernate.Mapping.ByCode.IColumnMapper> classColumnMapping) => throw null;
                    public ManyToAnyMapper(System.Type elementType, System.Type foreignIdType, NHibernate.Cfg.MappingSchema.HbmManyToAny manyToAny, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void IdType(NHibernate.Type.IType idType) => throw null;
                    public void IdType<TIdType>() => throw null;
                    public void IdType(System.Type idType) => throw null;
                    public void MetaType(NHibernate.Type.IType metaType) => throw null;
                    public void MetaType<TMetaType>() => throw null;
                    public void MetaType(System.Type metaType) => throw null;
                    public void MetaValue(object value, System.Type entityType) => throw null;
                }
                public class ManyToManyMapper : NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IManyToManyMapper
                {
                    public void Class(System.Type entityType) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public void ColumnsAndFormulas(params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                    public ManyToManyMapper(System.Type elementType, NHibernate.Cfg.MappingSchema.HbmManyToMany manyToMany, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void EntityName(string entityName) => throw null;
                    public void ForeignKey(string foreignKeyName) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Formulas(params string[] formulas) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null;
                    public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null;
                    public void Where(string sqlWhereClause) => throw null;
                }
                public delegate void ManyToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToManyMapper collectionRelationManyToManyCustomizer);
                public class ManyToOneMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IManyToOneMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Class(System.Type entityType) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public void ColumnsAndFormulas(params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                    public ManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public ManyToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorPropertyMapper, NHibernate.Cfg.MappingSchema.HbmManyToOne manyToOne, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void EntityName(string entityName) => throw null;
                    public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null;
                    public void ForeignKey(string foreignKeyName) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Formulas(params string[] formulas) => throw null;
                    public void Index(string indexName) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null;
                    public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null;
                    public void NotNullable(bool notnull) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void PropertyRef(string propertyReferencedName) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void UniqueKey(string uniquekeyName) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public delegate void ManyToOneMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IManyToOneMapper propertyCustomizer);
                public class MapKeyManyToManyMapper : NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper
                {
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public void ColumnsAndFormulas(params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                    public MapKeyManyToManyMapper(NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany mapping) => throw null;
                    public void ForeignKey(string foreignKeyName) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Formulas(params string[] formulas) => throw null;
                    public NHibernate.Cfg.MappingSchema.HbmMapKeyManyToMany MapKeyManyToManyMapping { get => throw null; }
                }
                public delegate void MapKeyManyToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper mapKeyManyToManyCustomizer);
                public class MapKeyMapper : NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IMapKeyMapper
                {
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public void ColumnsAndFormulas(params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                    public MapKeyMapper(NHibernate.Cfg.MappingSchema.HbmMapKey hbmMapKey) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Formulas(params string[] formulas) => throw null;
                    public void Length(int length) => throw null;
                    public NHibernate.Cfg.MappingSchema.HbmMapKey MapKeyMapping { get => throw null; }
                    public void Type(NHibernate.Type.IType persistentType) => throw null;
                    public void Type<TPersistentType>() => throw null;
                    public void Type(System.Type persistentType) => throw null;
                }
                public delegate void MapKeyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapKeyMapper mapKeyElementCustomizer);
                public class MapKeyRelation : NHibernate.Mapping.ByCode.IMapKeyRelation
                {
                    public void Component(System.Action<NHibernate.Mapping.ByCode.IComponentMapKeyMapper> mapping) => throw null;
                    public MapKeyRelation(System.Type dictionaryKeyType, NHibernate.Cfg.MappingSchema.HbmMap mapMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void Element(System.Action<NHibernate.Mapping.ByCode.IMapKeyMapper> mapping) => throw null;
                    public void ManyToMany(System.Action<NHibernate.Mapping.ByCode.IMapKeyManyToManyMapper> mapping) => throw null;
                }
                public class MapMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IMapPropertiesMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public MapMapper(System.Type ownerType, System.Type keyType, System.Type valueType, NHibernate.Cfg.MappingSchema.HbmMap mapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public MapMapper(System.Type ownerType, System.Type keyType, System.Type valueType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmMap mapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Inverse(bool value) => throw null;
                    public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping) => throw null;
                    public System.Type KeyType { get => throw null; }
                    public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Mutable(bool value) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void OrderBy(System.Reflection.MemberInfo property) => throw null;
                    public void OrderBy(string sqlOrderByClause) => throw null;
                    public System.Type OwnerType { get => throw null; }
                    public void Persister(System.Type persister) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void Sort() => throw null;
                    public void Sort<TComparer>() => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlDeleteAll(string sql) => throw null;
                    public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Table(string tableName) => throw null;
                    public void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null;
                    public void Type(System.Type collectionType) => throw null;
                    public void Type(string collectionType) => throw null;
                    public System.Type ValueType { get => throw null; }
                    public void Where(string sqlWhereClause) => throw null;
                }
                public delegate void MapMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IMapPropertiesMapper propertyCustomizer);
                public class NaturalIdMapper : NHibernate.Mapping.ByCode.Impl.AbstractBasePropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.INaturalIdAttributesMapper, NHibernate.Mapping.ByCode.INaturalIdMapper
                {
                    protected override void AddProperty(object property) => throw null;
                    public NaturalIdMapper(System.Type rootClass, NHibernate.Cfg.MappingSchema.HbmClass classMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public void Mutable(bool isMutable) => throw null;
                }
                public class NoMemberPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public NoMemberPropertyMapper() => throw null;
                }
                public class OneToManyMapper : NHibernate.Mapping.ByCode.IOneToManyMapper
                {
                    public void Class(System.Type entityType) => throw null;
                    public OneToManyMapper(System.Type collectionElementType, NHibernate.Cfg.MappingSchema.HbmOneToMany oneToManyMapping, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                    public void EntityName(string entityName) => throw null;
                    public void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode) => throw null;
                }
                public delegate void OneToManyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToManyMapper collectionRelationOneToManyCustomizer);
                public class OneToOneMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IOneToOneMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Class(System.Type clazz) => throw null;
                    public void Constrained(bool value) => throw null;
                    public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) => throw null;
                    public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) => throw null;
                    public void Fetch(NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null;
                    public void ForeignKey(string foreignKeyName) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Formulas(params string[] formulas) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void PropertyReference(System.Reflection.MemberInfo propertyInTheOtherSide) => throw null;
                }
                public class OneToOneMapper<T> : NHibernate.Mapping.ByCode.Impl.OneToOneMapper, NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IOneToOneMapper<T>, NHibernate.Mapping.ByCode.IOneToOneMapper
                {
                    public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) : base(default(System.Reflection.MemberInfo), default(NHibernate.Cfg.MappingSchema.HbmOneToOne)) => throw null;
                    public OneToOneMapper(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmOneToOne oneToOne) : base(default(System.Reflection.MemberInfo), default(NHibernate.Cfg.MappingSchema.HbmOneToOne)) => throw null;
                    public void PropertyReference<TProperty>(System.Linq.Expressions.Expression<System.Func<T, TProperty>> reference) => throw null;
                }
                public delegate void OneToOneMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IOneToOneMapper propertyCustomizer);
                public class PropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsAndFormulasMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IPropertyMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public void ColumnsAndFormulas(params System.Action<NHibernate.Mapping.ByCode.IColumnOrFormulaMapper>[] columnOrFormulaMapper) => throw null;
                    public PropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper) => throw null;
                    public PropertyMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmProperty propertyMapping) => throw null;
                    public void FetchGroup(string name) => throw null;
                    public void Formula(string formula) => throw null;
                    public void Formulas(params string[] formulas) => throw null;
                    public void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation) => throw null;
                    public void Index(string indexName) => throw null;
                    public void Insert(bool consideredInInsertQuery) => throw null;
                    public void Lazy(bool isLazy) => throw null;
                    public void Length(int length) => throw null;
                    public void NotNullable(bool notnull) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void Precision(short precision) => throw null;
                    public void Scale(short scale) => throw null;
                    public void Type(NHibernate.Type.IType persistentType) => throw null;
                    public void Type<TPersistentType>() => throw null;
                    public void Type<TPersistentType>(object parameters) => throw null;
                    public void Type(System.Type persistentType, object parameters) => throw null;
                    public void Unique(bool unique) => throw null;
                    public void UniqueKey(string uniquekeyName) => throw null;
                    public void Update(bool consideredInUpdateQuery) => throw null;
                }
                public delegate void PropertyMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.IPropertyMapper propertyCustomizer);
                public delegate void RootClassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IClassAttributesMapper classCustomizer);
                public class SetMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.ICollectionSqlsWithCheckMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.ISetPropertiesMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Cache(System.Action<NHibernate.Mapping.ByCode.ICacheMapper> cacheMapping) => throw null;
                    public void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public SetMapper(System.Type ownerType, System.Type elementType, NHibernate.Cfg.MappingSchema.HbmSet mapping) => throw null;
                    public SetMapper(System.Type ownerType, System.Type elementType, NHibernate.Mapping.ByCode.IAccessorPropertyMapper accessorMapper, NHibernate.Cfg.MappingSchema.HbmSet mapping) => throw null;
                    public System.Type ElementType { get => throw null; }
                    public void Fetch(NHibernate.Mapping.ByCode.CollectionFetchMode fetchMode) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Inverse(bool value) => throw null;
                    public void Key(System.Action<NHibernate.Mapping.ByCode.IKeyMapper> keyMapping) => throw null;
                    public void Lazy(NHibernate.Mapping.ByCode.CollectionLazy collectionLazy) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Mutable(bool value) => throw null;
                    public void OptimisticLock(bool takeInConsiderationForOptimisticLock) => throw null;
                    public void OrderBy(System.Reflection.MemberInfo property) => throw null;
                    public void OrderBy(string sqlOrderByClause) => throw null;
                    public System.Type OwnerType { get => throw null; }
                    public void Persister(System.Type persister) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void Sort() => throw null;
                    public void Sort<TComparer>() => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlDeleteAll(string sql) => throw null;
                    public void SqlDeleteAll(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Table(string tableName) => throw null;
                    public void Type<TCollection>() where TCollection : NHibernate.UserTypes.IUserCollectionType => throw null;
                    public void Type(System.Type collectionType) => throw null;
                    public void Type(string collectionType) => throw null;
                    public void Where(string sqlWhereClause) => throw null;
                }
                public delegate void SetMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.PropertyPath member, NHibernate.Mapping.ByCode.ISetPropertiesMapper propertyCustomizer);
                public class SubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ISubclassAttributesMapper, NHibernate.Mapping.ByCode.ISubclassMapper
                {
                    public void Abstract(bool isAbstract) => throw null;
                    protected override void AddProperty(object property) => throw null;
                    public void BatchSize(int value) => throw null;
                    public SubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public void DiscriminatorValue(object value) => throw null;
                    public void DynamicInsert(bool value) => throw null;
                    public void DynamicUpdate(bool value) => throw null;
                    public void EntityName(string value) => throw null;
                    public void Extends(System.Type baseType) => throw null;
                    public void Extends(string entityOrClassName) => throw null;
                    public void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping) => throw null;
                    public void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper> splitMapping) => throw null;
                    public System.Collections.Generic.Dictionary<string, NHibernate.Mapping.ByCode.IJoinMapper> JoinMappers { get => throw null; }
                    public void Lazy(bool value) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                    public void Proxy(System.Type proxy) => throw null;
                    public void SelectBeforeUpdate(bool value) => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Synchronize(params string[] table) => throw null;
                }
                public delegate void SubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.ISubclassAttributesMapper subclassCustomizer);
                public class TableNameChangedEventArgs
                {
                    public TableNameChangedEventArgs(string oldName, string newName) => throw null;
                    public string NewName { get => throw null; }
                    public string OldName { get => throw null; }
                }
                public delegate void TableNameChangedHandler(NHibernate.Mapping.ByCode.IJoinMapper mapper, NHibernate.Mapping.ByCode.Impl.TableNameChangedEventArgs args);
                public static class TypeNameUtil
                {
                    public static string GetNhTypeName(this System.Type type) => throw null;
                    public static string GetShortClassName(this System.Type type, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) => throw null;
                }
                public class UnionSubclassMapper : NHibernate.Mapping.ByCode.Impl.AbstractPropertyContainerMapper, NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IEntitySqlsWithCheckMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper, NHibernate.Mapping.ByCode.IUnionSubclassMapper
                {
                    public void Abstract(bool isAbstract) => throw null;
                    protected override void AddProperty(object property) => throw null;
                    public void BatchSize(int value) => throw null;
                    public void Catalog(string catalogName) => throw null;
                    public UnionSubclassMapper(System.Type subClass, NHibernate.Cfg.MappingSchema.HbmMapping mapDoc) : base(default(System.Type), default(NHibernate.Cfg.MappingSchema.HbmMapping)) => throw null;
                    public void DynamicInsert(bool value) => throw null;
                    public void DynamicUpdate(bool value) => throw null;
                    public void EntityName(string value) => throw null;
                    public void Extends(System.Type baseType) => throw null;
                    public void Extends(string entityOrClassName) => throw null;
                    public void Lazy(bool value) => throw null;
                    public void Loader(string namedQueryReference) => throw null;
                    public void Persister<T>() where T : NHibernate.Persister.Entity.IEntityPersister => throw null;
                    public void Proxy(System.Type proxy) => throw null;
                    public void Schema(string schemaName) => throw null;
                    public void SelectBeforeUpdate(bool value) => throw null;
                    public void SqlDelete(string sql) => throw null;
                    public void SqlDelete(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlInsert(string sql) => throw null;
                    public void SqlInsert(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void SqlUpdate(string sql) => throw null;
                    public void SqlUpdate(string sql, NHibernate.Mapping.ByCode.SqlCheck sqlCheck) => throw null;
                    public void Subselect(string sql) => throw null;
                    public void Synchronize(params string[] table) => throw null;
                    public void Table(string tableName) => throw null;
                }
                public delegate void UnionSubclassMappingHandler(NHibernate.Mapping.ByCode.IModelInspector modelInspector, System.Type type, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper unionSubclassCustomizer);
                public class VersionMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IVersionMapper
                {
                    public void Access(NHibernate.Mapping.ByCode.Accessor accessor) => throw null;
                    public void Access(System.Type accessorType) => throw null;
                    public void Column(System.Action<NHibernate.Mapping.ByCode.IColumnMapper> columnMapper) => throw null;
                    public void Column(string name) => throw null;
                    public void Columns(params System.Action<NHibernate.Mapping.ByCode.IColumnMapper>[] columnMapper) => throw null;
                    public VersionMapper(System.Reflection.MemberInfo member, NHibernate.Cfg.MappingSchema.HbmVersion hbmVersion) => throw null;
                    public void Generated(NHibernate.Mapping.ByCode.VersionGeneration generatedByDb) => throw null;
                    public void Insert(bool useInInsert) => throw null;
                    public void Type(NHibernate.Type.IVersionType persistentType) => throw null;
                    public void Type<TPersistentType>() where TPersistentType : NHibernate.UserTypes.IUserVersionType => throw null;
                    public void Type(System.Type persistentType) => throw null;
                    public void UnsavedValue(object value) => throw null;
                }
            }
            public class Import
            {
                public void AddToMapping(NHibernate.Cfg.MappingSchema.HbmMapping hbmMapping) => throw null;
                public Import(System.Type importType, string rename) => throw null;
            }
            public interface INaturalIdAttributesMapper
            {
                void Mutable(bool isMutable);
            }
            public interface INaturalIdMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.INaturalIdAttributesMapper
            {
            }
            public class IncrementGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public IncrementGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public interface IOneToManyMapper
            {
                void Class(System.Type entityType);
                void EntityName(string entityName);
                void NotFound(NHibernate.Mapping.ByCode.NotFoundMode mode);
            }
            public interface IOneToOneMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Cascade(NHibernate.Mapping.ByCode.Cascade cascadeStyle);
                void Class(System.Type clazz);
                void Constrained(bool value);
                void ForeignKey(string foreignKeyName);
                void Formula(string formula);
                void Lazy(NHibernate.Mapping.ByCode.LazyRelation lazyRelation);
                void PropertyReference(System.Reflection.MemberInfo propertyInTheOtherSide);
            }
            public interface IOneToOneMapper<T> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper, NHibernate.Mapping.ByCode.IOneToOneMapper
            {
                void PropertyReference<TProperty>(System.Linq.Expressions.Expression<System.Func<T, TProperty>> reference);
            }
            public interface IPlainPropertyContainerMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper
            {
                void OneToOne(System.Reflection.MemberInfo property, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper> mapping);
            }
            public interface IPlainPropertyContainerMapper<TContainer> : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TContainer>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TContainer>
            {
                void OneToOne<TProperty>(System.Linq.Expressions.Expression<System.Func<TContainer, TProperty>> property, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper<TProperty>> mapping) where TProperty : class;
                void OneToOne<TProperty>(string notVisiblePropertyOrFieldName, System.Action<NHibernate.Mapping.ByCode.IOneToOneMapper<TProperty>> mapping) where TProperty : class;
            }
            public interface IPropertyContainerMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper
            {
            }
            public interface IPropertyContainerMapper<TEntity> : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>
            {
            }
            public interface IPropertyMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
                void Formula(string formula);
                void Generated(NHibernate.Mapping.ByCode.PropertyGeneration generation);
                void Index(string indexName);
                void Insert(bool consideredInInsertQuery);
                void Lazy(bool isLazy);
                void Length(int length);
                void NotNullable(bool notnull);
                void Precision(short precision);
                void Scale(short scale);
                void Type(NHibernate.Type.IType persistentType);
                void Type<TPersistentType>();
                void Type<TPersistentType>(object parameters);
                void Type(System.Type persistentType, object parameters);
                void Unique(bool unique);
                void UniqueKey(string uniquekeyName);
                void Update(bool consideredInUpdateQuery);
            }
            public interface ISetPropertiesMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
            }
            public interface ISetPropertiesMapper<TEntity, TElement> : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesMapper<TEntity, TElement>, NHibernate.Mapping.ByCode.ICollectionSqlsMapper, NHibernate.Mapping.ByCode.IEntityPropertyMapper
            {
            }
            public interface ISubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper
            {
                void Abstract(bool isAbstract);
                void DiscriminatorValue(object value);
                void Extends(System.Type baseType);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
            }
            public interface ISubclassAttributesMapper<TEntity> : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class
            {
                void Abstract(bool isAbstract);
                void DiscriminatorValue(object value);
                void Extends(System.Type baseType);
                void Filter(string filterName, System.Action<NHibernate.Mapping.ByCode.IFilterMapper> filterMapping);
            }
            public interface ISubclassMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.ISubclassAttributesMapper
            {
                void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper> splitMapping);
            }
            public interface ISubclassMapper<TEntity> : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ISubclassAttributesMapper<TEntity> where TEntity : class
            {
                void Join(string splitGroupId, System.Action<NHibernate.Mapping.ByCode.IJoinMapper<TEntity>> splitMapping);
            }
            public interface IUnionSubclassAttributesMapper : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper
            {
                void Abstract(bool isAbstract);
                void Catalog(string catalogName);
                void Extends(System.Type baseType);
                void Schema(string schemaName);
                void Table(string tableName);
            }
            public interface IUnionSubclassAttributesMapper<TEntity> : NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper where TEntity : class
            {
                void Abstract(bool isAbstract);
                void Catalog(string catalogName);
                void Extends(System.Type baseType);
                void Schema(string schemaName);
                void Table(string tableName);
            }
            public interface IUnionSubclassMapper : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper, NHibernate.Mapping.ByCode.IPropertyContainerMapper, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper
            {
            }
            public interface IUnionSubclassMapper<TEntity> : NHibernate.Mapping.ByCode.IBasePlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.ICollectionPropertiesContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IEntityAttributesMapper, NHibernate.Mapping.ByCode.IEntitySqlsMapper, NHibernate.Mapping.ByCode.IMinimalPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPlainPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IPropertyContainerMapper<TEntity>, NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper<TEntity> where TEntity : class
            {
            }
            public interface IVersionMapper : NHibernate.Mapping.ByCode.IAccessorPropertyMapper, NHibernate.Mapping.ByCode.IColumnsMapper
            {
                void Generated(NHibernate.Mapping.ByCode.VersionGeneration generatedByDb);
                void Insert(bool useInInsert);
                void Type(NHibernate.Type.IVersionType persistentType);
                void Type<TPersistentType>() where TPersistentType : NHibernate.UserTypes.IUserVersionType;
                void Type(System.Type persistentType);
                void UnsavedValue(object value);
            }
            public static partial class JoinedSubclassAttributesMapperExtensions
            {
                public static void Extends<TEntity>(this NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper<TEntity> mapper, string entityOrClassName) where TEntity : class => throw null;
                public static void Extends(this NHibernate.Mapping.ByCode.IJoinedSubclassAttributesMapper mapper, string entityOrClassName) => throw null;
            }
            public abstract class LazyRelation
            {
                protected LazyRelation() => throw null;
                public static NHibernate.Mapping.ByCode.LazyRelation NoLazy;
                public static NHibernate.Mapping.ByCode.LazyRelation NoProxy;
                public static NHibernate.Mapping.ByCode.LazyRelation Proxy;
                public abstract NHibernate.Cfg.MappingSchema.HbmLaziness ToHbm();
            }
            public static partial class ManyToOneMapperExtensions
            {
                public static void EntityName(this NHibernate.Mapping.ByCode.IManyToOneMapper mapper, string entityName) => throw null;
            }
            public static partial class MappingsExtensions
            {
                public static string AsString(this NHibernate.Cfg.MappingSchema.HbmMapping mappings) => throw null;
                public static void WriteAllXmlMapping(this System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmMapping> mappings) => throw null;
            }
            public static partial class ModelExplicitDeclarationsHolderExtensions
            {
                public static void Merge(this NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder destination, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder source) => throw null;
            }
            public class ModelMapper
            {
                public void AddMapping<T>() where T : NHibernate.Mapping.ByCode.IConformistHoldersProvider, new() => throw null;
                public void AddMapping(NHibernate.Mapping.ByCode.IConformistHoldersProvider mapping) => throw null;
                public void AddMapping(System.Type type) => throw null;
                public void AddMappings(System.Collections.Generic.IEnumerable<System.Type> types) => throw null;
                public event NHibernate.Mapping.ByCode.Impl.AnyMappingHandler AfterMapAny;
                public event NHibernate.Mapping.ByCode.Impl.BagMappingHandler AfterMapBag;
                public event NHibernate.Mapping.ByCode.Impl.RootClassMappingHandler AfterMapClass;
                public event NHibernate.Mapping.ByCode.Impl.ComponentMappingHandler AfterMapComponent;
                public event NHibernate.Mapping.ByCode.Impl.ElementMappingHandler AfterMapElement;
                public event NHibernate.Mapping.ByCode.Impl.IdBagMappingHandler AfterMapIdBag;
                public event NHibernate.Mapping.ByCode.Impl.JoinedSubclassMappingHandler AfterMapJoinedSubclass;
                public event NHibernate.Mapping.ByCode.Impl.ListMappingHandler AfterMapList;
                public event NHibernate.Mapping.ByCode.Impl.ManyToManyMappingHandler AfterMapManyToMany;
                public event NHibernate.Mapping.ByCode.Impl.ManyToOneMappingHandler AfterMapManyToOne;
                public event NHibernate.Mapping.ByCode.Impl.MapMappingHandler AfterMapMap;
                public event NHibernate.Mapping.ByCode.Impl.MapKeyMappingHandler AfterMapMapKey;
                public event NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMappingHandler AfterMapMapKeyManyToMany;
                public event NHibernate.Mapping.ByCode.Impl.OneToManyMappingHandler AfterMapOneToMany;
                public event NHibernate.Mapping.ByCode.Impl.OneToOneMappingHandler AfterMapOneToOne;
                public event NHibernate.Mapping.ByCode.Impl.PropertyMappingHandler AfterMapProperty;
                public event NHibernate.Mapping.ByCode.Impl.SetMappingHandler AfterMapSet;
                public event NHibernate.Mapping.ByCode.Impl.SubclassMappingHandler AfterMapSubclass;
                public event NHibernate.Mapping.ByCode.Impl.UnionSubclassMappingHandler AfterMapUnionSubclass;
                public event NHibernate.Mapping.ByCode.Impl.AnyMappingHandler BeforeMapAny;
                public event NHibernate.Mapping.ByCode.Impl.BagMappingHandler BeforeMapBag;
                public event NHibernate.Mapping.ByCode.Impl.RootClassMappingHandler BeforeMapClass;
                public event NHibernate.Mapping.ByCode.Impl.ComponentMappingHandler BeforeMapComponent;
                public event NHibernate.Mapping.ByCode.Impl.ElementMappingHandler BeforeMapElement;
                public event NHibernate.Mapping.ByCode.Impl.IdBagMappingHandler BeforeMapIdBag;
                public event NHibernate.Mapping.ByCode.Impl.JoinedSubclassMappingHandler BeforeMapJoinedSubclass;
                public event NHibernate.Mapping.ByCode.Impl.ListMappingHandler BeforeMapList;
                public event NHibernate.Mapping.ByCode.Impl.ManyToManyMappingHandler BeforeMapManyToMany;
                public event NHibernate.Mapping.ByCode.Impl.ManyToOneMappingHandler BeforeMapManyToOne;
                public event NHibernate.Mapping.ByCode.Impl.MapMappingHandler BeforeMapMap;
                public event NHibernate.Mapping.ByCode.Impl.MapKeyMappingHandler BeforeMapMapKey;
                public event NHibernate.Mapping.ByCode.Impl.MapKeyManyToManyMappingHandler BeforeMapMapKeyManyToMany;
                public event NHibernate.Mapping.ByCode.Impl.OneToManyMappingHandler BeforeMapOneToMany;
                public event NHibernate.Mapping.ByCode.Impl.OneToOneMappingHandler BeforeMapOneToOne;
                public event NHibernate.Mapping.ByCode.Impl.PropertyMappingHandler BeforeMapProperty;
                public event NHibernate.Mapping.ByCode.Impl.SetMappingHandler BeforeMapSet;
                public event NHibernate.Mapping.ByCode.Impl.SubclassMappingHandler BeforeMapSubclass;
                public event NHibernate.Mapping.ByCode.Impl.UnionSubclassMappingHandler BeforeMapUnionSubclass;
                public void Class<TRootEntity>(System.Action<NHibernate.Mapping.ByCode.IClassMapper<TRootEntity>> customizeAction) where TRootEntity : class => throw null;
                public NHibernate.Cfg.MappingSchema.HbmMapping CompileMappingFor(System.Collections.Generic.IEnumerable<System.Type> types) => throw null;
                public NHibernate.Cfg.MappingSchema.HbmMapping CompileMappingForAllExplicitlyAddedEntities() => throw null;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmMapping> CompileMappingForEach(System.Collections.Generic.IEnumerable<System.Type> types) => throw null;
                public System.Collections.Generic.IEnumerable<NHibernate.Cfg.MappingSchema.HbmMapping> CompileMappingForEachExplicitlyAddedEntity() => throw null;
                public void Component<TComponent>(System.Action<NHibernate.Mapping.ByCode.IComponentMapper<TComponent>> customizeAction) => throw null;
                public ModelMapper() => throw null;
                public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector) => throw null;
                public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider membersProvider) => throw null;
                public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder) => throw null;
                public ModelMapper(NHibernate.Mapping.ByCode.IModelInspector modelInspector, NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder explicitDeclarationsHolder, NHibernate.Mapping.ByCode.Impl.ICustomizersHolder customizerHolder, NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider membersProvider) => throw null;
                protected virtual NHibernate.Mapping.ByCode.ModelMapper.ICollectionElementRelationMapper DetermineCollectionElementRelationType(System.Reflection.MemberInfo property, NHibernate.Mapping.ByCode.PropertyPath propertyPath, System.Type collectionElementType) => throw null;
                protected void ForEachMemberPath(System.Reflection.MemberInfo member, NHibernate.Mapping.ByCode.PropertyPath progressivePath, System.Action<NHibernate.Mapping.ByCode.PropertyPath> invoke) => throw null;
                protected System.Reflection.MemberInfo GetComponentParentReferenceProperty(System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> persistentProperties, System.Type propertiesContainerType) => throw null;
                protected interface ICollectionElementRelationMapper
                {
                    void Map(NHibernate.Mapping.ByCode.ICollectionElementRelation relation);
                    void MapCollectionProperties(NHibernate.Mapping.ByCode.ICollectionPropertiesMapper mapped);
                }
                protected interface IMapKeyRelationMapper
                {
                    void Map(NHibernate.Mapping.ByCode.IMapKeyRelation relation);
                }
                public void Import<TImportClass>() => throw null;
                public void Import<TImportClass>(string rename) => throw null;
                public void JoinedSubclass<TEntity>(System.Action<NHibernate.Mapping.ByCode.IJoinedSubclassMapper<TEntity>> customizeAction) where TEntity : class => throw null;
                protected NHibernate.Mapping.ByCode.Impl.ICandidatePersistentMembersProvider MembersProvider { get => throw null; }
                public NHibernate.Mapping.ByCode.IModelInspector ModelInspector { get => throw null; }
                public void Subclass<TEntity>(System.Action<NHibernate.Mapping.ByCode.ISubclassMapper<TEntity>> customizeAction) where TEntity : class => throw null;
                public void UnionSubclass<TEntity>(System.Action<NHibernate.Mapping.ByCode.IUnionSubclassMapper<TEntity>> customizeAction) where TEntity : class => throw null;
            }
            public class NativeGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public NativeGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class NativeGuidGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public NativeGuidGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public abstract class NotFoundMode
            {
                protected NotFoundMode() => throw null;
                public static NHibernate.Mapping.ByCode.NotFoundMode Exception;
                public static NHibernate.Mapping.ByCode.NotFoundMode Ignore;
                public abstract NHibernate.Cfg.MappingSchema.HbmNotFoundMode ToHbm();
            }
            public enum OnDeleteAction
            {
                NoAction = 0,
                Cascade = 1,
            }
            public static partial class OneToOneMapperExtensions
            {
                public static void Fetch(this NHibernate.Mapping.ByCode.IOneToOneMapper mapper, NHibernate.Mapping.ByCode.FetchKind fetchMode) => throw null;
                public static void Formulas(this NHibernate.Mapping.ByCode.IOneToOneMapper mapper, params string[] formulas) => throw null;
            }
            public enum OptimisticLockMode
            {
                None = 0,
                Version = 1,
                Dirty = 2,
                All = 3,
            }
            public enum PolymorphismType
            {
                Implicit = 0,
                Explicit = 1,
            }
            public abstract class PropertyGeneration
            {
                public static NHibernate.Mapping.ByCode.PropertyGeneration Always;
                public class AlwaysPropertyGeneration : NHibernate.Mapping.ByCode.PropertyGeneration
                {
                    public AlwaysPropertyGeneration() => throw null;
                }
                protected PropertyGeneration() => throw null;
                public static NHibernate.Mapping.ByCode.PropertyGeneration Insert;
                public class InsertPropertyGeneration : NHibernate.Mapping.ByCode.PropertyGeneration
                {
                    public InsertPropertyGeneration() => throw null;
                }
                public static NHibernate.Mapping.ByCode.PropertyGeneration Never;
                public class NeverPropertyGeneration : NHibernate.Mapping.ByCode.PropertyGeneration
                {
                    public NeverPropertyGeneration() => throw null;
                }
            }
            public static partial class PropertyMapperExtensions
            {
                public static void FetchGroup(this NHibernate.Mapping.ByCode.IPropertyMapper mapper, string name) => throw null;
            }
            public class PropertyPath
            {
                public PropertyPath(NHibernate.Mapping.ByCode.PropertyPath previousPath, System.Reflection.MemberInfo localMember) => throw null;
                public override bool Equals(object obj) => throw null;
                public bool Equals(NHibernate.Mapping.ByCode.PropertyPath other) => throw null;
                public override int GetHashCode() => throw null;
                public System.Reflection.MemberInfo GetRootMember() => throw null;
                public System.Reflection.MemberInfo LocalMember { get => throw null; }
                public NHibernate.Mapping.ByCode.PropertyPath PreviousPath { get => throw null; }
                public string ToColumnName() => throw null;
                public override string ToString() => throw null;
            }
            public static partial class PropertyPathExtensions
            {
                public static NHibernate.Mapping.ByCode.PropertyPath DepureFirstLevelIfCollection(this NHibernate.Mapping.ByCode.PropertyPath source) => throw null;
                public static System.Type GetContainerEntity(this NHibernate.Mapping.ByCode.PropertyPath propertyPath, NHibernate.Mapping.ByCode.IModelInspector domainInspector) => throw null;
                public static System.Collections.Generic.IEnumerable<NHibernate.Mapping.ByCode.PropertyPath> InverseProgressivePath(this NHibernate.Mapping.ByCode.PropertyPath source) => throw null;
                public static string ToColumnName(this NHibernate.Mapping.ByCode.PropertyPath propertyPath, string pathSeparator) => throw null;
            }
            public class PropertyToField
            {
                public PropertyToField() => throw null;
                public static System.Collections.Generic.IDictionary<string, NHibernate.Properties.IFieldNamingStrategy> DefaultStrategies { get => throw null; }
                public static System.Reflection.FieldInfo GetBackFieldInfo(System.Reflection.PropertyInfo subject) => throw null;
            }
            [System.Flags]
            public enum SchemaAction
            {
                None = 0,
                Drop = 1,
                Update = 2,
                Export = 4,
                Validate = 8,
                All = 15,
            }
            public static class SchemaActionConverter
            {
                public static bool Has(this NHibernate.Mapping.ByCode.SchemaAction source, NHibernate.Mapping.ByCode.SchemaAction value) => throw null;
                public static string ToSchemaActionString(this NHibernate.Mapping.ByCode.SchemaAction source) => throw null;
            }
            public class SelectGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public SelectGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class SequenceGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public SequenceGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class SequenceHiLoGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public SequenceHiLoGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class SequenceIdentityGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public SequenceIdentityGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class SimpleModelInspector : NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder, NHibernate.Mapping.ByCode.IModelInspector
            {
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsAny(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsArray(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsBag(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsComponent(System.Type type) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsDynamicComponent(System.Reflection.MemberInfo member, System.Type componentTemplate) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsIdBag(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsList(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsManyToAnyRelation(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsManyToManyItemRelation(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsManyToManyKeyRelation(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsManyToOneRelation(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsMap(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsNaturalId(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsOneToManyRelation(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsOneToOneRelation(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsPartOfComposedId(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsPersistentMember(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsPoid(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsProperty(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsPropertySplit(NHibernate.Mapping.ByCode.SplitDefinition definition) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsRootEntity(System.Type type) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsSet(System.Reflection.MemberInfo member) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsTablePerClassEntity(System.Type type) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsTablePerClassHierarchyEntity(System.Type type) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsTablePerConcreteClassEntity(System.Type type) => throw null;
                void NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.AddAsVersionProperty(System.Reflection.MemberInfo member) => throw null;
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Any { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Arrays { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Bags { get => throw null; }
                protected bool CanReadCantWriteInBaseType(System.Reflection.PropertyInfo property) => throw null;
                protected bool CanReadCantWriteInsideType(System.Reflection.PropertyInfo property) => throw null;
                System.Collections.Generic.IEnumerable<System.Type> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Components { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.ComposedIds { get => throw null; }
                public SimpleModelInspector() => throw null;
                protected virtual bool DeclaredPolymorphicMatch(System.Reflection.MemberInfo member, System.Func<System.Reflection.MemberInfo, bool> declaredMatch) => throw null;
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Dictionaries { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.DynamicComponents { get => throw null; }
                System.Type NHibernate.Mapping.ByCode.IModelInspector.GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null;
                System.Type NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.GetDynamicComponentTemplate(System.Reflection.MemberInfo member) => throw null;
                System.Collections.Generic.IEnumerable<string> NHibernate.Mapping.ByCode.IModelInspector.GetPropertiesSplits(System.Type type) => throw null;
                string NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.GetSplitGroupFor(System.Reflection.MemberInfo member) => throw null;
                System.Collections.Generic.IEnumerable<string> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.GetSplitGroupsFor(System.Type type) => throw null;
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.IdBags { get => throw null; }
                bool NHibernate.Mapping.ByCode.IModelInspector.IsAny(System.Reflection.MemberInfo member) => throw null;
                public void IsAny(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsArray(System.Reflection.MemberInfo role) => throw null;
                public void IsArray(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                protected bool IsAutoproperty(System.Reflection.PropertyInfo property) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsBag(System.Reflection.MemberInfo role) => throw null;
                public void IsBag(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsComponent(System.Type type) => throw null;
                public void IsComponent(System.Func<System.Type, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsDictionary(System.Reflection.MemberInfo role) => throw null;
                public void IsDictionary(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsDynamicComponent(System.Reflection.MemberInfo member) => throw null;
                public void IsDynamicComponent(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsEntity(System.Type type) => throw null;
                public void IsEntity(System.Func<System.Type, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsIdBag(System.Reflection.MemberInfo role) => throw null;
                public void IsIdBag(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsList(System.Reflection.MemberInfo role) => throw null;
                public void IsList(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToAny(System.Reflection.MemberInfo member) => throw null;
                public void IsManyToAny(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                public void IsManyToMany(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToManyItem(System.Reflection.MemberInfo member) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToManyKey(System.Reflection.MemberInfo member) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsManyToOne(System.Reflection.MemberInfo member) => throw null;
                public void IsManyToOne(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsMemberOfComposedId(System.Reflection.MemberInfo member) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsMemberOfNaturalId(System.Reflection.MemberInfo member) => throw null;
                public void IsMemberOfNaturalId(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsOneToMany(System.Reflection.MemberInfo member) => throw null;
                public void IsOneToMany(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsOneToOne(System.Reflection.MemberInfo member) => throw null;
                public void IsOneToOne(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsPersistentId(System.Reflection.MemberInfo member) => throw null;
                public void IsPersistentId(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsPersistentProperty(System.Reflection.MemberInfo member) => throw null;
                public void IsPersistentProperty(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsProperty(System.Reflection.MemberInfo member) => throw null;
                public void IsProperty(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                protected bool IsReadOnlyProperty(System.Reflection.MemberInfo subject) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsRootEntity(System.Type type) => throw null;
                public void IsRootEntity(System.Func<System.Type, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsSet(System.Reflection.MemberInfo role) => throw null;
                public void IsSet(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerClass(System.Type type) => throw null;
                public void IsTablePerClass(System.Func<System.Type, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerClassHierarchy(System.Type type) => throw null;
                public void IsTablePerClassHierarchy(System.Func<System.Type, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerClassSplit(System.Type type, object splitGroupId, System.Reflection.MemberInfo member) => throw null;
                public void IsTablePerClassSplit(System.Func<NHibernate.Mapping.ByCode.SplitDefinition, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsTablePerConcreteClass(System.Type type) => throw null;
                public void IsTablePerConcreteClass(System.Func<System.Type, bool, bool> match) => throw null;
                bool NHibernate.Mapping.ByCode.IModelInspector.IsVersion(System.Reflection.MemberInfo member) => throw null;
                public void IsVersion(System.Func<System.Reflection.MemberInfo, bool, bool> match) => throw null;
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.ItemManyToManyRelations { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.KeyManyToManyRelations { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Lists { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.ManyToAnyRelations { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.ManyToOneRelations { get => throw null; }
                protected bool MatchArrayMember(System.Reflection.MemberInfo subject) => throw null;
                protected bool MatchBagMember(System.Reflection.MemberInfo subject) => throw null;
                protected bool MatchCollection(System.Reflection.MemberInfo subject, System.Predicate<System.Reflection.MemberInfo> specificCollectionPredicate) => throw null;
                protected bool MatchComponentPattern(System.Type subject) => throw null;
                protected bool MatchDictionaryMember(System.Reflection.MemberInfo subject) => throw null;
                protected bool MatchEntity(System.Type subject) => throw null;
                protected bool MatchNoReadOnlyPropertyPattern(System.Reflection.MemberInfo subject) => throw null;
                protected bool MatchPoIdPattern(System.Reflection.MemberInfo subject) => throw null;
                protected bool MatchSetMember(System.Reflection.MemberInfo subject) => throw null;
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.NaturalIds { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.OneToManyRelations { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.OneToOneRelations { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.PersistentMembers { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Poids { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Properties { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Type> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.RootEntities { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.Sets { get => throw null; }
                System.Collections.Generic.IEnumerable<NHibernate.Mapping.ByCode.SplitDefinition> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.SplitDefinitions { get => throw null; }
                public void SplitsFor(System.Func<System.Type, System.Collections.Generic.IEnumerable<string>, System.Collections.Generic.IEnumerable<string>> getPropertiesSplitsId) => throw null;
                System.Collections.Generic.IEnumerable<System.Type> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.TablePerClassEntities { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Type> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.TablePerClassHierarchyEntities { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Type> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.TablePerConcreteClassEntities { get => throw null; }
                System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> NHibernate.Mapping.ByCode.IModelExplicitDeclarationsHolder.VersionProperties { get => throw null; }
            }
            public class SplitDefinition
            {
                public SplitDefinition(System.Type on, string groupId, System.Reflection.MemberInfo member) => throw null;
                public string GroupId { get => throw null; }
                public System.Reflection.MemberInfo Member { get => throw null; }
                public System.Type On { get => throw null; }
            }
            public enum SqlCheck
            {
                None = 0,
                RowCount = 1,
                Param = 2,
            }
            public static partial class SubclassAttributesMapperExtensions
            {
                public static void Extends<TEntity>(this NHibernate.Mapping.ByCode.ISubclassAttributesMapper<TEntity> mapper, string entityOrClassName) where TEntity : class => throw null;
                public static void Extends(this NHibernate.Mapping.ByCode.ISubclassAttributesMapper mapper, string entityOrClassName) => throw null;
            }
            public class TableGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public TableGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class TableHiLoGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public TableHiLoGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class TriggerIdentityGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public TriggerIdentityGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public static partial class TypeExtensions
            {
                public static System.Reflection.MemberInfo DecodeMemberAccessExpression<TEntity>(System.Linq.Expressions.Expression<System.Func<TEntity, object>> expression) => throw null;
                public static System.Reflection.MemberInfo DecodeMemberAccessExpression<TEntity, TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> expression) => throw null;
                public static System.Reflection.MemberInfo DecodeMemberAccessExpressionOf<TEntity>(System.Linq.Expressions.Expression<System.Func<TEntity, object>> expression) => throw null;
                public static System.Reflection.MemberInfo DecodeMemberAccessExpressionOf<TEntity, TProperty>(System.Linq.Expressions.Expression<System.Func<TEntity, TProperty>> expression) => throw null;
                public static System.Type DetermineCollectionElementOrDictionaryValueType(this System.Type genericCollection) => throw null;
                public static System.Type DetermineCollectionElementType(this System.Type genericCollection) => throw null;
                public static System.Type DetermineDictionaryKeyType(this System.Type genericDictionary) => throw null;
                public static System.Type DetermineDictionaryValueType(this System.Type genericDictionary) => throw null;
                public static System.Type DetermineRequiredCollectionElementType(this System.Reflection.MemberInfo collectionProperty) => throw null;
                public static System.Collections.Generic.IEnumerable<System.Type> GetBaseTypes(this System.Type type) => throw null;
                public static System.Type GetFirstImplementorOf(this System.Type source, System.Type abstractType) => throw null;
                public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType) => throw null;
                public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Func<System.Reflection.PropertyInfo, bool> acceptPropertyClauses) => throw null;
                public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Reflection.BindingFlags bindingFlags) => throw null;
                public static System.Reflection.MemberInfo GetFirstPropertyOfType(this System.Type propertyContainerType, System.Type propertyType, System.Reflection.BindingFlags bindingFlags, System.Func<System.Reflection.PropertyInfo, bool> acceptPropertyClauses) => throw null;
                public static System.Collections.Generic.IEnumerable<System.Type> GetGenericInterfaceTypeDefinitions(this System.Type type) => throw null;
                public static System.Collections.Generic.IEnumerable<System.Type> GetHierarchyFromBase(this System.Type type) => throw null;
                public static System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetInterfaceProperties(this System.Type type) => throw null;
                public static System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetMemberFromDeclaringClasses(this System.Reflection.MemberInfo source) => throw null;
                public static System.Reflection.MemberInfo GetMemberFromDeclaringType(this System.Reflection.MemberInfo source) => throw null;
                public static System.Reflection.MemberInfo GetMemberFromReflectedType(this System.Reflection.MemberInfo member, System.Type reflectedType) => throw null;
                public static System.Collections.Generic.IEnumerable<System.Reflection.MemberInfo> GetPropertyFromInterfaces(this System.Reflection.MemberInfo source) => throw null;
                public static System.Reflection.MemberInfo GetPropertyOrFieldMatchingName(this System.Type source, string memberName) => throw null;
                public static System.Type GetPropertyOrFieldType(this System.Reflection.MemberInfo propertyOrField) => throw null;
                public static bool HasPublicPropertyOf(this System.Type source, System.Type typeOfProperty) => throw null;
                public static bool HasPublicPropertyOf(this System.Type source, System.Type typeOfProperty, System.Func<System.Reflection.PropertyInfo, bool> acceptPropertyClauses) => throw null;
                public static bool IsEnumOrNullableEnum(this System.Type type) => throw null;
                public static bool IsFlagEnumOrNullableFlagEnum(this System.Type type) => throw null;
                public static bool IsGenericCollection(this System.Type source) => throw null;
            }
            public static partial class UnionSubclassAttributesMapperExtensions
            {
                public static void Extends<TEntity>(this NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper<TEntity> mapper, string entityOrClassName) where TEntity : class => throw null;
                public static void Extends(this NHibernate.Mapping.ByCode.IUnionSubclassAttributesMapper mapper, string entityOrClassName) => throw null;
            }
            public enum UnsavedValueType
            {
                Undefined = 0,
                Any = 1,
                None = 2,
            }
            public class UUIDHexGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public UUIDHexGeneratorDef() => throw null;
                public UUIDHexGeneratorDef(string format) => throw null;
                public UUIDHexGeneratorDef(string format, string separator) => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public class UUIDStringGeneratorDef : NHibernate.Mapping.ByCode.IGeneratorDef
            {
                public string Class { get => throw null; }
                public UUIDStringGeneratorDef() => throw null;
                public System.Type DefaultReturnType { get => throw null; }
                public object Params { get => throw null; }
                public bool SupportedAsCollectionElementId { get => throw null; }
            }
            public abstract class VersionGeneration
            {
                public static NHibernate.Mapping.ByCode.VersionGeneration Always;
                protected VersionGeneration() => throw null;
                public static NHibernate.Mapping.ByCode.VersionGeneration Never;
                public abstract NHibernate.Cfg.MappingSchema.HbmVersionGeneration ToHbm();
            }
        }
        public abstract class Collection : NHibernate.Mapping.IFetchable, NHibernate.Mapping.IFilterable, NHibernate.Mapping.IValue
        {
            public object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null;
            public void AddFilter(string name, string condition) => throw null;
            public void AddManyToManyFilter(string name, string condition) => throw null;
            public int BatchSize { get => throw null; set { } }
            public string CacheConcurrencyStrategy { get => throw null; set { } }
            public string CacheRegionName { get => throw null; set { } }
            protected void CheckGenericArgumentsLength(int expectedLength) => throw null;
            public System.Type CollectionPersisterClass { get => throw null; set { } }
            public NHibernate.Mapping.Table CollectionTable { get => throw null; set { } }
            public virtual NHibernate.Type.CollectionType CollectionType { get => throw null; }
            public bool[] ColumnInsertability { get => throw null; }
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> ColumnIterator { get => throw null; }
            public int ColumnSpan { get => throw null; }
            public bool[] ColumnUpdateability { get => throw null; }
            public object Comparer { get => throw null; set { } }
            public string ComparerClassName { get => throw null; set { } }
            public virtual void CreateAllKeys() => throw null;
            public void CreateForeignKey() => throw null;
            public abstract void CreatePrimaryKey();
            protected Collection(NHibernate.Mapping.PersistentClass owner) => throw null;
            public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; }
            public NHibernate.SqlCommand.SqlString CustomSQLDeleteAll { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteAllCheckStyle { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; }
            public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; }
            public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; }
            public abstract NHibernate.Type.CollectionType DefaultCollectionType { get; }
            public const string DefaultElementColumnName = default;
            public const string DefaultKeyColumnName = default;
            public NHibernate.Mapping.IValue Element { get => throw null; set { } }
            public bool ExtraLazy { get => throw null; set { } }
            public NHibernate.FetchMode FetchMode { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, string> FilterMap { get => throw null; }
            public NHibernate.Mapping.Formula Formula { get => throw null; }
            public System.Type[] GenericArguments { get => throw null; set { } }
            public virtual bool HasFormula { get => throw null; }
            public bool HasOrder { get => throw null; }
            public bool HasOrphanDelete { get => throw null; set { } }
            public virtual bool IsAlternateUniqueKey { get => throw null; }
            public virtual bool IsArray { get => throw null; }
            public bool IsCustomDeleteAllCallable { get => throw null; }
            public bool IsCustomDeleteCallable { get => throw null; }
            public bool IsCustomInsertCallable { get => throw null; }
            public bool IsCustomUpdateCallable { get => throw null; }
            public bool IsGeneric { get => throw null; set { } }
            public virtual bool IsIdentified { get => throw null; }
            public virtual bool IsIndexed { get => throw null; }
            public bool IsInverse { get => throw null; set { } }
            public bool IsLazy { get => throw null; set { } }
            public virtual bool IsMap { get => throw null; }
            public bool IsMutable { get => throw null; set { } }
            public bool IsNullable { get => throw null; }
            public bool IsOneToMany { get => throw null; }
            public bool IsOptimisticLocked { get => throw null; set { } }
            public virtual bool IsPrimitiveArray { get => throw null; }
            public virtual bool IsSet { get => throw null; }
            public bool IsSimpleValue { get => throw null; }
            public bool IsSorted { get => throw null; set { } }
            public bool IsSubselectLoadable { get => throw null; set { } }
            public bool IsUnique { get => throw null; }
            public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null;
            public NHibernate.Mapping.IKeyValue Key { get => throw null; set { } }
            public string LoaderName { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, string> ManyToManyFilterMap { get => throw null; }
            public string ManyToManyOrdering { get => throw null; set { } }
            public string ManyToManyWhere { get => throw null; set { } }
            public string OrderBy { get => throw null; set { } }
            public NHibernate.Mapping.PersistentClass Owner { get => throw null; set { } }
            public string OwnerEntityName { get => throw null; }
            public string ReferencedPropertyName { get => throw null; set { } }
            public string Role { get => throw null; set { } }
            public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetCustomSQLDeleteAll(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetTypeUsingReflection(string className, string propertyName, string access) => throw null;
            public System.Collections.Generic.ISet<string> SynchronizedTables { get => throw null; }
            public NHibernate.Mapping.Table Table { get => throw null; }
            public override string ToString() => throw null;
            public NHibernate.Type.IType Type { get => throw null; }
            public string TypeName { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, string> TypeParameters { get => throw null; set { } }
            public virtual void Validate(NHibernate.Engine.IMapping mapping) => throw null;
            public string Where { get => throw null; set { } }
        }
        public class Column : System.ICloneable, NHibernate.Mapping.ISelectable
        {
            public string CanonicalName { get => throw null; }
            public string CheckConstraint { get => throw null; set { } }
            public object Clone() => throw null;
            public string Comment { get => throw null; set { } }
            public Column() => throw null;
            public Column(string columnName) => throw null;
            public const int DefaultLength = 255;
            public const int DefaultPrecision = 19;
            public const int DefaultScale = 2;
            public string DefaultValue { get => throw null; set { } }
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Mapping.Column column) => throw null;
            public string GetAlias(NHibernate.Dialect.Dialect dialect) => throw null;
            public string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table) => throw null;
            public override int GetHashCode() => throw null;
            public string GetQuotedName(NHibernate.Dialect.Dialect d) => throw null;
            public string GetQuotedName() => throw null;
            public string GetSqlType(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null;
            public NHibernate.SqlTypes.SqlType GetSqlTypeCode(NHibernate.Engine.IMapping mapping) => throw null;
            public string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null;
            public string GetText(NHibernate.Dialect.Dialect dialect) => throw null;
            public bool HasCheckConstraint { get => throw null; }
            public bool IsCaracteristicsDefined() => throw null;
            public bool IsFormula { get => throw null; }
            public bool IsLengthDefined() => throw null;
            public bool IsNullable { get => throw null; set { } }
            public bool IsPrecisionDefined() => throw null;
            public bool IsQuoted { get => throw null; set { } }
            public bool IsScaleDefined() => throw null;
            public bool IsUnique { get => throw null; set { } }
            public int Length { get => throw null; set { } }
            public string Name { get => throw null; set { } }
            public int Precision { get => throw null; set { } }
            public int Scale { get => throw null; set { } }
            public string SqlType { get => throw null; set { } }
            public NHibernate.SqlTypes.SqlType SqlTypeCode { get => throw null; set { } }
            public string Text { get => throw null; }
            public override string ToString() => throw null;
            public int TypeIndex { get => throw null; set { } }
            public bool Unique { get => throw null; set { } }
            public NHibernate.Mapping.IValue Value { get => throw null; set { } }
        }
        public class Component : NHibernate.Mapping.SimpleValue, NHibernate.Mapping.IMetaAttributable
        {
            public override void AddColumn(NHibernate.Mapping.Column column) => throw null;
            public void AddProperty(NHibernate.Mapping.Property p) => throw null;
            public virtual void AddTuplizer(NHibernate.EntityMode entityMode, string implClassName) => throw null;
            public override bool[] ColumnInsertability { get => throw null; }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> ColumnIterator { get => throw null; }
            public override int ColumnSpan { get => throw null; }
            public override bool[] ColumnUpdateability { get => throw null; }
            public System.Type ComponentClass { get => throw null; set { } }
            public string ComponentClassName { get => throw null; set { } }
            public Component(NHibernate.Mapping.PersistentClass owner) => throw null;
            public Component(NHibernate.Mapping.Table table, NHibernate.Mapping.PersistentClass owner) => throw null;
            public Component(NHibernate.Mapping.Collection collection) => throw null;
            public Component(NHibernate.Mapping.Component component) => throw null;
            public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null;
            public NHibernate.Mapping.Property GetProperty(string propertyName) => throw null;
            public virtual string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null;
            public bool HasPocoRepresentation { get => throw null; }
            public bool IsDynamic { get => throw null; set { } }
            public bool IsEmbedded { get => throw null; set { } }
            public bool IsKey { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> MetaAttributes { get => throw null; set { } }
            public NHibernate.Mapping.PersistentClass Owner { get => throw null; set { } }
            public NHibernate.Mapping.Property ParentProperty { get => throw null; set { } }
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> PropertyIterator { get => throw null; }
            public int PropertySpan { get => throw null; }
            public string RoleName { get => throw null; set { } }
            public override void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null;
            public override string ToString() => throw null;
            public virtual System.Collections.Generic.IDictionary<NHibernate.EntityMode, string> TuplizerMap { get => throw null; }
            public override NHibernate.Type.IType Type { get => throw null; }
        }
        public abstract class Constraint : NHibernate.Mapping.IRelationalModel
        {
            public void AddColumn(NHibernate.Mapping.Column column) => throw null;
            public void AddColumns(System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> columnIterator) => throw null;
            public void AddColumns(System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> columnIterator) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> ColumnIterator { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Mapping.Column> Columns { get => throw null; }
            public int ColumnSpan { get => throw null; }
            protected Constraint() => throw null;
            public static string GenerateName(string prefix, NHibernate.Mapping.Table table, NHibernate.Mapping.Table referencedTable, System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> columns) => throw null;
            public virtual bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null;
            public string Name { get => throw null; set { } }
            public abstract string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema);
            public virtual string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null;
            public virtual string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
            public NHibernate.Mapping.Table Table { get => throw null; set { } }
            public override string ToString() => throw null;
        }
        public class DenormalizedTable : NHibernate.Mapping.Table
        {
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> ColumnIterator { get => throw null; }
            public override bool ContainsColumn(NHibernate.Mapping.Column column) => throw null;
            public override void CreateForeignKeys() => throw null;
            public DenormalizedTable(NHibernate.Mapping.Table includedTable) => throw null;
            public override NHibernate.Mapping.Column GetColumn(NHibernate.Mapping.Column column) => throw null;
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Index> IndexIterator { get => throw null; }
            public override NHibernate.Mapping.PrimaryKey PrimaryKey { get => throw null; set { } }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.UniqueKey> UniqueKeyIterator { get => throw null; }
        }
        public class DependantValue : NHibernate.Mapping.SimpleValue
        {
            public DependantValue(NHibernate.Mapping.Table table, NHibernate.Mapping.IKeyValue prototype) => throw null;
            public override bool IsNullable { get => throw null; }
            public override bool IsUpdateable { get => throw null; }
            public void SetNullable(bool nullable) => throw null;
            public void SetTypeUsingReflection(string className, string propertyName) => throw null;
            public virtual void SetUpdateable(bool updateable) => throw null;
            public override NHibernate.Type.IType Type { get => throw null; }
        }
        public class ForeignKey : NHibernate.Mapping.Constraint
        {
            public virtual void AddReferencedColumns(System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> referencedColumnsIterator) => throw null;
            public void AlignColumns() => throw null;
            public bool CascadeDeleteEnabled { get => throw null; set { } }
            public ForeignKey() => throw null;
            public string GeneratedConstraintNamePrefix { get => throw null; }
            public bool HasPhysicalConstraint { get => throw null; }
            public override bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null;
            public bool IsReferenceToPrimaryKey { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Mapping.Column> ReferencedColumns { get => throw null; }
            public string ReferencedEntityName { get => throw null; set { } }
            public NHibernate.Mapping.Table ReferencedTable { get => throw null; set { } }
            public override string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema) => throw null;
            public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
            public override string ToString() => throw null;
        }
        public class Formula : NHibernate.Mapping.ISelectable
        {
            public Formula() => throw null;
            public string FormulaString { get => throw null; set { } }
            public string GetAlias(NHibernate.Dialect.Dialect dialect) => throw null;
            public string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table) => throw null;
            public string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null;
            public string GetText(NHibernate.Dialect.Dialect dialect) => throw null;
            public bool IsFormula { get => throw null; }
            public string Text { get => throw null; }
            public override string ToString() => throw null;
        }
        public interface IAuxiliaryDatabaseObject : NHibernate.Mapping.IRelationalModel
        {
            void AddDialectScope(string dialectName);
            bool AppliesToDialect(NHibernate.Dialect.Dialect dialect);
            void SetParameterValues(System.Collections.Generic.IDictionary<string, string> parameters);
        }
        public class IdentifierBag : NHibernate.Mapping.IdentifierCollection
        {
            public IdentifierBag(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; }
        }
        public abstract class IdentifierCollection : NHibernate.Mapping.Collection
        {
            public override void CreatePrimaryKey() => throw null;
            protected IdentifierCollection(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public const string DefaultIdentifierColumnName = default;
            public NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } }
            public override bool IsIdentified { get => throw null; }
            public override void Validate(NHibernate.Engine.IMapping mapping) => throw null;
        }
        public interface IFetchable
        {
            NHibernate.FetchMode FetchMode { get; set; }
            bool IsLazy { get; set; }
        }
        public interface IFilterable
        {
            void AddFilter(string name, string condition);
            System.Collections.Generic.IDictionary<string, string> FilterMap { get; }
        }
        public interface IKeyValue : NHibernate.Mapping.IValue
        {
            void CreateForeignKeyOfEntity(string entityName);
            NHibernate.Id.IIdentifierGenerator CreateIdentifierGenerator(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema, NHibernate.Mapping.RootClass rootClass);
            bool IsCascadeDeleteEnabled { get; }
            bool IsIdentityColumn(NHibernate.Dialect.Dialect dialect);
            bool IsUpdateable { get; }
            string NullValue { get; }
        }
        public interface IMetaAttributable
        {
            NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName);
            System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> MetaAttributes { get; set; }
        }
        public class Index : NHibernate.Mapping.IRelationalModel
        {
            public void AddColumn(NHibernate.Mapping.Column column) => throw null;
            public void AddColumns(System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> extraColumns) => throw null;
            public static string BuildSqlCreateIndexString(NHibernate.Dialect.Dialect dialect, string name, NHibernate.Mapping.Table table, System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> columns, bool unique, string defaultCatalog, string defaultSchema) => throw null;
            public static string BuildSqlDropIndexString(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table, string name, string defaultCatalog, string defaultSchema) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> ColumnIterator { get => throw null; }
            public int ColumnSpan { get => throw null; }
            public bool ContainsColumn(NHibernate.Mapping.Column column) => throw null;
            public Index() => throw null;
            public bool IsInherited { get => throw null; set { } }
            public string Name { get => throw null; set { } }
            public string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null;
            public string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
            public NHibernate.Mapping.Table Table { get => throw null; set { } }
            public override string ToString() => throw null;
        }
        public class IndexBackref : NHibernate.Mapping.Property
        {
            public override bool BackRef { get => throw null; }
            public string CollectionRole { get => throw null; set { } }
            public IndexBackref() => throw null;
            public string EntityName { get => throw null; set { } }
            public override bool IsBasicPropertyAccessor { get => throw null; }
            protected override NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; }
        }
        public abstract class IndexedCollection : NHibernate.Mapping.Collection
        {
            public override void CreatePrimaryKey() => throw null;
            protected IndexedCollection(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public const string DefaultIndexColumnName = default;
            public NHibernate.Mapping.SimpleValue Index { get => throw null; set { } }
            public override bool IsIndexed { get => throw null; }
            public virtual bool IsList { get => throw null; }
            public override void Validate(NHibernate.Engine.IMapping mapping) => throw null;
        }
        public interface IPersistentClassVisitor
        {
            object Accept(NHibernate.Mapping.PersistentClass clazz);
        }
        public interface IPersistentClassVisitor<T> where T : NHibernate.Mapping.PersistentClass
        {
            object Accept(T clazz);
        }
        public interface IRelationalModel
        {
            string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema);
            string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema);
        }
        public interface ISelectable
        {
            string GetAlias(NHibernate.Dialect.Dialect dialect);
            string GetAlias(NHibernate.Dialect.Dialect dialect, NHibernate.Mapping.Table table);
            string GetTemplate(NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry);
            string GetText(NHibernate.Dialect.Dialect dialect);
            bool IsFormula { get; }
            string Text { get; }
        }
        public interface ISqlCustomizable
        {
            void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle);
            void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle);
            void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle);
        }
        public interface ITableOwner
        {
            NHibernate.Mapping.Table Table { set; }
        }
        public interface IValue
        {
            object Accept(NHibernate.Mapping.IValueVisitor visitor);
            bool[] ColumnInsertability { get; }
            System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> ColumnIterator { get; }
            int ColumnSpan { get; }
            bool[] ColumnUpdateability { get; }
            void CreateForeignKey();
            NHibernate.FetchMode FetchMode { get; }
            bool HasFormula { get; }
            bool IsAlternateUniqueKey { get; }
            bool IsNullable { get; }
            bool IsSimpleValue { get; }
            bool IsValid(NHibernate.Engine.IMapping mapping);
            void SetTypeUsingReflection(string className, string propertyName, string accesorName);
            NHibernate.Mapping.Table Table { get; }
            NHibernate.Type.IType Type { get; }
        }
        public interface IValueVisitor
        {
            object Accept(NHibernate.Mapping.IValue visited);
        }
        public interface IValueVisitor<T> : NHibernate.Mapping.IValueVisitor where T : NHibernate.Mapping.IValue
        {
            object Accept(T visited);
        }
        public class Join : NHibernate.Mapping.ISqlCustomizable
        {
            public void AddProperty(NHibernate.Mapping.Property prop) => throw null;
            public bool ContainsProperty(NHibernate.Mapping.Property prop) => throw null;
            public void CreateForeignKey() => throw null;
            public void CreatePrimaryKey(NHibernate.Dialect.Dialect dialect) => throw null;
            public void CreatePrimaryKey() => throw null;
            public Join() => throw null;
            public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; }
            public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; }
            public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; }
            public bool IsCustomDeleteCallable { get => throw null; }
            public bool IsCustomInsertCallable { get => throw null; }
            public bool IsCustomUpdateCallable { get => throw null; }
            public virtual bool IsInverse { get => throw null; set { } }
            public bool IsLazy { get => throw null; }
            public virtual bool IsOptional { get => throw null; set { } }
            public virtual bool IsSequentialSelect { get => throw null; set { } }
            public virtual NHibernate.Mapping.IKeyValue Key { get => throw null; set { } }
            public virtual NHibernate.Mapping.PersistentClass PersistentClass { get => throw null; set { } }
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> PropertyIterator { get => throw null; }
            public int PropertySpan { get => throw null; }
            public NHibernate.Mapping.Property RefIdProperty { get => throw null; set { } }
            public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public virtual NHibernate.Mapping.Table Table { get => throw null; set { } }
        }
        public class JoinedSubclass : NHibernate.Mapping.Subclass, NHibernate.Mapping.ITableOwner
        {
            public JoinedSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Mapping.IKeyValue Key { get => throw null; set { } }
            public override NHibernate.Mapping.Table Table { get => throw null; }
            NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set { } }
            public override void Validate(NHibernate.Engine.IMapping mapping) => throw null;
        }
        public class List : NHibernate.Mapping.IndexedCollection
        {
            public int BaseIndex { get => throw null; set { } }
            public List(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; }
            public override bool IsList { get => throw null; }
        }
        public class ManyToOne : NHibernate.Mapping.ToOne
        {
            public override void CreateForeignKey() => throw null;
            public void CreatePropertyRefConstraints(System.Collections.Generic.IDictionary<string, NHibernate.Mapping.PersistentClass> persistentClasses) => throw null;
            public ManyToOne(NHibernate.Mapping.Table table) : base(default(NHibernate.Mapping.Table)) => throw null;
            public bool IsIgnoreNotFound { get => throw null; set { } }
            public bool IsLogicalOneToOne { get => throw null; set { } }
            public string PropertyName { get => throw null; set { } }
            public override NHibernate.Type.IType Type { get => throw null; }
        }
        public class Map : NHibernate.Mapping.IndexedCollection
        {
            public override NHibernate.Type.CollectionType CollectionType { get => throw null; }
            public override void CreateAllKeys() => throw null;
            public Map(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; }
            public override bool IsMap { get => throw null; }
        }
        public class MetaAttribute
        {
            public void AddValue(string value) => throw null;
            public void AddValues(System.Collections.Generic.IEnumerable<string> range) => throw null;
            public MetaAttribute(string name) => throw null;
            public bool IsMultiValued { get => throw null; }
            public string Name { get => throw null; }
            public override string ToString() => throw null;
            public string Value { get => throw null; }
            public System.Collections.Generic.IList<string> Values { get => throw null; }
        }
        public class OneToMany : NHibernate.Mapping.IValue
        {
            public object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null;
            public NHibernate.Mapping.PersistentClass AssociatedClass { get => throw null; set { } }
            public bool[] ColumnInsertability { get => throw null; }
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> ColumnIterator { get => throw null; }
            public int ColumnSpan { get => throw null; }
            public bool[] ColumnUpdateability { get => throw null; }
            public void CreateForeignKey() => throw null;
            public OneToMany(NHibernate.Mapping.PersistentClass owner) => throw null;
            public NHibernate.FetchMode FetchMode { get => throw null; }
            public NHibernate.Mapping.Formula Formula { get => throw null; }
            public bool HasFormula { get => throw null; }
            public bool IsAlternateUniqueKey { get => throw null; }
            public bool IsIgnoreNotFound { get => throw null; set { } }
            public bool IsNullable { get => throw null; }
            public bool IsSimpleValue { get => throw null; }
            public bool IsUnique { get => throw null; }
            public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null;
            public string ReferencedEntityName { get => throw null; set { } }
            public NHibernate.Mapping.Table ReferencingTable { get => throw null; }
            public void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null;
            public NHibernate.Mapping.Table Table { get => throw null; }
            public NHibernate.Type.IType Type { get => throw null; }
        }
        public class OneToOne : NHibernate.Mapping.ToOne
        {
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> ConstraintColumns { get => throw null; }
            public override void CreateForeignKey() => throw null;
            public OneToOne(NHibernate.Mapping.Table table, NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.Table)) => throw null;
            public string EntityName { get => throw null; set { } }
            public NHibernate.Type.ForeignKeyDirection ForeignKeyType { get => throw null; set { } }
            public NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } }
            public bool IsConstrained { get => throw null; set { } }
            public override bool IsNullable { get => throw null; }
            public string PropertyName { get => throw null; set { } }
            public override NHibernate.Type.IType Type { get => throw null; }
        }
        public abstract class PersistentClass : NHibernate.Mapping.IFilterable, NHibernate.Mapping.IMetaAttributable, NHibernate.Mapping.ISqlCustomizable
        {
            public abstract object Accept(NHibernate.Mapping.IPersistentClassVisitor mv);
            public void AddFilter(string name, string condition) => throw null;
            public virtual void AddJoin(NHibernate.Mapping.Join join) => throw null;
            public virtual void AddProperty(NHibernate.Mapping.Property p) => throw null;
            public virtual void AddSubclass(NHibernate.Mapping.Subclass subclass) => throw null;
            public virtual void AddSubclassJoin(NHibernate.Mapping.Join join) => throw null;
            public virtual void AddSubclassProperty(NHibernate.Mapping.Property p) => throw null;
            public virtual void AddSubclassTable(NHibernate.Mapping.Table table) => throw null;
            public void AddSynchronizedTable(string table) => throw null;
            public void AddTuplizer(NHibernate.EntityMode entityMode, string implClass) => throw null;
            public int? BatchSize { get => throw null; set { } }
            public abstract string CacheConcurrencyStrategy { get; set; }
            protected void CheckColumnDuplication(System.Collections.Generic.ISet<string> distinctColumns, System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> columns) => throw null;
            protected virtual void CheckColumnDuplication() => throw null;
            protected void CheckPropertyColumnDuplication(System.Collections.Generic.ISet<string> distinctColumns, System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> properties) => throw null;
            public string ClassName { get => throw null; set { } }
            public virtual void CreatePrimaryKey(NHibernate.Dialect.Dialect dialect) => throw null;
            public virtual void CreatePrimaryKey() => throw null;
            protected PersistentClass() => throw null;
            public NHibernate.SqlCommand.SqlString CustomSQLDelete { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLDeleteCheckStyle { get => throw null; }
            public NHibernate.SqlCommand.SqlString CustomSQLInsert { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLInsertCheckStyle { get => throw null; }
            public NHibernate.SqlCommand.SqlString CustomSQLUpdate { get => throw null; }
            public NHibernate.Engine.ExecuteUpdateResultCheckStyle CustomSQLUpdateCheckStyle { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Subclass> DirectSubclasses { get => throw null; }
            public abstract NHibernate.Mapping.IValue Discriminator { get; set; }
            protected virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> DiscriminatorColumnIterator { get => throw null; }
            public virtual string DiscriminatorValue { get => throw null; set { } }
            public virtual bool DynamicInsert { get => throw null; set { } }
            public virtual bool DynamicUpdate { get => throw null; set { } }
            public virtual string EntityName { get => throw null; set { } }
            public abstract System.Type EntityPersisterClass { get; set; }
            public virtual System.Collections.Generic.IDictionary<string, string> FilterMap { get => throw null; }
            public virtual int GetJoinNumber(NHibernate.Mapping.Property prop) => throw null;
            public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null;
            public NHibernate.Mapping.Property GetProperty(string propertyName) => throw null;
            public NHibernate.Mapping.Property GetRecursiveProperty(string propertyPath) => throw null;
            public NHibernate.Mapping.Property GetReferencedProperty(string propertyPath) => throw null;
            public virtual string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null;
            public abstract bool HasEmbeddedIdentifier { get; set; }
            public bool HasIdentifierMapper { get => throw null; }
            public abstract bool HasIdentifierProperty { get; }
            public bool HasNaturalId() => throw null;
            public bool HasPocoRepresentation { get => throw null; }
            public virtual bool HasSubclasses { get => throw null; }
            public virtual bool HasSubselectLoadableCollections { get => throw null; set { } }
            public abstract NHibernate.Mapping.IKeyValue Identifier { get; set; }
            public virtual NHibernate.Mapping.Component IdentifierMapper { get => throw null; set { } }
            public abstract NHibernate.Mapping.Property IdentifierProperty { get; set; }
            public virtual NHibernate.Mapping.Table IdentityTable { get => throw null; }
            public bool? IsAbstract { get => throw null; set { } }
            public virtual bool IsClassOrSuperclassJoin(NHibernate.Mapping.Join join) => throw null;
            public virtual bool IsClassOrSuperclassTable(NHibernate.Mapping.Table closureTable) => throw null;
            public bool IsCustomDeleteCallable { get => throw null; }
            public bool IsCustomInsertCallable { get => throw null; }
            public bool IsCustomUpdateCallable { get => throw null; }
            public abstract bool IsDiscriminatorInsertable { get; set; }
            public bool IsDiscriminatorValueNotNull { get => throw null; }
            public bool IsDiscriminatorValueNull { get => throw null; }
            public abstract bool IsExplicitPolymorphism { get; set; }
            public virtual bool IsForceDiscriminator { get => throw null; set { } }
            public abstract bool IsInherited { get; }
            public abstract bool IsJoinedSubclass { get; }
            public bool IsLazy { get => throw null; set { } }
            public abstract bool IsLazyPropertiesCacheable { get; }
            public abstract bool IsMutable { get; set; }
            public abstract bool IsPolymorphic { get; set; }
            public abstract bool IsVersioned { get; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Join> JoinClosureIterator { get => throw null; }
            public virtual int JoinClosureSpan { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Join> JoinIterator { get => throw null; }
            public abstract NHibernate.Mapping.IKeyValue Key { get; set; }
            public abstract System.Collections.Generic.IEnumerable<NHibernate.Mapping.IKeyValue> KeyClosureIterator { get; }
            public string LoaderName { get => throw null; set { } }
            public virtual System.Type MappedClass { get => throw null; }
            public System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> MetaAttributes { get => throw null; set { } }
            protected virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> NonDuplicatedPropertyIterator { get => throw null; }
            public const string NotNullDiscriminatorMapping = default;
            public const string NullDiscriminatorMapping = default;
            public virtual NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; set { } }
            public void PrepareTemporaryTables(NHibernate.Engine.IMapping mapping, NHibernate.Dialect.Dialect dialect) => throw null;
            public abstract System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> PropertyClosureIterator { get; }
            public virtual int PropertyClosureSpan { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> PropertyIterator { get => throw null; }
            public virtual System.Type ProxyInterface { get => throw null; }
            public string ProxyInterfaceName { get => throw null; set { } }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> ReferenceablePropertyIterator { get => throw null; }
            public abstract NHibernate.Mapping.RootClass RootClazz { get; }
            public abstract NHibernate.Mapping.Table RootTable { get; }
            public bool SelectBeforeUpdate { get => throw null; set { } }
            public void SetCustomSQLDelete(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetCustomSQLInsert(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public void SetCustomSQLUpdate(string sql, bool callable, NHibernate.Engine.ExecuteUpdateResultCheckStyle checkStyle) => throw null;
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.PersistentClass> SubclassClosureIterator { get => throw null; }
            public abstract int SubclassId { get; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Subclass> SubclassIterator { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Join> SubclassJoinClosureIterator { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> SubclassPropertyClosureIterator { get => throw null; }
            public virtual int SubclassSpan { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Table> SubclassTableClosureIterator { get => throw null; }
            public abstract NHibernate.Mapping.PersistentClass Superclass { get; set; }
            public virtual System.Collections.Generic.ISet<string> SynchronizedTables { get => throw null; }
            public abstract NHibernate.Mapping.Table Table { get; }
            public abstract System.Collections.Generic.IEnumerable<NHibernate.Mapping.Table> TableClosureIterator { get; }
            public string TemporaryIdTableDDL { get => throw null; }
            public string TemporaryIdTableName { get => throw null; }
            public override string ToString() => throw null;
            public virtual System.Collections.Generic.IDictionary<NHibernate.EntityMode, string> TuplizerMap { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> UnjoinedPropertyIterator { get => throw null; }
            public virtual void Validate(NHibernate.Engine.IMapping mapping) => throw null;
            public abstract NHibernate.Mapping.Property Version { get; set; }
            public abstract string Where { get; set; }
        }
        public class PrimaryKey : NHibernate.Mapping.Constraint
        {
            public PrimaryKey() => throw null;
            public string SqlConstraintString(NHibernate.Dialect.Dialect d, string defaultSchema) => throw null;
            public override string SqlConstraintString(NHibernate.Dialect.Dialect d, string constraintName, string defaultCatalog, string defaultSchema) => throw null;
            public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
        }
        public class PrimitiveArray : NHibernate.Mapping.Array
        {
            public PrimitiveArray(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override bool IsPrimitiveArray { get => throw null; }
        }
        public class Property : NHibernate.Mapping.IMetaAttributable
        {
            public virtual bool BackRef { get => throw null; }
            public string Cascade { get => throw null; set { } }
            public NHibernate.Engine.CascadeStyle CascadeStyle { get => throw null; }
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> ColumnIterator { get => throw null; }
            public int ColumnSpan { get => throw null; }
            public Property() => throw null;
            public Property(NHibernate.Mapping.IValue propertyValue) => throw null;
            public NHibernate.Mapping.PropertyGeneration Generation { get => throw null; set { } }
            public NHibernate.Properties.IGetter GetGetter(System.Type clazz) => throw null;
            public NHibernate.Mapping.MetaAttribute GetMetaAttribute(string attributeName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type clazz) => throw null;
            public virtual bool IsBasicPropertyAccessor { get => throw null; }
            public bool IsComposite { get => throw null; }
            public bool IsEntityRelation { get => throw null; }
            public bool IsInsertable { get => throw null; set { } }
            public bool IsLazy { get => throw null; set { } }
            public bool IsNaturalIdentifier { get => throw null; set { } }
            public bool IsNullable { get => throw null; }
            public bool IsOptimisticLocked { get => throw null; set { } }
            public bool IsOptional { get => throw null; set { } }
            public bool IsSelectable { get => throw null; set { } }
            public bool IsUpdateable { get => throw null; set { } }
            public bool IsValid(NHibernate.Engine.IMapping mapping) => throw null;
            public string LazyGroup { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, NHibernate.Mapping.MetaAttribute> MetaAttributes { get => throw null; set { } }
            public string Name { get => throw null; set { } }
            public string NullValue { get => throw null; }
            public NHibernate.Mapping.PersistentClass PersistentClass { get => throw null; set { } }
            protected virtual NHibernate.Properties.IPropertyAccessor PropertyAccessor { get => throw null; }
            public string PropertyAccessorName { get => throw null; set { } }
            public NHibernate.Type.IType Type { get => throw null; }
            public bool UnwrapProxy { get => throw null; set { } }
            public NHibernate.Mapping.IValue Value { get => throw null; set { } }
        }
        public enum PropertyGeneration
        {
            Never = 0,
            Insert = 1,
            Always = 2,
        }
        public class ReferenceDependantValue : NHibernate.Mapping.DependantValue
        {
            public override void CreateForeignKeyOfEntity(string entityName) => throw null;
            public ReferenceDependantValue(NHibernate.Mapping.Table table, NHibernate.Mapping.SimpleValue prototype) : base(default(NHibernate.Mapping.Table), default(NHibernate.Mapping.IKeyValue)) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> ReferenceColumns { get => throw null; }
        }
        public class RootClass : NHibernate.Mapping.PersistentClass, NHibernate.Mapping.ITableOwner
        {
            public override object Accept(NHibernate.Mapping.IPersistentClassVisitor mv) => throw null;
            public override void AddSubclass(NHibernate.Mapping.Subclass subclass) => throw null;
            public override string CacheConcurrencyStrategy { get => throw null; set { } }
            public string CacheRegionName { get => throw null; set { } }
            public RootClass() => throw null;
            public const string DefaultDiscriminatorColumnName = default;
            public const string DefaultIdentifierColumnName = default;
            public override NHibernate.Mapping.IValue Discriminator { get => throw null; set { } }
            public override System.Type EntityPersisterClass { get => throw null; set { } }
            public override bool HasEmbeddedIdentifier { get => throw null; set { } }
            public override bool HasIdentifierProperty { get => throw null; }
            public override NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } }
            public override NHibernate.Mapping.Property IdentifierProperty { get => throw null; set { } }
            public virtual System.Collections.Generic.ISet<NHibernate.Mapping.Table> IdentityTables { get => throw null; }
            public override bool IsDiscriminatorInsertable { get => throw null; set { } }
            public override bool IsExplicitPolymorphism { get => throw null; set { } }
            public override bool IsForceDiscriminator { get => throw null; set { } }
            public override bool IsInherited { get => throw null; }
            public override bool IsJoinedSubclass { get => throw null; }
            public override bool IsLazyPropertiesCacheable { get => throw null; }
            public override bool IsMutable { get => throw null; set { } }
            public override bool IsPolymorphic { get => throw null; set { } }
            public override bool IsVersioned { get => throw null; }
            public override NHibernate.Mapping.IKeyValue Key { get => throw null; set { } }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.IKeyValue> KeyClosureIterator { get => throw null; }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> PropertyClosureIterator { get => throw null; }
            public override NHibernate.Mapping.RootClass RootClazz { get => throw null; }
            public override NHibernate.Mapping.Table RootTable { get => throw null; }
            public void SetLazyPropertiesCacheable(bool isLazyPropertiesCacheable) => throw null;
            public override int SubclassId { get => throw null; }
            public override NHibernate.Mapping.PersistentClass Superclass { get => throw null; set { } }
            public override NHibernate.Mapping.Table Table { get => throw null; }
            NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set { } }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Table> TableClosureIterator { get => throw null; }
            public override void Validate(NHibernate.Engine.IMapping mapping) => throw null;
            public override NHibernate.Mapping.Property Version { get => throw null; set { } }
            public override string Where { get => throw null; set { } }
        }
        [System.Flags]
        public enum SchemaAction
        {
            None = 0,
            Drop = 1,
            Update = 2,
            Export = 4,
            Validate = 8,
            All = 15,
        }
        public class Set : NHibernate.Mapping.Collection
        {
            public override void CreatePrimaryKey() => throw null;
            public Set(NHibernate.Mapping.PersistentClass owner) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Type.CollectionType DefaultCollectionType { get => throw null; }
            public override bool IsSet { get => throw null; }
        }
        public class SimpleAuxiliaryDatabaseObject : NHibernate.Mapping.AbstractAuxiliaryDatabaseObject
        {
            public SimpleAuxiliaryDatabaseObject(string sqlCreateString, string sqlDropString) => throw null;
            public SimpleAuxiliaryDatabaseObject(string sqlCreateString, string sqlDropString, System.Collections.Generic.HashSet<string> dialectScopes) => throw null;
            public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null;
            public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
        }
        public class SimpleValue : NHibernate.Mapping.IKeyValue, NHibernate.Mapping.IValue
        {
            public virtual object Accept(NHibernate.Mapping.IValueVisitor visitor) => throw null;
            public virtual void AddColumn(NHibernate.Mapping.Column column) => throw null;
            public virtual void AddFormula(NHibernate.Mapping.Formula formula) => throw null;
            public virtual bool[] ColumnInsertability { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> ColumnIterator { get => throw null; }
            public virtual int ColumnSpan { get => throw null; }
            public virtual bool[] ColumnUpdateability { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> ConstraintColumns { get => throw null; }
            public virtual void CreateForeignKey() => throw null;
            public virtual void CreateForeignKeyOfEntity(string entityName) => throw null;
            public NHibernate.Id.IIdentifierGenerator CreateIdentifierGenerator(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema, NHibernate.Mapping.RootClass rootClass) => throw null;
            public SimpleValue() => throw null;
            public SimpleValue(NHibernate.Mapping.Table table) => throw null;
            public virtual NHibernate.FetchMode FetchMode { get => throw null; set { } }
            public string ForeignKeyName { get => throw null; set { } }
            public bool HasFormula { get => throw null; }
            public System.Collections.Generic.IDictionary<string, string> IdentifierGeneratorProperties { get => throw null; set { } }
            public string IdentifierGeneratorStrategy { get => throw null; set { } }
            public bool IsAlternateUniqueKey { get => throw null; set { } }
            public bool IsCascadeDeleteEnabled { get => throw null; set { } }
            public virtual bool IsComposite { get => throw null; }
            public bool IsIdentityColumn(NHibernate.Dialect.Dialect dialect) => throw null;
            public virtual bool IsNullable { get => throw null; }
            public bool IsSimpleValue { get => throw null; }
            public virtual bool IsTypeSpecified { get => throw null; }
            public virtual bool IsUpdateable { get => throw null; }
            public virtual bool IsValid(NHibernate.Engine.IMapping mapping) => throw null;
            public string NullValue { get => throw null; set { } }
            public virtual void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null;
            public NHibernate.Mapping.Table Table { get => throw null; set { } }
            public override string ToString() => throw null;
            public virtual NHibernate.Type.IType Type { get => throw null; }
            public string TypeName { get => throw null; set { } }
            public System.Collections.Generic.IDictionary<string, string> TypeParameters { get => throw null; set { } }
        }
        public class SingleTableSubclass : NHibernate.Mapping.Subclass
        {
            public SingleTableSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            protected override System.Collections.Generic.IEnumerable<NHibernate.Mapping.ISelectable> DiscriminatorColumnIterator { get => throw null; }
            protected override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> NonDuplicatedPropertyIterator { get => throw null; }
            public override void Validate(NHibernate.Engine.IMapping mapping) => throw null;
        }
        public class Subclass : NHibernate.Mapping.PersistentClass
        {
            public override object Accept(NHibernate.Mapping.IPersistentClassVisitor mv) => throw null;
            public override void AddJoin(NHibernate.Mapping.Join join) => throw null;
            public override void AddProperty(NHibernate.Mapping.Property p) => throw null;
            public override void AddSubclassJoin(NHibernate.Mapping.Join join) => throw null;
            public override void AddSubclassProperty(NHibernate.Mapping.Property p) => throw null;
            public override void AddSubclassTable(NHibernate.Mapping.Table table) => throw null;
            public override string CacheConcurrencyStrategy { get => throw null; set { } }
            public void CreateForeignKey() => throw null;
            public Subclass(NHibernate.Mapping.PersistentClass superclass) => throw null;
            public override NHibernate.Mapping.IValue Discriminator { get => throw null; set { } }
            public override System.Type EntityPersisterClass { get => throw null; set { } }
            public override System.Collections.Generic.IDictionary<string, string> FilterMap { get => throw null; }
            public override string GetTuplizerImplClassName(NHibernate.EntityMode mode) => throw null;
            public override bool HasEmbeddedIdentifier { get => throw null; set { } }
            public override bool HasIdentifierProperty { get => throw null; }
            public override bool HasSubselectLoadableCollections { get => throw null; set { } }
            public override NHibernate.Mapping.IKeyValue Identifier { get => throw null; set { } }
            public override NHibernate.Mapping.Component IdentifierMapper { get => throw null; }
            public override NHibernate.Mapping.Property IdentifierProperty { get => throw null; set { } }
            public override bool IsClassOrSuperclassJoin(NHibernate.Mapping.Join join) => throw null;
            public override bool IsClassOrSuperclassTable(NHibernate.Mapping.Table closureTable) => throw null;
            public override bool IsDiscriminatorInsertable { get => throw null; set { } }
            public override bool IsExplicitPolymorphism { get => throw null; set { } }
            public override bool IsForceDiscriminator { get => throw null; }
            public override bool IsInherited { get => throw null; }
            public override bool IsJoinedSubclass { get => throw null; }
            public override bool IsLazyPropertiesCacheable { get => throw null; }
            public override bool IsMutable { get => throw null; set { } }
            public override bool IsPolymorphic { get => throw null; set { } }
            public override bool IsVersioned { get => throw null; }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Join> JoinClosureIterator { get => throw null; }
            public override int JoinClosureSpan { get => throw null; }
            public override NHibernate.Mapping.IKeyValue Key { get => throw null; set { } }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.IKeyValue> KeyClosureIterator { get => throw null; }
            public override NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> PropertyClosureIterator { get => throw null; }
            public override int PropertyClosureSpan { get => throw null; }
            public override NHibernate.Mapping.RootClass RootClazz { get => throw null; }
            public override NHibernate.Mapping.Table RootTable { get => throw null; }
            public override int SubclassId { get => throw null; }
            public override NHibernate.Mapping.PersistentClass Superclass { get => throw null; set { } }
            public override System.Collections.Generic.ISet<string> SynchronizedTables { get => throw null; }
            public override NHibernate.Mapping.Table Table { get => throw null; }
            public override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Table> TableClosureIterator { get => throw null; }
            public override System.Collections.Generic.IDictionary<NHibernate.EntityMode, string> TuplizerMap { get => throw null; }
            public override NHibernate.Mapping.Property Version { get => throw null; set { } }
            public override string Where { get => throw null; set { } }
        }
        public class Table : NHibernate.Mapping.IRelationalModel
        {
            public void AddCheckConstraint(string constraint) => throw null;
            public void AddColumn(NHibernate.Mapping.Column column) => throw null;
            public NHibernate.Mapping.Index AddIndex(NHibernate.Mapping.Index index) => throw null;
            public NHibernate.Mapping.UniqueKey AddUniqueKey(NHibernate.Mapping.UniqueKey uniqueKey) => throw null;
            public string Catalog { get => throw null; set { } }
            public System.Collections.Generic.IEnumerable<string> CheckConstraintsIterator { get => throw null; }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> ColumnIterator { get => throw null; }
            public int ColumnSpan { get => throw null; }
            public string Comment { get => throw null; set { } }
            public virtual bool ContainsColumn(NHibernate.Mapping.Column column) => throw null;
            public virtual NHibernate.Mapping.ForeignKey CreateForeignKey(string keyName, System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> keyColumns, string referencedEntityName) => throw null;
            public virtual NHibernate.Mapping.ForeignKey CreateForeignKey(string keyName, System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> keyColumns, string referencedEntityName, System.Collections.Generic.IEnumerable<NHibernate.Mapping.Column> referencedColumns) => throw null;
            public virtual void CreateForeignKeys() => throw null;
            public virtual NHibernate.Mapping.UniqueKey CreateUniqueKey(System.Collections.Generic.IList<NHibernate.Mapping.Column> keyColumns) => throw null;
            public Table() => throw null;
            public Table(string name) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Mapping.ForeignKey> ForeignKeyIterator { get => throw null; }
            public NHibernate.Mapping.Column GetColumn(int n) => throw null;
            public virtual NHibernate.Mapping.Column GetColumn(NHibernate.Mapping.Column column) => throw null;
            public NHibernate.Mapping.Index GetIndex(string indexName) => throw null;
            public NHibernate.Mapping.Index GetOrCreateIndex(string indexName) => throw null;
            public NHibernate.Mapping.UniqueKey GetOrCreateUniqueKey(string keyName) => throw null;
            public string GetQualifiedName(NHibernate.Dialect.Dialect dialect) => throw null;
            public virtual string GetQualifiedName(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
            public string GetQuotedCatalog() => throw null;
            public string GetQuotedCatalog(NHibernate.Dialect.Dialect dialect) => throw null;
            public string GetQuotedCatalog(NHibernate.Dialect.Dialect dialect, string defaultQuotedCatalog) => throw null;
            public string GetQuotedName() => throw null;
            public string GetQuotedName(NHibernate.Dialect.Dialect dialect) => throw null;
            public string GetQuotedSchema() => throw null;
            public string GetQuotedSchema(NHibernate.Dialect.Dialect dialect) => throw null;
            public string GetQuotedSchema(NHibernate.Dialect.Dialect dialect, string defaultQuotedSchema) => throw null;
            public string GetQuotedSchemaName(NHibernate.Dialect.Dialect dialect) => throw null;
            public NHibernate.Mapping.UniqueKey GetUniqueKey(string keyName) => throw null;
            public bool HasDenormalizedTables { get => throw null; }
            public bool HasPrimaryKey { get => throw null; }
            public NHibernate.Mapping.IKeyValue IdentifierValue { get => throw null; set { } }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.Index> IndexIterator { get => throw null; }
            public bool IsAbstract { get => throw null; set { } }
            public bool IsAbstractUnionTable { get => throw null; }
            public bool IsCatalogQuoted { get => throw null; }
            public bool IsPhysicalTable { get => throw null; }
            public bool IsQuoted { get => throw null; set { } }
            public bool IsSchemaQuoted { get => throw null; }
            public bool IsSubselect { get => throw null; }
            public string Name { get => throw null; set { } }
            public virtual NHibernate.Mapping.PrimaryKey PrimaryKey { get => throw null; set { } }
            public string RowId { get => throw null; set { } }
            public string Schema { get => throw null; set { } }
            public NHibernate.Mapping.SchemaAction SchemaActions { get => throw null; set { } }
            public void SetIdentifierValue(NHibernate.Mapping.SimpleValue identifierValue) => throw null;
            public string[] SqlAlterStrings(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, NHibernate.Dialect.Schema.ITableMetadata tableInfo, string defaultCatalog, string defaultSchema) => throw null;
            public virtual string[] SqlCommentStrings(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
            public string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null;
            public string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
            public virtual string SqlTemporaryTableCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null;
            public string Subselect { get => throw null; set { } }
            public override string ToString() => throw null;
            public string UniqueColumnString(System.Collections.IEnumerable uniqueColumns) => throw null;
            public string UniqueColumnString(System.Collections.IEnumerable iterator, string referencedEntityName) => throw null;
            public int UniqueInteger { get => throw null; set { } }
            public virtual System.Collections.Generic.IEnumerable<NHibernate.Mapping.UniqueKey> UniqueKeyIterator { get => throw null; }
            public System.Collections.Generic.IEnumerable<string> ValidateColumns(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping, NHibernate.Dialect.Schema.ITableMetadata tableInfo) => throw null;
        }
        public abstract class ToOne : NHibernate.Mapping.SimpleValue, NHibernate.Mapping.IFetchable
        {
            public abstract override void CreateForeignKey();
            public ToOne(NHibernate.Mapping.Table table) => throw null;
            public override NHibernate.FetchMode FetchMode { get => throw null; set { } }
            public bool IsLazy { get => throw null; set { } }
            public override bool IsTypeSpecified { get => throw null; }
            public override bool IsValid(NHibernate.Engine.IMapping mapping) => throw null;
            public string ReferencedEntityName { get => throw null; set { } }
            public string ReferencedPropertyName { get => throw null; set { } }
            public override void SetTypeUsingReflection(string className, string propertyName, string accesorName) => throw null;
            public abstract override NHibernate.Type.IType Type { get; }
            public bool UnwrapProxy { get => throw null; set { } }
        }
        public class TypeDef
        {
            public TypeDef(string typeClass, System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public System.Collections.Generic.IDictionary<string, string> Parameters { get => throw null; }
            public string TypeClass { get => throw null; }
        }
        public class UnionSubclass : NHibernate.Mapping.Subclass, NHibernate.Mapping.ITableOwner
        {
            public UnionSubclass(NHibernate.Mapping.PersistentClass superclass) : base(default(NHibernate.Mapping.PersistentClass)) => throw null;
            public override NHibernate.Mapping.Table IdentityTable { get => throw null; }
            protected override System.Collections.Generic.IEnumerable<NHibernate.Mapping.Property> NonDuplicatedPropertyIterator { get => throw null; }
            NHibernate.Mapping.Table NHibernate.Mapping.ITableOwner.Table { set { } }
            public override NHibernate.Mapping.Table Table { get => throw null; }
        }
        public class UniqueKey : NHibernate.Mapping.Constraint
        {
            public UniqueKey() => throw null;
            public override bool IsGenerated(NHibernate.Dialect.Dialect dialect) => throw null;
            public string SqlConstraintString(NHibernate.Dialect.Dialect dialect) => throw null;
            public override string SqlConstraintString(NHibernate.Dialect.Dialect dialect, string constraintName, string defaultCatalog, string defaultSchema) => throw null;
            public override string SqlCreateString(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping p, string defaultCatalog, string defaultSchema) => throw null;
            public override string SqlDropString(NHibernate.Dialect.Dialect dialect, string defaultCatalog, string defaultSchema) => throw null;
        }
    }
    public class MappingException : NHibernate.HibernateException
    {
        public MappingException(string message) => throw null;
        public MappingException(System.Exception innerException) => throw null;
        public MappingException(string message, System.Exception innerException) => throw null;
        protected MappingException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Metadata
    {
        public interface IClassMetadata
        {
            string EntityName { get; }
            object GetIdentifier(object entity);
            NHibernate.Type.IType GetPropertyType(string propertyName);
            object GetPropertyValue(object obj, string propertyName);
            object[] GetPropertyValues(object entity);
            object[] GetPropertyValuesToInsert(object entity, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session);
            object GetVersion(object obj);
            bool HasIdentifierProperty { get; }
            bool HasNaturalIdentifier { get; }
            bool HasProxy { get; }
            bool HasSubclasses { get; }
            string IdentifierPropertyName { get; }
            NHibernate.Type.IType IdentifierType { get; }
            bool ImplementsLifecycle { get; }
            bool ImplementsValidatable { get; }
            object Instantiate(object id);
            bool IsInherited { get; }
            bool IsMutable { get; }
            bool IsVersioned { get; }
            System.Type MappedClass { get; }
            int[] NaturalIdentifierProperties { get; }
            bool[] PropertyLaziness { get; }
            string[] PropertyNames { get; }
            bool[] PropertyNullability { get; }
            NHibernate.Type.IType[] PropertyTypes { get; }
            void SetIdentifier(object entity, object id);
            void SetPropertyValue(object obj, string propertyName, object value);
            void SetPropertyValues(object entity, object[] values);
            int VersionProperty { get; }
        }
        public interface ICollectionMetadata
        {
            NHibernate.Type.IType ElementType { get; }
            bool HasIndex { get; }
            NHibernate.Type.IType IndexType { get; }
            bool IsArray { get; }
            bool IsLazy { get; }
            bool IsPrimitiveArray { get; }
            NHibernate.Type.IType KeyType { get; }
            string Role { get; }
        }
    }
    namespace Multi
    {
        public class CriteriaBatchItem<T> : NHibernate.Multi.QueryBatchItemBase<T>
        {
            public CriteriaBatchItem(NHibernate.ICriteria query) => throw null;
            protected override System.Collections.Generic.List<T> DoGetResults() => throw null;
            protected override System.Collections.Generic.List<NHibernate.Multi.QueryBatchItemBase<T>.QueryInfo> GetQueryInformation(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected override System.Collections.Generic.IList<T> GetResultsNonBatched() => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public interface ICachingInformation
        {
            NHibernate.Cache.QueryKey CacheKey { get; }
            bool CanGetFromCache { get; }
            bool IsCacheable { get; }
            NHibernate.Engine.QueryParameters Parameters { get; }
            string QueryIdentifier { get; }
            System.Collections.Generic.ISet<string> QuerySpaces { get; }
            System.Collections.IList ResultToCache { get; }
            NHibernate.Type.IType[] ResultTypes { get; }
            void SetCacheBatcher(NHibernate.Cache.CacheBatcher cacheBatcher);
            void SetCachedResult(System.Collections.IList result);
        }
        public interface IQueryBatch
        {
            void Add(NHibernate.Multi.IQueryBatchItem query);
            void Add(string key, NHibernate.Multi.IQueryBatchItem query);
            void Execute();
            System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            NHibernate.FlushMode? FlushMode { get; set; }
            System.Collections.Generic.IList<TResult> GetResult<TResult>(int queryIndex);
            System.Collections.Generic.IList<TResult> GetResult<TResult>(string querykey);
            System.Threading.Tasks.Task<System.Collections.Generic.IList<TResult>> GetResultAsync<TResult>(int queryIndex, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            System.Threading.Tasks.Task<System.Collections.Generic.IList<TResult>> GetResultAsync<TResult>(string querykey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken));
            bool IsExecutedOrEmpty { get; }
            int? Timeout { get; set; }
        }
        public interface IQueryBatchItem
        {
            System.Collections.Generic.IEnumerable<NHibernate.Multi.ICachingInformation> CachingInformation { get; }
            void ExecuteNonBatched();
            System.Threading.Tasks.Task ExecuteNonBatchedAsync(System.Threading.CancellationToken cancellationToken);
            System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.ISqlCommand> GetCommands();
            System.Collections.Generic.IEnumerable<string> GetQuerySpaces();
            void Init(NHibernate.Engine.ISessionImplementor session);
            void ProcessResults();
            int ProcessResultsSet(System.Data.Common.DbDataReader reader);
            System.Threading.Tasks.Task<int> ProcessResultsSetAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken);
        }
        public interface IQueryBatchItem<TResult> : NHibernate.Multi.IQueryBatchItem
        {
            System.Action<System.Collections.Generic.IList<TResult>> AfterLoadCallback { get; set; }
            System.Collections.Generic.IList<TResult> GetResults();
        }
        public class LinqBatchItem<T> : NHibernate.Multi.QueryBatchItem<T>
        {
            public LinqBatchItem(NHibernate.IQuery query) : base(default(NHibernate.IQuery)) => throw null;
            protected override System.Collections.Generic.List<T> DoGetResults() => throw null;
            protected override System.Collections.Generic.IList<T> GetResultsNonBatched() => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.Generic.IList<T>> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public static class LinqBatchItem
        {
            public static NHibernate.Multi.LinqBatchItem<TResult> Create<T, TResult>(System.Linq.IQueryable<T> query, System.Linq.Expressions.Expression<System.Func<System.Linq.IQueryable<T>, TResult>> selector) => throw null;
            public static NHibernate.Multi.LinqBatchItem<T> Create<T>(System.Linq.IQueryable<T> query) => throw null;
        }
        public class QueryBatch : NHibernate.Multi.IQueryBatch
        {
            public void Add(NHibernate.Multi.IQueryBatchItem query) => throw null;
            public void Add(string key, NHibernate.Multi.IQueryBatchItem query) => throw null;
            public QueryBatch(NHibernate.Engine.ISessionImplementor session, bool autoReset) => throw null;
            public void Execute() => throw null;
            public System.Threading.Tasks.Task ExecuteAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            protected void ExecuteBatched() => throw null;
            protected System.Threading.Tasks.Task ExecuteBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.FlushMode? FlushMode { get => throw null; set { } }
            public System.Collections.Generic.IList<TResult> GetResult<TResult>(int queryIndex) => throw null;
            public System.Collections.Generic.IList<TResult> GetResult<TResult>(string querykey) => throw null;
            public System.Threading.Tasks.Task<System.Collections.Generic.IList<TResult>> GetResultAsync<TResult>(int queryIndex, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public System.Threading.Tasks.Task<System.Collections.Generic.IList<TResult>> GetResultAsync<TResult>(string querykey, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public bool IsExecutedOrEmpty { get => throw null; }
            protected NHibernate.Engine.ISessionImplementor Session { get => throw null; }
            public int? Timeout { get => throw null; set { } }
        }
        public static partial class QueryBatchExtensions
        {
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query, System.Action<System.Collections.Generic.IList<TResult>> afterLoad = default(System.Action<System.Collections.Generic.IList<TResult>>)) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQueryOver query) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver<TResult> query, System.Action<System.Collections.Generic.IList<TResult>> afterLoad = default(System.Action<System.Collections.Generic.IList<TResult>>)) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQueryOver<TResult> query) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.ICriteria query, System.Action<System.Collections.Generic.IList<TResult>> afterLoad = default(System.Action<System.Collections.Generic.IList<TResult>>)) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.ICriteria query) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.Criterion.DetachedCriteria query, System.Action<System.Collections.Generic.IList<TResult>> afterLoad = default(System.Action<System.Collections.Generic.IList<TResult>>)) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.Criterion.DetachedCriteria query) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query, System.Action<System.Collections.Generic.IList<TResult>> afterLoad = default(System.Action<System.Collections.Generic.IList<TResult>>)) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, string key, NHibernate.IQuery query) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable<TResult> query, System.Action<System.Collections.Generic.IList<TResult>> afterLoad = default(System.Action<System.Collections.Generic.IList<TResult>>)) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TResult>(this NHibernate.Multi.IQueryBatch batch, string key, System.Linq.IQueryable<TResult> query) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TSource, TResult>(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable<TSource> query, System.Linq.Expressions.Expression<System.Func<System.Linq.IQueryable<TSource>, TResult>> selector, System.Action<TResult> afterLoad = default(System.Action<TResult>)) => throw null;
            public static NHibernate.Multi.IQueryBatch Add<TSource, TResult>(this NHibernate.Multi.IQueryBatch batch, string key, System.Linq.IQueryable<TSource> query, System.Linq.Expressions.Expression<System.Func<System.Linq.IQueryable<TSource>, TResult>> selector) => throw null;
            public static NHibernate.IFutureEnumerable<TResult> AddAsFuture<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null;
            public static NHibernate.IFutureEnumerable<TResult> AddAsFuture<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver<TResult> query) => throw null;
            public static NHibernate.IFutureEnumerable<TResult> AddAsFuture<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.ICriteria query) => throw null;
            public static NHibernate.IFutureEnumerable<TResult> AddAsFuture<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.Criterion.DetachedCriteria query) => throw null;
            public static NHibernate.IFutureEnumerable<TResult> AddAsFuture<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query) => throw null;
            public static NHibernate.IFutureEnumerable<TResult> AddAsFuture<TResult>(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable<TResult> query) => throw null;
            public static NHibernate.IFutureEnumerable<TResult> AddAsFuture<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.Multi.IQueryBatchItem<TResult> query) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TSource, TResult>(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable<TSource> query, System.Linq.Expressions.Expression<System.Func<System.Linq.IQueryable<TSource>, TResult>> selector) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TResult>(this NHibernate.Multi.IQueryBatch batch, System.Linq.IQueryable<TResult> query) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.ICriteria query) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.Criterion.DetachedCriteria query) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver query) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQueryOver<TResult> query) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.IQuery query) => throw null;
            public static NHibernate.IFutureValue<TResult> AddAsFutureValue<TResult>(this NHibernate.Multi.IQueryBatch batch, NHibernate.Multi.IQueryBatchItem<TResult> query) => throw null;
            public static NHibernate.Multi.IQueryBatch SetFlushMode(this NHibernate.Multi.IQueryBatch batch, NHibernate.FlushMode mode) => throw null;
            public static NHibernate.Multi.IQueryBatch SetTimeout(this NHibernate.Multi.IQueryBatch batch, int? timeout) => throw null;
        }
        public class QueryBatchItem<TResult> : NHibernate.Multi.QueryBatchItemBase<TResult>
        {
            public QueryBatchItem(NHibernate.IQuery query) => throw null;
            protected override System.Collections.Generic.List<TResult> DoGetResults() => throw null;
            protected override System.Collections.Generic.List<NHibernate.Multi.QueryBatchItemBase<TResult>.QueryInfo> GetQueryInformation(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected override System.Collections.Generic.IList<TResult> GetResultsNonBatched() => throw null;
            protected override System.Threading.Tasks.Task<System.Collections.Generic.IList<TResult>> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected readonly NHibernate.Impl.AbstractQueryImpl Query;
        }
        public abstract class QueryBatchItemBase<TResult> : NHibernate.Multi.IQueryBatchItem<TResult>, NHibernate.Multi.IQueryBatchItem
        {
            public System.Action<System.Collections.Generic.IList<TResult>> AfterLoadCallback { get => throw null; set { } }
            public System.Collections.Generic.IEnumerable<NHibernate.Multi.ICachingInformation> CachingInformation { get => throw null; }
            protected QueryBatchItemBase() => throw null;
            protected abstract System.Collections.Generic.List<TResult> DoGetResults();
            public void ExecuteNonBatched() => throw null;
            public System.Threading.Tasks.Task ExecuteNonBatchedAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.ISqlCommand> GetCommands() => throw null;
            protected abstract System.Collections.Generic.List<NHibernate.Multi.QueryBatchItemBase<TResult>.QueryInfo> GetQueryInformation(NHibernate.Engine.ISessionImplementor session);
            public System.Collections.Generic.IEnumerable<string> GetQuerySpaces() => throw null;
            public System.Collections.Generic.IList<TResult> GetResults() => throw null;
            protected abstract System.Collections.Generic.IList<TResult> GetResultsNonBatched();
            protected abstract System.Threading.Tasks.Task<System.Collections.Generic.IList<TResult>> GetResultsNonBatchedAsync(System.Threading.CancellationToken cancellationToken);
            protected System.Collections.Generic.List<T> GetTypedResults<T>() => throw null;
            public virtual void Init(NHibernate.Engine.ISessionImplementor session) => throw null;
            public void ProcessResults() => throw null;
            public System.Threading.Tasks.Task ProcessResultsAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public int ProcessResultsSet(System.Data.Common.DbDataReader reader) => throw null;
            public System.Threading.Tasks.Task<int> ProcessResultsSetAsync(System.Data.Common.DbDataReader reader, System.Threading.CancellationToken cancellationToken) => throw null;
            protected class QueryInfo : NHibernate.Multi.ICachingInformation
            {
                public NHibernate.Cache.CacheBatcher CacheBatcher { get => throw null; }
                public NHibernate.Cache.QueryKey CacheKey { get => throw null; }
                public NHibernate.Type.IType[] CacheTypes { get => throw null; }
                public bool CanGetFromCache { get => throw null; }
                public bool CanPutToCache { get => throw null; }
                public QueryInfo(NHibernate.Engine.QueryParameters parameters, NHibernate.Loader.Loader loader, System.Collections.Generic.ISet<string> querySpaces, NHibernate.Engine.ISessionImplementor session) => throw null;
                public QueryInfo(NHibernate.Engine.QueryParameters parameters, NHibernate.Loader.ILoader loader, System.Collections.Generic.ISet<string> querySpaces, NHibernate.Engine.ISessionImplementor session) => throw null;
                public bool IsCacheable { get => throw null; }
                public bool IsResultFromCache { get => throw null; }
                public NHibernate.Loader.Loader Loader { get => throw null; }
                public NHibernate.Engine.QueryParameters Parameters { get => throw null; }
                public string QueryIdentifier { get => throw null; }
                public NHibernate.Loader.ILoader QueryLoader { get => throw null; }
                public System.Collections.Generic.ISet<string> QuerySpaces { get => throw null; }
                public System.Collections.IList Result { get => throw null; set { } }
                public System.Collections.IList ResultToCache { get => throw null; set { } }
                public NHibernate.Type.IType[] ResultTypes { get => throw null; }
                public void SetCacheBatcher(NHibernate.Cache.CacheBatcher cacheBatcher) => throw null;
                public void SetCachedResult(System.Collections.IList result) => throw null;
            }
            protected NHibernate.Engine.ISessionImplementor Session;
        }
    }
    public static partial class MultiCriteriaExtensions
    {
        public static NHibernate.IMultiCriteria SetTimeout(this NHibernate.IMultiCriteria multiCriteria, int timeout) => throw null;
    }
    namespace MultiTenancy
    {
        public abstract class AbstractMultiTenancyConnectionProvider : NHibernate.MultiTenancy.IMultiTenancyConnectionProvider
        {
            protected AbstractMultiTenancyConnectionProvider() => throw null;
            public NHibernate.Connection.IConnectionAccess GetConnectionAccess(NHibernate.MultiTenancy.TenantConfiguration tenantConfiguration, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
            protected abstract string GetTenantConnectionString(NHibernate.MultiTenancy.TenantConfiguration tenantConfiguration, NHibernate.Engine.ISessionFactoryImplementor sessionFactory);
        }
        public interface IMultiTenancyConnectionProvider
        {
            NHibernate.Connection.IConnectionAccess GetConnectionAccess(NHibernate.MultiTenancy.TenantConfiguration tenantConfiguration, NHibernate.Engine.ISessionFactoryImplementor sessionFactory);
        }
        public enum MultiTenancyStrategy
        {
            None = 0,
            Database = 1,
        }
        public class TenantConfiguration
        {
            public TenantConfiguration(string tenantIdentifier) => throw null;
            public string TenantIdentifier { get => throw null; }
        }
    }
    public static class NHibernateLogger
    {
        public static NHibernate.INHibernateLogger For(string keyName) => throw null;
        public static NHibernate.INHibernateLogger For(System.Type type) => throw null;
        public static void SetLoggersFactory(NHibernate.INHibernateLoggerFactory loggerFactory) => throw null;
    }
    public static partial class NHibernateLoggerExtensions
    {
        public static void Debug(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null;
        public static void Debug(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null;
        public static void Debug(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null;
        public static void Debug(this NHibernate.INHibernateLogger logger, string message) => throw null;
        public static void Debug(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null;
        public static void Error(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null;
        public static void Error(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null;
        public static void Error(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null;
        public static void Error(this NHibernate.INHibernateLogger logger, string message) => throw null;
        public static void Error(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null;
        public static void Fatal(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null;
        public static void Fatal(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null;
        public static void Fatal(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null;
        public static void Fatal(this NHibernate.INHibernateLogger logger, string message) => throw null;
        public static void Fatal(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null;
        public static void Info(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null;
        public static void Info(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null;
        public static void Info(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null;
        public static void Info(this NHibernate.INHibernateLogger logger, string message) => throw null;
        public static void Info(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null;
        public static bool IsDebugEnabled(this NHibernate.INHibernateLogger logger) => throw null;
        public static bool IsErrorEnabled(this NHibernate.INHibernateLogger logger) => throw null;
        public static bool IsFatalEnabled(this NHibernate.INHibernateLogger logger) => throw null;
        public static bool IsInfoEnabled(this NHibernate.INHibernateLogger logger) => throw null;
        public static bool IsWarnEnabled(this NHibernate.INHibernateLogger logger) => throw null;
        public static void Warn(this NHibernate.INHibernateLogger logger, System.Exception exception, string format, params object[] args) => throw null;
        public static void Warn(this NHibernate.INHibernateLogger logger, System.Exception exception, string message) => throw null;
        public static void Warn(this NHibernate.INHibernateLogger logger, string format, params object[] args) => throw null;
        public static void Warn(this NHibernate.INHibernateLogger logger, string message) => throw null;
        public static void Warn(this NHibernate.INHibernateLogger logger, string message, System.Exception ex) => throw null;
    }
    public enum NHibernateLogLevel
    {
        Trace = 0,
        Debug = 1,
        Info = 2,
        Warn = 3,
        Error = 4,
        Fatal = 5,
        None = 6,
    }
    public struct NHibernateLogValues
    {
        public object[] Args { get => throw null; }
        public NHibernateLogValues(string format, object[] args) => throw null;
        public string Format { get => throw null; }
        public override string ToString() => throw null;
    }
    public static class NHibernateUtil
    {
        public static readonly NHibernate.Type.AnsiCharType AnsiChar;
        public static readonly NHibernate.Type.AnsiStringType AnsiString;
        public static NHibernate.Type.IType Any(NHibernate.Type.IType metaType, NHibernate.Type.IType identifierType) => throw null;
        public static readonly NHibernate.Type.BinaryType Binary;
        public static readonly NHibernate.Type.BinaryBlobType BinaryBlob;
        public static readonly NHibernate.Type.BooleanType Boolean;
        public static readonly NHibernate.Type.ByteType Byte;
        public static readonly NHibernate.Type.CharType Character;
        public static readonly NHibernate.Type.TypeType Class;
        public static readonly NHibernate.Type.ClassMetaType ClassMetaType;
        public static void Close(System.Collections.IEnumerator enumerator) => throw null;
        public static void Close(System.Collections.IEnumerable enumerable) => throw null;
        public static readonly NHibernate.Type.CultureInfoType CultureInfo;
        public static readonly NHibernate.Type.CurrencyType Currency;
        public static NHibernate.Type.IType Custom(System.Type userTypeClass) => throw null;
        public static readonly NHibernate.Type.DateType Date;
        public static readonly NHibernate.Type.DateTimeType DateTime;
        public static readonly NHibernate.Type.DateTime2Type DateTime2;
        public static readonly NHibernate.Type.DateTimeNoMsType DateTimeNoMs;
        public static readonly NHibernate.Type.DateTimeOffsetType DateTimeOffset;
        public static readonly NHibernate.Type.DbTimestampType DbTimestamp;
        public static readonly NHibernate.Type.DecimalType Decimal;
        public static readonly NHibernate.Type.DoubleType Double;
        public static NHibernate.Type.IType Entity(System.Type persistentClass) => throw null;
        public static NHibernate.Type.IType Entity(string entityName) => throw null;
        public static NHibernate.Type.IType Enum(System.Type enumClass) => throw null;
        public static System.Type GetClass(object proxy) => throw null;
        public static System.Threading.Tasks.Task<System.Type> GetClassAsync(object proxy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static NHibernate.Type.IType GetSerializable(System.Type serializableClass) => throw null;
        public static NHibernate.Type.IType GuessType(object obj) => throw null;
        public static NHibernate.Type.IType GuessType(System.Type type) => throw null;
        public static readonly NHibernate.Type.GuidType Guid;
        public static void Initialize(object proxy) => throw null;
        public static System.Threading.Tasks.Task InitializeAsync(object proxy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static readonly NHibernate.Type.Int16Type Int16;
        public static readonly NHibernate.Type.Int32Type Int32;
        public static readonly NHibernate.Type.Int64Type Int64;
        public static bool IsInitialized(object proxy) => throw null;
        public static bool IsPropertyInitialized(object proxy, string propertyName) => throw null;
        public static readonly NHibernate.Type.DateType LocalDate;
        public static readonly NHibernate.Type.LocalDateTimeType LocalDateTime;
        public static readonly NHibernate.Type.LocalDateTimeNoMsType LocalDateTimeNoMs;
        public static readonly NHibernate.Type.MetaType MetaType;
        public static readonly NHibernate.Type.AnyType Object;
        public static readonly NHibernate.Type.SByteType SByte;
        public static readonly NHibernate.Type.SerializableType Serializable;
        public static readonly NHibernate.Type.SingleType Single;
        public static readonly NHibernate.Type.StringType String;
        public static readonly NHibernate.Type.StringClobType StringClob;
        public static readonly NHibernate.Type.TicksType Ticks;
        public static readonly NHibernate.Type.TimeType Time;
        public static readonly NHibernate.Type.TimeAsTimeSpanType TimeAsTimeSpan;
        public static readonly NHibernate.Type.TimeSpanType TimeSpan;
        public static readonly NHibernate.Type.TimestampType Timestamp;
        public static readonly NHibernate.Type.TrueFalseType TrueFalse;
        public static readonly NHibernate.Type.UInt16Type UInt16;
        public static readonly NHibernate.Type.UInt32Type UInt32;
        public static readonly NHibernate.Type.UInt64Type UInt64;
        public static readonly NHibernate.Type.UriType Uri;
        public static readonly NHibernate.Type.UtcDateTimeType UtcDateTime;
        public static readonly NHibernate.Type.UtcDateTimeNoMsType UtcDateTimeNoMs;
        public static readonly NHibernate.Type.UtcDbTimestampType UtcDbTimestamp;
        public static readonly NHibernate.Type.UtcTicksType UtcTicks;
        public static readonly NHibernate.Type.XDocType XDoc;
        public static readonly NHibernate.Type.XmlDocType XmlDoc;
        public static readonly NHibernate.Type.YesNoType YesNo;
    }
    public class NoLoggingInternalLogger : NHibernate.IInternalLogger
    {
        public NoLoggingInternalLogger() => throw null;
        public void Debug(object message) => throw null;
        public void Debug(object message, System.Exception exception) => throw null;
        public void DebugFormat(string format, params object[] args) => throw null;
        public void Error(object message) => throw null;
        public void Error(object message, System.Exception exception) => throw null;
        public void ErrorFormat(string format, params object[] args) => throw null;
        public void Fatal(object message) => throw null;
        public void Fatal(object message, System.Exception exception) => throw null;
        public void Info(object message) => throw null;
        public void Info(object message, System.Exception exception) => throw null;
        public void InfoFormat(string format, params object[] args) => throw null;
        public bool IsDebugEnabled { get => throw null; }
        public bool IsErrorEnabled { get => throw null; }
        public bool IsFatalEnabled { get => throw null; }
        public bool IsInfoEnabled { get => throw null; }
        public bool IsWarnEnabled { get => throw null; }
        public void Warn(object message) => throw null;
        public void Warn(object message, System.Exception exception) => throw null;
        public void WarnFormat(string format, params object[] args) => throw null;
    }
    public class NoLoggingLoggerFactory : NHibernate.ILoggerFactory
    {
        public NoLoggingLoggerFactory() => throw null;
        public NHibernate.IInternalLogger LoggerFor(string keyName) => throw null;
        public NHibernate.IInternalLogger LoggerFor(System.Type type) => throw null;
    }
    public class NonUniqueObjectException : NHibernate.HibernateException
    {
        public NonUniqueObjectException(string message, object id, string entityName) => throw null;
        public NonUniqueObjectException(object id, string entityName) => throw null;
        protected NonUniqueObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public string EntityName { get => throw null; }
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public object Identifier { get => throw null; }
        public override string Message { get => throw null; }
    }
    public class NonUniqueResultException : NHibernate.HibernateException
    {
        public NonUniqueResultException(int resultCount) => throw null;
        protected NonUniqueResultException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    public class ObjectDeletedException : NHibernate.UnresolvableObjectException
    {
        public ObjectDeletedException(string message, object identifier, string clazz) : base(default(object), default(System.Type)) => throw null;
        protected ObjectDeletedException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(object), default(System.Type)) => throw null;
    }
    public class ObjectNotFoundByUniqueKeyException : NHibernate.HibernateException
    {
        public ObjectNotFoundByUniqueKeyException(string entityName, string propertyName, object key) => throw null;
        protected ObjectNotFoundByUniqueKeyException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public object Key { get => throw null; }
        public string PropertyName { get => throw null; }
    }
    public class ObjectNotFoundException : NHibernate.UnresolvableObjectException
    {
        public ObjectNotFoundException(object identifier, System.Type type) : base(default(object), default(System.Type)) => throw null;
        public ObjectNotFoundException(object identifier, string entityName) : base(default(object), default(System.Type)) => throw null;
        protected ObjectNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(object), default(System.Type)) => throw null;
    }
    namespace Param
    {
        public abstract class AbstractExplicitParameterSpecification : NHibernate.Param.IExplicitParameterSpecification, NHibernate.Param.IPageableParameterSpecification, NHibernate.Param.IParameterSpecification
        {
            public abstract void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session);
            public abstract void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session);
            public abstract System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            public abstract System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            protected AbstractExplicitParameterSpecification(int sourceLine, int sourceColumn) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public abstract System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory);
            protected object GetPagingValue(object value, NHibernate.Dialect.Dialect dialect, NHibernate.Engine.QueryParameters queryParameters) => throw null;
            protected int GetParemeterSpan(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public abstract int GetSkipValue(NHibernate.Engine.QueryParameters queryParameters);
            public void IsSkipParameter() => throw null;
            public void IsTakeParameterWithSkipParameter(NHibernate.Param.IPageableParameterSpecification skipParameter) => throw null;
            public abstract string RenderDisplayInfo();
            public abstract void SetEffectiveType(NHibernate.Engine.QueryParameters queryParameters);
            public int SourceColumn { get => throw null; }
            public int SourceLine { get => throw null; }
        }
        public class AggregatedIndexCollectionSelectorParameterSpecifications : NHibernate.Param.IParameterSpecification
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public AggregatedIndexCollectionSelectorParameterSpecifications(System.Collections.Generic.IList<NHibernate.Param.IParameterSpecification> paramSpecs) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public string RenderDisplayInfo() => throw null;
        }
        public class CollectionFilterKeyParameterSpecification : NHibernate.Param.IParameterSpecification
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public CollectionFilterKeyParameterSpecification(string collectionRole, NHibernate.Type.IType keyType, int queryParameterPosition) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Param.CollectionFilterKeyParameterSpecification other) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public override int GetHashCode() => throw null;
            public System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public string RenderDisplayInfo() => throw null;
        }
        public class CriteriaNamedParameterSpecification : NHibernate.Param.IParameterSpecification
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public CriteriaNamedParameterSpecification(string name, NHibernate.Type.IType expectedType) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Param.CriteriaNamedParameterSpecification other) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public override int GetHashCode() => throw null;
            public System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            protected int GetParemeterSpan(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public string RenderDisplayInfo() => throw null;
        }
        public class DynamicFilterParameterSpecification : NHibernate.Param.IParameterSpecification
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public DynamicFilterParameterSpecification(string filterName, string parameterName, NHibernate.Type.IType expectedDefinedType, int? collectionSpan) => throw null;
            public NHibernate.Type.IType ElementType { get => throw null; }
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Param.DynamicFilterParameterSpecification other) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public string FilterParameterFullName { get => throw null; }
            public override int GetHashCode() => throw null;
            public System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public string RenderDisplayInfo() => throw null;
        }
        public interface IExplicitParameterSpecification : NHibernate.Param.IParameterSpecification
        {
            void SetEffectiveType(NHibernate.Engine.QueryParameters queryParameters);
            int SourceColumn { get; }
            int SourceLine { get; }
        }
        public interface IPageableParameterSpecification : NHibernate.Param.IExplicitParameterSpecification, NHibernate.Param.IParameterSpecification
        {
            int GetSkipValue(NHibernate.Engine.QueryParameters queryParameters);
            void IsSkipParameter();
            void IsTakeParameterWithSkipParameter(NHibernate.Param.IPageableParameterSpecification skipParameter);
        }
        public interface IParameterSpecification
        {
            void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session);
            void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            NHibernate.Type.IType ExpectedType { get; set; }
            System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory);
            string RenderDisplayInfo();
        }
        public class NamedParameter
        {
            public NamedParameter(string name, object value, NHibernate.Type.IType type) => throw null;
            public bool Equals(NHibernate.Param.NamedParameter other) => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public virtual bool IsCollection { get => throw null; }
            public string Name { get => throw null; }
            public NHibernate.Type.IType Type { get => throw null; }
            public object Value { get => throw null; }
        }
        public class NamedParameterSpecification : NHibernate.Param.AbstractExplicitParameterSpecification
        {
            public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public NamedParameterSpecification(int sourceLine, int sourceColumn, string name) : base(default(int), default(int)) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Param.NamedParameterSpecification other) => throw null;
            public override int GetHashCode() => throw null;
            public override System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public override int GetSkipValue(NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public string Name { get => throw null; }
            public override string RenderDisplayInfo() => throw null;
            public override void SetEffectiveType(NHibernate.Engine.QueryParameters queryParameters) => throw null;
        }
        public static partial class ParametersBackTrackExtensions
        {
            public static System.Collections.Generic.IEnumerable<int> GetEffectiveParameterLocations(this System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlParameters, string backTrackId) => throw null;
            public static NHibernate.SqlTypes.SqlType[] GetQueryParameterTypes(this System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> parameterSpecs, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public static void ResetEffectiveExpectedType(this System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> parameterSpecs, NHibernate.Engine.QueryParameters queryParameters) => throw null;
        }
        public class PositionalParameterSpecification : NHibernate.Param.AbstractExplicitParameterSpecification
        {
            public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public PositionalParameterSpecification(int sourceLine, int sourceColumn, int hqlPosition) : base(default(int), default(int)) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Param.PositionalParameterSpecification other) => throw null;
            public override int GetHashCode() => throw null;
            public override System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public override int GetSkipValue(NHibernate.Engine.QueryParameters queryParameters) => throw null;
            public int HqlPosition { get => throw null; }
            public override string RenderDisplayInfo() => throw null;
            public override void SetEffectiveType(NHibernate.Engine.QueryParameters queryParameters) => throw null;
        }
        public class QuerySkipParameterSpecification : NHibernate.Param.IParameterSpecification
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public QuerySkipParameterSpecification() => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Param.QuerySkipParameterSpecification other) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public override int GetHashCode() => throw null;
            public System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public string RenderDisplayInfo() => throw null;
        }
        public class QueryTakeParameterSpecification : NHibernate.Param.IParameterSpecification
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public QueryTakeParameterSpecification() => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Param.QueryTakeParameterSpecification other) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public override int GetHashCode() => throw null;
            public System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public string RenderDisplayInfo() => throw null;
        }
        public class VersionTypeSeedParameterSpecification : NHibernate.Param.IParameterSpecification
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> multiSqlQueryParametersList, int singleSqlParametersOffset, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> sqlQueryParametersList, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public VersionTypeSeedParameterSpecification(NHibernate.Type.IVersionType type) => throw null;
            public NHibernate.Type.IType ExpectedType { get => throw null; set { } }
            public System.Collections.Generic.IEnumerable<string> GetIdsForBackTrack(NHibernate.Engine.IMapping sessionFactory) => throw null;
            public string RenderDisplayInfo() => throw null;
        }
    }
    public class PersistentObjectException : NHibernate.HibernateException
    {
        public PersistentObjectException(string message) => throw null;
        protected PersistentObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Persister
    {
        namespace Collection
        {
            public abstract class AbstractCollectionPersister : NHibernate.Metadata.ICollectionMetadata, NHibernate.Persister.Collection.ICollectionPersister, NHibernate.Id.ICompositeKeyPostInsertIdentityPersister, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.IPersister, NHibernate.Id.IPostInsertIdentityPersister, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Collection.IQueryableCollection, NHibernate.Persister.Collection.ISqlLoadableCollection, NHibernate.Persister.Entity.ISupportSelectModeJoinable
            {
                protected virtual void AppendElementColumns(NHibernate.SqlCommand.SelectFragment frag, string elemAlias) => throw null;
                protected virtual void AppendIdentifierColumns(NHibernate.SqlCommand.SelectFragment frag, string alias) => throw null;
                protected virtual void AppendIndexColumns(NHibernate.SqlCommand.SelectFragment frag, string alias) => throw null;
                protected readonly int batchSize;
                public void BindSelectByUniqueKey(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames) => throw null;
                public System.Threading.Tasks.Task BindSelectByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames, System.Threading.CancellationToken cancellationToken) => throw null;
                public NHibernate.Cache.ICacheConcurrencyStrategy Cache { get => throw null; }
                public NHibernate.Cache.Entry.ICacheEntryStructure CacheEntryStructure { get => throw null; }
                public abstract bool CascadeDeleteEnabled { get; }
                public NHibernate.Metadata.ICollectionMetadata CollectionMetadata { get => throw null; }
                public string[] CollectionSpaces { get => throw null; }
                public NHibernate.Type.CollectionType CollectionType { get => throw null; }
                protected static bool[] Combine(bool[] settable, bool[] columnNullness) => throw null;
                public abstract bool ConsumesCollectionAlias();
                public abstract bool ConsumesEntityAlias();
                protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateCollectionInitializer(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters);
                protected abstract NHibernate.Loader.Collection.ICollectionInitializer CreateSubselectInitializer(NHibernate.Engine.SubselectFetch subselect, NHibernate.Engine.ISessionImplementor session);
                public AbstractCollectionPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public object DecrementIndexByBase(object index) => throw null;
                protected virtual bool DeleteAllCallable { get => throw null; }
                protected NHibernate.Engine.ExecuteUpdateResultCheckStyle DeleteAllCheckStyle { get => throw null; }
                protected virtual bool DeleteCallable { get => throw null; }
                protected NHibernate.Engine.ExecuteUpdateResultCheckStyle DeleteCheckStyle { get => throw null; }
                public void DeleteRows(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task DeleteRowsAsync(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected NHibernate.Dialect.Dialect Dialect { get => throw null; }
                protected abstract int DoUpdateRows(object key, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session);
                protected abstract System.Threading.Tasks.Task<int> DoUpdateRowsAsync(object key, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                public System.Type ElementClass { get => throw null; }
                protected readonly string[] elementColumnAliases;
                protected readonly bool[] elementColumnIsInPrimaryKey;
                protected readonly bool[] elementColumnIsSettable;
                public string[] ElementColumnNames { get => throw null; }
                public bool ElementExists(object key, object element, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected readonly string[] elementFormulas;
                protected readonly string[] elementFormulaTemplates;
                protected bool elementIsPureFormula;
                public NHibernate.Persister.Entity.IEntityPersister ElementPersister { get => throw null; }
                public NHibernate.Type.IType ElementType { get => throw null; }
                public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
                public NHibernate.FetchMode FetchMode { get => throw null; }
                protected virtual string FilterFragment(string alias) => throw null;
                public virtual string FilterFragment(string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public abstract NHibernate.SqlCommand.SqlString FromJoinFragment(string alias, bool innerJoin, bool includeSubclasses);
                protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteRowString() => throw null;
                protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteRowString(bool[] columnNullness) => throw null;
                protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteString();
                protected class GeneratedIdentifierBinder : NHibernate.Id.Insert.IBinder
                {
                    public void BindValues(System.Data.Common.DbCommand cm) => throw null;
                    public System.Threading.Tasks.Task BindValuesAsync(System.Data.Common.DbCommand cm, System.Threading.CancellationToken cancellationToken) => throw null;
                    public GeneratedIdentifierBinder(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.AbstractCollectionPersister persister) => throw null;
                    public object Entity { get => throw null; }
                }
                protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateIdentityInsertRowString();
                protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateInsertRowString();
                protected virtual NHibernate.SqlCommand.SelectFragment GenerateSelectFragment(string alias, string columnSuffix) => throw null;
                public virtual string GenerateTableAliasForKeyColumns(string alias) => throw null;
                protected abstract NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateRowString();
                protected NHibernate.Loader.Collection.ICollectionInitializer GetAppropriateInitializer(object key, NHibernate.Engine.ISessionImplementor session) => throw null;
                public int GetBatchSize() => throw null;
                public string[] GetCollectionPropertyColumnAliases(string propertyName, string suffix) => throw null;
                protected virtual string GetCountSqlSelectClause() => throw null;
                public virtual object GetElementByIndex(object key, object index, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
                public string[] GetElementColumnAliases(string suffix) => throw null;
                public string[] GetElementColumnNames(string alias) => throw null;
                public string GetIdentifierColumnAlias(string suffix) => throw null;
                public string[] GetIndexColumnAliases(string suffix) => throw null;
                public string[] GetIndexColumnNames(string alias) => throw null;
                public string GetInfoString() => throw null;
                public string[] GetKeyColumnAliases(string suffix) => throw null;
                public string GetManyToManyFilterFragment(string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public string GetManyToManyOrderByString(string alias) => throw null;
                public NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName) => throw null;
                public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes) => throw null;
                public NHibernate.SqlCommand.SelectFragment GetSelectFragment(string alias, string columnSuffix) => throw null;
                public int GetSize(object key, NHibernate.Engine.ISessionImplementor session) => throw null;
                public string GetSQLOrderByString(string alias) => throw null;
                public string GetSQLWhereString(string alias) => throw null;
                public bool HasCache { get => throw null; }
                protected readonly bool hasIdentifier;
                public bool HasIndex { get => throw null; }
                public bool HasManyToManyOrdering { get => throw null; }
                public bool HasOrdering { get => throw null; }
                public bool HasOrphanDelete { get => throw null; }
                public bool HasWhere { get => throw null; }
                public string IdentifierColumnName { get => throw null; }
                public NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get => throw null; }
                public virtual string IdentifierSelectFragment(string name, string suffix) => throw null;
                public NHibernate.Type.IType IdentifierType { get => throw null; }
                protected readonly NHibernate.Id.Insert.IInsertGeneratedIdentifierDelegate identityDelegate;
                public string IdentitySelectString { get => throw null; }
                protected object IncrementIndexByBase(object index) => throw null;
                protected readonly bool[] indexColumnIsSettable;
                public string[] IndexColumnNames { get => throw null; }
                protected bool indexContainsFormula;
                public bool IndexExists(object key, object index, NHibernate.Engine.ISessionImplementor session) => throw null;
                public string[] IndexFormulas { get => throw null; }
                protected readonly string[] indexFormulaTemplates;
                public NHibernate.Type.IType IndexType { get => throw null; }
                public void InitCollectionPropertyMap() => throw null;
                public void Initialize(object key, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task InitializeAsync(object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected virtual bool InsertCallable { get => throw null; }
                protected NHibernate.Engine.ExecuteUpdateResultCheckStyle InsertCheckStyle { get => throw null; }
                public void InsertRows(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task InsertRowsAsync(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public bool IsAffectedByEnabledFilters(NHibernate.Engine.ISessionImplementor session) => throw null;
                public bool IsArray { get => throw null; }
                public bool IsCollection { get => throw null; }
                public bool IsExtraLazy { get => throw null; }
                public bool IsIdentifierAssignedByInsert { get => throw null; }
                public bool IsInverse { get => throw null; }
                public bool IsLazy { get => throw null; }
                public abstract bool IsManyToMany { get; }
                public bool IsManyToManyFiltered(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public bool IsMutable { get => throw null; }
                public abstract bool IsOneToMany { get; }
                public bool IsPrimitiveArray { get => throw null; }
                public bool IsSubselectLoadable { get => throw null; }
                public bool IsVersioned { get => throw null; }
                public string[] JoinColumnNames { get => throw null; }
                protected string[] KeyColumnAliases { get => throw null; }
                public string[] KeyColumnNames { get => throw null; }
                public NHibernate.Type.IType KeyType { get => throw null; }
                protected void LogStaticSQL() => throw null;
                public string Name { get => throw null; }
                public object NotFoundObject { get => throw null; }
                protected static readonly object NotFoundPlaceHolder;
                public string OneToManyFilterFragment(string alias) => throw null;
                public virtual string OwnerEntityName { get => throw null; }
                public NHibernate.Persister.Entity.IEntityPersister OwnerEntityPersister { get => throw null; }
                protected object PerformInsert(object ownerId, NHibernate.Collection.IPersistentCollection collection, NHibernate.AdoNet.IExpectation expectation, object entry, int index, bool useBatch, bool callable, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected object PerformInsert(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<object> PerformInsertAsync(object ownerId, NHibernate.Collection.IPersistentCollection collection, NHibernate.AdoNet.IExpectation expectation, object entry, int index, bool useBatch, bool callable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected System.Threading.Tasks.Task<object> PerformInsertAsync(object ownerId, NHibernate.Collection.IPersistentCollection collection, object entry, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public void PostInstantiate() => throw null;
                protected readonly string qualifiedTableName;
                public object ReadElement(System.Data.Common.DbDataReader rs, object owner, string[] aliases, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> ReadElementAsync(System.Data.Common.DbDataReader rs, object owner, string[] aliases, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public object ReadIdentifier(System.Data.Common.DbDataReader rs, string alias, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> ReadIdentifierAsync(System.Data.Common.DbDataReader rs, string alias, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public object ReadIndex(System.Data.Common.DbDataReader rs, string[] aliases, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> ReadIndexAsync(System.Data.Common.DbDataReader rs, string[] aliases, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public object ReadKey(System.Data.Common.DbDataReader dr, string[] aliases, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> ReadKeyAsync(System.Data.Common.DbDataReader dr, string[] aliases, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public void Recreate(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task RecreateAsync(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public void Remove(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task RemoveAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public string Role { get => throw null; }
                public string[] RootTableKeyColumnNames { get => throw null; }
                protected virtual bool RowDeleteEnabled { get => throw null; }
                protected virtual bool RowInsertEnabled { get => throw null; }
                public string SelectFragment(string alias, string columnSuffix) => throw null;
                public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string currentEntitySuffix, string currentCollectionSuffix, bool includeCollectionColumns) => throw null;
                public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns, bool includeLazyProperties) => throw null;
                public virtual string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string currentCollectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                public virtual string SelectFragment(string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                protected NHibernate.SqlCommand.SqlCommandInfo SqlDeleteRowString { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo SqlDeleteString { get => throw null; }
                protected virtual NHibernate.Exceptions.ISQLExceptionConverter SQLExceptionConverter { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo SqlInsertRowString { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo SqlUpdateRowString { get => throw null; }
                protected readonly string sqlWhereString;
                public bool SupportsQueryCache { get => throw null; }
                public virtual string TableName { get => throw null; }
                public string[] ToColumns(string alias, string propertyName) => throw null;
                public string[] ToColumns(string propertyName) => throw null;
                public override string ToString() => throw null;
                public NHibernate.Type.IType ToType(string propertyName) => throw null;
                public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null;
                public NHibernate.Type.IType Type { get => throw null; }
                protected virtual bool UpdateCallable { get => throw null; }
                protected NHibernate.Engine.ExecuteUpdateResultCheckStyle UpdateCheckStyle { get => throw null; }
                public void UpdateRows(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task UpdateRowsAsync(NHibernate.Collection.IPersistentCollection collection, object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected bool UseGetGeneratedKeys() => throw null;
                protected bool UseInsertSelectIdentity() => throw null;
                public abstract NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses);
                protected int WriteElement(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<int> WriteElementAsync(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected int WriteElementToWhere(System.Data.Common.DbCommand st, object elt, bool[] columnNullness, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected int WriteElementToWhere(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<int> WriteElementToWhereAsync(System.Data.Common.DbCommand st, object elt, bool[] columnNullness, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected System.Threading.Tasks.Task<int> WriteElementToWhereAsync(System.Data.Common.DbCommand st, object elt, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected int WriteIdentifier(System.Data.Common.DbCommand st, object idx, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<int> WriteIdentifierAsync(System.Data.Common.DbCommand st, object idx, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected int WriteIndex(System.Data.Common.DbCommand st, object idx, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<int> WriteIndexAsync(System.Data.Common.DbCommand st, object idx, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected int WriteIndexToWhere(System.Data.Common.DbCommand st, object index, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<int> WriteIndexToWhereAsync(System.Data.Common.DbCommand st, object index, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected int WriteKey(System.Data.Common.DbCommand st, object id, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<int> WriteKeyAsync(System.Data.Common.DbCommand st, object id, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class BasicCollectionPersister : NHibernate.Persister.Collection.AbstractCollectionPersister
            {
                public override bool CascadeDeleteEnabled { get => throw null; }
                public override bool ConsumesCollectionAlias() => throw null;
                public override bool ConsumesEntityAlias() => throw null;
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateCollectionInitializer(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateSubselectInitializer(NHibernate.Engine.SubselectFetch subselect, NHibernate.Engine.ISessionImplementor session) => throw null;
                public BasicCollectionPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Mapping.Collection), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                protected override int DoUpdateRows(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<int> DoUpdateRowsAsync(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public override NHibernate.SqlCommand.SqlString FromJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteRowString(bool[] columnNullness) => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteString() => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateIdentityInsertRowString() => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateInsertRowString() => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateRowString() => throw null;
                public override bool IsManyToMany { get => throw null; }
                public override bool IsOneToMany { get => throw null; }
                public override string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                public override string SelectFragment(string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                public override NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null;
            }
            public static partial class CollectionPersisterExtensions
            {
                public static int GetBatchSize(this NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
            }
            public class CollectionPropertyMapping : NHibernate.Persister.Entity.IPropertyMapping
            {
                public CollectionPropertyMapping(NHibernate.Persister.Collection.IQueryableCollection memberPersister) => throw null;
                public string[] ToColumns(string alias, string propertyName) => throw null;
                public string[] ToColumns(string propertyName) => throw null;
                public NHibernate.Type.IType ToType(string propertyName) => throw null;
                public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null;
                public NHibernate.Type.IType Type { get => throw null; }
            }
            public class CollectionPropertyNames
            {
                public CollectionPropertyNames() => throw null;
                public const string Elements = default;
                public const string Index = default;
                public const string Indices = default;
                public const string MaxElement = default;
                public const string MaxIndex = default;
                public const string MinElement = default;
                public const string MinIndex = default;
                public const string Size = default;
            }
            public class CompositeElementPropertyMapping : NHibernate.Persister.Entity.AbstractPropertyMapping
            {
                public CompositeElementPropertyMapping(string[] elementColumns, string[] elementFormulaTemplates, NHibernate.Type.IAbstractComponentType compositeType, NHibernate.Engine.IMapping factory) => throw null;
                protected override string EntityName { get => throw null; }
                public override NHibernate.Type.IType Type { get => throw null; }
            }
            public class ElementPropertyMapping : NHibernate.Persister.Entity.IPropertyMapping
            {
                public ElementPropertyMapping(string[] elementColumns, NHibernate.Type.IType type) => throw null;
                public string[] ToColumns(string alias, string propertyName) => throw null;
                public string[] ToColumns(string propertyName) => throw null;
                public NHibernate.Type.IType ToType(string propertyName) => throw null;
                public bool TryToType(string propertyName, out NHibernate.Type.IType outType) => throw null;
                public NHibernate.Type.IType Type { get => throw null; }
            }
            public interface ICollectionPersister
            {
                NHibernate.Cache.ICacheConcurrencyStrategy Cache { get; }
                NHibernate.Cache.Entry.ICacheEntryStructure CacheEntryStructure { get; }
                bool CascadeDeleteEnabled { get; }
                NHibernate.Metadata.ICollectionMetadata CollectionMetadata { get; }
                string[] CollectionSpaces { get; }
                NHibernate.Type.CollectionType CollectionType { get; }
                void DeleteRows(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task DeleteRowsAsync(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                System.Type ElementClass { get; }
                bool ElementExists(object key, object element, NHibernate.Engine.ISessionImplementor session);
                NHibernate.Type.IType ElementType { get; }
                NHibernate.Engine.ISessionFactoryImplementor Factory { get; }
                object GetElementByIndex(object key, object index, NHibernate.Engine.ISessionImplementor session, object owner);
                string[] GetElementColumnAliases(string suffix);
                string GetIdentifierColumnAlias(string suffix);
                string[] GetIndexColumnAliases(string suffix);
                string[] GetKeyColumnAliases(string suffix);
                string GetManyToManyFilterFragment(string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters);
                int GetSize(object key, NHibernate.Engine.ISessionImplementor session);
                bool HasCache { get; }
                bool HasIndex { get; }
                bool HasManyToManyOrdering { get; }
                bool HasOrdering { get; }
                bool HasOrphanDelete { get; }
                NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get; }
                NHibernate.Type.IType IdentifierType { get; }
                bool IndexExists(object key, object index, NHibernate.Engine.ISessionImplementor session);
                NHibernate.Type.IType IndexType { get; }
                void Initialize(object key, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task InitializeAsync(object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                void InsertRows(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task InsertRowsAsync(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                bool IsAffectedByEnabledFilters(NHibernate.Engine.ISessionImplementor session);
                bool IsArray { get; }
                bool IsExtraLazy { get; }
                bool IsInverse { get; }
                bool IsLazy { get; }
                bool IsManyToMany { get; }
                bool IsMutable { get; }
                bool IsOneToMany { get; }
                bool IsPrimitiveArray { get; }
                bool IsVersioned { get; }
                NHibernate.Type.IType KeyType { get; }
                object NotFoundObject { get; }
                NHibernate.Persister.Entity.IEntityPersister OwnerEntityPersister { get; }
                void PostInstantiate();
                object ReadElement(System.Data.Common.DbDataReader rs, object owner, string[] columnAliases, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> ReadElementAsync(System.Data.Common.DbDataReader rs, object owner, string[] columnAliases, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object ReadIdentifier(System.Data.Common.DbDataReader rs, string columnAlias, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> ReadIdentifierAsync(System.Data.Common.DbDataReader rs, string columnAlias, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object ReadIndex(System.Data.Common.DbDataReader rs, string[] columnAliases, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> ReadIndexAsync(System.Data.Common.DbDataReader rs, string[] columnAliases, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object ReadKey(System.Data.Common.DbDataReader rs, string[] keyAliases, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> ReadKeyAsync(System.Data.Common.DbDataReader rs, string[] keyAliases, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                void Recreate(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task RecreateAsync(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                void Remove(object id, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task RemoveAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                string Role { get; }
                void UpdateRows(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task UpdateRowsAsync(NHibernate.Collection.IPersistentCollection collection, object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            }
            public interface IQueryableCollection : NHibernate.Persister.Collection.ICollectionPersister, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.IPropertyMapping
            {
                string[] ElementColumnNames { get; }
                NHibernate.Persister.Entity.IEntityPersister ElementPersister { get; }
                NHibernate.FetchMode FetchMode { get; }
                string GenerateTableAliasForKeyColumns(string alias);
                string[] GetElementColumnNames(string alias);
                string[] GetIndexColumnNames(string alias);
                string GetManyToManyOrderByString(string alias);
                string GetSQLOrderByString(string alias);
                string GetSQLWhereString(string alias);
                bool HasWhere { get; }
                string[] IndexColumnNames { get; }
                string[] IndexFormulas { get; }
                string SelectFragment(string alias, string columnSuffix);
            }
            public interface ISqlLoadableCollection : NHibernate.Persister.Collection.ICollectionPersister, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Collection.IQueryableCollection
            {
                string[] GetCollectionPropertyColumnAliases(string propertyName, string str);
                string IdentifierColumnName { get; }
            }
            public class NamedQueryCollectionInitializer : NHibernate.Loader.Collection.ICollectionInitializer
            {
                public NamedQueryCollectionInitializer(string queryName, NHibernate.Persister.Collection.ICollectionPersister persister) => throw null;
                public void Initialize(object key, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task InitializeAsync(object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class OneToManyPersister : NHibernate.Persister.Collection.AbstractCollectionPersister, NHibernate.Persister.Entity.ISupportSelectModeJoinable
            {
                public override bool CascadeDeleteEnabled { get => throw null; }
                public override bool ConsumesCollectionAlias() => throw null;
                public override bool ConsumesEntityAlias() => throw null;
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateCollectionInitializer(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                protected override NHibernate.Loader.Collection.ICollectionInitializer CreateSubselectInitializer(NHibernate.Engine.SubselectFetch subselect, NHibernate.Engine.ISessionImplementor session) => throw null;
                public OneToManyPersister(NHibernate.Mapping.Collection collection, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Mapping.Collection), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                protected override int DoUpdateRows(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override System.Threading.Tasks.Task<int> DoUpdateRowsAsync(object id, NHibernate.Collection.IPersistentCollection collection, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected override string FilterFragment(string alias) => throw null;
                public override NHibernate.SqlCommand.SqlString FromJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteRowString(bool[] columnNullness) => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteString() => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateIdentityInsertRowString() => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateInsertRowString() => throw null;
                protected override NHibernate.SqlCommand.SelectFragment GenerateSelectFragment(string alias, string columnSuffix) => throw null;
                protected override NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateRowString() => throw null;
                public override object GetElementByIndex(object key, object index, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
                public override bool IsManyToMany { get => throw null; }
                public override bool IsOneToMany { get => throw null; }
                protected override bool RowDeleteEnabled { get => throw null; }
                protected override bool RowInsertEnabled { get => throw null; }
                public override string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                public override string SelectFragment(string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                public override string TableName { get => throw null; }
                public override NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null;
            }
            public static partial class QueryableCollectionExtensions
            {
                public static NHibernate.SqlCommand.SelectFragment GetSelectFragment(this NHibernate.Persister.Collection.IQueryableCollection queryable, string alias, string columnSuffix) => throw null;
            }
        }
        namespace Entity
        {
            public abstract class AbstractEntityPersister : NHibernate.Metadata.IClassMetadata, NHibernate.Id.ICompositeKeyPostInsertIdentityPersister, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Persister.Entity.IJoinable, NHibernate.Intercept.ILazyPropertyInitializer, NHibernate.Persister.Entity.ILoadable, NHibernate.Persister.Entity.ILockable, NHibernate.Cache.IOptimisticCacheSource, NHibernate.Persister.Entity.IOuterJoinLoadable, NHibernate.Persister.IPersister, NHibernate.Id.IPostInsertIdentityPersister, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IQueryable, NHibernate.Persister.Entity.ISqlLoadable, NHibernate.Persister.Entity.ISupportSelectModeJoinable, NHibernate.Persister.Entity.IUniqueKeyLoadable
            {
                protected virtual void AddDiscriminatorToInsert(NHibernate.SqlCommand.SqlInsertBuilder insert) => throw null;
                protected virtual void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null;
                public void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null;
                public void AfterInitialize(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual void AfterReassociate(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public int BatchSize { get => throw null; }
                public void BindSelectByUniqueKey(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames) => throw null;
                public System.Threading.Tasks.Task BindSelectByUniqueKeyAsync(NHibernate.Engine.ISessionImplementor session, System.Data.Common.DbCommand selectCommand, NHibernate.Id.Insert.IBinder binder, string[] suppliedPropertyNames, System.Threading.CancellationToken cancellationToken) => throw null;
                public NHibernate.Cache.ICacheConcurrencyStrategy Cache { get => throw null; }
                public void CacheByUniqueKeys(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task CacheByUniqueKeysAsync(object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public NHibernate.Cache.Entry.ICacheEntryStructure CacheEntryStructure { get => throw null; }
                public virtual bool CanExtractIdOutOfEntity { get => throw null; }
                protected bool Check(int rows, object id, int tableNumber, NHibernate.AdoNet.IExpectation expectation, System.Data.Common.DbCommand statement) => throw null;
                protected bool Check(int rows, object id, int tableNumber, NHibernate.AdoNet.IExpectation expectation, System.Data.Common.DbCommand statement, bool forceThrowStaleException = default(bool)) => throw null;
                public virtual NHibernate.Metadata.IClassMetadata ClassMetadata { get => throw null; }
                protected string ConcretePropertySelectFragment(string alias, NHibernate.Engine.ValueInclusion[] inclusions) => throw null;
                protected string ConcretePropertySelectFragment(string alias, bool[] includeProperty) => throw null;
                protected string ConcretePropertySelectFragment(string alias, NHibernate.Persister.Entity.AbstractEntityPersister.IInclusionChecker inclusionChecker) => throw null;
                protected string ConcretePropertySelectFragmentSansLeadingComma(string alias, bool[] include) => throw null;
                public System.Type ConcreteProxyClass { get => throw null; }
                public abstract string[][] ConstraintOrderedTableKeyColumnClosure { get; }
                public abstract string[] ConstraintOrderedTableNameClosure { get; }
                public bool ConsumesCollectionAlias() => throw null;
                public bool ConsumesEntityAlias() => throw null;
                public int CountSubclassProperties() => throw null;
                protected NHibernate.Loader.Entity.IUniqueEntityLoader CreateEntityLoader(NHibernate.LockMode lockMode, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                protected NHibernate.Loader.Entity.IUniqueEntityLoader CreateEntityLoader(NHibernate.LockMode lockMode) => throw null;
                protected string CreateFrom(int tableNumber, string alias) => throw null;
                public object CreateProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected void CreateQueryLoader() => throw null;
                protected NHibernate.SqlCommand.SelectFragment CreateSelect(int[] subclassColumnNumbers, int[] subclassFormulaNumbers) => throw null;
                protected void CreateUniqueKeyLoaders() => throw null;
                protected NHibernate.SqlCommand.SqlString CreateWhereByKey(int tableNumber, string alias) => throw null;
                protected AbstractEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                protected NHibernate.SqlCommand.SqlString[] customSQLDelete;
                protected NHibernate.SqlCommand.SqlString[] customSQLInsert;
                protected NHibernate.SqlCommand.SqlString[] customSQLUpdate;
                protected int Dehydrate(object id, object[] fields, bool[] includeProperty, bool[][] includeColumns, int j, System.Data.Common.DbCommand st, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected int Dehydrate(object id, object[] fields, object rowId, bool[] includeProperty, bool[][] includeColumns, int table, System.Data.Common.DbCommand statement, NHibernate.Engine.ISessionImplementor session, int index) => throw null;
                protected System.Threading.Tasks.Task<int> DehydrateAsync(object id, object[] fields, bool[] includeProperty, bool[][] includeColumns, int j, System.Data.Common.DbCommand st, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected System.Threading.Tasks.Task<int> DehydrateAsync(object id, object[] fields, object rowId, bool[] includeProperty, bool[][] includeColumns, int table, System.Data.Common.DbCommand statement, NHibernate.Engine.ISessionImplementor session, int index, System.Threading.CancellationToken cancellationToken) => throw null;
                public void Delete(object id, object version, int j, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, object[] loadedState) => throw null;
                public void Delete(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task DeleteAsync(object id, object version, int j, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, object[] loadedState, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task DeleteAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected bool[] deleteCallable;
                protected NHibernate.Engine.ExecuteUpdateResultCheckStyle[] deleteResultCheckStyles;
                protected const string Discriminator_Alias = default;
                protected virtual string DiscriminatorAlias { get => throw null; }
                public virtual string DiscriminatorColumnName { get => throw null; }
                protected virtual string DiscriminatorFormulaTemplate { get => throw null; }
                public abstract string DiscriminatorSQLValue { get; }
                public abstract NHibernate.Type.IType DiscriminatorType { get; }
                public abstract object DiscriminatorValue { get; }
                public const string EntityClass = default;
                public NHibernate.Tuple.Entity.EntityMetamodel EntityMetamodel { get => throw null; }
                public NHibernate.EntityMode EntityMode { get => throw null; }
                public string EntityName { get => throw null; }
                public NHibernate.Tuple.Entity.IEntityTuplizer EntityTuplizer { get => throw null; }
                public NHibernate.Type.EntityType EntityType { get => throw null; }
                public NHibernate.Engine.ISessionFactoryImplementor Factory { get => throw null; }
                public abstract string FilterFragment(string alias);
                public virtual string FilterFragment(string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
                public virtual string FilterFragment(NHibernate.Util.FilterHelper filterHelper, string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters, string filterFragment) => throw null;
                public virtual int[] FindDirty(object[] currentState, object[] previousState, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual System.Threading.Tasks.Task<int[]> FindDirtyAsync(object[] currentState, object[] previousState, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual int[] FindModified(object[] old, object[] current, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual System.Threading.Tasks.Task<int[]> FindModifiedAsync(object[] old, object[] current, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public object ForceVersionIncrement(object id, object currentVersion, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> ForceVersionIncrementAsync(object id, object currentVersion, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual NHibernate.SqlCommand.SqlString FromJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null;
                public abstract string FromTableFragment(string alias);
                protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateDeleteString(int j) => throw null;
                public virtual string GenerateFilterConditionAlias(string rootAlias) => throw null;
                protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateIdentityInsertString(bool[] includeProperty) => throw null;
                protected NHibernate.SqlCommand.SqlString GenerateInsertGeneratedValuesSelectString() => throw null;
                protected NHibernate.SqlCommand.SqlCommandInfo GenerateInsertString(bool[] includeProperty, int j) => throw null;
                protected NHibernate.SqlCommand.SqlCommandInfo GenerateInsertString(bool identityInsert, bool[] includeProperty) => throw null;
                protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateInsertString(bool identityInsert, bool[] includeProperty, int j) => throw null;
                protected virtual NHibernate.SqlCommand.SqlString GenerateLazySelectString() => throw null;
                protected virtual System.Collections.Generic.IDictionary<string, NHibernate.SqlCommand.SqlString> GenerateLazySelectStringsByFetchGroup() => throw null;
                protected virtual NHibernate.Dialect.Lock.ILockingStrategy GenerateLocker(NHibernate.LockMode lockMode) => throw null;
                protected NHibernate.SqlCommand.SqlString GenerateSelectVersionString() => throw null;
                protected virtual NHibernate.SqlCommand.SqlString GenerateSnapshotSelectString() => throw null;
                protected NHibernate.SqlCommand.SqlCommandInfo[] GenerateSQLDeleteStrings(object[] loadedState) => throw null;
                public string GenerateTableAlias(string rootAlias, int tableNumber) => throw null;
                public virtual string GenerateTableAliasForColumn(string rootAlias, string column) => throw null;
                protected NHibernate.SqlCommand.SqlString GenerateUpdateGeneratedValuesSelectString() => throw null;
                protected virtual NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateString(bool[] includeProperty, int j, bool useRowId) => throw null;
                protected NHibernate.SqlCommand.SqlCommandInfo GenerateUpdateString(bool[] includeProperty, int j, object[] oldFields, bool useRowId) => throw null;
                public NHibernate.Engine.CascadeStyle GetCascadeStyle(int i) => throw null;
                public object GetCurrentVersion(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> GetCurrentVersionAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public object[] GetDatabaseSnapshot(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object[]> GetDatabaseSnapshotAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public string GetDiscriminatorAlias(string suffix) => throw null;
                public NHibernate.FetchMode GetFetchMode(int i) => throw null;
                protected virtual NHibernate.Tuple.Property GetIdentiferProperty(int table) => throw null;
                public virtual object GetIdentifier(object obj) => throw null;
                public string[] GetIdentifierAliases(string suffix) => throw null;
                public virtual NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(string alias, string suffix) => throw null;
                public virtual NHibernate.Type.IType GetIdentifierType(int j) => throw null;
                public string GetInfoString() => throw null;
                protected virtual string[] GetJoinIdKeyColumns(int j) => throw null;
                protected virtual object GetJoinTableId(int j, object[] fields) => throw null;
                protected virtual object GetJoinTableId(int table, object obj) => throw null;
                protected abstract string[] GetKeyColumns(int table);
                public virtual object[] GetNaturalIdentifierSnapshot(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual System.Threading.Tasks.Task<object[]> GetNaturalIdentifierSnapshotAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(string alias, string suffix, bool allProperties) => throw null;
                public NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(string alias, string suffix, System.Collections.Generic.ICollection<string> fetchProperties) => throw null;
                protected bool[] GetPropertiesToInsert(object[] fields) => throw null;
                protected virtual bool[] GetPropertiesToUpdate(int[] dirtyProperties, bool hasDirtyCollection) => throw null;
                public string[] GetPropertyAliases(string suffix, int i) => throw null;
                public string[] GetPropertyColumnNames(string propertyName) => throw null;
                public string[] GetPropertyColumnNames(int i) => throw null;
                protected int GetPropertyColumnSpan(int i) => throw null;
                public int GetPropertyIndex(string propertyName) => throw null;
                public abstract string GetPropertyTableName(string propertyName);
                public virtual NHibernate.Type.IType GetPropertyType(string path) => throw null;
                protected bool[] GetPropertyUpdateability(object entity) => throw null;
                public object GetPropertyValue(object obj, int i) => throw null;
                public object GetPropertyValue(object obj, string propertyName) => throw null;
                public object[] GetPropertyValues(object obj) => throw null;
                public virtual object[] GetPropertyValuesToInsert(object obj, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected virtual int? GetRefIdColumnOfTable(int table) => throw null;
                public virtual string GetRootTableAlias(string drivingAlias) => throw null;
                public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string propertyName) => throw null;
                public virtual NHibernate.SqlCommand.SqlString GetSelectByUniqueKeyString(string[] suppliedPropertyNames, out NHibernate.Type.IType[] parameterTypes) => throw null;
                protected virtual NHibernate.SqlCommand.SqlString GetSequentialSelect(string entityName) => throw null;
                protected virtual NHibernate.SqlCommand.SqlString GetSequentialSelect() => throw null;
                protected NHibernate.SqlCommand.SqlString GetSQLLazySelectString(string fetchGroup) => throw null;
                protected string GetSQLWhereString(string alias) => throw null;
                public NHibernate.Persister.Entity.IEntityPersister GetSubclassEntityPersister(object instance, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public abstract string GetSubclassForDiscriminatorValue(object value);
                public string[] GetSubclassPropertyColumnAliases(string propertyName, string suffix) => throw null;
                public string[] GetSubclassPropertyColumnNames(int i) => throw null;
                public string[] GetSubclassPropertyColumnNames(string propertyName) => throw null;
                public virtual NHibernate.Persister.Entity.Declarer GetSubclassPropertyDeclarer(string propertyPath) => throw null;
                public string GetSubclassPropertyName(int i) => throw null;
                public abstract string GetSubclassPropertyTableName(int i);
                protected abstract int GetSubclassPropertyTableNumber(int i);
                public virtual int GetSubclassPropertyTableNumber(string propertyPath) => throw null;
                public NHibernate.Type.IType GetSubclassPropertyType(int i) => throw null;
                protected abstract string[] GetSubclassTableKeyColumns(int j);
                public abstract string GetSubclassTableName(int j);
                protected abstract string GetTableName(int table);
                protected virtual bool[] GetTableUpdateNeeded(int[] dirtyProperties, bool hasDirtyCollection) => throw null;
                protected NHibernate.Tuple.Entity.IEntityTuplizer GetTuplizer(NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual object GetVersion(object obj) => throw null;
                public virtual bool HasCache { get => throw null; }
                public virtual bool HasCascades { get => throw null; }
                public virtual bool HasCollections { get => throw null; }
                protected virtual bool HasEmbeddedCompositeIdentifier { get => throw null; }
                protected bool HasFormulaProperties { get => throw null; }
                public virtual bool HasIdentifierProperty { get => throw null; }
                public bool HasInsertGeneratedProperties { get => throw null; }
                public virtual bool HasLazyProperties { get => throw null; }
                public virtual bool HasMutableProperties { get => throw null; }
                public virtual bool HasNaturalIdentifier { get => throw null; }
                public virtual bool HasProxy { get => throw null; }
                public virtual bool HasRowId { get => throw null; }
                public virtual bool HasSequentialSelect { get => throw null; }
                public virtual bool HasSubclasses { get => throw null; }
                public bool HasSubselectLoadableCollections { get => throw null; }
                public virtual bool HasUninitializedLazyProperties(object obj) => throw null;
                public bool HasUpdateGeneratedProperties { get => throw null; }
                protected bool HasWhere { get => throw null; }
                public object[] Hydrate(System.Data.Common.DbDataReader rs, object id, object obj, string[][] suffixedPropertyColumns, System.Collections.Generic.ISet<string> fetchedLazyProperties, bool allProperties, NHibernate.Engine.ISessionImplementor session) => throw null;
                public object[] Hydrate(System.Data.Common.DbDataReader rs, object id, object obj, NHibernate.Persister.Entity.ILoadable rootLoadable, string[][] suffixedPropertyColumns, bool allProperties, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object[]> HydrateAsync(System.Data.Common.DbDataReader rs, object id, object obj, string[][] suffixedPropertyColumns, System.Collections.Generic.ISet<string> fetchedLazyProperties, bool allProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task<object[]> HydrateAsync(System.Data.Common.DbDataReader rs, object id, object obj, NHibernate.Persister.Entity.ILoadable rootLoadable, string[][] suffixedPropertyColumns, bool allProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual NHibernate.SqlTypes.SqlType[] IdAndVersionSqlTypes { get => throw null; }
                public string[] IdentifierAliases { get => throw null; }
                public virtual string[] IdentifierColumnNames { get => throw null; }
                protected int IdentifierColumnSpan { get => throw null; }
                public virtual NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get => throw null; }
                public virtual string IdentifierPropertyName { get => throw null; }
                public virtual string IdentifierSelectFragment(string name, string suffix) => throw null;
                public virtual NHibernate.Type.IType IdentifierType { get => throw null; }
                public string IdentitySelectString { get => throw null; }
                protected interface IInclusionChecker
                {
                    bool IncludeProperty(int propertyNumber);
                }
                public bool ImplementsLifecycle { get => throw null; }
                public bool ImplementsValidatable { get => throw null; }
                public void InitializeLazyProperties(System.Data.Common.DbDataReader rs, object id, object entity, string[][] suffixedPropertyColumns, string[] uninitializedLazyProperties, bool allLazyProperties, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task InitializeLazyPropertiesAsync(System.Data.Common.DbDataReader rs, object id, object entity, string[][] suffixedPropertyColumns, string[] uninitializedLazyProperties, bool allLazyProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual object InitializeLazyProperty(string fieldName, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected virtual void InitLockers() => throw null;
                protected void InitSubclassPropertyAliasesMap(NHibernate.Mapping.PersistentClass model) => throw null;
                protected object Insert(object[] fields, bool[] notNull, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected void Insert(object id, object[] fields, bool[] notNull, int j, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session) => throw null;
                public object Insert(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session) => throw null;
                public void Insert(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<object> InsertAsync(object[] fields, bool[] notNull, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected System.Threading.Tasks.Task InsertAsync(object id, object[] fields, bool[] notNull, int j, NHibernate.SqlCommand.SqlCommandInfo sql, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task<object> InsertAsync(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task InsertAsync(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected bool[] insertCallable;
                protected NHibernate.Engine.ExecuteUpdateResultCheckStyle[] insertResultCheckStyles;
                public virtual object Instantiate(object id) => throw null;
                public NHibernate.Bytecode.IBytecodeEnhancementMetadata InstrumentationMetadata { get => throw null; }
                public virtual bool IsAbstract { get => throw null; }
                public bool IsBatchable { get => throw null; }
                public bool IsBatchLoadable { get => throw null; }
                public bool IsCacheInvalidationRequired { get => throw null; }
                protected abstract bool IsClassOrSuperclassTable(int j);
                public bool IsCollection { get => throw null; }
                public bool IsDefinedOnSubclass(int i) => throw null;
                protected bool IsDeleteCallable(int j) => throw null;
                public virtual bool IsExplicitPolymorphism { get => throw null; }
                public virtual bool IsIdentifierAssignedByInsert { get => throw null; }
                protected virtual bool IsIdOfTable(int property, int table) => throw null;
                public virtual bool IsInherited { get => throw null; }
                protected bool IsInsertCallable(int j) => throw null;
                public bool IsInstance(object entity) => throw null;
                public bool IsInstrumented { get => throw null; }
                protected virtual bool IsInverseSubclassTable(int j) => throw null;
                protected virtual bool IsInverseTable(int j) => throw null;
                public bool IsLazyPropertiesCacheable { get => throw null; }
                public virtual bool IsModifiableEntity(NHibernate.Engine.EntityEntry entry) => throw null;
                public virtual bool IsMultiTable { get => throw null; }
                public virtual bool IsMutable { get => throw null; }
                protected virtual bool IsNullableSubclassTable(int j) => throw null;
                protected virtual bool IsNullableTable(int j) => throw null;
                public virtual bool IsPolymorphic { get => throw null; }
                protected virtual bool IsPropertyDeferred(int propertyIndex) => throw null;
                protected abstract bool IsPropertyOfTable(int property, int table);
                public bool IsSelectBeforeUpdateRequired { get => throw null; }
                public virtual bool IsSubclassEntityName(string entityName) => throw null;
                protected virtual bool IsSubclassPropertyDeferred(string propertyName, string entityName) => throw null;
                public bool IsSubclassPropertyNullable(int i) => throw null;
                protected virtual bool IsSubclassTableLazy(int j) => throw null;
                protected virtual bool IsSubclassTableSequentialSelect(int table) => throw null;
                protected abstract bool IsTableCascadeDeleteEnabled(int j);
                public virtual bool? IsTransient(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual System.Threading.Tasks.Task<bool?> IsTransientAsync(object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public bool? IsUnsavedVersion(object version) => throw null;
                protected bool IsUpdateCallable(int j) => throw null;
                public virtual bool IsVersioned { get => throw null; }
                public bool IsVersionPropertyGenerated { get => throw null; }
                public string[] JoinColumnNames { get => throw null; }
                public string[] KeyColumnNames { get => throw null; }
                protected System.Collections.Generic.ISet<string> LazyProperties { get => throw null; }
                public object Load(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> LoadAsync(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public object LoadByUniqueKey(string propertyName, object uniqueKey, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> LoadByUniqueKeyAsync(string propertyName, object uniqueKey, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual void Lock(object id, object version, object obj, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected void LogStaticSQL() => throw null;
                public System.Type MappedClass { get => throw null; }
                public virtual string MappedSuperclass { get => throw null; }
                public string Name { get => throw null; }
                public int[] NaturalIdentifierProperties { get => throw null; }
                public bool[] NonLazyPropertyUpdateability { get => throw null; }
                public virtual string OneToManyFilterFragment(string alias) => throw null;
                protected NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; }
                protected void PostConstruct(NHibernate.Engine.IMapping mapping) => throw null;
                public virtual void PostInstantiate() => throw null;
                public void ProcessInsertGeneratedProperties(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task ProcessInsertGeneratedPropertiesAsync(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public void ProcessUpdateGeneratedProperties(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task ProcessUpdateGeneratedPropertiesAsync(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public virtual NHibernate.Engine.CascadeStyle[] PropertyCascadeStyles { get => throw null; }
                public virtual bool[] PropertyCheckability { get => throw null; }
                protected bool[] propertyDefinedOnSubclass;
                public virtual bool[] PropertyInsertability { get => throw null; }
                public NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get => throw null; }
                public bool[] PropertyLaziness { get => throw null; }
                protected readonly NHibernate.Persister.Entity.BasicEntityPropertyMapping propertyMapping;
                public virtual string[] PropertyNames { get => throw null; }
                public virtual bool[] PropertyNullability { get => throw null; }
                public string PropertySelectFragment(string name, string suffix, bool allProperties) => throw null;
                public string PropertySelectFragment(string name, string suffix, System.Collections.Generic.ICollection<string> fetchProperties) => throw null;
                public abstract string[] PropertySpaces { get; }
                protected int PropertySpan { get => throw null; }
                protected string[] PropertySubclassNames { get => throw null; }
                protected abstract int[] PropertyTableNumbers { get; }
                protected abstract int[] PropertyTableNumbersInSelect { get; }
                public virtual NHibernate.Type.IType[] PropertyTypes { get => throw null; }
                public virtual bool[] PropertyUpdateability { get => throw null; }
                public NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get => throw null; }
                public virtual bool[] PropertyVersionability { get => throw null; }
                public virtual string[] QuerySpaces { get => throw null; }
                protected NHibernate.SqlCommand.SqlString RenderSelect(int[] tableNumbers, int[] columnNumbers, int[] formulaNumbers) => throw null;
                public virtual void ResetIdentifier(object entity, object currentId, object currentVersion) => throw null;
                public virtual string RootEntityName { get => throw null; }
                public virtual string[] RootTableIdentifierColumnNames { get => throw null; }
                public string[] RootTableKeyColumnNames { get => throw null; }
                public virtual string RootTableName { get => throw null; }
                protected string rowIdName;
                public string SelectFragment(string alias, string suffix) => throw null;
                public string SelectFragment(string alias, string suffix, bool fetchLazyProperties) => throw null;
                public string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns) => throw null;
                public string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string collectionSuffix, bool includeCollectionColumns, bool includeLazyProperties) => throw null;
                public string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                public string SelectFragment(string lhsAlias, string collectionSuffix, bool includeCollectionColumns, NHibernate.Persister.Entity.EntityLoadInfo entityInfo) => throw null;
                public virtual void SetIdentifier(object obj, object id) => throw null;
                public void SetPropertyValue(object obj, int i, object value) => throw null;
                public virtual void SetPropertyValue(object obj, string propertyName, object value) => throw null;
                public void SetPropertyValues(object obj, object[] values) => throw null;
                protected NHibernate.SqlCommand.SqlCommandInfo[] SqlDeleteStrings { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo SQLIdentityInsertString { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo[] SqlInsertStrings { get => throw null; }
                protected NHibernate.SqlCommand.SqlString SQLLazySelectString { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo[] SQLLazyUpdateByRowIdStrings { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo[] SQLLazyUpdateStrings { get => throw null; }
                protected NHibernate.SqlCommand.SqlString SQLSnapshotSelectString { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo[] SQLUpdateByRowIdStrings { get => throw null; }
                protected NHibernate.SqlCommand.SqlCommandInfo[] SqlUpdateStrings { get => throw null; }
                public abstract string[] SubclassClosure { get; }
                protected string[] SubclassColumnAliasClosure { get => throw null; }
                protected string[] SubclassColumnClosure { get => throw null; }
                protected bool[] SubclassColumnLaziness { get => throw null; }
                protected abstract int[] SubclassColumnTableNumberClosure { get; }
                protected string[] SubclassFormulaAliasClosure { get => throw null; }
                protected string[] SubclassFormulaClosure { get => throw null; }
                protected bool[] SubclassFormulaLaziness { get => throw null; }
                protected abstract int[] SubclassFormulaTableNumberClosure { get; }
                protected string[] SubclassFormulaTemplateClosure { get => throw null; }
                protected string[][] SubclassPropertyColumnNameClosure { get => throw null; }
                protected string[][] SubclassPropertyFormulaTemplateClosure { get => throw null; }
                protected string[] SubclassPropertyNameClosure { get => throw null; }
                protected string[] SubclassPropertySubclassNameClosure { get => throw null; }
                protected NHibernate.Type.IType[] SubclassPropertyTypeClosure { get => throw null; }
                protected abstract int SubclassTableSpan { get; }
                public bool SupportsQueryCache { get => throw null; }
                protected bool[] TableHasColumns { get => throw null; }
                public abstract string TableName { get; }
                protected abstract int TableSpan { get; }
                public string TemporaryIdTableDDL { get => throw null; }
                public string TemporaryIdTableName { get => throw null; }
                public virtual string[] ToColumns(string alias, string propertyName) => throw null;
                public string[] ToColumns(string propertyName) => throw null;
                public string[] ToColumns(string name, int i) => throw null;
                public string[] ToIdentifierColumns(string name) => throw null;
                public override string ToString() => throw null;
                public NHibernate.Type.IType ToType(string propertyName) => throw null;
                public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null;
                public NHibernate.Type.IType Type { get => throw null; }
                protected bool Update(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session) => throw null;
                public void Update(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected System.Threading.Tasks.Task<bool> UpdateAsync(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                public System.Threading.Tasks.Task UpdateAsync(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected bool[] updateCallable;
                protected virtual void UpdateOrInsert(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected virtual System.Threading.Tasks.Task UpdateOrInsertAsync(object id, object[] fields, object[] oldFields, object rowId, bool[] includeProperty, int j, object oldVersion, object obj, NHibernate.SqlCommand.SqlCommandInfo sql, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
                protected NHibernate.Engine.ExecuteUpdateResultCheckStyle[] updateResultCheckStyles;
                protected virtual bool UseDynamicInsert { get => throw null; }
                protected virtual bool UseDynamicUpdate { get => throw null; }
                protected bool UseGetGeneratedKeys() => throw null;
                protected bool UseInsertSelectIdentity() => throw null;
                public virtual string VersionColumnName { get => throw null; }
                public System.Collections.IComparer VersionComparator { get => throw null; }
                protected string VersionedTableName { get => throw null; }
                public virtual int VersionProperty { get => throw null; }
                public bool VersionPropertyInsertable { get => throw null; }
                protected NHibernate.SqlCommand.SqlString VersionSelectString { get => throw null; }
                public virtual NHibernate.Type.IVersionType VersionType { get => throw null; }
                public virtual NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses) => throw null;
            }
            public static partial class AbstractEntityPersisterExtensions
            {
                public static NHibernate.SqlCommand.SelectFragment GetIdentifierSelectFragment(this NHibernate.Persister.Entity.IQueryable queryable, string alias, string suffix) => throw null;
                public static NHibernate.SqlCommand.SelectFragment GetPropertiesSelectFragment(this NHibernate.Persister.Entity.IQueryable queryable, string alias, string suffix, bool allProperties) => throw null;
            }
            public abstract class AbstractPropertyMapping : NHibernate.Persister.Entity.IPropertyMapping
            {
                protected void AddPropertyPath(string path, NHibernate.Type.IType type, string[] columns, string[] formulaTemplates) => throw null;
                protected AbstractPropertyMapping() => throw null;
                protected abstract string EntityName { get; }
                public string[] GetColumnNames(string propertyName) => throw null;
                public virtual string[] IdentifierColumnNames { get => throw null; }
                protected void InitComponentPropertyPaths(string path, NHibernate.Type.IAbstractComponentType type, string[] columns, string[] formulaTemplates, NHibernate.Engine.IMapping factory) => throw null;
                protected void InitIdentifierPropertyPaths(string path, NHibernate.Type.EntityType etype, string[] columns, NHibernate.Engine.IMapping factory) => throw null;
                protected void InitPropertyPaths(string path, NHibernate.Type.IType type, string[] columns, string[] formulaTemplates, NHibernate.Engine.IMapping factory) => throw null;
                protected NHibernate.QueryException PropertyException(string propertyName) => throw null;
                public virtual string[] ToColumns(string alias, string propertyName) => throw null;
                public virtual string[] ToColumns(string propertyName) => throw null;
                public NHibernate.Type.IType ToType(string propertyName) => throw null;
                public bool TryToType(string propertyName, out NHibernate.Type.IType type) => throw null;
                public abstract NHibernate.Type.IType Type { get; }
            }
            public class BasicEntityPropertyMapping : NHibernate.Persister.Entity.AbstractPropertyMapping
            {
                public BasicEntityPropertyMapping(NHibernate.Persister.Entity.AbstractEntityPersister persister) => throw null;
                protected override string EntityName { get => throw null; }
                public override string[] IdentifierColumnNames { get => throw null; }
                public override string[] ToColumns(string alias, string propertyName) => throw null;
                public override NHibernate.Type.IType Type { get => throw null; }
            }
            public enum Declarer
            {
                Class = 0,
                SubClass = 1,
                SuperClass = 2,
            }
            public sealed class EntityLoadInfo
            {
                public EntityLoadInfo(string entitySuffix) => throw null;
                public string EntitySuffix { get => throw null; }
                public bool IncludeLazyProps { get => throw null; set { } }
                public System.Collections.Generic.ISet<string> LazyProperties { get => throw null; set { } }
            }
            public struct EntityPersister
            {
                public static readonly string EntityID;
            }
            public interface IEntityPersister : NHibernate.Cache.IOptimisticCacheSource
            {
                void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session);
                void AfterReassociate(object entity, NHibernate.Engine.ISessionImplementor session);
                NHibernate.Cache.ICacheConcurrencyStrategy Cache { get; }
                NHibernate.Cache.Entry.ICacheEntryStructure CacheEntryStructure { get; }
                bool CanExtractIdOutOfEntity { get; }
                NHibernate.Metadata.IClassMetadata ClassMetadata { get; }
                System.Type ConcreteProxyClass { get; }
                object CreateProxy(object id, NHibernate.Engine.ISessionImplementor session);
                void Delete(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task DeleteAsync(object id, object version, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                NHibernate.Tuple.Entity.EntityMetamodel EntityMetamodel { get; }
                NHibernate.EntityMode EntityMode { get; }
                string EntityName { get; }
                NHibernate.Tuple.Entity.IEntityTuplizer EntityTuplizer { get; }
                NHibernate.Engine.ISessionFactoryImplementor Factory { get; }
                int[] FindDirty(object[] currentState, object[] previousState, object entity, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<int[]> FindDirtyAsync(object[] currentState, object[] previousState, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                int[] FindModified(object[] old, object[] current, object entity, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<int[]> FindModifiedAsync(object[] old, object[] current, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object ForceVersionIncrement(object id, object currentVersion, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> ForceVersionIncrementAsync(object id, object currentVersion, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object GetCurrentVersion(object id, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> GetCurrentVersionAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object[] GetDatabaseSnapshot(object id, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object[]> GetDatabaseSnapshotAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object GetIdentifier(object obj);
                object[] GetNaturalIdentifierSnapshot(object id, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object[]> GetNaturalIdentifierSnapshotAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                NHibernate.Type.IType GetPropertyType(string propertyName);
                object GetPropertyValue(object obj, int i);
                object GetPropertyValue(object obj, string name);
                object[] GetPropertyValues(object obj);
                object[] GetPropertyValuesToInsert(object obj, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session);
                NHibernate.Persister.Entity.IEntityPersister GetSubclassEntityPersister(object instance, NHibernate.Engine.ISessionFactoryImplementor factory);
                object GetVersion(object obj);
                bool HasCache { get; }
                bool HasCascades { get; }
                bool HasCollections { get; }
                bool HasIdentifierProperty { get; }
                bool HasInsertGeneratedProperties { get; }
                bool HasLazyProperties { get; }
                bool HasMutableProperties { get; }
                bool HasNaturalIdentifier { get; }
                bool HasProxy { get; }
                bool HasSubselectLoadableCollections { get; }
                bool HasUninitializedLazyProperties(object obj);
                bool HasUpdateGeneratedProperties { get; }
                NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get; }
                string IdentifierPropertyName { get; }
                NHibernate.Type.IType IdentifierType { get; }
                bool ImplementsLifecycle { get; }
                bool ImplementsValidatable { get; }
                void Insert(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session);
                object Insert(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task InsertAsync(object id, object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                System.Threading.Tasks.Task<object> InsertAsync(object[] fields, object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                object Instantiate(object id);
                bool IsBatchLoadable { get; }
                bool IsCacheInvalidationRequired { get; }
                bool IsIdentifierAssignedByInsert { get; }
                bool IsInherited { get; }
                bool IsInstance(object entity);
                bool IsInstrumented { get; }
                bool IsLazyPropertiesCacheable { get; }
                bool IsMutable { get; }
                bool IsSelectBeforeUpdateRequired { get; }
                bool IsSubclassEntityName(string entityName);
                bool? IsTransient(object obj, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<bool?> IsTransientAsync(object obj, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                bool? IsUnsavedVersion(object version);
                bool IsVersioned { get; }
                bool IsVersionPropertyGenerated { get; }
                object Load(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> LoadAsync(object id, object optionalObject, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                void Lock(object id, object version, object obj, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task LockAsync(object id, object version, object obj, NHibernate.LockMode lockMode, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                System.Type MappedClass { get; }
                int[] NaturalIdentifierProperties { get; }
                void PostInstantiate();
                void ProcessInsertGeneratedProperties(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task ProcessInsertGeneratedPropertiesAsync(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                void ProcessUpdateGeneratedProperties(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task ProcessUpdateGeneratedPropertiesAsync(object id, object entity, object[] state, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                NHibernate.Engine.CascadeStyle[] PropertyCascadeStyles { get; }
                bool[] PropertyCheckability { get; }
                bool[] PropertyInsertability { get; }
                NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get; }
                bool[] PropertyLaziness { get; }
                string[] PropertyNames { get; }
                bool[] PropertyNullability { get; }
                string[] PropertySpaces { get; }
                NHibernate.Type.IType[] PropertyTypes { get; }
                bool[] PropertyUpdateability { get; }
                NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get; }
                bool[] PropertyVersionability { get; }
                string[] QuerySpaces { get; }
                void ResetIdentifier(object entity, object currentId, object currentVersion);
                string RootEntityName { get; }
                void SetIdentifier(object obj, object id);
                void SetPropertyValue(object obj, int i, object value);
                void SetPropertyValues(object obj, object[] values);
                void Update(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task UpdateAsync(object id, object[] fields, int[] dirtyFields, bool hasDirtyCollection, object[] oldFields, object oldVersion, object obj, object rowId, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                int VersionProperty { get; }
                NHibernate.Type.IVersionType VersionType { get; }
            }
            public interface IJoinable
            {
                bool ConsumesCollectionAlias();
                bool ConsumesEntityAlias();
                string FilterFragment(string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters);
                NHibernate.SqlCommand.SqlString FromJoinFragment(string alias, bool innerJoin, bool includeSubclasses);
                bool IsCollection { get; }
                string[] JoinColumnNames { get; }
                string[] KeyColumnNames { get; }
                string Name { get; }
                string OneToManyFilterFragment(string alias);
                string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string currentEntitySuffix, string currentCollectionSuffix, bool includeCollectionColumns);
                string TableName { get; }
                NHibernate.SqlCommand.SqlString WhereJoinFragment(string alias, bool innerJoin, bool includeSubclasses);
            }
            public interface ILoadable : NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource
            {
                string DiscriminatorColumnName { get; }
                NHibernate.Type.IType DiscriminatorType { get; }
                string GetDiscriminatorAlias(string suffix);
                string[] GetIdentifierAliases(string suffix);
                string[] GetPropertyAliases(string suffix, int i);
                string[] GetPropertyColumnNames(int i);
                string GetSubclassForDiscriminatorValue(object value);
                bool HasRowId { get; }
                bool HasSubclasses { get; }
                object[] Hydrate(System.Data.Common.DbDataReader rs, object id, object obj, NHibernate.Persister.Entity.ILoadable rootLoadable, string[][] suffixedPropertyColumns, bool allProperties, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object[]> HydrateAsync(System.Data.Common.DbDataReader rs, object id, object obj, NHibernate.Persister.Entity.ILoadable rootLoadable, string[][] suffixedPropertyColumns, bool allProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
                string[] IdentifierColumnNames { get; }
                bool IsAbstract { get; }
            }
            public interface ILockable : NHibernate.Persister.Entity.IEntityPersister, NHibernate.Cache.IOptimisticCacheSource
            {
                string GetRootTableAlias(string drivingAlias);
                NHibernate.SqlTypes.SqlType[] IdAndVersionSqlTypes { get; }
                string[] RootTableIdentifierColumnNames { get; }
                string RootTableName { get; }
                string VersionColumnName { get; }
            }
            public interface IOuterJoinLoadable : NHibernate.Persister.Entity.IEntityPersister, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.ILoadable, NHibernate.Cache.IOptimisticCacheSource
            {
                int CountSubclassProperties();
                NHibernate.Type.EntityType EntityType { get; }
                string FromTableFragment(string alias);
                string GenerateTableAliasForColumn(string rootAlias, string column);
                NHibernate.Engine.CascadeStyle GetCascadeStyle(int i);
                NHibernate.FetchMode GetFetchMode(int i);
                string[] GetPropertyColumnNames(string propertyPath);
                string GetPropertyTableName(string propertyName);
                string[] GetSubclassPropertyColumnNames(int i);
                string GetSubclassPropertyName(int i);
                string GetSubclassPropertyTableName(int i);
                NHibernate.Type.IType GetSubclassPropertyType(int i);
                bool IsDefinedOnSubclass(int i);
                bool IsSubclassPropertyNullable(int i);
                string SelectFragment(string alias, string suffix);
                string[] ToColumns(string name, int i);
                string[] ToIdentifierColumns(string alias);
            }
            public interface IPropertyMapping
            {
                string[] ToColumns(string alias, string propertyName);
                string[] ToColumns(string propertyName);
                NHibernate.Type.IType ToType(string propertyName);
                bool TryToType(string propertyName, out NHibernate.Type.IType type);
                NHibernate.Type.IType Type { get; }
            }
            public interface IQueryable : NHibernate.Persister.Entity.IEntityPersister, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.ILoadable, NHibernate.Cache.IOptimisticCacheSource, NHibernate.Persister.Entity.IPropertyMapping
            {
                string[][] ConstraintOrderedTableKeyColumnClosure { get; }
                string[] ConstraintOrderedTableNameClosure { get; }
                string DiscriminatorSQLValue { get; }
                object DiscriminatorValue { get; }
                string GenerateFilterConditionAlias(string rootAlias);
                NHibernate.Persister.Entity.Declarer GetSubclassPropertyDeclarer(string propertyPath);
                int GetSubclassPropertyTableNumber(string propertyPath);
                string GetSubclassTableName(int number);
                string IdentifierSelectFragment(string name, string suffix);
                bool IsExplicitPolymorphism { get; }
                bool IsMultiTable { get; }
                string MappedSuperclass { get; }
                string PropertySelectFragment(string alias, string suffix, bool allProperties);
                string TemporaryIdTableDDL { get; }
                string TemporaryIdTableName { get; }
                bool VersionPropertyInsertable { get; }
            }
            public interface ISqlLoadable : NHibernate.Persister.Entity.IEntityPersister, NHibernate.Persister.Entity.ILoadable, NHibernate.Cache.IOptimisticCacheSource
            {
                string[] GetSubclassPropertyColumnAliases(string propertyName, string suffix);
                string[] GetSubclassPropertyColumnNames(string propertyName);
                string SelectFragment(string alias, string suffix);
                NHibernate.Type.IType Type { get; }
            }
            public interface ISupportSelectModeJoinable
            {
                string IdentifierSelectFragment(string name, string suffix);
                string SelectFragment(NHibernate.Persister.Entity.IJoinable rhs, string rhsAlias, string lhsAlias, string entitySuffix, string currentCollectionSuffix, bool includeCollectionColumns, bool includeLazyProperties);
            }
            public interface IUniqueKeyLoadable
            {
                int GetPropertyIndex(string propertyName);
                object LoadByUniqueKey(string propertyName, object uniqueKey, NHibernate.Engine.ISessionImplementor session);
                System.Threading.Tasks.Task<object> LoadByUniqueKeyAsync(string propertyName, object uniqueKey, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            }
            public class JoinedSubclassEntityPersister : NHibernate.Persister.Entity.AbstractEntityPersister
            {
                protected override void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null;
                public override string[][] ConstraintOrderedTableKeyColumnClosure { get => throw null; }
                public override string[] ConstraintOrderedTableNameClosure { get => throw null; }
                public JoinedSubclassEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                public override string DiscriminatorSQLValue { get => throw null; }
                public override NHibernate.Type.IType DiscriminatorType { get => throw null; }
                public override object DiscriminatorValue { get => throw null; }
                public override string FilterFragment(string alias) => throw null;
                public override string FromTableFragment(string alias) => throw null;
                public override string GenerateFilterConditionAlias(string rootAlias) => throw null;
                protected override string[] GetKeyColumns(int table) => throw null;
                protected override bool[] GetPropertiesToUpdate(int[] dirtyProperties, bool hasDirtyCollection) => throw null;
                public override string GetPropertyTableName(string propertyName) => throw null;
                public override string GetRootTableAlias(string drivingAlias) => throw null;
                public override string GetSubclassForDiscriminatorValue(object value) => throw null;
                public override NHibernate.Persister.Entity.Declarer GetSubclassPropertyDeclarer(string propertyPath) => throw null;
                public override string GetSubclassPropertyTableName(int i) => throw null;
                protected override int GetSubclassPropertyTableNumber(int i) => throw null;
                protected override string[] GetSubclassTableKeyColumns(int j) => throw null;
                public override string GetSubclassTableName(int j) => throw null;
                protected override string GetTableName(int table) => throw null;
                protected override bool[] GetTableUpdateNeeded(int[] dirtyProperties, bool hasDirtyCollection) => throw null;
                public override string[] IdentifierColumnNames { get => throw null; }
                protected override bool IsClassOrSuperclassTable(int j) => throw null;
                public override bool IsMultiTable { get => throw null; }
                protected override bool IsPropertyOfTable(int property, int table) => throw null;
                protected override bool IsTableCascadeDeleteEnabled(int j) => throw null;
                public override string[] PropertySpaces { get => throw null; }
                protected override int[] PropertyTableNumbers { get => throw null; }
                protected override int[] PropertyTableNumbersInSelect { get => throw null; }
                public override string RootTableName { get => throw null; }
                public override string[] SubclassClosure { get => throw null; }
                protected override int[] SubclassColumnTableNumberClosure { get => throw null; }
                protected override int[] SubclassFormulaTableNumberClosure { get => throw null; }
                protected override int SubclassTableSpan { get => throw null; }
                public override string TableName { get => throw null; }
                protected override int TableSpan { get => throw null; }
                public override string[] ToColumns(string alias, string propertyName) => throw null;
            }
            public struct Loadable
            {
                public static readonly string RowIdAlias;
            }
            public static partial class LoadableExtensions
            {
                public static object[] Hydrate(this NHibernate.Persister.Entity.ILoadable loadable, System.Data.Common.DbDataReader rs, object id, object obj, string[][] suffixedPropertyColumns, System.Collections.Generic.ISet<string> fetchedLazyProperties, bool allProperties, NHibernate.Engine.ISessionImplementor session) => throw null;
                public static System.Threading.Tasks.Task<object[]> HydrateAsync(this NHibernate.Persister.Entity.ILoadable loadable, System.Data.Common.DbDataReader rs, object id, object obj, string[][] suffixedPropertyColumns, System.Collections.Generic.ISet<string> fetchedLazyProperties, bool allProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class NamedQueryLoader : NHibernate.Loader.Entity.IUniqueEntityLoader
            {
                public NamedQueryLoader(string queryName, NHibernate.Persister.Entity.IEntityPersister persister) => throw null;
                public object Load(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Threading.Tasks.Task<object> LoadAsync(object id, object optionalObject, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class SingleTableEntityPersister : NHibernate.Persister.Entity.AbstractEntityPersister, NHibernate.Persister.Entity.IEntityPersister, NHibernate.Persister.Entity.IJoinable, NHibernate.Persister.Entity.ILoadable, NHibernate.Cache.IOptimisticCacheSource, NHibernate.Persister.Entity.IPropertyMapping, NHibernate.Persister.Entity.IQueryable
            {
                protected override void AddDiscriminatorToInsert(NHibernate.SqlCommand.SqlInsertBuilder insert) => throw null;
                protected override void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null;
                public override string[][] ConstraintOrderedTableKeyColumnClosure { get => throw null; }
                public override string[] ConstraintOrderedTableNameClosure { get => throw null; }
                public SingleTableEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                protected override string DiscriminatorAlias { get => throw null; }
                public override string DiscriminatorColumnName { get => throw null; }
                protected string DiscriminatorFormula { get => throw null; }
                protected override string DiscriminatorFormulaTemplate { get => throw null; }
                public override string DiscriminatorSQLValue { get => throw null; }
                public override NHibernate.Type.IType DiscriminatorType { get => throw null; }
                public override object DiscriminatorValue { get => throw null; }
                public override string FilterFragment(string alias) => throw null;
                public override string FromTableFragment(string name) => throw null;
                public override NHibernate.Type.IType GetIdentifierType(int j) => throw null;
                protected override string[] GetJoinIdKeyColumns(int j) => throw null;
                protected override object GetJoinTableId(int table, object obj) => throw null;
                protected override object GetJoinTableId(int table, object[] fields) => throw null;
                protected override string[] GetKeyColumns(int table) => throw null;
                public override string GetPropertyTableName(string propertyName) => throw null;
                protected override int? GetRefIdColumnOfTable(int table) => throw null;
                protected override NHibernate.SqlCommand.SqlString GetSequentialSelect(string entityName) => throw null;
                protected override NHibernate.SqlCommand.SqlString GetSequentialSelect() => throw null;
                public override string GetSubclassForDiscriminatorValue(object value) => throw null;
                public override string GetSubclassPropertyTableName(int i) => throw null;
                protected override int GetSubclassPropertyTableNumber(int i) => throw null;
                public int GetSubclassPropertyTableNumber(string propertyName, string entityName) => throw null;
                protected override string[] GetSubclassTableKeyColumns(int j) => throw null;
                public override string GetSubclassTableName(int j) => throw null;
                protected override string GetTableName(int table) => throw null;
                public override bool HasSequentialSelect { get => throw null; }
                protected override bool IsClassOrSuperclassTable(int j) => throw null;
                protected bool IsDiscriminatorFormula { get => throw null; }
                protected override bool IsIdOfTable(int property, int table) => throw null;
                protected override bool IsInverseSubclassTable(int j) => throw null;
                protected override bool IsInverseTable(int j) => throw null;
                public override bool IsMultiTable { get => throw null; }
                protected override bool IsNullableSubclassTable(int j) => throw null;
                protected override bool IsNullableTable(int j) => throw null;
                protected override bool IsPropertyDeferred(int propertyIndex) => throw null;
                protected override bool IsPropertyOfTable(int property, int table) => throw null;
                protected override bool IsSubclassPropertyDeferred(string propertyName, string entityName) => throw null;
                protected override bool IsSubclassTableLazy(int j) => throw null;
                protected override bool IsSubclassTableSequentialSelect(int table) => throw null;
                protected override bool IsTableCascadeDeleteEnabled(int j) => throw null;
                public override string OneToManyFilterFragment(string alias) => throw null;
                public override void PostInstantiate() => throw null;
                public override string[] PropertySpaces { get => throw null; }
                protected override int[] PropertyTableNumbers { get => throw null; }
                protected override int[] PropertyTableNumbersInSelect { get => throw null; }
                public override string[] SubclassClosure { get => throw null; }
                protected override int[] SubclassColumnTableNumberClosure { get => throw null; }
                protected override int[] SubclassFormulaTableNumberClosure { get => throw null; }
                protected override int SubclassTableSpan { get => throw null; }
                public override string TableName { get => throw null; }
                protected override int TableSpan { get => throw null; }
            }
            public class UnionSubclassEntityPersister : NHibernate.Persister.Entity.AbstractEntityPersister
            {
                protected override void AddDiscriminatorToSelect(NHibernate.SqlCommand.SelectFragment select, string name, string suffix) => throw null;
                public override string[][] ConstraintOrderedTableKeyColumnClosure { get => throw null; }
                public override string[] ConstraintOrderedTableNameClosure { get => throw null; }
                public UnionSubclassEntityPersister(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Mapping.PersistentClass), default(NHibernate.Cache.ICacheConcurrencyStrategy), default(NHibernate.Engine.ISessionFactoryImplementor)) => throw null;
                public override string DiscriminatorSQLValue { get => throw null; }
                public override NHibernate.Type.IType DiscriminatorType { get => throw null; }
                public override object DiscriminatorValue { get => throw null; }
                public override string FilterFragment(string alias) => throw null;
                public override string FromTableFragment(string name) => throw null;
                protected string GenerateSubquery(NHibernate.Mapping.PersistentClass model, NHibernate.Engine.IMapping mapping) => throw null;
                protected override string[] GetKeyColumns(int table) => throw null;
                public override string GetPropertyTableName(string propertyName) => throw null;
                public override string GetSubclassForDiscriminatorValue(object value) => throw null;
                public override string GetSubclassPropertyTableName(int i) => throw null;
                protected override int GetSubclassPropertyTableNumber(int i) => throw null;
                public override int GetSubclassPropertyTableNumber(string propertyName) => throw null;
                protected override string[] GetSubclassTableKeyColumns(int j) => throw null;
                public override string GetSubclassTableName(int j) => throw null;
                protected override string GetTableName(int table) => throw null;
                protected override bool IsClassOrSuperclassTable(int j) => throw null;
                public override bool IsMultiTable { get => throw null; }
                protected override bool IsPropertyOfTable(int property, int j) => throw null;
                protected override bool IsTableCascadeDeleteEnabled(int j) => throw null;
                public override string[] PropertySpaces { get => throw null; }
                protected override int[] PropertyTableNumbers { get => throw null; }
                protected override int[] PropertyTableNumbersInSelect { get => throw null; }
                public override string[] QuerySpaces { get => throw null; }
                public override string[] SubclassClosure { get => throw null; }
                protected override int[] SubclassColumnTableNumberClosure { get => throw null; }
                protected override int[] SubclassFormulaTableNumberClosure { get => throw null; }
                protected override int SubclassTableSpan { get => throw null; }
                public override string TableName { get => throw null; }
                protected override int TableSpan { get => throw null; }
            }
            public static partial class UniqueKeyLoadableExtensions
            {
                public static void CacheByUniqueKeys(this NHibernate.Persister.Entity.IUniqueKeyLoadable ukLoadable, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public static System.Threading.Tasks.Task CacheByUniqueKeysAsync(this NHibernate.Persister.Entity.IUniqueKeyLoadable ukLoadable, object entity, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            }
        }
        public interface IPersister
        {
            string Name { get; }
            bool SupportsQueryCache { get; }
        }
        public static class PersisterFactory
        {
            public static NHibernate.Persister.Entity.IEntityPersister Create(System.Type persisterClass, NHibernate.Mapping.PersistentClass model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping cfg) => throw null;
            public static NHibernate.Persister.Collection.ICollectionPersister Create(System.Type persisterClass, NHibernate.Mapping.Collection model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public static NHibernate.Persister.Entity.IEntityPersister CreateClassPersister(NHibernate.Mapping.PersistentClass model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory, NHibernate.Engine.IMapping cfg) => throw null;
            public static NHibernate.Persister.Collection.ICollectionPersister CreateCollectionPersister(NHibernate.Mapping.Collection model, NHibernate.Cache.ICacheConcurrencyStrategy cache, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
        }
    }
    namespace Properties
    {
        public class BackFieldStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public BackFieldStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class BackrefPropertyAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public BackrefPropertyAccessor(string collectionRole, string entityName) => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null;
            public static readonly object Unknown;
        }
        public class BasicPropertyAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public sealed class BasicGetter : NHibernate.Properties.IGetter, NHibernate.Properties.IOptimizableGetter
            {
                public BasicGetter(System.Type clazz, System.Reflection.PropertyInfo property, string propertyName) => throw null;
                public void Emit(System.Reflection.Emit.ILGenerator il) => throw null;
                public object Get(object target) => throw null;
                public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public System.Reflection.PropertyInfo Property { get => throw null; }
                public string PropertyName { get => throw null; }
                public System.Type ReturnType { get => throw null; }
            }
            public sealed class BasicSetter : NHibernate.Properties.IOptimizableSetter, NHibernate.Properties.ISetter
            {
                public BasicSetter(System.Type clazz, System.Reflection.PropertyInfo property, string propertyName) => throw null;
                public void Emit(System.Reflection.Emit.ILGenerator il) => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public System.Reflection.PropertyInfo Property { get => throw null; }
                public string PropertyName { get => throw null; }
                public void Set(object target, object value) => throw null;
                public System.Type Type { get => throw null; }
            }
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public BasicPropertyAccessor() => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type type, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type type, string propertyName) => throw null;
        }
        public class CamelCaseMUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public CamelCaseMUnderscoreStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class CamelCaseStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public CamelCaseStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class CamelCaseUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public CamelCaseUnderscoreStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class ChainedPropertyAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public ChainedPropertyAccessor(NHibernate.Properties.IPropertyAccessor[] chain) => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null;
        }
        public class EmbeddedPropertyAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public EmbeddedPropertyAccessor() => throw null;
            public sealed class EmbeddedGetter : NHibernate.Properties.IGetter
            {
                public object Get(object target) => throw null;
                public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public System.Type ReturnType { get => throw null; }
                public override string ToString() => throw null;
            }
            public sealed class EmbeddedSetter : NHibernate.Properties.ISetter
            {
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public void Set(object target, object value) => throw null;
                public override string ToString() => throw null;
            }
            public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null;
        }
        public class FieldAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public FieldAccessor() => throw null;
            public FieldAccessor(NHibernate.Properties.IFieldNamingStrategy namingStrategy) => throw null;
            public sealed class FieldGetter : NHibernate.Properties.IGetter, NHibernate.Properties.IOptimizableGetter
            {
                public FieldGetter(System.Reflection.FieldInfo field, System.Type clazz, string name) => throw null;
                public void Emit(System.Reflection.Emit.ILGenerator il) => throw null;
                public object Get(object target) => throw null;
                public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public System.Type ReturnType { get => throw null; }
            }
            public sealed class FieldSetter : NHibernate.Properties.IOptimizableSetter, NHibernate.Properties.ISetter
            {
                public FieldSetter(System.Reflection.FieldInfo field, System.Type clazz, string name) => throw null;
                public void Emit(System.Reflection.Emit.ILGenerator il) => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public void Set(object target, object value) => throw null;
                public System.Type Type { get => throw null; }
            }
            public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.IFieldNamingStrategy NamingStrategy { get => throw null; }
        }
        public interface IFieldNamingStrategy
        {
            string GetFieldName(string propertyName);
        }
        public interface IGetter
        {
            object Get(object target);
            object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session);
            System.Reflection.MethodInfo Method { get; }
            string PropertyName { get; }
            System.Type ReturnType { get; }
        }
        public class IndexPropertyAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public IndexPropertyAccessor(string collectionRole, string entityName) => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null;
            public class IndexGetter : NHibernate.Properties.IGetter
            {
                public IndexGetter(NHibernate.Properties.IndexPropertyAccessor encloser) => throw null;
                public object Get(object target) => throw null;
                public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public System.Type ReturnType { get => throw null; }
            }
            public sealed class IndexSetter : NHibernate.Properties.ISetter
            {
                public IndexSetter() => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public void Set(object target, object value) => throw null;
            }
        }
        public interface IOptimizableGetter
        {
            void Emit(System.Reflection.Emit.ILGenerator il);
        }
        public interface IOptimizableSetter
        {
            void Emit(System.Reflection.Emit.ILGenerator il);
            System.Type Type { get; }
        }
        public interface IPropertyAccessor
        {
            bool CanAccessThroughReflectionOptimizer { get; }
            NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName);
            NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName);
        }
        public interface ISetter
        {
            System.Reflection.MethodInfo Method { get; }
            string PropertyName { get; }
            void Set(object target, object value);
        }
        public class LowerCaseStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public LowerCaseStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class LowerCaseUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public LowerCaseUnderscoreStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class MapAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public MapAccessor() => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null;
            public sealed class MapGetter : NHibernate.Properties.IGetter
            {
                public object Get(object target) => throw null;
                public object GetForInsert(object owner, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public System.Type ReturnType { get => throw null; }
            }
            public sealed class MapSetter : NHibernate.Properties.ISetter
            {
                public System.Reflection.MethodInfo Method { get => throw null; }
                public string PropertyName { get => throw null; }
                public void Set(object target, object value) => throw null;
            }
        }
        public class NoopAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public NoopAccessor() => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type theClass, string propertyName) => throw null;
        }
        public class NoSetterAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public NoSetterAccessor(NHibernate.Properties.IFieldNamingStrategy namingStrategy) => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type type, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type type, string propertyName) => throw null;
        }
        public class PascalCaseMStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public PascalCaseMStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class PascalCaseMUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public PascalCaseMUnderscoreStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public class PascalCaseUnderscoreStrategy : NHibernate.Properties.IFieldNamingStrategy
        {
            public PascalCaseUnderscoreStrategy() => throw null;
            public string GetFieldName(string propertyName) => throw null;
        }
        public static class PropertyAccessorFactory
        {
            public static NHibernate.Properties.IPropertyAccessor DynamicMapPropertyAccessor { get => throw null; }
            public static NHibernate.Properties.IPropertyAccessor GetPropertyAccessor(string type) => throw null;
            public static NHibernate.Properties.IPropertyAccessor GetPropertyAccessor(NHibernate.Mapping.Property property, NHibernate.EntityMode? mode) => throw null;
        }
        public class ReadOnlyAccessor : NHibernate.Properties.IPropertyAccessor
        {
            public bool CanAccessThroughReflectionOptimizer { get => throw null; }
            public ReadOnlyAccessor() => throw null;
            public NHibernate.Properties.IGetter GetGetter(System.Type type, string propertyName) => throw null;
            public NHibernate.Properties.ISetter GetSetter(System.Type type, string propertyName) => throw null;
        }
        public struct UnknownBackrefProperty
        {
        }
    }
    public class PropertyAccessException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable
    {
        public PropertyAccessException(System.Exception innerException, string message, bool wasSetter, System.Type persistentType, string propertyName) => throw null;
        public PropertyAccessException(System.Exception innerException, string message, bool wasSetter, System.Type persistentType) => throw null;
        protected PropertyAccessException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override string Message { get => throw null; }
        public System.Type PersistentType { get => throw null; }
    }
    public class PropertyNotFoundException : NHibernate.MappingException
    {
        public string AccessorType { get => throw null; }
        public PropertyNotFoundException(System.Type targetType, string propertyName, string accessorType) : base(default(string)) => throw null;
        public PropertyNotFoundException(System.Type targetType, string propertyName) : base(default(string)) => throw null;
        public PropertyNotFoundException(string propertyName, string fieldName, System.Type targetType) : base(default(string)) => throw null;
        protected PropertyNotFoundException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public string PropertyName { get => throw null; }
        public System.Type TargetType { get => throw null; }
    }
    public class PropertyValueException : NHibernate.HibernateException
    {
        public PropertyValueException(string message, string entityName, string propertyName) => throw null;
        public PropertyValueException(string message, string entityName, string propertyName, System.Exception innerException) => throw null;
        protected PropertyValueException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public string EntityName { get => throw null; }
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override string Message { get => throw null; }
        public string PropertyName { get => throw null; }
    }
    namespace Proxy
    {
        public abstract class AbstractLazyInitializer : NHibernate.Proxy.ILazyInitializer
        {
            protected AbstractLazyInitializer(string entityName, object id, NHibernate.Engine.ISessionImplementor session) => throw null;
            public string EntityName { get => throw null; }
            public object GetImplementation() => throw null;
            public object GetImplementation(NHibernate.Engine.ISessionImplementor s) => throw null;
            public System.Threading.Tasks.Task<object> GetImplementationAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            public object Identifier { get => throw null; set { } }
            public virtual void Initialize() => throw null;
            public virtual System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken) => throw null;
            protected static readonly object InvokeImplementation;
            protected bool IsConnectedToSession { get => throw null; }
            public bool IsReadOnlySettingAvailable { get => throw null; }
            public bool IsUninitialized { get => throw null; }
            public abstract System.Type PersistentClass { get; }
            public bool ReadOnly { get => throw null; set { } }
            public NHibernate.Engine.ISessionImplementor Session { get => throw null; set { } }
            public void SetImplementation(object target) => throw null;
            public void SetSession(NHibernate.Engine.ISessionImplementor s) => throw null;
            protected object Target { get => throw null; }
            public void UnsetSession() => throw null;
            public bool Unwrap { get => throw null; set { } }
        }
        public abstract class AbstractProxyFactory : NHibernate.Proxy.IProxyFactory
        {
            protected virtual NHibernate.Type.IAbstractComponentType ComponentIdType { get => throw null; }
            protected AbstractProxyFactory() => throw null;
            protected virtual string EntityName { get => throw null; }
            public virtual object GetFieldInterceptionProxy(object instanceToWrap) => throw null;
            protected virtual System.Reflection.MethodInfo GetIdentifierMethod { get => throw null; }
            public abstract NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session);
            protected virtual System.Type[] Interfaces { get => throw null; }
            protected virtual bool IsClassProxy { get => throw null; }
            protected virtual bool OverridesEquals { get => throw null; set { } }
            protected virtual System.Type PersistentClass { get => throw null; }
            public virtual void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet<System.Type> interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null;
            public virtual void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet<System.Type> interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType) => throw null;
            protected virtual System.Reflection.MethodInfo SetIdentifierMethod { get => throw null; }
        }
        public static partial class DefaultDynamicProxyMethodCheckerExtensions
        {
            public static bool IsProxiable(this System.Reflection.MethodInfo method) => throw null;
            public static bool ShouldBeProxiable(this System.Reflection.MethodInfo method) => throw null;
            public static bool ShouldBeProxiable(this System.Reflection.PropertyInfo propertyInfo) => throw null;
        }
        public class DefaultLazyInitializer : NHibernate.Proxy.Poco.BasicLazyInitializer, NHibernate.Proxy.DynamicProxy.IInterceptor
        {
            public DefaultLazyInitializer(string entityName, System.Type persistentClass, object id, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, NHibernate.Engine.ISessionImplementor session, bool overridesEquals) : base(default(string), default(System.Type), default(object), default(System.Reflection.MethodInfo), default(System.Reflection.MethodInfo), default(NHibernate.Type.IAbstractComponentType), default(NHibernate.Engine.ISessionImplementor), default(bool)) => throw null;
            public object Intercept(NHibernate.Proxy.DynamicProxy.InvocationInfo info) => throw null;
        }
        public class DefaultProxyFactory : NHibernate.Proxy.AbstractProxyFactory
        {
            public DefaultProxyFactory() => throw null;
            public override object GetFieldInterceptionProxy(object instanceToWrap) => throw null;
            public override NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected static readonly NHibernate.INHibernateLogger log;
        }
        namespace DynamicProxy
        {
            public class DefaultProxyAssemblyBuilder : NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder
            {
                public DefaultProxyAssemblyBuilder() => throw null;
                public System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.AppDomain appDomain, System.Reflection.AssemblyName name) => throw null;
                public System.Reflection.Emit.ModuleBuilder DefineDynamicModule(System.Reflection.Emit.AssemblyBuilder assemblyBuilder, string moduleName) => throw null;
                public void Save(System.Reflection.Emit.AssemblyBuilder assemblyBuilder) => throw null;
            }
            public static partial class HashSetExtensions
            {
                public static System.Collections.Generic.HashSet<T> Merge<T>(this System.Collections.Generic.HashSet<T> source, System.Collections.Generic.IEnumerable<T> toMerge) => throw null;
            }
            public interface IArgumentHandler
            {
                void PushArguments(System.Reflection.ParameterInfo[] parameters, System.Reflection.Emit.ILGenerator IL, bool isStatic);
            }
            public interface IInterceptor
            {
                object Intercept(NHibernate.Proxy.DynamicProxy.InvocationInfo info);
            }
            public interface IMethodBodyEmitter
            {
                void EmitMethodBody(System.Reflection.Emit.MethodBuilder proxyMethod, System.Reflection.Emit.MethodBuilder callbackMethod, System.Reflection.MethodInfo method, System.Reflection.FieldInfo field);
            }
            public delegate object InterceptorHandler(object proxy, System.Reflection.MethodInfo targetMethod, System.Diagnostics.StackTrace trace, System.Type[] genericTypeArgs, object[] args);
            public delegate object InvocationHandler(NHibernate.Proxy.DynamicProxy.InvocationInfo info);
            public class InvocationInfo
            {
                public object[] Arguments { get => throw null; }
                public InvocationInfo(object proxy, System.Reflection.MethodInfo targetMethod, System.Reflection.MethodInfo callbackMethod, System.Diagnostics.StackTrace trace, System.Type[] genericTypeArgs, object[] args) => throw null;
                public virtual object InvokeMethodOnTarget() => throw null;
                public void SetArgument(int position, object arg) => throw null;
                public System.Diagnostics.StackTrace StackTrace { get => throw null; }
                public object Target { get => throw null; }
                public System.Reflection.MethodInfo TargetMethod { get => throw null; }
                public override string ToString() => throw null;
                public System.Type[] TypeArguments { get => throw null; }
            }
            public interface IProxy
            {
                NHibernate.Proxy.DynamicProxy.IInterceptor Interceptor { get; set; }
            }
            public interface IProxyAssemblyBuilder
            {
                System.Reflection.Emit.AssemblyBuilder DefineDynamicAssembly(System.AppDomain appDomain, System.Reflection.AssemblyName name);
                System.Reflection.Emit.ModuleBuilder DefineDynamicModule(System.Reflection.Emit.AssemblyBuilder assemblyBuilder, string moduleName);
                void Save(System.Reflection.Emit.AssemblyBuilder assemblyBuilder);
            }
            public interface IProxyCache
            {
                bool Contains(System.Type baseType, params System.Type[] baseInterfaces);
                System.Reflection.TypeInfo GetProxyType(System.Type baseType, params System.Type[] baseInterfaces);
                void StoreProxyType(System.Reflection.TypeInfo result, System.Type baseType, params System.Type[] baseInterfaces);
                bool TryGetProxyType(System.Type baseType, System.Type[] baseInterfaces, out System.Reflection.TypeInfo proxyType);
            }
            public interface IProxyMethodBuilder
            {
                void CreateProxiedMethod(System.Reflection.FieldInfo field, System.Reflection.MethodInfo method, System.Reflection.Emit.TypeBuilder typeBuilder);
            }
            public static class OpCodesMap
            {
                public static bool TryGetLdindOpCode(System.Type valueType, out System.Reflection.Emit.OpCode opCode) => throw null;
                public static bool TryGetStindOpCode(System.Type valueType, out System.Reflection.Emit.OpCode opCode) => throw null;
            }
            public class ProxyCache : NHibernate.Proxy.DynamicProxy.IProxyCache
            {
                public bool Contains(System.Type baseType, params System.Type[] baseInterfaces) => throw null;
                public ProxyCache() => throw null;
                public System.Reflection.TypeInfo GetProxyType(System.Type baseType, params System.Type[] baseInterfaces) => throw null;
                public void StoreProxyType(System.Reflection.TypeInfo result, System.Type baseType, params System.Type[] baseInterfaces) => throw null;
                public bool TryGetProxyType(System.Type baseType, System.Type[] baseInterfaces, out System.Reflection.TypeInfo proxyType) => throw null;
            }
            public class ProxyCacheEntry : NHibernate.Proxy.ProxyCacheEntry
            {
                public ProxyCacheEntry(System.Type baseType, System.Type[] interfaces) : base(default(System.Type), default(System.Type[])) => throw null;
            }
            public class ProxyDummy
            {
                public ProxyDummy() => throw null;
            }
            public sealed class ProxyFactory
            {
                public NHibernate.Proxy.DynamicProxy.IProxyCache Cache { get => throw null; }
                public object CreateProxy(System.Type instanceType, NHibernate.Proxy.DynamicProxy.IInterceptor interceptor, params System.Type[] baseInterfaces) => throw null;
                public System.Type CreateProxyType(System.Type baseType, params System.Type[] interfaces) => throw null;
                public ProxyFactory() => throw null;
                public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder proxyAssemblyBuilder) => throw null;
                public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder proxyMethodBuilder) => throw null;
                public ProxyFactory(NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder proxyMethodBuilder, NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder proxyAssemblyBuilder) => throw null;
                public NHibernate.Proxy.DynamicProxy.IProxyAssemblyBuilder ProxyAssemblyBuilder { get => throw null; }
                public NHibernate.Proxy.DynamicProxy.IProxyMethodBuilder ProxyMethodBuilder { get => throw null; }
            }
            public class ProxyObjectReference : System.Runtime.Serialization.IObjectReference, System.Runtime.Serialization.ISerializable
            {
                protected ProxyObjectReference(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
                public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
                public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null;
            }
        }
        public class DynProxyTypeValidator : NHibernate.Proxy.IProxyValidator
        {
            protected virtual void CheckAccessibleMembersAreVirtual(System.Type type) => throw null;
            protected virtual void CheckHasVisibleDefaultConstructor(System.Type type) => throw null;
            protected virtual void CheckMethodIsVirtual(System.Type type, System.Reflection.MethodInfo method) => throw null;
            protected void CheckNotSealed(System.Type type) => throw null;
            public DynProxyTypeValidator() => throw null;
            protected void EnlistError(System.Type type, string text) => throw null;
            protected virtual bool HasVisibleDefaultConstructor(System.Type type) => throw null;
            public virtual bool IsProxeable(System.Reflection.MethodInfo method) => throw null;
            public System.Collections.Generic.ICollection<string> ValidateType(System.Type type) => throw null;
        }
        public sealed class FieldInterceptorObjectReference : System.Runtime.Serialization.IObjectReference, System.Runtime.Serialization.ISerializable
        {
            public FieldInterceptorObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, NHibernate.Intercept.IFieldInterceptor fieldInterceptorField) => throw null;
            public void GetBaseData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, object proxy, System.Type proxyBaseType) => throw null;
            public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null;
            public void SetNoAdditionalData(System.Runtime.Serialization.SerializationInfo info) => throw null;
        }
        public interface IEntityNotFoundDelegate
        {
            void HandleEntityNotFound(string entityName, object id);
        }
        public interface ILazyInitializer
        {
            string EntityName { get; }
            object GetImplementation();
            object GetImplementation(NHibernate.Engine.ISessionImplementor s);
            System.Threading.Tasks.Task<object> GetImplementationAsync(System.Threading.CancellationToken cancellationToken);
            object Identifier { get; set; }
            void Initialize();
            System.Threading.Tasks.Task InitializeAsync(System.Threading.CancellationToken cancellationToken);
            bool IsReadOnlySettingAvailable { get; }
            bool IsUninitialized { get; }
            System.Type PersistentClass { get; }
            bool ReadOnly { get; set; }
            NHibernate.Engine.ISessionImplementor Session { get; set; }
            void SetImplementation(object target);
            void SetSession(NHibernate.Engine.ISessionImplementor s);
            void UnsetSession();
            bool Unwrap { get; set; }
        }
        public interface INHibernateProxy
        {
            NHibernate.Proxy.ILazyInitializer HibernateLazyInitializer { get; }
        }
        public interface IProxyFactory
        {
            object GetFieldInterceptionProxy(object instanceToWrap);
            NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session);
            void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet<System.Type> interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType);
        }
        public interface IProxyValidator
        {
            bool IsProxeable(System.Reflection.MethodInfo method);
            System.Collections.Generic.ICollection<string> ValidateType(System.Type type);
        }
        namespace Map
        {
            public class MapLazyInitializer : NHibernate.Proxy.AbstractLazyInitializer
            {
                public MapLazyInitializer(string entityName, object id, NHibernate.Engine.ISessionImplementor session) : base(default(string), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null;
                public System.Collections.Generic.IDictionary<string, object> GenericMap { get => throw null; }
                public System.Collections.IDictionary Map { get => throw null; }
                public override System.Type PersistentClass { get => throw null; }
            }
            public class MapProxy : System.Dynamic.DynamicObject, System.Collections.ICollection, System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Collections.IDictionary, System.Collections.Generic.IDictionary<string, object>, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>, NHibernate.Proxy.INHibernateProxy
            {
                public void Add(object key, object value) => throw null;
                void System.Collections.Generic.IDictionary<string, object>.Add(string key, object value) => throw null;
                void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Add(System.Collections.Generic.KeyValuePair<string, object> item) => throw null;
                public void Clear() => throw null;
                public bool Contains(object key) => throw null;
                bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Contains(System.Collections.Generic.KeyValuePair<string, object> item) => throw null;
                bool System.Collections.Generic.IDictionary<string, object>.ContainsKey(string key) => throw null;
                public void CopyTo(System.Array array, int index) => throw null;
                void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.CopyTo(System.Collections.Generic.KeyValuePair<string, object>[] array, int arrayIndex) => throw null;
                public int Count { get => throw null; }
                public override System.Collections.Generic.IEnumerable<string> GetDynamicMemberNames() => throw null;
                System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null;
                public System.Collections.IEnumerator GetEnumerator() => throw null;
                System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, object>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>.GetEnumerator() => throw null;
                public NHibernate.Proxy.ILazyInitializer HibernateLazyInitializer { get => throw null; }
                public bool IsFixedSize { get => throw null; }
                public bool IsReadOnly { get => throw null; }
                public bool IsSynchronized { get => throw null; }
                object System.Collections.Generic.IDictionary<string, object>.this[string key] { get => throw null; set { } }
                public System.Collections.ICollection Keys { get => throw null; }
                System.Collections.Generic.ICollection<string> System.Collections.Generic.IDictionary<string, object>.Keys { get => throw null; }
                public void Remove(object key) => throw null;
                bool System.Collections.Generic.IDictionary<string, object>.Remove(string key) => throw null;
                bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Remove(System.Collections.Generic.KeyValuePair<string, object> item) => throw null;
                public object SyncRoot { get => throw null; }
                public object this[object key] { get => throw null; set { } }
                public override bool TryDeleteIndex(System.Dynamic.DeleteIndexBinder binder, object[] indexes) => throw null;
                public override bool TryDeleteMember(System.Dynamic.DeleteMemberBinder binder) => throw null;
                public override bool TryGetIndex(System.Dynamic.GetIndexBinder binder, object[] indexes, out object result) => throw null;
                public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result) => throw null;
                bool System.Collections.Generic.IDictionary<string, object>.TryGetValue(string key, out object value) => throw null;
                public override bool TryInvokeMember(System.Dynamic.InvokeMemberBinder binder, object[] args, out object result) => throw null;
                public override bool TrySetIndex(System.Dynamic.SetIndexBinder binder, object[] indexes, object value) => throw null;
                public override bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value) => throw null;
                public System.Collections.ICollection Values { get => throw null; }
                System.Collections.Generic.ICollection<object> System.Collections.Generic.IDictionary<string, object>.Values { get => throw null; }
            }
            public class MapProxyFactory : NHibernate.Proxy.IProxyFactory
            {
                public MapProxyFactory() => throw null;
                public MapProxyFactory(string entityName) => throw null;
                public object GetFieldInterceptionProxy(object getInstance) => throw null;
                public NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                public void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet<System.Type> interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType) => throw null;
            }
        }
        public sealed class NHibernateProxyFactoryInfo : System.Runtime.Serialization.ISerializable
        {
            public NHibernate.Proxy.IProxyFactory CreateProxyFactory() => throw null;
            public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public static class NHibernateProxyHelper
        {
            public static System.Type GetClassWithoutInitializingProxy(object obj) => throw null;
            public static System.Type GuessClass(object entity) => throw null;
            public static bool IsProxy(this object entity) => throw null;
        }
        public sealed class NHibernateProxyObjectReference : System.Runtime.Serialization.IObjectReference, System.Runtime.Serialization.ISerializable
        {
            public NHibernateProxyObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, object identifier) => throw null;
            public NHibernateProxyObjectReference(NHibernate.Proxy.NHibernateProxyFactoryInfo proxyFactoryInfo, object identifier, object implementation) => throw null;
            public void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            public object GetRealObject(System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        namespace Poco
        {
            public abstract class BasicLazyInitializer : NHibernate.Proxy.AbstractLazyInitializer
            {
                protected virtual void AddSerializationInfo(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
                protected NHibernate.Type.IAbstractComponentType componentIdType;
                protected BasicLazyInitializer(string entityName, System.Type persistentClass, object id, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, NHibernate.Engine.ISessionImplementor session, bool overridesEquals) : base(default(string), default(object), default(NHibernate.Engine.ISessionImplementor)) => throw null;
                protected System.Reflection.MethodInfo getIdentifierMethod;
                public virtual object Invoke(System.Reflection.MethodInfo method, object[] args, object proxy) => throw null;
                protected bool overridesEquals;
                public override System.Type PersistentClass { get => throw null; }
                protected System.Reflection.MethodInfo setIdentifierMethod;
            }
        }
        public class ProxyCacheEntry : System.IEquatable<NHibernate.Proxy.ProxyCacheEntry>
        {
            public System.Type BaseType { get => throw null; }
            public ProxyCacheEntry(System.Type baseType, System.Type[] interfaces) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Proxy.ProxyCacheEntry other) => throw null;
            public override int GetHashCode() => throw null;
            public System.Collections.Generic.IReadOnlyCollection<System.Type> Interfaces { get => throw null; }
        }
        public static partial class ProxyFactoryExtensions
        {
            public static object GetFieldInterceptionProxy(this NHibernate.Proxy.IProxyFactory proxyFactory) => throw null;
            public static void PostInstantiate(this NHibernate.Proxy.IProxyFactory pf, string entityName, System.Type persistentClass, System.Collections.Generic.HashSet<System.Type> interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null;
        }
        public sealed class StaticProxyFactory : NHibernate.Proxy.AbstractProxyFactory
        {
            public StaticProxyFactory() => throw null;
            public override object GetFieldInterceptionProxy(object instanceToWrap) => throw null;
            public object GetFieldInterceptionProxy() => throw null;
            public override NHibernate.Proxy.INHibernateProxy GetProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void PostInstantiate(string entityName, System.Type persistentClass, System.Collections.Generic.ISet<System.Type> interfaces, System.Reflection.MethodInfo getIdentifierMethod, System.Reflection.MethodInfo setIdentifierMethod, NHibernate.Type.IAbstractComponentType componentIdType, bool isClassProxy) => throw null;
        }
    }
    public class QueryException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable
    {
        protected QueryException() => throw null;
        public QueryException(string message) => throw null;
        public QueryException(string message, System.Exception innerException) => throw null;
        public QueryException(string message, string queryString) => throw null;
        public QueryException(string message, string queryString, System.Exception innerException) => throw null;
        public QueryException(System.Exception innerException) => throw null;
        protected QueryException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override string Message { get => throw null; }
        public string QueryString { get => throw null; set { } }
    }
    public static partial class QueryOverExtensions
    {
        public static TQueryOver SetComment<TQueryOver>(this TQueryOver queryOver, string comment) where TQueryOver : NHibernate.IQueryOver => throw null;
        public static TQueryOver SetFetchSize<TQueryOver>(this TQueryOver queryOver, int fetchSize) where TQueryOver : NHibernate.IQueryOver => throw null;
        public static TQueryOver SetFlushMode<TQueryOver>(this TQueryOver queryOver, NHibernate.FlushMode flushMode) where TQueryOver : NHibernate.IQueryOver => throw null;
        public static TQueryOver SetTimeout<TQueryOver>(this TQueryOver queryOver, int timeout) where TQueryOver : NHibernate.IQueryOver => throw null;
    }
    public class QueryParameterException : NHibernate.QueryException
    {
        public QueryParameterException(string message) => throw null;
        public QueryParameterException(string message, System.Exception inner) => throw null;
        protected QueryParameterException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    public abstract class ReplicationMode
    {
        protected ReplicationMode(string name) => throw null;
        public static readonly NHibernate.ReplicationMode Exception;
        public static readonly NHibernate.ReplicationMode Ignore;
        public static readonly NHibernate.ReplicationMode LatestVersion;
        public static readonly NHibernate.ReplicationMode Overwrite;
        public abstract bool ShouldOverwriteCurrentVersion(object entity, object currentVersion, object newVersion, NHibernate.Type.IVersionType versionType);
        public override string ToString() => throw null;
    }
    public class SchemaValidationException : NHibernate.HibernateException
    {
        public SchemaValidationException(string msg, System.Collections.Generic.IList<string> validationErrors) => throw null;
        protected SchemaValidationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public System.Collections.ObjectModel.ReadOnlyCollection<string> ValidationErrors { get => throw null; }
    }
    public enum SelectMode
    {
        Undefined = 0,
        Fetch = 1,
        FetchLazyProperties = 2,
        ChildFetch = 3,
        JoinOnly = 4,
        Skip = 5,
        FetchLazyPropertyGroup = 6,
    }
    public static partial class SelectModeExtensions
    {
        public static NHibernate.IQueryOver<TRoot, TSubType> Fetch<TRoot, TSubType>(this NHibernate.IQueryOver<TRoot, TSubType> queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression<System.Func<TSubType, object>>[] associationPaths) => throw null;
        public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Fetch<TRoot, TSubType>(this NHibernate.Criterion.QueryOver<TRoot, TSubType> queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression<System.Func<TSubType, object>>[] associationPaths) => throw null;
        public static NHibernate.Criterion.QueryOver<TRoot, TSubType> Fetch<TRoot, TSubType>(this NHibernate.Criterion.QueryOver<TRoot, TSubType> queryOver, params System.Linq.Expressions.Expression<System.Func<TSubType, object>>[] associationPaths) => throw null;
        public static NHibernate.IQueryOver<TRoot, TSubType> Fetch<TRoot, TSubType>(this NHibernate.IQueryOver<TRoot, TSubType> queryOver, params System.Linq.Expressions.Expression<System.Func<TSubType, object>>[] associationPaths) => throw null;
        public static TThis Fetch<TThis>(this TThis queryOver, NHibernate.SelectMode mode, params System.Linq.Expressions.Expression<System.Func<object>>[] aliasedAssociationPaths) where TThis : NHibernate.IQueryOver => throw null;
        public static NHibernate.ICriteria Fetch(this NHibernate.ICriteria criteria, NHibernate.SelectMode mode, string associationPath, string alias = default(string)) => throw null;
        public static NHibernate.ICriteria Fetch(this NHibernate.ICriteria criteria, string associationPath, string alias = default(string)) => throw null;
        public static NHibernate.Criterion.DetachedCriteria Fetch(this NHibernate.Criterion.DetachedCriteria criteria, string associationPath, string alias = default(string)) => throw null;
        public static NHibernate.Criterion.DetachedCriteria Fetch(this NHibernate.Criterion.DetachedCriteria criteria, NHibernate.SelectMode mode, string associationPath, string alias = default(string)) => throw null;
    }
    public static partial class SessionBuilderExtensions
    {
        public static T Tenant<T>(this T builder, string tenantIdentifier) where T : NHibernate.ISessionBuilder => throw null;
        public static T Tenant<T>(this T builder, NHibernate.MultiTenancy.TenantConfiguration tenantConfig) where T : NHibernate.ISessionBuilder => throw null;
    }
    public class SessionException : NHibernate.HibernateException
    {
        public SessionException(string message) => throw null;
        protected SessionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    public static partial class SessionExtensions
    {
        public static NHibernate.Multi.IQueryBatch CreateQueryBatch(this NHibernate.ISession session) => throw null;
        public static object Get(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null;
        public static T Get<T>(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null;
        public static T Get<T>(this NHibernate.ISession session, string entityName, object id) => throw null;
        public static System.Threading.Tasks.Task<object> GetAsync(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static System.Threading.Tasks.Task<T> GetAsync<T>(this NHibernate.ISession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static System.Threading.Tasks.Task<T> GetAsync<T>(this NHibernate.ISession session, string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static NHibernate.ITransaction GetCurrentTransaction(this NHibernate.ISession session) => throw null;
        public static NHibernate.ISharedStatelessSessionBuilder StatelessSessionWithOptions(this NHibernate.ISession session) => throw null;
    }
    public static class SessionFactoryExtension
    {
        public static void Evict(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable<System.Type> persistentClasses) => throw null;
        public static System.Threading.Tasks.Task EvictAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable<System.Type> persistentClasses, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static void EvictCollection(this NHibernate.ISessionFactory factory, string roleName, object id, string tenantIdentifier) => throw null;
        public static void EvictCollection(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable<string> roleNames) => throw null;
        public static System.Threading.Tasks.Task EvictCollectionAsync(this NHibernate.ISessionFactory factory, string roleName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static System.Threading.Tasks.Task EvictCollectionAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable<string> roleNames, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static void EvictEntity(this NHibernate.ISessionFactory factory, string entityName, object id, string tenantIdentifier) => throw null;
        public static void EvictEntity(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable<string> entityNames) => throw null;
        public static System.Threading.Tasks.Task EvictEntityAsync(this NHibernate.ISessionFactory factory, string entityName, object id, string tenantIdentifier, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static System.Threading.Tasks.Task EvictEntityAsync(this NHibernate.ISessionFactory factory, System.Collections.Generic.IEnumerable<string> entityNames, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
    }
    namespace SqlCommand
    {
        public class Alias
        {
            public Alias(int length, string suffix) => throw null;
            public Alias(string suffix) => throw null;
            public string ToAliasString(string sqlIdentifier, NHibernate.Dialect.Dialect dialect) => throw null;
            public string ToAliasString(string sqlIdentifier) => throw null;
            public string[] ToAliasStrings(string[] sqlIdentifiers, NHibernate.Dialect.Dialect dialect) => throw null;
            public string ToUnquotedAliasString(string sqlIdentifier, NHibernate.Dialect.Dialect dialect) => throw null;
            public string[] ToUnquotedAliasStrings(string[] sqlIdentifiers, NHibernate.Dialect.Dialect dialect) => throw null;
        }
        public class ANSICaseFragment : NHibernate.SqlCommand.CaseFragment
        {
            public ANSICaseFragment(NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Dialect.Dialect)) => throw null;
            public override string ToSqlStringFragment() => throw null;
        }
        public class ANSIJoinFragment : NHibernate.SqlCommand.JoinFragment
        {
            public override bool AddCondition(string condition) => throw null;
            public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null;
            public override void AddCrossJoin(string tableName, string alias) => throw null;
            public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null;
            public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null;
            public NHibernate.SqlCommand.JoinFragment Copy() => throw null;
            public ANSIJoinFragment() => throw null;
            public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; }
        }
        public abstract class CaseFragment
        {
            public virtual NHibernate.SqlCommand.CaseFragment AddWhenColumnNotNull(string alias, string columnName, string value) => throw null;
            protected System.Collections.Generic.IDictionary<string, string> cases;
            protected CaseFragment(NHibernate.Dialect.Dialect dialect) => throw null;
            protected readonly NHibernate.Dialect.Dialect dialect;
            protected string returnColumnName;
            public virtual NHibernate.SqlCommand.CaseFragment SetReturnColumnName(string returnColumnName) => throw null;
            public virtual NHibernate.SqlCommand.CaseFragment SetReturnColumnName(string returnColumnName, string suffix) => throw null;
            public abstract string ToSqlStringFragment();
        }
        public class ConditionalFragment
        {
            public ConditionalFragment() => throw null;
            public NHibernate.SqlCommand.ConditionalFragment SetCondition(string[] lhs, string[] rhs) => throw null;
            public NHibernate.SqlCommand.ConditionalFragment SetCondition(string[] lhs, NHibernate.SqlCommand.Parameter[] rhs) => throw null;
            public NHibernate.SqlCommand.ConditionalFragment SetCondition(string[] lhs, string rhs) => throw null;
            public NHibernate.SqlCommand.ConditionalFragment SetOp(string op) => throw null;
            public NHibernate.SqlCommand.ConditionalFragment SetTableAlias(string tableAlias) => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlStringFragment() => throw null;
        }
        public class DecodeCaseFragment : NHibernate.SqlCommand.CaseFragment
        {
            public DecodeCaseFragment(NHibernate.Dialect.Dialect dialect) : base(default(NHibernate.Dialect.Dialect)) => throw null;
            public override string ToSqlStringFragment() => throw null;
        }
        public class DisjunctionFragment
        {
            public NHibernate.SqlCommand.DisjunctionFragment AddCondition(NHibernate.SqlCommand.ConditionalFragment fragment) => throw null;
            public DisjunctionFragment() => throw null;
            public DisjunctionFragment(System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.ConditionalFragment> fragments) => throw null;
            public NHibernate.SqlCommand.SqlString ToFragmentString() => throw null;
        }
        public class ForUpdateFragment
        {
            public NHibernate.SqlCommand.ForUpdateFragment AddTableAlias(string alias) => throw null;
            public ForUpdateFragment(NHibernate.Dialect.Dialect dialect) => throw null;
            public ForUpdateFragment(NHibernate.Dialect.Dialect dialect, System.Collections.Generic.IDictionary<string, NHibernate.LockMode> lockModes, System.Collections.Generic.IDictionary<string, string[]> keyColumnNames) => throw null;
            public bool IsNoWaitEnabled { get => throw null; set { } }
            public string ToSqlStringFragment() => throw null;
        }
        public class InformixJoinFragment : NHibernate.SqlCommand.JoinFragment
        {
            public override bool AddCondition(string condition) => throw null;
            public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null;
            public override void AddCrossJoin(string tableName, string alias) => throw null;
            public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null;
            public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null;
            public InformixJoinFragment() => throw null;
            public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; }
        }
        public class InFragment
        {
            public NHibernate.SqlCommand.InFragment AddValue(object value) => throw null;
            public InFragment() => throw null;
            public static readonly string NotNull;
            public static readonly string Null;
            public NHibernate.SqlCommand.InFragment SetColumn(string colName) => throw null;
            public NHibernate.SqlCommand.InFragment SetColumn(string alias, string colName) => throw null;
            public NHibernate.SqlCommand.InFragment SetFormula(string alias, string formulaTemplate) => throw null;
            public NHibernate.SqlCommand.SqlString ToFragmentString() => throw null;
        }
        public class InsertSelect : NHibernate.SqlCommand.ISqlStringBuilder
        {
            public virtual NHibernate.SqlCommand.InsertSelect AddColumn(string columnName) => throw null;
            public virtual NHibernate.SqlCommand.InsertSelect AddColumns(string[] columnNames) => throw null;
            public InsertSelect() => throw null;
            public virtual NHibernate.SqlCommand.InsertSelect SetComment(string comment) => throw null;
            public virtual NHibernate.SqlCommand.InsertSelect SetSelect(NHibernate.SqlCommand.SqlSelectBuilder select) => throw null;
            public virtual NHibernate.SqlCommand.InsertSelect SetTableName(string tableName) => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
        }
        public interface ISqlCommand
        {
            void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session);
            void Bind(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            NHibernate.SqlTypes.SqlType[] ParameterTypes { get; }
            NHibernate.SqlCommand.SqlString Query { get; }
            NHibernate.Engine.QueryParameters QueryParameters { get; }
            void ResetParametersIndexesForTheCommand(int singleSqlParametersOffset);
        }
        public interface ISqlStringBuilder
        {
            NHibernate.SqlCommand.SqlString ToSqlString();
        }
        public interface ISqlStringVisitor
        {
            void Parameter(NHibernate.SqlCommand.Parameter parameter);
            void String(string text);
            void String(NHibernate.SqlCommand.SqlString sqlString);
        }
        public abstract class JoinFragment
        {
            protected void AddBareCondition(NHibernate.SqlCommand.SqlStringBuilder buffer, NHibernate.SqlCommand.SqlString condition) => throw null;
            public abstract bool AddCondition(string condition);
            public abstract bool AddCondition(NHibernate.SqlCommand.SqlString condition);
            protected bool AddCondition(NHibernate.SqlCommand.SqlStringBuilder buffer, string on) => throw null;
            protected bool AddCondition(NHibernate.SqlCommand.SqlStringBuilder buffer, NHibernate.SqlCommand.SqlString on) => throw null;
            public abstract void AddCrossJoin(string tableName, string alias);
            public virtual void AddFragment(NHibernate.SqlCommand.JoinFragment ojf) => throw null;
            public abstract void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString);
            public abstract void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType);
            public abstract void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on);
            public abstract void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment);
            protected JoinFragment() => throw null;
            public bool HasFilterCondition { get => throw null; set { } }
            public bool HasThetaJoins { get => throw null; set { } }
            public abstract NHibernate.SqlCommand.SqlString ToFromFragmentString { get; }
            public abstract NHibernate.SqlCommand.SqlString ToWhereFragmentString { get; }
        }
        public enum JoinType
        {
            None = -666,
            InnerJoin = 0,
            FullJoin = 4,
            LeftOuterJoin = 1,
            RightOuterJoin = 2,
            CrossJoin = 8,
        }
        public class OracleJoinFragment : NHibernate.SqlCommand.JoinFragment
        {
            public override bool AddCondition(string condition) => throw null;
            public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null;
            public override void AddCrossJoin(string tableName, string alias) => throw null;
            public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null;
            public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null;
            public OracleJoinFragment() => throw null;
            public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; }
        }
        public class Parameter
        {
            public object BackTrack { get => throw null; set { } }
            public NHibernate.SqlCommand.Parameter Clone() => throw null;
            public override bool Equals(object obj) => throw null;
            public static NHibernate.SqlCommand.Parameter[] GenerateParameters(int count) => throw null;
            public override int GetHashCode() => throw null;
            public static bool operator ==(NHibernate.SqlCommand.Parameter a, NHibernate.SqlCommand.Parameter b) => throw null;
            public static bool operator ==(object a, NHibernate.SqlCommand.Parameter b) => throw null;
            public static bool operator ==(NHibernate.SqlCommand.Parameter a, object b) => throw null;
            public static bool operator !=(NHibernate.SqlCommand.Parameter a, object b) => throw null;
            public static bool operator !=(object a, NHibernate.SqlCommand.Parameter b) => throw null;
            public static bool operator !=(NHibernate.SqlCommand.Parameter a, NHibernate.SqlCommand.Parameter b) => throw null;
            public int? ParameterPosition { get => throw null; set { } }
            public static NHibernate.SqlCommand.Parameter Placeholder { get => throw null; }
            public override string ToString() => throw null;
            public static NHibernate.SqlCommand.Parameter WithIndex(int position) => throw null;
        }
        namespace Parser
        {
            public class SqlToken
            {
                public SqlToken(NHibernate.SqlCommand.Parser.SqlTokenType tokenType, NHibernate.SqlCommand.SqlString sql, int sqlIndex, int length) => throw null;
                public override bool Equals(object obj) => throw null;
                public bool Equals(string value) => throw null;
                public bool Equals(string value, System.StringComparison stringComparison) => throw null;
                public override int GetHashCode() => throw null;
                public int Length { get => throw null; }
                public int SqlIndex { get => throw null; }
                public NHibernate.SqlCommand.Parser.SqlTokenType TokenType { get => throw null; }
                public override string ToString() => throw null;
                public string UnquotedValue { get => throw null; }
                public string Value { get => throw null; }
            }
            public class SqlTokenizer : System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.Parser.SqlToken>, System.Collections.IEnumerable
            {
                public SqlTokenizer(NHibernate.SqlCommand.SqlString sql) => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
                public System.Collections.Generic.IEnumerator<NHibernate.SqlCommand.Parser.SqlToken> GetEnumerator() => throw null;
                public bool IgnoreComments { get => throw null; set { } }
                public bool IgnoreWhitespace { get => throw null; set { } }
            }
            [System.Flags]
            public enum SqlTokenType
            {
                Whitespace = 1,
                Comment = 2,
                Text = 4,
                DelimitedText = 8,
                Parameter = 16,
                Comma = 32,
                BracketOpen = 64,
                BracketClose = 128,
                AllBrackets = 192,
                AllExceptWhitespaceOrComment = 252,
                AllExceptWhitespace = 254,
                All = 255,
            }
        }
        public class QueryJoinFragment : NHibernate.SqlCommand.JoinFragment
        {
            public override bool AddCondition(string condition) => throw null;
            public override bool AddCondition(NHibernate.SqlCommand.SqlString condition) => throw null;
            public override void AddCrossJoin(string tableName, string alias) => throw null;
            public override void AddFromFragmentString(NHibernate.SqlCommand.SqlString fromFragmentString) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType) => throw null;
            public override void AddJoin(string tableName, string alias, string[] fkColumns, string[] pkColumns, NHibernate.SqlCommand.JoinType joinType, NHibernate.SqlCommand.SqlString on) => throw null;
            public override void AddJoins(NHibernate.SqlCommand.SqlString fromFragment, NHibernate.SqlCommand.SqlString whereFragment) => throw null;
            public void ClearWherePart() => throw null;
            public QueryJoinFragment(NHibernate.Dialect.Dialect dialect, bool useThetaStyleInnerJoins) => throw null;
            public override NHibernate.SqlCommand.SqlString ToFromFragmentString { get => throw null; }
            public override NHibernate.SqlCommand.SqlString ToWhereFragmentString { get => throw null; }
        }
        public class QuerySelect
        {
            public void AddOrderBy(string orderBySql) => throw null;
            public void AddSelectColumn(string columnName, string alias) => throw null;
            public void AddSelectFragmentString(NHibernate.SqlCommand.SqlString fragment) => throw null;
            public QuerySelect(NHibernate.Dialect.Dialect dialect) => throw null;
            public bool Distinct { get => throw null; set { } }
            public NHibernate.SqlCommand.JoinFragment JoinFragment { get => throw null; }
            public void SetGroupByTokens(System.Collections.IEnumerable tokens) => throw null;
            public void SetHavingTokens(System.Collections.IEnumerable tokens) => throw null;
            public void SetOrderByTokens(System.Collections.IEnumerable tokens) => throw null;
            public void SetWhereTokens(System.Collections.IEnumerable tokens) => throw null;
            public NHibernate.SqlCommand.SqlString ToQuerySqlString() => throw null;
        }
        public class SelectFragment
        {
            public NHibernate.SqlCommand.SelectFragment AddColumn(string columnName) => throw null;
            public NHibernate.SqlCommand.SelectFragment AddColumn(string tableAlias, string columnName) => throw null;
            public NHibernate.SqlCommand.SelectFragment AddColumn(string tableAlias, string columnName, string columnAlias) => throw null;
            public NHibernate.SqlCommand.SelectFragment AddColumns(string[] columnNames) => throw null;
            public NHibernate.SqlCommand.SelectFragment AddColumns(string tableAlias, string[] columnNames) => throw null;
            public NHibernate.SqlCommand.SelectFragment AddColumns(string tableAlias, string[] columnNames, string[] columnAliases) => throw null;
            public NHibernate.SqlCommand.SelectFragment AddFormula(string tableAlias, string formula, string formulaAlias) => throw null;
            public NHibernate.SqlCommand.SelectFragment AddFormulas(string tableAlias, string[] formulas, string[] formulaAliases) => throw null;
            public SelectFragment(NHibernate.Dialect.Dialect d) => throw null;
            public NHibernate.SqlCommand.SelectFragment SetExtraSelectList(string extraSelectList) => throw null;
            public NHibernate.SqlCommand.SelectFragment SetExtraSelectList(NHibernate.SqlCommand.CaseFragment caseFragment, string fragmentAlias) => throw null;
            public NHibernate.SqlCommand.SelectFragment SetSuffix(string suffix) => throw null;
            public NHibernate.SqlCommand.SelectFragment SetUsedAliases(string[] usedAliases) => throw null;
            public string ToFragmentString() => throw null;
            public string ToSqlStringFragment() => throw null;
            public string ToSqlStringFragment(bool includeLeadingComma) => throw null;
        }
        public abstract class SqlBaseBuilder
        {
            protected SqlBaseBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) => throw null;
            public NHibernate.Dialect.Dialect Dialect { get => throw null; }
            protected NHibernate.Engine.IMapping Mapping { get => throw null; }
            protected NHibernate.SqlCommand.SqlString ToWhereString(string[] columnNames) => throw null;
            protected NHibernate.SqlCommand.SqlString ToWhereString(string tableAlias, string[] columnNames) => throw null;
            protected NHibernate.SqlCommand.SqlString ToWhereString(string[] columnNames, string op) => throw null;
            protected NHibernate.SqlCommand.SqlString ToWhereString(string tableAlias, string[] columnNames, string op) => throw null;
            protected NHibernate.SqlCommand.SqlString ToWhereString(string columnName, string op) => throw null;
        }
        public class SqlCommandImpl : NHibernate.SqlCommand.ISqlCommand
        {
            public void Bind(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Bind(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> commandQueryParametersList, int singleSqlParametersOffset, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Threading.Tasks.Task BindAsync(System.Data.Common.DbCommand command, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public SqlCommandImpl(NHibernate.SqlCommand.SqlString query, System.Collections.Generic.ICollection<NHibernate.Param.IParameterSpecification> specifications, NHibernate.Engine.QueryParameters queryParameters, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.SqlTypes.SqlType[] ParameterTypes { get => throw null; }
            public NHibernate.SqlCommand.SqlString Query { get => throw null; }
            public NHibernate.Engine.QueryParameters QueryParameters { get => throw null; }
            public void ResetParametersIndexesForTheCommand(int singleSqlParametersOffset) => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.Param.IParameterSpecification> Specifications { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.SqlCommand.Parameter> SqlQueryParametersList { get => throw null; }
        }
        public class SqlCommandInfo
        {
            public System.Data.CommandType CommandType { get => throw null; }
            public SqlCommandInfo(NHibernate.SqlCommand.SqlString text, NHibernate.SqlTypes.SqlType[] parameterTypes) => throw null;
            public NHibernate.SqlTypes.SqlType[] ParameterTypes { get => throw null; }
            public NHibernate.SqlCommand.SqlString Text { get => throw null; }
            public override string ToString() => throw null;
        }
        public class SqlDeleteBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder
        {
            public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string[] columnNames, NHibernate.Type.IType type, string op) => throw null;
            public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string[] columnNames, NHibernate.SqlTypes.SqlType[] types, string op) => throw null;
            public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string columnName, NHibernate.SqlTypes.SqlType type, string op) => throw null;
            public NHibernate.SqlCommand.SqlDeleteBuilder AddWhereFragment(string whereSql) => throw null;
            public SqlDeleteBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null;
            public NHibernate.SqlCommand.SqlDeleteBuilder SetComment(string comment) => throw null;
            public NHibernate.SqlCommand.SqlDeleteBuilder SetIdentityColumn(string[] columnNames, NHibernate.Type.IType identityType) => throw null;
            public NHibernate.SqlCommand.SqlDeleteBuilder SetTableName(string tableName) => throw null;
            public NHibernate.SqlCommand.SqlDeleteBuilder SetVersionColumn(string[] columnNames, NHibernate.Type.IVersionType versionType) => throw null;
            public virtual NHibernate.SqlCommand.SqlDeleteBuilder SetWhere(string whereSql) => throw null;
            public NHibernate.SqlCommand.SqlCommandInfo ToSqlCommandInfo() => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
        }
        public class SqlInsertBuilder : NHibernate.SqlCommand.ISqlStringBuilder
        {
            public virtual NHibernate.SqlCommand.SqlInsertBuilder AddColumn(string columnName, NHibernate.Type.IType propertyType) => throw null;
            public NHibernate.SqlCommand.SqlInsertBuilder AddColumn(string columnName, object val, NHibernate.Type.ILiteralType literalType) => throw null;
            public NHibernate.SqlCommand.SqlInsertBuilder AddColumn(string columnName, string val) => throw null;
            public NHibernate.SqlCommand.SqlInsertBuilder AddColumns(string[] columnNames, bool[] insertable, NHibernate.Type.IType propertyType) => throw null;
            public virtual NHibernate.SqlCommand.SqlInsertBuilder AddIdentityColumn(string columnName) => throw null;
            public SqlInsertBuilder(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            protected NHibernate.Dialect.Dialect Dialect { get => throw null; }
            public NHibernate.SqlTypes.SqlType[] GetParametersTypeArray() => throw null;
            public virtual NHibernate.SqlCommand.SqlInsertBuilder SetComment(string comment) => throw null;
            public NHibernate.SqlCommand.SqlInsertBuilder SetTableName(string tableName) => throw null;
            public NHibernate.SqlCommand.SqlCommandInfo ToSqlCommandInfo() => throw null;
            public virtual NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
        }
        public class SqlSelectBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder
        {
            public SqlSelectBuilder(NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetComment(string comment) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetFromClause(string fromClause) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetFromClause(string tableName, string alias) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetFromClause(NHibernate.SqlCommand.SqlString fromClause) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetGroupByClause(NHibernate.SqlCommand.SqlString groupByClause) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetHavingClause(string tableAlias, string[] columnNames, NHibernate.Type.IType whereType) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetHavingClause(NHibernate.SqlCommand.SqlString havingSqlString) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetLockMode(NHibernate.LockMode lockMode) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetLockMode(NHibernate.LockMode lockMode, string mainTableAlias) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetOrderByClause(NHibernate.SqlCommand.SqlString orderByClause) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetOuterJoins(NHibernate.SqlCommand.SqlString outerJoinsAfterFrom, NHibernate.SqlCommand.SqlString outerJoinsAfterWhere) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetSelectClause(NHibernate.SqlCommand.SqlString selectClause) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetSelectClause(string selectClause) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetWhereClause(string tableAlias, string[] columnNames, NHibernate.Type.IType whereType) => throw null;
            public NHibernate.SqlCommand.SqlSelectBuilder SetWhereClause(NHibernate.SqlCommand.SqlString whereSqlString) => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
            public NHibernate.SqlCommand.SqlString ToStatementString() => throw null;
        }
        public class SqlSimpleSelectBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder
        {
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumn(string columnName) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumn(string columnName, string alias) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columnNames) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columnNames, string[] aliases) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddColumns(string[] columns, string[] aliases, bool[] ignore) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddWhereFragment(string[] columnNames, NHibernate.Type.IType type, string op) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder AddWhereFragment(string fragment) => throw null;
            public SqlSimpleSelectBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null;
            public string GetAlias(string columnName) => throw null;
            public virtual NHibernate.SqlCommand.SqlSimpleSelectBuilder SetComment(string comment) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetIdentityColumn(string[] columnNames, NHibernate.Type.IType identityType) => throw null;
            public virtual NHibernate.SqlCommand.SqlSimpleSelectBuilder SetLockMode(NHibernate.LockMode lockMode) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetOrderBy(string orderBy) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetTableName(string tableName) => throw null;
            public NHibernate.SqlCommand.SqlSimpleSelectBuilder SetVersionColumn(string[] columnNames, NHibernate.Type.IVersionType versionType) => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
        }
        public class SqlString : System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable<object>
        {
            public NHibernate.SqlCommand.SqlString Append(NHibernate.SqlCommand.SqlString sql) => throw null;
            public NHibernate.SqlCommand.SqlString Append(string text) => throw null;
            public NHibernate.SqlCommand.SqlString Append(params object[] parts) => throw null;
            public NHibernate.SqlCommand.SqlString Copy() => throw null;
            void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null;
            public int Count { get => throw null; }
            public SqlString(string sql) => throw null;
            public SqlString(NHibernate.SqlCommand.Parameter parameter) => throw null;
            public SqlString(params object[] parts) => throw null;
            public static readonly NHibernate.SqlCommand.SqlString Empty;
            public bool EndsWith(string value) => throw null;
            public bool EndsWithCaseInsensitive(string value) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool EqualsCaseInsensitive(string value) => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            public System.Collections.Generic.IEnumerator<object> GetEnumerator() => throw null;
            public override int GetHashCode() => throw null;
            public int GetParameterCount() => throw null;
            public System.Collections.Generic.IEnumerable<NHibernate.SqlCommand.Parameter> GetParameters() => throw null;
            public NHibernate.SqlCommand.SqlString GetSubselectString() => throw null;
            public int IndexOf(string text, int startIndex, int length, System.StringComparison stringComparison) => throw null;
            public int IndexOfCaseInsensitive(string text) => throw null;
            public NHibernate.SqlCommand.SqlString Insert(int index, string text) => throw null;
            public NHibernate.SqlCommand.SqlString Insert(int index, NHibernate.SqlCommand.SqlString sql) => throw null;
            public bool IsEmptyOrWhitespace() => throw null;
            bool System.Collections.ICollection.IsSynchronized { get => throw null; }
            public int LastIndexOfCaseInsensitive(string text) => throw null;
            public int Length { get => throw null; }
            public static NHibernate.SqlCommand.SqlString operator +(NHibernate.SqlCommand.SqlString lhs, NHibernate.SqlCommand.SqlString rhs) => throw null;
            public static NHibernate.SqlCommand.SqlString Parse(string sql) => throw null;
            public NHibernate.SqlCommand.SqlString Replace(string oldValue, string newValue) => throw null;
            public NHibernate.SqlCommand.SqlString[] Split(string splitter) => throw null;
            public bool StartsWithCaseInsensitive(string value) => throw null;
            public NHibernate.SqlCommand.SqlString Substring(int startIndex) => throw null;
            public NHibernate.SqlCommand.SqlString Substring(int startIndex, int length) => throw null;
            public NHibernate.SqlCommand.SqlString SubstringStartingWithLast(string text) => throw null;
            object System.Collections.ICollection.SyncRoot { get => throw null; }
            public override string ToString() => throw null;
            public string ToString(int startIndex) => throw null;
            public string ToString(int startIndex, int length) => throw null;
            public NHibernate.SqlCommand.SqlString Trim() => throw null;
            public void Visit(NHibernate.SqlCommand.ISqlStringVisitor visitor) => throw null;
        }
        public class SqlStringBuilder : NHibernate.SqlCommand.ISqlStringBuilder
        {
            public NHibernate.SqlCommand.SqlStringBuilder Add(string sql) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.Parameter parameter) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString sqlString) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString sqlString, string prefix, string op, string postfix) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString[] sqlStrings, string prefix, string op, string postfix) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder Add(NHibernate.SqlCommand.SqlString[] sqlStrings, string prefix, string op, string postfix, bool wrapStatement) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder AddObject(object part) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder AddParameter() => throw null;
            public void Clear() => throw null;
            public int Count { get => throw null; }
            public SqlStringBuilder() => throw null;
            public SqlStringBuilder(int partsCapacity) => throw null;
            public SqlStringBuilder(NHibernate.SqlCommand.SqlString sqlString) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder Insert(int index, string sql) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder Insert(int index, NHibernate.SqlCommand.Parameter param) => throw null;
            public NHibernate.SqlCommand.SqlStringBuilder RemoveAt(int index) => throw null;
            public object this[int index] { get => throw null; set { } }
            public NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
            public override string ToString() => throw null;
        }
        public static class SqlStringHelper
        {
            public static NHibernate.SqlCommand.SqlString[] Add(NHibernate.SqlCommand.SqlString[] x, string sep, NHibernate.SqlCommand.SqlString[] y) => throw null;
            public static bool IsEmpty(NHibernate.SqlCommand.SqlString str) => throw null;
            public static bool IsNotEmpty(NHibernate.SqlCommand.SqlString str) => throw null;
            public static NHibernate.SqlCommand.SqlString Join(NHibernate.SqlCommand.SqlString separator, System.Collections.IEnumerable objects) => throw null;
            public static NHibernate.SqlCommand.SqlString RemoveAsAliasesFromSql(NHibernate.SqlCommand.SqlString sql) => throw null;
        }
        public class SqlUpdateBuilder : NHibernate.SqlCommand.SqlBaseBuilder, NHibernate.SqlCommand.ISqlStringBuilder
        {
            public NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, object val, NHibernate.Type.ILiteralType literalType) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, string val) => throw null;
            public virtual NHibernate.SqlCommand.SqlUpdateBuilder AddColumn(string columnName, NHibernate.Type.IType propertyType) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddColumns(string[] columnsName, string val) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddColumns(string[] columnNames, NHibernate.Type.IType propertyType) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddColumns(string[] columnNames, bool[] updateable, NHibernate.Type.IType propertyType) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string[] columnNames, NHibernate.Type.IType type, string op) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string[] columnNames, NHibernate.SqlTypes.SqlType[] types, string op) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string columnName, NHibernate.SqlTypes.SqlType type, string op) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AddWhereFragment(string whereSql) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder AppendAssignmentFragment(NHibernate.SqlCommand.SqlString fragment) => throw null;
            public SqlUpdateBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.IMapping mapping) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder SetComment(string comment) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder SetIdentityColumn(string[] columnNames, NHibernate.Type.IType identityType) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder SetJoin(string joinTableName, string[] keyColumnNames, NHibernate.Type.IType identityType, string[] lhsColumnNames, string[] rhsColumnNames) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder SetTableName(string tableName) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder SetVersionColumn(string[] columnNames, NHibernate.Type.IVersionType versionType) => throw null;
            public NHibernate.SqlCommand.SqlUpdateBuilder SetWhere(string whereSql) => throw null;
            public NHibernate.SqlCommand.SqlCommandInfo ToSqlCommandInfo() => throw null;
            public NHibernate.SqlCommand.SqlString ToSqlString() => throw null;
        }
        public class SubselectClauseExtractor
        {
            public SubselectClauseExtractor(NHibernate.SqlCommand.SqlString sql) => throw null;
            public NHibernate.SqlCommand.SqlString GetSqlString() => throw null;
            public static bool HasOrderBy(NHibernate.SqlCommand.SqlString subselect) => throw null;
        }
        public static class Template
        {
            public static readonly string Placeholder;
            public static string RenderOrderByStringTemplate(string sqlOrderByString, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null;
            public static string RenderWhereStringTemplate(string sqlWhereString, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null;
            public static string RenderWhereStringTemplate(string sqlWhereString, string placeholder, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry functionRegistry) => throw null;
        }
        public class WhereBuilder : NHibernate.SqlCommand.SqlBaseBuilder
        {
            public WhereBuilder(NHibernate.Dialect.Dialect dialect, NHibernate.Engine.ISessionFactoryImplementor factory) : base(default(NHibernate.Dialect.Dialect), default(NHibernate.Engine.IMapping)) => throw null;
            public NHibernate.SqlCommand.SqlString WhereClause(string alias, string[] columnNames, NHibernate.Type.IType whereType) => throw null;
        }
    }
    public static class SQLQueryExtension
    {
        public static NHibernate.ISQLQuery AddSynchronizedEntityClass(this NHibernate.ISQLQuery sqlQuery, System.Type entityType) => throw null;
        public static NHibernate.ISQLQuery AddSynchronizedEntityName(this NHibernate.ISQLQuery sqlQuery, string entityName) => throw null;
        public static NHibernate.ISQLQuery AddSynchronizedQuerySpace(this NHibernate.ISQLQuery sqlQuery, string querySpace) => throw null;
        public static System.Collections.Generic.IReadOnlyCollection<string> GetSynchronizedQuerySpaces(this NHibernate.ISQLQuery sqlQuery) => throw null;
    }
    namespace SqlTypes
    {
        public class AnsiStringFixedLengthSqlType : NHibernate.SqlTypes.SqlType
        {
            public AnsiStringFixedLengthSqlType() : base(default(System.Data.DbType)) => throw null;
            public AnsiStringFixedLengthSqlType(int length) : base(default(System.Data.DbType)) => throw null;
        }
        public class AnsiStringSqlType : NHibernate.SqlTypes.SqlType
        {
            public AnsiStringSqlType() : base(default(System.Data.DbType)) => throw null;
            public AnsiStringSqlType(int length) : base(default(System.Data.DbType)) => throw null;
        }
        public class BinaryBlobSqlType : NHibernate.SqlTypes.BinarySqlType
        {
            public BinaryBlobSqlType(int length) => throw null;
            public BinaryBlobSqlType() => throw null;
        }
        public class BinarySqlType : NHibernate.SqlTypes.SqlType
        {
            public BinarySqlType() : base(default(System.Data.DbType)) => throw null;
            public BinarySqlType(int length) : base(default(System.Data.DbType)) => throw null;
        }
        public class DateTime2SqlType : NHibernate.SqlTypes.SqlType
        {
            public DateTime2SqlType() : base(default(System.Data.DbType)) => throw null;
            public DateTime2SqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null;
        }
        public class DateTimeOffsetSqlType : NHibernate.SqlTypes.SqlType
        {
            public DateTimeOffsetSqlType() : base(default(System.Data.DbType)) => throw null;
            public DateTimeOffsetSqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null;
        }
        public class DateTimeSqlType : NHibernate.SqlTypes.SqlType
        {
            public DateTimeSqlType() : base(default(System.Data.DbType)) => throw null;
            public DateTimeSqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null;
        }
        public class SqlType : System.IEquatable<NHibernate.SqlTypes.SqlType>
        {
            public SqlType(System.Data.DbType dbType) => throw null;
            public SqlType(System.Data.DbType dbType, int length) => throw null;
            public SqlType(System.Data.DbType dbType, byte precision, byte scale) => throw null;
            public SqlType(System.Data.DbType dbType, byte scale) => throw null;
            public System.Data.DbType DbType { get => throw null; }
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.SqlTypes.SqlType rhsSqlType) => throw null;
            public override int GetHashCode() => throw null;
            public int Length { get => throw null; }
            public bool LengthDefined { get => throw null; }
            public byte Precision { get => throw null; }
            public bool PrecisionDefined { get => throw null; }
            public byte Scale { get => throw null; }
            public bool ScaleDefined { get => throw null; }
            public override string ToString() => throw null;
        }
        public static class SqlTypeFactory
        {
            public static readonly NHibernate.SqlTypes.SqlType Boolean;
            public static readonly NHibernate.SqlTypes.SqlType Byte;
            public static readonly NHibernate.SqlTypes.SqlType Currency;
            public static readonly NHibernate.SqlTypes.SqlType Date;
            public static readonly NHibernate.SqlTypes.SqlType DateTime;
            public static readonly NHibernate.SqlTypes.SqlType DateTime2;
            public static readonly NHibernate.SqlTypes.SqlType DateTimeOffSet;
            public static readonly NHibernate.SqlTypes.SqlType Decimal;
            public static readonly NHibernate.SqlTypes.SqlType Double;
            public static NHibernate.SqlTypes.AnsiStringSqlType GetAnsiString(int length) => throw null;
            public static NHibernate.SqlTypes.BinarySqlType GetBinary(int length) => throw null;
            public static NHibernate.SqlTypes.BinaryBlobSqlType GetBinaryBlob(int length) => throw null;
            public static NHibernate.SqlTypes.DateTimeSqlType GetDateTime(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.SqlTypes.DateTime2SqlType GetDateTime2(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.SqlTypes.DateTimeOffsetSqlType GetDateTimeOffset(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.SqlTypes.SqlType GetSqlType(System.Data.DbType dbType, byte precision, byte scale) => throw null;
            public static NHibernate.SqlTypes.StringSqlType GetString(int length) => throw null;
            public static NHibernate.SqlTypes.StringClobSqlType GetStringClob(int length) => throw null;
            public static NHibernate.SqlTypes.TimeSqlType GetTime(byte fractionalSecondsPrecision) => throw null;
            public static readonly NHibernate.SqlTypes.SqlType Guid;
            public static readonly NHibernate.SqlTypes.SqlType Int16;
            public static readonly NHibernate.SqlTypes.SqlType Int32;
            public static readonly NHibernate.SqlTypes.SqlType Int64;
            public static readonly NHibernate.SqlTypes.SqlType[] NoTypes;
            public static readonly NHibernate.SqlTypes.SqlType SByte;
            public static readonly NHibernate.SqlTypes.SqlType Single;
            public static readonly NHibernate.SqlTypes.SqlType Time;
            public static readonly NHibernate.SqlTypes.SqlType UInt16;
            public static readonly NHibernate.SqlTypes.SqlType UInt32;
            public static readonly NHibernate.SqlTypes.SqlType UInt64;
        }
        public class StringClobSqlType : NHibernate.SqlTypes.StringSqlType
        {
            public StringClobSqlType() => throw null;
            public StringClobSqlType(int length) => throw null;
        }
        public class StringFixedLengthSqlType : NHibernate.SqlTypes.SqlType
        {
            public StringFixedLengthSqlType() : base(default(System.Data.DbType)) => throw null;
            public StringFixedLengthSqlType(int length) : base(default(System.Data.DbType)) => throw null;
        }
        public class StringSqlType : NHibernate.SqlTypes.SqlType
        {
            public StringSqlType() : base(default(System.Data.DbType)) => throw null;
            public StringSqlType(int length) : base(default(System.Data.DbType)) => throw null;
        }
        public class TimeSqlType : NHibernate.SqlTypes.SqlType
        {
            public TimeSqlType() : base(default(System.Data.DbType)) => throw null;
            public TimeSqlType(byte fractionalSecondsPrecision) : base(default(System.Data.DbType)) => throw null;
        }
        public class XmlSqlType : NHibernate.SqlTypes.SqlType
        {
            public XmlSqlType() : base(default(System.Data.DbType)) => throw null;
            public XmlSqlType(int length) : base(default(System.Data.DbType)) => throw null;
        }
    }
    public class StaleObjectStateException : NHibernate.StaleStateException
    {
        public StaleObjectStateException(string entityName, object identifier) : base(default(string)) => throw null;
        public StaleObjectStateException(string entityName, object identifier, System.Exception innerException) : base(default(string)) => throw null;
        protected StaleObjectStateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(default(string)) => throw null;
        public string EntityName { get => throw null; }
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public object Identifier { get => throw null; }
        public override string Message { get => throw null; }
    }
    public class StaleStateException : NHibernate.HibernateException
    {
        public StaleStateException(string message) => throw null;
        public StaleStateException(string message, System.Exception innerException) => throw null;
        protected StaleStateException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Stat
    {
        public class CategorizedStatistics
        {
            public string CategoryName { get => throw null; }
        }
        public class CollectionStatistics : NHibernate.Stat.CategorizedStatistics
        {
            public long FetchCount { get => throw null; }
            public long LoadCount { get => throw null; }
            public long RecreateCount { get => throw null; }
            public long RemoveCount { get => throw null; }
            public override string ToString() => throw null;
            public long UpdateCount { get => throw null; }
        }
        public class EntityStatistics : NHibernate.Stat.CategorizedStatistics
        {
            public long DeleteCount { get => throw null; }
            public long FetchCount { get => throw null; }
            public long InsertCount { get => throw null; }
            public long LoadCount { get => throw null; }
            public long OptimisticFailureCount { get => throw null; }
            public override string ToString() => throw null;
            public long UpdateCount { get => throw null; }
        }
        public interface ISessionStatistics
        {
            int CollectionCount { get; }
            System.Collections.Generic.IList<NHibernate.Engine.CollectionKey> CollectionKeys { get; }
            int EntityCount { get; }
            System.Collections.Generic.IList<NHibernate.Engine.EntityKey> EntityKeys { get; }
        }
        public interface IStatistics
        {
            void Clear();
            long CloseStatementCount { get; }
            long CollectionFetchCount { get; }
            long CollectionLoadCount { get; }
            long CollectionRecreateCount { get; }
            long CollectionRemoveCount { get; }
            string[] CollectionRoleNames { get; }
            long CollectionUpdateCount { get; }
            long ConnectCount { get; }
            long EntityDeleteCount { get; }
            long EntityFetchCount { get; }
            long EntityInsertCount { get; }
            long EntityLoadCount { get; }
            string[] EntityNames { get; }
            long EntityUpdateCount { get; }
            long FlushCount { get; }
            NHibernate.Stat.CollectionStatistics GetCollectionStatistics(string role);
            NHibernate.Stat.EntityStatistics GetEntityStatistics(string entityName);
            NHibernate.Stat.QueryStatistics GetQueryStatistics(string queryString);
            NHibernate.Stat.SecondLevelCacheStatistics GetSecondLevelCacheStatistics(string regionName);
            bool IsStatisticsEnabled { get; set; }
            void LogSummary();
            System.TimeSpan OperationThreshold { get; set; }
            long OptimisticFailureCount { get; }
            long PrepareStatementCount { get; }
            string[] Queries { get; }
            long QueryCacheHitCount { get; }
            long QueryCacheMissCount { get; }
            long QueryCachePutCount { get; }
            long QueryExecutionCount { get; }
            System.TimeSpan QueryExecutionMaxTime { get; }
            string QueryExecutionMaxTimeQueryString { get; }
            long SecondLevelCacheHitCount { get; }
            long SecondLevelCacheMissCount { get; }
            long SecondLevelCachePutCount { get; }
            string[] SecondLevelCacheRegionNames { get; }
            long SessionCloseCount { get; }
            long SessionOpenCount { get; }
            System.DateTime StartTime { get; }
            long SuccessfulTransactionCount { get; }
            long TransactionCount { get; }
        }
        public interface IStatisticsImplementor
        {
            void CloseSession();
            void CloseStatement();
            void Connect();
            void DeleteEntity(string entityName, System.TimeSpan time);
            void EndTransaction(bool success);
            void FetchCollection(string role, System.TimeSpan time);
            void FetchEntity(string entityName, System.TimeSpan time);
            void Flush();
            void InsertEntity(string entityName, System.TimeSpan time);
            void LoadCollection(string role, System.TimeSpan time);
            void LoadEntity(string entityName, System.TimeSpan time);
            void OpenSession();
            void OptimisticFailure(string entityName);
            void PrepareStatement();
            void QueryCacheHit(string hql, string regionName);
            void QueryCacheMiss(string hql, string regionName);
            void QueryCachePut(string hql, string regionName);
            void QueryExecuted(string hql, int rows, System.TimeSpan time);
            void RecreateCollection(string role, System.TimeSpan time);
            void RemoveCollection(string role, System.TimeSpan time);
            void SecondLevelCacheHit(string regionName);
            void SecondLevelCacheMiss(string regionName);
            void SecondLevelCachePut(string regionName);
            void UpdateCollection(string role, System.TimeSpan time);
            void UpdateEntity(string entityName, System.TimeSpan time);
        }
        public class QueryStatistics : NHibernate.Stat.CategorizedStatistics
        {
            public long CacheHitCount { get => throw null; }
            public long CacheMissCount { get => throw null; }
            public long CachePutCount { get => throw null; }
            public QueryStatistics(string categoryName) => throw null;
            public System.TimeSpan ExecutionAvgTime { get => throw null; }
            public long ExecutionCount { get => throw null; }
            public System.TimeSpan ExecutionMaxTime { get => throw null; }
            public System.TimeSpan ExecutionMinTime { get => throw null; }
            public long ExecutionRowCount { get => throw null; }
            public override string ToString() => throw null;
        }
        public class SecondLevelCacheStatistics : NHibernate.Stat.CategorizedStatistics
        {
            public SecondLevelCacheStatistics(NHibernate.Cache.ICache cache) => throw null;
            public long ElementCountInMemory { get => throw null; }
            public long ElementCountOnDisk { get => throw null; }
            public System.Collections.IDictionary Entries { get => throw null; }
            public long HitCount { get => throw null; }
            public long MissCount { get => throw null; }
            public long PutCount { get => throw null; }
            public long SizeInMemory { get => throw null; }
            public override string ToString() => throw null;
        }
        public class SessionStatisticsImpl : NHibernate.Stat.ISessionStatistics
        {
            public int CollectionCount { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Engine.CollectionKey> CollectionKeys { get => throw null; }
            public SessionStatisticsImpl(NHibernate.Engine.ISessionImplementor session) => throw null;
            public int EntityCount { get => throw null; }
            public System.Collections.Generic.IList<NHibernate.Engine.EntityKey> EntityKeys { get => throw null; }
            public override string ToString() => throw null;
        }
        public class StatisticsImpl : NHibernate.Stat.IStatistics, NHibernate.Stat.IStatisticsImplementor
        {
            public void Clear() => throw null;
            public void CloseSession() => throw null;
            public void CloseStatement() => throw null;
            public long CloseStatementCount { get => throw null; }
            public long CollectionFetchCount { get => throw null; }
            public long CollectionLoadCount { get => throw null; }
            public long CollectionRecreateCount { get => throw null; }
            public long CollectionRemoveCount { get => throw null; }
            public string[] CollectionRoleNames { get => throw null; }
            public long CollectionUpdateCount { get => throw null; }
            public void Connect() => throw null;
            public long ConnectCount { get => throw null; }
            public StatisticsImpl() => throw null;
            public StatisticsImpl(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
            public void DeleteEntity(string entityName, System.TimeSpan time) => throw null;
            public void EndTransaction(bool success) => throw null;
            public long EntityDeleteCount { get => throw null; }
            public long EntityFetchCount { get => throw null; }
            public long EntityInsertCount { get => throw null; }
            public long EntityLoadCount { get => throw null; }
            public string[] EntityNames { get => throw null; }
            public long EntityUpdateCount { get => throw null; }
            public void FetchCollection(string role, System.TimeSpan time) => throw null;
            public void FetchEntity(string entityName, System.TimeSpan time) => throw null;
            public void Flush() => throw null;
            public long FlushCount { get => throw null; }
            public NHibernate.Stat.CollectionStatistics GetCollectionStatistics(string role) => throw null;
            public NHibernate.Stat.EntityStatistics GetEntityStatistics(string entityName) => throw null;
            public NHibernate.Stat.QueryStatistics GetQueryStatistics(string queryString) => throw null;
            public NHibernate.Stat.SecondLevelCacheStatistics GetSecondLevelCacheStatistics(string regionName) => throw null;
            public void InsertEntity(string entityName, System.TimeSpan time) => throw null;
            public bool IsStatisticsEnabled { get => throw null; set { } }
            public void LoadCollection(string role, System.TimeSpan time) => throw null;
            public void LoadEntity(string entityName, System.TimeSpan time) => throw null;
            public void LogSummary() => throw null;
            public void OpenSession() => throw null;
            public System.TimeSpan OperationThreshold { get => throw null; set { } }
            public void OptimisticFailure(string entityName) => throw null;
            public long OptimisticFailureCount { get => throw null; }
            public void PrepareStatement() => throw null;
            public long PrepareStatementCount { get => throw null; }
            public string[] Queries { get => throw null; }
            public void QueryCacheHit(string hql, string regionName) => throw null;
            public long QueryCacheHitCount { get => throw null; }
            public void QueryCacheMiss(string hql, string regionName) => throw null;
            public long QueryCacheMissCount { get => throw null; }
            public void QueryCachePut(string hql, string regionName) => throw null;
            public long QueryCachePutCount { get => throw null; }
            public void QueryExecuted(string hql, int rows, System.TimeSpan time) => throw null;
            public long QueryExecutionCount { get => throw null; }
            public System.TimeSpan QueryExecutionMaxTime { get => throw null; }
            public string QueryExecutionMaxTimeQueryString { get => throw null; }
            public void RecreateCollection(string role, System.TimeSpan time) => throw null;
            public void RemoveCollection(string role, System.TimeSpan time) => throw null;
            public void SecondLevelCacheHit(string regionName) => throw null;
            public long SecondLevelCacheHitCount { get => throw null; }
            public void SecondLevelCacheMiss(string regionName) => throw null;
            public long SecondLevelCacheMissCount { get => throw null; }
            public void SecondLevelCachePut(string regionName) => throw null;
            public long SecondLevelCachePutCount { get => throw null; }
            public string[] SecondLevelCacheRegionNames { get => throw null; }
            public long SessionCloseCount { get => throw null; }
            public long SessionOpenCount { get => throw null; }
            public System.DateTime StartTime { get => throw null; }
            public long SuccessfulTransactionCount { get => throw null; }
            public override string ToString() => throw null;
            public long TransactionCount { get => throw null; }
            public void UpdateCollection(string role, System.TimeSpan time) => throw null;
            public void UpdateEntity(string entityName, System.TimeSpan time) => throw null;
        }
    }
    public static partial class StatelessSessionBuilderExtensions
    {
        public static T Tenant<T>(this T builder, string tenantIdentifier) where T : NHibernate.ISessionBuilder => throw null;
        public static NHibernate.IStatelessSessionBuilder Tenant(this NHibernate.IStatelessSessionBuilder builder, NHibernate.MultiTenancy.TenantConfiguration tenantConfig) => throw null;
    }
    public static partial class StatelessSessionExtensions
    {
        public static void CancelQuery(this NHibernate.IStatelessSession session) => throw null;
        public static NHibernate.Multi.IQueryBatch CreateQueryBatch(this NHibernate.IStatelessSession session) => throw null;
        public static void FlushBatcher(this NHibernate.IStatelessSession session) => throw null;
        public static System.Threading.Tasks.Task FlushBatcherAsync(this NHibernate.IStatelessSession session, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static T Get<T>(this NHibernate.IStatelessSession session, string entityName, object id, NHibernate.LockMode lockMode) => throw null;
        public static T Get<T>(this NHibernate.IStatelessSession session, string entityName, object id) => throw null;
        public static System.Threading.Tasks.Task<T> GetAsync<T>(this NHibernate.IStatelessSession session, string entityName, object id, NHibernate.LockMode lockMode, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static System.Threading.Tasks.Task<T> GetAsync<T>(this NHibernate.IStatelessSession session, string entityName, object id, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
        public static NHibernate.ITransaction GetCurrentTransaction(this NHibernate.IStatelessSession session) => throw null;
    }
    namespace Tool
    {
        namespace hbm2ddl
        {
            public class DatabaseMetadata : NHibernate.Tool.hbm2ddl.IDatabaseMetadata
            {
                public DatabaseMetadata(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect) => throw null;
                public DatabaseMetadata(System.Data.Common.DbConnection connection, NHibernate.Dialect.Dialect dialect, bool extras) => throw null;
                public NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(string name, string schema, string catalog, bool isQuoted) => throw null;
                public bool IsSequence(object key) => throw null;
                public bool IsTable(object key) => throw null;
                public override string ToString() => throw null;
            }
            public interface IConnectionHelper
            {
                System.Data.Common.DbConnection Connection { get; }
                void Prepare();
                System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken);
                void Release();
            }
            public interface IDatabaseMetadata
            {
                NHibernate.Dialect.Schema.ITableMetadata GetTableMetadata(string name, string schema, string catalog, bool isQuoted);
                bool IsSequence(object key);
                bool IsTable(object key);
            }
            public class ManagedProviderConnectionHelper : NHibernate.Tool.hbm2ddl.IConnectionHelper
            {
                public System.Data.Common.DbConnection Connection { get => throw null; }
                public ManagedProviderConnectionHelper(System.Collections.Generic.IDictionary<string, string> cfgProperties) => throw null;
                public void Prepare() => throw null;
                public System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken) => throw null;
                public void Release() => throw null;
            }
            public class SchemaExport
            {
                public void Create(bool useStdOut, bool execute) => throw null;
                public void Create(bool useStdOut, bool execute, System.Data.Common.DbConnection connection) => throw null;
                public void Create(System.Action<string> scriptAction, bool execute) => throw null;
                public void Create(System.Action<string> scriptAction, bool execute, System.Data.Common.DbConnection connection) => throw null;
                public void Create(System.IO.TextWriter exportOutput, bool execute) => throw null;
                public void Create(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection) => throw null;
                public System.Threading.Tasks.Task CreateAsync(bool useStdOut, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task CreateAsync(bool useStdOut, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task CreateAsync(System.Action<string> scriptAction, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task CreateAsync(System.Action<string> scriptAction, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task CreateAsync(System.IO.TextWriter exportOutput, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task CreateAsync(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public SchemaExport(NHibernate.Cfg.Configuration cfg) => throw null;
                public SchemaExport(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary<string, string> configProperties) => throw null;
                public void Drop(bool useStdOut, bool execute) => throw null;
                public void Drop(bool useStdOut, bool execute, System.Data.Common.DbConnection connection) => throw null;
                public void Drop(System.IO.TextWriter exportOutput, bool execute) => throw null;
                public void Drop(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection) => throw null;
                public System.Threading.Tasks.Task DropAsync(bool useStdOut, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task DropAsync(bool useStdOut, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task DropAsync(System.IO.TextWriter exportOutput, bool execute, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task DropAsync(System.IO.TextWriter exportOutput, bool execute, System.Data.Common.DbConnection connection, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public void Execute(bool useStdOut, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput) => throw null;
                public void Execute(System.Action<string> scriptAction, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput) => throw null;
                public void Execute(bool useStdOut, bool execute, bool justDrop) => throw null;
                public void Execute(System.Action<string> scriptAction, bool execute, bool justDrop) => throw null;
                public void Execute(System.Action<string> scriptAction, bool execute, bool justDrop, System.IO.TextWriter exportOutput) => throw null;
                public System.Threading.Tasks.Task ExecuteAsync(bool useStdOut, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task ExecuteAsync(System.Action<string> scriptAction, bool execute, bool justDrop, System.Data.Common.DbConnection connection, System.IO.TextWriter exportOutput, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task ExecuteAsync(bool useStdOut, bool execute, bool justDrop, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task ExecuteAsync(System.Action<string> scriptAction, bool execute, bool justDrop, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task ExecuteAsync(System.Action<string> scriptAction, bool execute, bool justDrop, System.IO.TextWriter exportOutput, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public NHibernate.Tool.hbm2ddl.SchemaExport SetDelimiter(string delimiter) => throw null;
                public NHibernate.Tool.hbm2ddl.SchemaExport SetOutputFile(string filename) => throw null;
            }
            public static class SchemaMetadataUpdater
            {
                public static void QuoteTableAndColumns(NHibernate.Cfg.Configuration configuration) => throw null;
                public static void QuoteTableAndColumns(NHibernate.Cfg.Configuration configuration, NHibernate.Dialect.Dialect dialect) => throw null;
                public static void Update(NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                public static void Update(NHibernate.Cfg.Configuration configuration, NHibernate.Dialect.Dialect dialect) => throw null;
                public static System.Threading.Tasks.Task UpdateAsync(NHibernate.Engine.ISessionFactoryImplementor sessionFactory, System.Threading.CancellationToken cancellationToken) => throw null;
                public static System.Threading.Tasks.Task UpdateAsync(NHibernate.Cfg.Configuration configuration, NHibernate.Dialect.Dialect dialect, System.Threading.CancellationToken cancellationToken) => throw null;
            }
            public class SchemaUpdate
            {
                public SchemaUpdate(NHibernate.Cfg.Configuration cfg) => throw null;
                public SchemaUpdate(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary<string, string> configProperties) => throw null;
                public SchemaUpdate(NHibernate.Cfg.Configuration cfg, NHibernate.Cfg.Settings settings) => throw null;
                public System.Collections.Generic.IList<System.Exception> Exceptions { get => throw null; }
                public void Execute(bool useStdOut, bool doUpdate) => throw null;
                public void Execute(System.Action<string> scriptAction, bool doUpdate) => throw null;
                public System.Threading.Tasks.Task ExecuteAsync(bool useStdOut, bool doUpdate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public System.Threading.Tasks.Task ExecuteAsync(System.Action<string> scriptAction, bool doUpdate, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public static void Main(string[] args) => throw null;
                public static System.Threading.Tasks.Task MainAsync(string[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            }
            public class SchemaValidator
            {
                public SchemaValidator(NHibernate.Cfg.Configuration cfg) => throw null;
                public SchemaValidator(NHibernate.Cfg.Configuration cfg, System.Collections.Generic.IDictionary<string, string> connectionProperties) => throw null;
                public SchemaValidator(NHibernate.Cfg.Configuration cfg, NHibernate.Cfg.Settings settings) => throw null;
                public static void Main(string[] args) => throw null;
                public static System.Threading.Tasks.Task MainAsync(string[] args, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
                public void Validate() => throw null;
                public System.Threading.Tasks.Task ValidateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            }
            public class ScriptSplitter : System.Collections.Generic.IEnumerable<string>, System.Collections.IEnumerable
            {
                public ScriptSplitter(string script) => throw null;
                public System.Collections.Generic.IEnumerator<string> GetEnumerator() => throw null;
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            }
            public class SuppliedConnectionHelper : NHibernate.Tool.hbm2ddl.IConnectionHelper
            {
                public System.Data.Common.DbConnection Connection { get => throw null; }
                public SuppliedConnectionHelper(System.Data.Common.DbConnection connection) => throw null;
                public void Prepare() => throw null;
                public System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken) => throw null;
                public void Release() => throw null;
            }
            public class SuppliedConnectionProviderConnectionHelper : NHibernate.Tool.hbm2ddl.IConnectionHelper
            {
                public System.Data.Common.DbConnection Connection { get => throw null; }
                public SuppliedConnectionProviderConnectionHelper(NHibernate.Connection.IConnectionProvider provider) => throw null;
                public void Prepare() => throw null;
                public System.Threading.Tasks.Task PrepareAsync(System.Threading.CancellationToken cancellationToken) => throw null;
                public void Release() => throw null;
            }
        }
    }
    namespace Transaction
    {
        public class AdoNetTransactionFactory : NHibernate.Transaction.ITransactionFactory
        {
            public virtual void Configure(System.Collections.Generic.IDictionary<string, string> props) => throw null;
            public virtual NHibernate.ITransaction CreateTransaction(NHibernate.Engine.ISessionImplementor session) => throw null;
            public AdoNetTransactionFactory() => throw null;
            public virtual void EnlistInSystemTransactionIfNeeded(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual void ExecuteWorkInIsolation(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted) => throw null;
            public virtual System.Threading.Tasks.Task ExecuteWorkInIsolationAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void ExplicitJoinSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual bool IsInActiveSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null;
        }
        public class AdoNetWithSystemTransactionFactory : NHibernate.Transaction.AdoNetTransactionFactory
        {
            public override void Configure(System.Collections.Generic.IDictionary<string, string> props) => throw null;
            protected virtual NHibernate.Transaction.ITransactionContext CreateAndEnlistMainContext(NHibernate.Engine.ISessionImplementor session, System.Transactions.Transaction transaction) => throw null;
            protected virtual NHibernate.Transaction.ITransactionContext CreateDependentContext(NHibernate.Engine.ISessionImplementor dependentSession, NHibernate.Transaction.ITransactionContext mainContext) => throw null;
            public AdoNetWithSystemTransactionFactory() => throw null;
            public class DependentContext : System.IDisposable, NHibernate.Transaction.ITransactionContext
            {
                public virtual bool CanFlushOnSystemTransactionCompleted { get => throw null; }
                public DependentContext(NHibernate.Transaction.ITransactionContext mainTransactionContext) => throw null;
                public void Dispose() => throw null;
                protected virtual void Dispose(bool disposing) => throw null;
                public bool IsInActiveTransaction { get => throw null; }
                protected NHibernate.Transaction.ITransactionContext MainTransactionContext { get => throw null; }
                public bool ShouldCloseSessionOnSystemTransactionCompleted { get => throw null; set { } }
                public virtual void Wait() => throw null;
            }
            public override void EnlistInSystemTransactionIfNeeded(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void ExecuteWorkInIsolation(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted) => throw null;
            public override System.Threading.Tasks.Task ExecuteWorkInIsolationAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void ExplicitJoinSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsInActiveSystemTransaction(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual void JoinSystemTransaction(NHibernate.Engine.ISessionImplementor session, System.Transactions.Transaction transaction) => throw null;
            protected int SystemTransactionCompletionLockTimeout { get => throw null; }
            public class SystemTransactionContext : System.IDisposable, System.Transactions.IEnlistmentNotification, NHibernate.Transaction.ITransactionContext
            {
                public virtual bool CanFlushOnSystemTransactionCompleted { get => throw null; }
                void System.Transactions.IEnlistmentNotification.Commit(System.Transactions.Enlistment enlistment) => throw null;
                protected virtual void CompleteTransaction(bool isCommitted) => throw null;
                public SystemTransactionContext(NHibernate.Engine.ISessionImplementor session, System.Transactions.Transaction transaction, int systemTransactionCompletionLockTimeout, bool useConnectionOnSystemTransactionPrepare) => throw null;
                public void Dispose() => throw null;
                protected virtual void Dispose(bool disposing) => throw null;
                protected System.Transactions.Transaction EnlistedTransaction { get => throw null; }
                protected System.Transactions.TransactionStatus? GetTransactionStatus() => throw null;
                void System.Transactions.IEnlistmentNotification.InDoubt(System.Transactions.Enlistment enlistment) => throw null;
                public bool IsInActiveTransaction { get => throw null; set { } }
                protected virtual void Lock() => throw null;
                public virtual void Prepare(System.Transactions.PreparingEnlistment preparingEnlistment) => throw null;
                protected virtual void ProcessSecondPhase(System.Transactions.Enlistment enlistment, bool? success) => throw null;
                void System.Transactions.IEnlistmentNotification.Rollback(System.Transactions.Enlistment enlistment) => throw null;
                public bool ShouldCloseSessionOnSystemTransactionCompleted { get => throw null; set { } }
                protected virtual void Unlock() => throw null;
                public virtual void Wait() => throw null;
            }
            protected bool UseConnectionOnSystemTransactionPrepare { get => throw null; }
        }
        public class AdoTransaction : System.IDisposable, NHibernate.ITransaction
        {
            public void Begin() => throw null;
            public void Begin(System.Data.IsolationLevel isolationLevel) => throw null;
            public void Commit() => throw null;
            public System.Threading.Tasks.Task CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public AdoTransaction(NHibernate.Engine.ISessionImplementor session) => throw null;
            public void Dispose() => throw null;
            protected virtual void Dispose(bool isDisposing) => throw null;
            protected virtual System.Threading.Tasks.Task DisposeAsync(bool isDisposing, System.Threading.CancellationToken cancellationToken) => throw null;
            public void Enlist(System.Data.Common.DbCommand command) => throw null;
            public bool IsActive { get => throw null; }
            public System.Data.IsolationLevel IsolationLevel { get => throw null; }
            public void RegisterSynchronization(NHibernate.Transaction.ISynchronization sync) => throw null;
            public void RegisterSynchronization(NHibernate.Transaction.ITransactionCompletionSynchronization synchronization) => throw null;
            public void Rollback() => throw null;
            public System.Threading.Tasks.Task RollbackAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) => throw null;
            public bool WasCommitted { get => throw null; }
            public bool WasRolledBack { get => throw null; }
        }
        public class AfterTransactionCompletes : NHibernate.Transaction.ISynchronization
        {
            public void AfterCompletion(bool success) => throw null;
            public void BeforeCompletion() => throw null;
            public AfterTransactionCompletes(System.Action<bool> whenCompleted) => throw null;
        }
        public interface ISynchronization
        {
            void AfterCompletion(bool success);
            void BeforeCompletion();
        }
        public interface ITransactionCompletionSynchronization : NHibernate.Action.IAfterTransactionCompletionProcess, NHibernate.Action.IBeforeTransactionCompletionProcess
        {
        }
        public interface ITransactionContext : System.IDisposable
        {
            bool CanFlushOnSystemTransactionCompleted { get; }
            bool IsInActiveTransaction { get; }
            bool ShouldCloseSessionOnSystemTransactionCompleted { get; set; }
            void Wait();
        }
        public interface ITransactionFactory
        {
            void Configure(System.Collections.Generic.IDictionary<string, string> props);
            NHibernate.ITransaction CreateTransaction(NHibernate.Engine.ISessionImplementor session);
            void EnlistInSystemTransactionIfNeeded(NHibernate.Engine.ISessionImplementor session);
            void ExecuteWorkInIsolation(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted);
            System.Threading.Tasks.Task ExecuteWorkInIsolationAsync(NHibernate.Engine.ISessionImplementor session, NHibernate.Engine.Transaction.IIsolatedWork work, bool transacted, System.Threading.CancellationToken cancellationToken);
            void ExplicitJoinSystemTransaction(NHibernate.Engine.ISessionImplementor session);
            bool IsInActiveSystemTransaction(NHibernate.Engine.ISessionImplementor session);
        }
    }
    public class TransactionException : NHibernate.HibernateException
    {
        public TransactionException(string message) => throw null;
        public TransactionException(string message, System.Exception innerException) => throw null;
        protected TransactionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    public static partial class TransactionExtensions
    {
        public static void RegisterSynchronization(this NHibernate.ITransaction transaction, NHibernate.Transaction.ITransactionCompletionSynchronization synchronization) => throw null;
    }
    namespace Transform
    {
        public abstract class AliasedTupleSubsetResultTransformer : NHibernate.Transform.IResultTransformer, NHibernate.Transform.ITupleSubsetResultTransformer
        {
            protected AliasedTupleSubsetResultTransformer() => throw null;
            public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null;
            public abstract bool IsTransformedValueATupleElement(string[] aliases, int tupleLength);
            public abstract System.Collections.IList TransformList(System.Collections.IList collection);
            public abstract object TransformTuple(object[] tuple, string[] aliases);
        }
        public class AliasToBeanConstructorResultTransformer : NHibernate.Transform.IResultTransformer
        {
            public AliasToBeanConstructorResultTransformer(System.Reflection.ConstructorInfo constructor) => throw null;
            public bool Equals(NHibernate.Transform.AliasToBeanConstructorResultTransformer other) => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public System.Collections.IList TransformList(System.Collections.IList collection) => throw null;
            public object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        public class AliasToBeanResultTransformer : NHibernate.Transform.AliasedTupleSubsetResultTransformer, System.IEquatable<NHibernate.Transform.AliasToBeanResultTransformer>
        {
            protected System.Reflection.ConstructorInfo BeanConstructor { get => throw null; }
            public AliasToBeanResultTransformer(System.Type resultClass) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Transform.AliasToBeanResultTransformer other) => throw null;
            public override int GetHashCode() => throw null;
            public override bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null;
            protected virtual void OnPropertyNotFound(string propertyName) => throw null;
            protected System.Type ResultClass { get => throw null; }
            protected void SetProperty(string alias, object value, object resultObj) => throw null;
            public override System.Collections.IList TransformList(System.Collections.IList collection) => throw null;
            public override object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        public class AliasToEntityMapResultTransformer : NHibernate.Transform.AliasedTupleSubsetResultTransformer
        {
            public AliasToEntityMapResultTransformer() => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public override bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null;
            public override System.Collections.IList TransformList(System.Collections.IList collection) => throw null;
            public override object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        public class CacheableResultTransformer : NHibernate.Transform.IResultTransformer
        {
            public string[] AutoDiscoveredAliases { get => throw null; }
            public bool AutoDiscoverTypes { get => throw null; }
            public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple) => throw null;
            public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple, bool autoDiscoverTypes, NHibernate.SqlCommand.SqlString autoDiscoveredQuery) => throw null;
            public static NHibernate.Transform.CacheableResultTransformer Create(NHibernate.Transform.IResultTransformer transformer, string[] aliases, bool[] includeInTuple, bool autoDiscoverTypes, NHibernate.SqlCommand.SqlString autoDiscoveredQuery, bool skipTransformer) => throw null;
            public override bool Equals(object o) => throw null;
            public NHibernate.Type.IType[] GetCachedResultTypes(NHibernate.Type.IType[] tupleResultTypes) => throw null;
            public override int GetHashCode() => throw null;
            public System.Collections.IList RetransformResults(System.Collections.IList transformedResults, string[] aliases, NHibernate.Transform.IResultTransformer transformer, bool[] includeInTuple) => throw null;
            public System.Collections.IList TransformList(System.Collections.IList list) => throw null;
            public object TransformTuple(object[] tuple, string[] aliases) => throw null;
            public System.Collections.IList UntransformToTuples(System.Collections.IList results) => throw null;
        }
        public class DistinctRootEntityResultTransformer : NHibernate.Transform.IResultTransformer, NHibernate.Transform.ITupleSubsetResultTransformer
        {
            public DistinctRootEntityResultTransformer() => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null;
            public bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null;
            public System.Collections.IList TransformList(System.Collections.IList list) => throw null;
            public object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        public interface IResultTransformer
        {
            System.Collections.IList TransformList(System.Collections.IList collection);
            object TransformTuple(object[] tuple, string[] aliases);
        }
        public interface ITupleSubsetResultTransformer : NHibernate.Transform.IResultTransformer
        {
            bool[] IncludeInTransform(string[] aliases, int tupleLength);
            bool IsTransformedValueATupleElement(string[] aliases, int tupleLength);
        }
        public class PassThroughResultTransformer : NHibernate.Transform.IResultTransformer, NHibernate.Transform.ITupleSubsetResultTransformer
        {
            public PassThroughResultTransformer() => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null;
            public bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null;
            public System.Collections.IList TransformList(System.Collections.IList collection) => throw null;
            public object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        public class RootEntityResultTransformer : NHibernate.Transform.IResultTransformer, NHibernate.Transform.ITupleSubsetResultTransformer
        {
            public RootEntityResultTransformer() => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public bool[] IncludeInTransform(string[] aliases, int tupleLength) => throw null;
            public bool IsTransformedValueATupleElement(string[] aliases, int tupleLength) => throw null;
            public System.Collections.IList TransformList(System.Collections.IList collection) => throw null;
            public object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        public class ToListResultTransformer : NHibernate.Transform.IResultTransformer
        {
            public ToListResultTransformer() => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public System.Collections.IList TransformList(System.Collections.IList list) => throw null;
            public object TransformTuple(object[] tuple, string[] aliases) => throw null;
        }
        public static class Transformers
        {
            public static NHibernate.Transform.IResultTransformer AliasToBean(System.Type target) => throw null;
            public static NHibernate.Transform.IResultTransformer AliasToBean<T>() => throw null;
            public static NHibernate.Transform.IResultTransformer AliasToBeanConstructor(System.Reflection.ConstructorInfo constructor) => throw null;
            public static readonly NHibernate.Transform.IResultTransformer AliasToEntityMap;
            public static readonly NHibernate.Transform.IResultTransformer DistinctRootEntity;
            public static readonly NHibernate.Transform.IResultTransformer PassThrough;
            public static readonly NHibernate.Transform.IResultTransformer RootEntity;
            public static readonly NHibernate.Transform.ToListResultTransformer ToList;
        }
    }
    public class TransientObjectException : NHibernate.HibernateException
    {
        public TransientObjectException(string message) => throw null;
        protected TransientObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    namespace Tuple
    {
        namespace Component
        {
            public abstract class AbstractComponentTuplizer : NHibernate.Tuple.Component.IComponentTuplizer, NHibernate.Tuple.ITuplizer
            {
                protected abstract NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop);
                protected abstract NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component);
                protected abstract NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop);
                protected AbstractComponentTuplizer(NHibernate.Mapping.Component component) => throw null;
                public virtual object GetParent(object component) => throw null;
                public virtual object GetPropertyValue(object component, int i) => throw null;
                public virtual object[] GetPropertyValues(object component) => throw null;
                protected NHibernate.Properties.IGetter[] getters;
                protected bool hasCustomAccessors;
                public virtual bool HasParentProperty { get => throw null; }
                public virtual object Instantiate() => throw null;
                protected NHibernate.Tuple.IInstantiator instantiator;
                public virtual bool IsInstance(object obj) => throw null;
                public abstract System.Type MappedClass { get; }
                protected int propertySpan;
                public virtual void SetParent(object component, object parent, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public virtual void SetPropertyValues(object component, object[] values) => throw null;
                protected NHibernate.Properties.ISetter[] setters;
            }
            public class ComponentMetamodel
            {
                public NHibernate.Tuple.Component.IComponentTuplizer ComponentTuplizer { get => throw null; }
                public ComponentMetamodel(NHibernate.Mapping.Component component) => throw null;
                public NHibernate.EntityMode EntityMode { get => throw null; }
                public NHibernate.Tuple.StandardProperty GetProperty(int index) => throw null;
                public NHibernate.Tuple.StandardProperty GetProperty(string propertyName) => throw null;
                public int GetPropertyIndex(string propertyName) => throw null;
                public bool IsKey { get => throw null; }
                public NHibernate.Tuple.StandardProperty[] Properties { get => throw null; }
                public int PropertySpan { get => throw null; }
                public string Role { get => throw null; }
            }
            public class ComponentTuplizerFactory
            {
                public NHibernate.Tuple.Component.IComponentTuplizer BuildComponentTuplizer(string tuplizerImpl, NHibernate.Mapping.Component component) => throw null;
                public NHibernate.Tuple.Component.IComponentTuplizer BuildDefaultComponentTuplizer(NHibernate.EntityMode entityMode, NHibernate.Mapping.Component component) => throw null;
                public ComponentTuplizerFactory() => throw null;
            }
            public class DynamicMapComponentTuplizer : NHibernate.Tuple.Component.AbstractComponentTuplizer
            {
                protected override NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null;
                protected override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component) => throw null;
                protected override NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null;
                public DynamicMapComponentTuplizer(NHibernate.Mapping.Component component) : base(default(NHibernate.Mapping.Component)) => throw null;
                public override System.Type MappedClass { get => throw null; }
            }
            public interface IComponentTuplizer : NHibernate.Tuple.ITuplizer
            {
                object GetParent(object component);
                bool HasParentProperty { get; }
                void SetParent(object component, object parent, NHibernate.Engine.ISessionFactoryImplementor factory);
            }
            public class PocoComponentTuplizer : NHibernate.Tuple.Component.AbstractComponentTuplizer
            {
                protected override NHibernate.Properties.IGetter BuildGetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null;
                protected override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.Component component) => throw null;
                protected override NHibernate.Properties.ISetter BuildSetter(NHibernate.Mapping.Component component, NHibernate.Mapping.Property prop) => throw null;
                protected void ClearOptimizerWhenUsingCustomAccessors() => throw null;
                public PocoComponentTuplizer(NHibernate.Mapping.Component component) : base(default(NHibernate.Mapping.Component)) => throw null;
                public override object GetParent(object component) => throw null;
                public override object GetPropertyValue(object component, int i) => throw null;
                public override object[] GetPropertyValues(object component) => throw null;
                public override bool HasParentProperty { get => throw null; }
                public override System.Type MappedClass { get => throw null; }
                public override void SetParent(object component, object parent, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
                public override void SetPropertyValues(object component, object[] values) => throw null;
                protected void SetReflectionOptimizer() => throw null;
            }
        }
        public class DynamicEntityInstantiator : NHibernate.Tuple.IInstantiator
        {
            public DynamicEntityInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null;
            public object Instantiate(object id) => throw null;
            public object Instantiate() => throw null;
            public bool IsInstance(object obj) => throw null;
            public const string Key = default;
        }
        public class DynamicMapInstantiator : NHibernate.Tuple.IInstantiator
        {
            public DynamicMapInstantiator() => throw null;
            public DynamicMapInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null;
            protected virtual System.Collections.IDictionary GenerateMap() => throw null;
            public object Instantiate(object id) => throw null;
            public object Instantiate() => throw null;
            public bool IsInstance(object obj) => throw null;
            public const string KEY = default;
        }
        namespace Entity
        {
            public abstract class AbstractEntityTuplizer : NHibernate.Tuple.Entity.IEntityTuplizer, NHibernate.Tuple.ITuplizer
            {
                public virtual void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session) => throw null;
                public virtual void AfterInitialize(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected abstract NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.PersistentClass mappingInfo);
                protected abstract NHibernate.Properties.IGetter BuildPropertyGetter(NHibernate.Mapping.Property mappedProperty, NHibernate.Mapping.PersistentClass mappedEntity);
                protected abstract NHibernate.Properties.ISetter BuildPropertySetter(NHibernate.Mapping.Property mappedProperty, NHibernate.Mapping.PersistentClass mappedEntity);
                protected abstract NHibernate.Proxy.IProxyFactory BuildProxyFactory(NHibernate.Mapping.PersistentClass mappingInfo, NHibernate.Properties.IGetter idGetter, NHibernate.Properties.ISetter idSetter);
                public abstract System.Type ConcreteProxyClass { get; }
                public object CreateProxy(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected AbstractEntityTuplizer(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass mappingInfo) => throw null;
                protected NHibernate.Tuple.Entity.EntityMetamodel EntityMetamodel { get => throw null; }
                public abstract NHibernate.EntityMode EntityMode { get; }
                protected virtual string EntityName { get => throw null; }
                protected virtual object GetComponentValue(NHibernate.Type.ComponentType type, object component, string propertyPath) => throw null;
                public object GetIdentifier(object entity) => throw null;
                protected virtual object GetIdentifierPropertyValue(object entity) => throw null;
                public object GetPropertyValue(object entity, string propertyPath) => throw null;
                public virtual object GetPropertyValue(object entity, int i) => throw null;
                public virtual object[] GetPropertyValues(object entity) => throw null;
                public virtual object[] GetPropertyValuesToInsert(object entity, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected NHibernate.Properties.IGetter[] getters;
                public object GetVersion(object entity) => throw null;
                protected bool hasCustomAccessors;
                public bool HasProxy { get => throw null; }
                public virtual bool HasUninitializedLazyProperties(object entity) => throw null;
                protected readonly NHibernate.Properties.IGetter idGetter;
                protected readonly NHibernate.Properties.ISetter idSetter;
                public object Instantiate(object id) => throw null;
                public object Instantiate() => throw null;
                protected virtual NHibernate.Tuple.IInstantiator Instantiator { get => throw null; set { } }
                public bool IsInstance(object obj) => throw null;
                public abstract bool IsInstrumented { get; }
                public virtual bool IsLifecycleImplementor { get => throw null; }
                public virtual bool IsValidatableImplementor { get => throw null; }
                public abstract System.Type MappedClass { get; }
                protected int propertySpan;
                protected virtual NHibernate.Proxy.IProxyFactory ProxyFactory { get => throw null; }
                public void ResetIdentifier(object entity, object currentId, object currentVersion) => throw null;
                public void SetIdentifier(object entity, object id) => throw null;
                protected virtual void SetIdentifierPropertyValue(object entity, object value) => throw null;
                public virtual void SetPropertyValue(object entity, int i, object value) => throw null;
                public void SetPropertyValue(object entity, string propertyName, object value) => throw null;
                public virtual void SetPropertyValues(object entity, object[] values) => throw null;
                protected NHibernate.Properties.ISetter[] setters;
                protected virtual bool ShouldGetAllProperties(object entity) => throw null;
                protected virtual System.Collections.Generic.ISet<string> SubclassEntityNames { get => throw null; }
            }
            public class BytecodeEnhancementMetadataNonPocoImpl : NHibernate.Bytecode.IBytecodeEnhancementMetadata
            {
                public BytecodeEnhancementMetadataNonPocoImpl(string entityName) => throw null;
                public bool EnhancedForLazyLoading { get => throw null; }
                public string EntityName { get => throw null; }
                public NHibernate.Intercept.IFieldInterceptor ExtractInterceptor(object entity) => throw null;
                public System.Collections.Generic.ISet<string> GetUninitializedLazyProperties(object entity) => throw null;
                public System.Collections.Generic.ISet<string> GetUninitializedLazyProperties(object[] entityState) => throw null;
                public bool HasAnyUninitializedLazyProperties(object entity) => throw null;
                public NHibernate.Intercept.IFieldInterceptor InjectInterceptor(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public NHibernate.Bytecode.LazyPropertiesMetadata LazyPropertiesMetadata { get => throw null; }
                public NHibernate.Bytecode.UnwrapProxyPropertiesMetadata UnwrapProxyPropertiesMetadata { get => throw null; }
            }
            public class BytecodeEnhancementMetadataPocoImpl : NHibernate.Bytecode.IBytecodeEnhancementMetadata
            {
                public BytecodeEnhancementMetadataPocoImpl(string entityName, System.Type entityType, bool enhancedForLazyLoading, NHibernate.Bytecode.LazyPropertiesMetadata lazyPropertiesMetadata, NHibernate.Bytecode.UnwrapProxyPropertiesMetadata unwrapProxyPropertiesMetadata) => throw null;
                public bool EnhancedForLazyLoading { get => throw null; }
                public string EntityName { get => throw null; }
                public NHibernate.Intercept.IFieldInterceptor ExtractInterceptor(object entity) => throw null;
                public static NHibernate.Bytecode.IBytecodeEnhancementMetadata From(NHibernate.Mapping.PersistentClass persistentClass, System.Collections.Generic.ICollection<NHibernate.Bytecode.LazyPropertyDescriptor> lazyPropertyDescriptors, System.Collections.Generic.ICollection<NHibernate.Bytecode.UnwrapProxyPropertyDescriptor> unwrapProxyPropertyDescriptors) => throw null;
                public System.Collections.Generic.ISet<string> GetUninitializedLazyProperties(object entity) => throw null;
                public System.Collections.Generic.ISet<string> GetUninitializedLazyProperties(object[] entityState) => throw null;
                public bool HasAnyUninitializedLazyProperties(object entity) => throw null;
                public NHibernate.Intercept.IFieldInterceptor InjectInterceptor(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                public NHibernate.Bytecode.LazyPropertiesMetadata LazyPropertiesMetadata { get => throw null; }
                public NHibernate.Bytecode.UnwrapProxyPropertiesMetadata UnwrapProxyPropertiesMetadata { get => throw null; }
            }
            public class DynamicMapEntityTuplizer : NHibernate.Tuple.Entity.AbstractEntityTuplizer
            {
                protected override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.PersistentClass mappingInfo) => throw null;
                protected override NHibernate.Properties.IGetter BuildPropertyGetter(NHibernate.Mapping.Property mappedProperty, NHibernate.Mapping.PersistentClass mappedEntity) => throw null;
                protected override NHibernate.Properties.ISetter BuildPropertySetter(NHibernate.Mapping.Property mappedProperty, NHibernate.Mapping.PersistentClass mappedEntity) => throw null;
                protected override NHibernate.Proxy.IProxyFactory BuildProxyFactory(NHibernate.Mapping.PersistentClass mappingInfo, NHibernate.Properties.IGetter idGetter, NHibernate.Properties.ISetter idSetter) => throw null;
                public override System.Type ConcreteProxyClass { get => throw null; }
                public override NHibernate.EntityMode EntityMode { get => throw null; }
                public override bool IsInstrumented { get => throw null; }
                public override System.Type MappedClass { get => throw null; }
                internal DynamicMapEntityTuplizer() : base(default(NHibernate.Tuple.Entity.EntityMetamodel), default(NHibernate.Mapping.PersistentClass)) { }
            }
            public class EntityMetamodel
            {
                public NHibernate.Bytecode.IBytecodeEnhancementMetadata BytecodeEnhancementMetadata { get => throw null; }
                public NHibernate.Engine.CascadeStyle[] CascadeStyles { get => throw null; }
                public EntityMetamodel(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Engine.ISessionFactoryImplementor sessionFactory) => throw null;
                public NHibernate.EntityMode EntityMode { get => throw null; }
                public NHibernate.Type.EntityType EntityType { get => throw null; }
                public int GetPropertyIndex(string propertyName) => throw null;
                public int? GetPropertyIndexOrNull(string propertyName) => throw null;
                public bool HasCascades { get => throw null; }
                public bool HasCollections { get => throw null; }
                public bool HasInsertGeneratedValues { get => throw null; }
                public bool HasLazyProperties { get => throw null; }
                public bool HasMutableProperties { get => throw null; }
                public bool HasNaturalIdentifier { get => throw null; }
                public bool HasNonIdentifierPropertyNamedId { get => throw null; }
                public bool HasPocoRepresentation { get => throw null; }
                public bool HasSubclasses { get => throw null; }
                public bool HasUnwrapProxyForProperties { get => throw null; }
                public bool HasUpdateGeneratedValues { get => throw null; }
                public NHibernate.Tuple.IdentifierProperty IdentifierProperty { get => throw null; }
                public bool IsAbstract { get => throw null; }
                public bool IsDynamicInsert { get => throw null; }
                public bool IsDynamicUpdate { get => throw null; }
                public bool IsExplicitPolymorphism { get => throw null; }
                public bool IsInherited { get => throw null; }
                public bool IsLazy { get => throw null; set { } }
                public bool IsMutable { get => throw null; }
                public bool IsPolymorphic { get => throw null; }
                public bool IsSelectBeforeUpdate { get => throw null; }
                public bool IsVersioned { get => throw null; }
                public string Name { get => throw null; }
                public int[] NaturalIdentifierProperties { get => throw null; }
                public bool[] NonlazyPropertyUpdateability { get => throw null; }
                public NHibernate.Engine.Versioning.OptimisticLock OptimisticLockMode { get => throw null; }
                public NHibernate.Tuple.StandardProperty[] Properties { get => throw null; }
                public bool[] PropertyCheckability { get => throw null; }
                public bool[] PropertyInsertability { get => throw null; }
                public NHibernate.Engine.ValueInclusion[] PropertyInsertGenerationInclusions { get => throw null; }
                public bool[] PropertyLaziness { get => throw null; }
                public string[] PropertyNames { get => throw null; }
                public bool[] PropertyNullability { get => throw null; }
                public int PropertySpan { get => throw null; }
                public NHibernate.Type.IType[] PropertyTypes { get => throw null; }
                public bool[] PropertyUpdateability { get => throw null; }
                public NHibernate.Engine.ValueInclusion[] PropertyUpdateGenerationInclusions { get => throw null; }
                public bool[] PropertyVersionability { get => throw null; }
                public string RootName { get => throw null; }
                public System.Type RootType { get => throw null; }
                public string RootTypeAssemblyQualifiedName { get => throw null; }
                public NHibernate.Engine.ISessionFactoryImplementor SessionFactory { get => throw null; }
                public System.Collections.Generic.ISet<string> SubclassEntityNames { get => throw null; }
                public string Superclass { get => throw null; }
                public System.Type SuperclassType { get => throw null; }
                public override string ToString() => throw null;
                public NHibernate.Tuple.Entity.IEntityTuplizer Tuplizer { get => throw null; }
                public System.Type Type { get => throw null; }
                public NHibernate.Tuple.VersionProperty VersionProperty { get => throw null; }
                public int VersionPropertyIndex { get => throw null; }
            }
            public static partial class EntityTuplizerExtensions
            {
                public static void AfterInitialize(this NHibernate.Tuple.Entity.IEntityTuplizer entityTuplizer, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
            }
            public class EntityTuplizerFactory
            {
                public NHibernate.Tuple.Entity.IEntityTuplizer BuildDefaultEntityTuplizer(NHibernate.EntityMode entityMode, NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass persistentClass) => throw null;
                public NHibernate.Tuple.Entity.IEntityTuplizer BuildEntityTuplizer(string className, NHibernate.Tuple.Entity.EntityMetamodel em, NHibernate.Mapping.PersistentClass pc) => throw null;
                public EntityTuplizerFactory() => throw null;
            }
            public interface IEntityTuplizer : NHibernate.Tuple.ITuplizer
            {
                void AfterInitialize(object entity, bool lazyPropertiesAreUnfetched, NHibernate.Engine.ISessionImplementor session);
                System.Type ConcreteProxyClass { get; }
                object CreateProxy(object id, NHibernate.Engine.ISessionImplementor session);
                object GetIdentifier(object entity);
                object GetPropertyValue(object entity, string propertyName);
                object[] GetPropertyValuesToInsert(object entity, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session);
                object GetVersion(object entity);
                bool HasProxy { get; }
                bool HasUninitializedLazyProperties(object entity);
                object Instantiate(object id);
                bool IsInstrumented { get; }
                bool IsLifecycleImplementor { get; }
                bool IsValidatableImplementor { get; }
                void ResetIdentifier(object entity, object currentId, object currentVersion);
                void SetIdentifier(object entity, object id);
                void SetPropertyValue(object entity, int i, object value);
                void SetPropertyValue(object entity, string propertyName, object value);
            }
            public class PocoEntityInstantiator : NHibernate.Tuple.PocoInstantiator
            {
                protected override object CreateInstance() => throw null;
                public PocoEntityInstantiator(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, NHibernate.Proxy.IProxyFactory proxyFactory) => throw null;
                public override bool IsInstance(object obj) => throw null;
            }
            public class PocoEntityTuplizer : NHibernate.Tuple.Entity.AbstractEntityTuplizer
            {
                public override void AfterInitialize(object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
                protected override NHibernate.Tuple.IInstantiator BuildInstantiator(NHibernate.Mapping.PersistentClass persistentClass) => throw null;
                protected override NHibernate.Properties.IGetter BuildPropertyGetter(NHibernate.Mapping.Property mappedProperty, NHibernate.Mapping.PersistentClass mappedEntity) => throw null;
                protected override NHibernate.Properties.ISetter BuildPropertySetter(NHibernate.Mapping.Property mappedProperty, NHibernate.Mapping.PersistentClass mappedEntity) => throw null;
                protected override NHibernate.Proxy.IProxyFactory BuildProxyFactory(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Properties.IGetter idGetter, NHibernate.Properties.ISetter idSetter) => throw null;
                protected virtual NHibernate.Proxy.IProxyFactory BuildProxyFactoryInternal(NHibernate.Mapping.PersistentClass @class, NHibernate.Properties.IGetter getter, NHibernate.Properties.ISetter setter) => throw null;
                protected void ClearOptimizerWhenUsingCustomAccessors() => throw null;
                public override System.Type ConcreteProxyClass { get => throw null; }
                public PocoEntityTuplizer(NHibernate.Tuple.Entity.EntityMetamodel entityMetamodel, NHibernate.Mapping.PersistentClass mappedEntity) : base(default(NHibernate.Tuple.Entity.EntityMetamodel), default(NHibernate.Mapping.PersistentClass)) => throw null;
                public override NHibernate.EntityMode EntityMode { get => throw null; }
                protected override object GetIdentifierPropertyValue(object entity) => throw null;
                public override object GetPropertyValue(object entity, int i) => throw null;
                public override object[] GetPropertyValues(object entity) => throw null;
                public override object[] GetPropertyValuesToInsert(object entity, System.Collections.IDictionary mergeMap, NHibernate.Engine.ISessionImplementor session) => throw null;
                public override bool HasUninitializedLazyProperties(object entity) => throw null;
                public override bool IsInstrumented { get => throw null; }
                public override bool IsLifecycleImplementor { get => throw null; }
                public override bool IsValidatableImplementor { get => throw null; }
                public override System.Type MappedClass { get => throw null; }
                protected override void SetIdentifierPropertyValue(object entity, object value) => throw null;
                public override void SetPropertyValue(object entity, int i, object value) => throw null;
                public override void SetPropertyValues(object entity, object[] values) => throw null;
                protected void SetReflectionOptimizer() => throw null;
            }
        }
        public class IdentifierProperty : NHibernate.Tuple.Property
        {
            public IdentifierProperty(string name, NHibernate.Type.IType type, bool embedded, NHibernate.Engine.IdentifierValue unsavedValue, NHibernate.Id.IIdentifierGenerator identifierGenerator) : base(default(string), default(NHibernate.Type.IType)) => throw null;
            public IdentifierProperty(NHibernate.Type.IType type, bool embedded, bool hasIdentifierMapper, NHibernate.Engine.IdentifierValue unsavedValue, NHibernate.Id.IIdentifierGenerator identifierGenerator) : base(default(string), default(NHibernate.Type.IType)) => throw null;
            public bool HasIdentifierMapper { get => throw null; }
            public NHibernate.Id.IIdentifierGenerator IdentifierGenerator { get => throw null; }
            public bool IsEmbedded { get => throw null; }
            public bool IsIdentifierAssignedByInsert { get => throw null; }
            public bool IsVirtual { get => throw null; }
            public NHibernate.Engine.IdentifierValue UnsavedValue { get => throw null; }
        }
        public interface IInstantiator
        {
            object Instantiate(object id);
            object Instantiate();
            bool IsInstance(object obj);
        }
        public interface ITuplizer
        {
            object GetPropertyValue(object entity, int i);
            object[] GetPropertyValues(object entity);
            object Instantiate();
            bool IsInstance(object obj);
            System.Type MappedClass { get; }
            void SetPropertyValues(object entity, object[] values);
        }
        public class PocoInstantiator : System.Runtime.Serialization.IDeserializationCallback, NHibernate.Tuple.IInstantiator
        {
            protected virtual object CreateInstance() => throw null;
            public PocoInstantiator() => throw null;
            public PocoInstantiator(NHibernate.Mapping.Component component, NHibernate.Bytecode.IInstantiationOptimizer optimizer) => throw null;
            public PocoInstantiator(NHibernate.Mapping.PersistentClass persistentClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, NHibernate.Proxy.IProxyFactory proxyFactory, bool generateFieldInterceptionProxy) => throw null;
            public PocoInstantiator(System.Type mappedClass, NHibernate.Bytecode.IInstantiationOptimizer optimizer, bool embeddedIdentifier) => throw null;
            public object Instantiate(object id) => throw null;
            public object Instantiate() => throw null;
            public virtual bool IsInstance(object obj) => throw null;
            public void OnDeserialization(object sender) => throw null;
            public void SetOptimizer(NHibernate.Bytecode.IInstantiationOptimizer optimizer) => throw null;
        }
        public abstract class Property
        {
            protected Property(string name, NHibernate.Type.IType type) => throw null;
            public string Name { get => throw null; }
            public override string ToString() => throw null;
            public NHibernate.Type.IType Type { get => throw null; }
        }
        public class PropertyFactory
        {
            public static NHibernate.Tuple.IdentifierProperty BuildIdentifierProperty(NHibernate.Mapping.PersistentClass mappedEntity, NHibernate.Id.IIdentifierGenerator generator) => throw null;
            public static NHibernate.Tuple.StandardProperty BuildStandardProperty(NHibernate.Mapping.Property property, bool lazyAvailable) => throw null;
            public static NHibernate.Tuple.VersionProperty BuildVersionProperty(NHibernate.Mapping.Property property, bool lazyAvailable) => throw null;
            public PropertyFactory() => throw null;
        }
        public class StandardProperty : NHibernate.Tuple.Property
        {
            public NHibernate.Engine.CascadeStyle CascadeStyle { get => throw null; }
            public StandardProperty(string name, NHibernate.Type.IType type, bool lazy, bool insertable, bool updateable, bool insertGenerated, bool updateGenerated, bool nullable, bool checkable, bool versionable, NHibernate.Engine.CascadeStyle cascadeStyle, NHibernate.FetchMode? fetchMode) : base(default(string), default(NHibernate.Type.IType)) => throw null;
            public NHibernate.FetchMode? FetchMode { get => throw null; }
            public bool IsDirtyCheckable(bool hasUninitializedProperties) => throw null;
            public bool IsDirtyCheckable() => throw null;
            public bool IsInsertable { get => throw null; }
            public bool IsInsertGenerated { get => throw null; }
            public bool IsLazy { get => throw null; }
            public bool IsNullable { get => throw null; }
            public bool IsUpdateable { get => throw null; }
            public bool IsUpdateGenerated { get => throw null; }
            public bool IsVersionable { get => throw null; }
        }
        public class VersionProperty : NHibernate.Tuple.StandardProperty
        {
            public VersionProperty(string name, NHibernate.Type.IType type, bool lazy, bool insertable, bool updateable, bool insertGenerated, bool updateGenerated, bool nullable, bool checkable, bool versionable, NHibernate.Engine.CascadeStyle cascadeStyle, NHibernate.Engine.VersionValue unsavedValue) : base(default(string), default(NHibernate.Type.IType), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(bool), default(NHibernate.Engine.CascadeStyle), default(NHibernate.FetchMode?)) => throw null;
            public NHibernate.Engine.VersionValue UnsavedValue { get => throw null; }
        }
    }
    namespace Type
    {
        public abstract class AbstractBinaryType : NHibernate.Type.MutableType, NHibernate.Type.ICacheAssembler, System.Collections.IComparer, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public override int Compare(object x, object y) => throw null;
            public override object DeepCopyNotNull(object value) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override int GetHashCode(object x) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public abstract override string Name { get; }
            public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected abstract object ToExternalFormat(byte[] bytes);
            protected abstract byte[] ToInternalFormat(object bytes);
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
            internal AbstractBinaryType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public abstract class AbstractCharType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
            public AbstractCharType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual object StringToObject(string xml) => throw null;
        }
        public abstract class AbstractDateTimeType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            protected virtual System.DateTime AdjustDateTime(System.DateTime dateValue) => throw null;
            public virtual System.Collections.IComparer Comparator { get => throw null; }
            protected AbstractDateTimeType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            protected AbstractDateTimeType(NHibernate.SqlTypes.SqlType sqlTypeDateTime) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual System.DateTime GetDateTime(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            protected virtual System.DateTimeKind Kind { get => throw null; }
            public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual System.DateTime Now { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public static System.DateTime Round(System.DateTime value, long resolution) => throw null;
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public abstract class AbstractEnumType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
            protected AbstractEnumType(NHibernate.SqlTypes.SqlType sqlType, System.Type enumType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public object StringToObject(string xml) => throw null;
        }
        public abstract class AbstractStringType : NHibernate.Type.ImmutableType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.UserTypes.IParameterizedType, NHibernate.Type.IType
        {
            protected System.StringComparer Comparer { get => throw null; set { } }
            public const string ComparerCultureParameterName = default;
            public AbstractStringType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public static System.StringComparer DefaultComparer { get => throw null; set { } }
            public override bool Equals(object obj) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override int GetHashCode(object x) => throw null;
            public override int GetHashCode() => throw null;
            public const string IgnoreCaseParameterName = default;
            public override bool IsEqual(object x, object y) => throw null;
            public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public void SetParameterValues(System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public abstract class AbstractType : NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            public virtual object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public virtual System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void BeforeAssemble(object cached, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task BeforeAssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual int Compare(object x, object y) => throw null;
            protected AbstractType() => throw null;
            public abstract object DeepCopy(object val, NHibernate.Engine.ISessionFactoryImplementor factory);
            public virtual object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public virtual System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Equals(object obj) => throw null;
            public abstract int GetColumnSpan(NHibernate.Engine.IMapping mapping);
            public override int GetHashCode() => throw null;
            public virtual int GetHashCode(object x) => throw null;
            public virtual int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public virtual NHibernate.Type.IType GetSemiResolvedType(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public virtual object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public virtual System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual bool IsAnyType { get => throw null; }
            public virtual bool IsAssociationType { get => throw null; }
            public virtual bool IsCollectionType { get => throw null; }
            public virtual bool IsComponentType { get => throw null; }
            public virtual bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public abstract bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session);
            public virtual System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            public virtual bool IsEntityType { get => throw null; }
            public virtual bool IsEqual(object x, object y) => throw null;
            public virtual bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public virtual bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<bool> IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract bool IsMutable { get; }
            public virtual bool IsSame(object x, object y) => throw null;
            public abstract string Name { get; }
            public abstract object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner);
            public abstract object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner);
            public abstract System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            public abstract System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            public abstract void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session);
            public abstract void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session);
            public abstract System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            public abstract System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            public virtual object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null;
            public abstract object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready);
            public virtual System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Threading.Tasks.Task<object> ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken);
            public virtual object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public virtual System.Threading.Tasks.Task<object> ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract System.Type ReturnedClass { get; }
            public virtual object SemiResolve(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public virtual System.Threading.Tasks.Task<object> SemiResolveAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping);
            public abstract bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping);
            public abstract string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory);
        }
        public class AnsiCharType : NHibernate.Type.AbstractCharType
        {
            public override string Name { get => throw null; }
            internal AnsiCharType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public class AnsiStringType : NHibernate.Type.AbstractStringType
        {
            public override string Name { get => throw null; }
            internal AnsiStringType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public class AnyType : NHibernate.Type.AbstractType, NHibernate.Type.IAbstractComponentType, NHibernate.Type.IAssociationType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int Compare(object x, object y) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get => throw null; }
            public string GetAssociatedEntityName(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.Persister.Entity.IJoinable GetAssociatedJoinable(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.Engine.CascadeStyle GetCascadeStyle(int i) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null;
            public NHibernate.FetchMode GetFetchMode(int i) => throw null;
            public override int GetHashCode() => throw null;
            public string GetOnCondition(string alias, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public object GetPropertyValue(object component, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> GetPropertyValueAsync(object component, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public object[] GetPropertyValues(object component) => throw null;
            public object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object[]> GetPropertyValuesAsync(object component, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public string[] GetReferencedColumns(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool IsAlwaysDirtyChecked { get => throw null; }
            public override bool IsAnyType { get => throw null; }
            public override bool IsAssociationType { get => throw null; }
            public override bool IsComponentType { get => throw null; }
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool IsEmbedded { get => throw null; }
            public virtual bool IsMethodOf(System.Reflection.MethodBase method) => throw null;
            public override bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsMutable { get => throw null; }
            public override bool IsSame(object x, object y) => throw null;
            public string LHSPropertyName { get => throw null; }
            public override string Name { get => throw null; }
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public sealed class ObjectTypeCacheEntry
            {
                public ObjectTypeCacheEntry() => throw null;
                public string EntityName { get => throw null; set { } }
                public object Id { get => throw null; set { } }
            }
            public string[] PropertyNames { get => throw null; }
            public bool[] PropertyNullability { get => throw null; }
            public bool ReferenceToPrimaryKey { get => throw null; }
            public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public string RHSUniqueKeyPropertyName { get => throw null; }
            public override object SemiResolve(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> SemiResolveAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public void SetPropertyValues(object component, object[] values) => throw null;
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public NHibernate.Type.IType[] Subtypes { get => throw null; }
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public bool UseLHSPrimaryKey { get => throw null; }
        }
        public class ArrayType : NHibernate.Type.CollectionType
        {
            public ArrayType(string role, string propertyRef, System.Type elementClass) : base(default(string), default(string)) => throw null;
            public override System.Collections.IEnumerable GetElementsIterator(object collection) => throw null;
            public override bool HasHolder() => throw null;
            public override object IndexOf(object collection, object element) => throw null;
            protected override bool InitializeImmediately() => throw null;
            public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
            public override object InstantiateResult(object original) => throw null;
            public override bool IsArrayType { get => throw null; }
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object array) => throw null;
        }
        public class BinaryBlobType : NHibernate.Type.BinaryType
        {
            public BinaryBlobType() => throw null;
            public override string Name { get => throw null; }
        }
        public class BinaryType : NHibernate.Type.AbstractBinaryType
        {
            public override int Compare(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            protected override object ToExternalFormat(byte[] bytes) => throw null;
            protected override byte[] ToInternalFormat(object bytes) => throw null;
        }
        public class BooleanType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
            public BooleanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public BooleanType(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            protected static readonly object FalseObject;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual object StringToObject(string xml) => throw null;
            protected static readonly object TrueObject;
        }
        public class ByteType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public ByteType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual object StringToObject(string xml) => throw null;
        }
        public abstract class CharBooleanType : NHibernate.Type.BooleanType
        {
            protected CharBooleanType(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType sqlType) => throw null;
            protected abstract string FalseString { get; }
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object StringToObject(string xml) => throw null;
            protected abstract string TrueString { get; }
        }
        public class CharType : NHibernate.Type.AbstractCharType
        {
            public override string Name { get => throw null; }
            internal CharType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public class ClassMetaType : NHibernate.Type.AbstractType
        {
            public ClassMetaType() => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsMutable { get => throw null; }
            public override string Name { get => throw null; }
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
        }
        public abstract class CollectionType : NHibernate.Type.AbstractType, NHibernate.Type.IAssociationType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            protected virtual void Add(object collection, object element) => throw null;
            protected virtual bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null;
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void BeforeAssemble(object oid, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task BeforeAssembleAsync(object oid, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual void Clear(object collection) => throw null;
            public override int Compare(object x, object y) => throw null;
            public virtual bool Contains(object collection, object childObject, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected CollectionType(string role, string foreignKeyPropertyName) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get => throw null; }
            public string GetAssociatedEntityName(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.Persister.Entity.IJoinable GetAssociatedJoinable(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public object GetCollection(object key, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public System.Threading.Tasks.Task<object> GetCollectionAsync(object key, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null;
            public virtual System.Collections.IEnumerable GetElementsIterator(object collection, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Collections.IEnumerable GetElementsIterator(object collection) => throw null;
            public NHibernate.Type.IType GetElementType(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override int GetHashCode(object x) => throw null;
            public virtual object GetIdOfOwnerOrNull(object key, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object GetKeyOfOwner(object owner, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> GetKeyOfOwnerAsync(object owner, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public string GetOnCondition(string alias, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public string[] GetReferencedColumns(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public virtual bool HasHolder() => throw null;
            public override object Hydrate(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual object IndexOf(object collection, object element) => throw null;
            protected virtual bool InitializeImmediately() => throw null;
            public abstract NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key);
            public abstract object Instantiate(int anticipatedSize);
            public virtual object InstantiateResult(object original) => throw null;
            public bool IsAlwaysDirtyChecked { get => throw null; }
            public virtual bool IsArrayType { get => throw null; }
            public override bool IsAssociationType { get => throw null; }
            public override bool IsCollectionType { get => throw null; }
            public override bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override bool IsModified(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsModifiedAsync(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsMutable { get => throw null; }
            public string LHSPropertyName { get => throw null; }
            public override string Name { get => throw null; }
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual string RenderLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object ResolveIdentifier(object key, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> ResolveIdentifierAsync(object key, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public string RHSUniqueKeyPropertyName { get => throw null; }
            public virtual string Role { get => throw null; }
            public override object SemiResolve(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> SemiResolveAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString() => throw null;
            public static readonly object UnfetchedCollection;
            public bool UseLHSPrimaryKey { get => throw null; }
            public abstract NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection);
        }
        public class ComponentType : NHibernate.Type.AbstractType, NHibernate.Type.IAbstractComponentType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            public override object Assemble(object obj, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object obj, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override int Compare(object x, object y) => throw null;
            public NHibernate.Tuple.Component.IComponentTuplizer ComponentTuplizer { get => throw null; }
            public ComponentType(NHibernate.Tuple.Component.ComponentMetamodel metamodel) => throw null;
            public override object DeepCopy(object component, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public NHibernate.EntityMode EntityMode { get => throw null; }
            public NHibernate.Engine.CascadeStyle GetCascadeStyle(int i) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public NHibernate.FetchMode GetFetchMode(int i) => throw null;
            public override int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override int GetHashCode(object x) => throw null;
            public int GetPropertyIndex(string name) => throw null;
            public object GetPropertyValue(object component, int i) => throw null;
            public object GetPropertyValue(object component, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> GetPropertyValueAsync(object component, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public object[] GetPropertyValues(object component) => throw null;
            public object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object[]> GetPropertyValuesAsync(object component, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public object Instantiate() => throw null;
            public virtual object Instantiate(object parent, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsCollectionType { get => throw null; }
            public override bool IsComponentType { get => throw null; }
            public override bool IsDirty(object x, object y, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsDirty(object x, object y, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object x, object y, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object x, object y, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual bool IsEmbedded { get => throw null; }
            public override bool IsEntityType { get => throw null; }
            public override bool IsEqual(object x, object y) => throw null;
            public override bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public virtual bool IsMethodOf(System.Reflection.MethodBase method) => throw null;
            public override bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsMutable { get => throw null; }
            public override bool IsSame(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int begin, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int begin, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int begin, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int begin, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public string[] PropertyNames { get => throw null; }
            public bool[] PropertyNullability { get => throw null; }
            public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override object SemiResolve(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> SemiResolveAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual void SetPropertyValues(object component, object[] values) => throw null;
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public NHibernate.Type.IType[] Subtypes { get => throw null; }
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
        }
        public class CompositeCustomType : NHibernate.Type.AbstractType, NHibernate.Type.IAbstractComponentType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public CompositeCustomType(System.Type userTypeClass, System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Equals(object obj) => throw null;
            public virtual NHibernate.Engine.CascadeStyle GetCascadeStyle(int i) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public virtual NHibernate.FetchMode GetFetchMode(int i) => throw null;
            public override int GetHashCode() => throw null;
            public virtual object GetPropertyValue(object component, int i, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object GetPropertyValue(object component, int i) => throw null;
            public virtual System.Threading.Tasks.Task<object> GetPropertyValueAsync(object component, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual object[] GetPropertyValues(object component) => throw null;
            public virtual System.Threading.Tasks.Task<object[]> GetPropertyValuesAsync(object component, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsComponentType { get => throw null; }
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public bool IsEmbedded { get => throw null; }
            public override bool IsEqual(object x, object y) => throw null;
            public virtual bool IsMethodOf(System.Reflection.MethodBase method) => throw null;
            public override bool IsMutable { get => throw null; }
            public override string Name { get => throw null; }
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual string[] PropertyNames { get => throw null; }
            public bool[] PropertyNullability { get => throw null; }
            public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public virtual void SetPropertyValues(object component, object[] values) => throw null;
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public virtual NHibernate.Type.IType[] Subtypes { get => throw null; }
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.UserTypes.ICompositeUserType UserType { get => throw null; }
        }
        public class CultureInfoType : NHibernate.Type.ImmutableType, NHibernate.Type.ILiteralType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object value) => throw null;
            internal CultureInfoType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public class CurrencyType : NHibernate.Type.DecimalType
        {
            public override string Name { get => throw null; }
        }
        public class CustomCollectionType : NHibernate.Type.CollectionType
        {
            public override bool Contains(object collection, object entity, NHibernate.Engine.ISessionImplementor session) => throw null;
            public CustomCollectionType(System.Type userTypeClass, string role, string foreignKeyPropertyName) : base(default(string), default(string)) => throw null;
            public override System.Collections.IEnumerable GetElementsIterator(object collection) => throw null;
            public override object IndexOf(object collection, object entity) => throw null;
            public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
            public override object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public NHibernate.UserTypes.IUserCollectionType UserType { get => throw null; }
            public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null;
        }
        public class CustomType : NHibernate.Type.AbstractType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public System.Collections.IComparer Comparator { get => throw null; }
            public CustomType(System.Type userTypeClass, System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Equals(object obj) => throw null;
            public object FromStringValue(string xml) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null;
            public override int GetHashCode() => throw null;
            public override int GetHashCode(object x) => throw null;
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override bool IsMutable { get => throw null; }
            public override string Name { get => throw null; }
            public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public object StringToObject(string xml) => throw null;
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public NHibernate.UserTypes.IUserType UserType { get => throw null; }
        }
        public class DateTime2Type : NHibernate.Type.AbstractDateTimeType
        {
            public DateTime2Type() => throw null;
            public DateTime2Type(NHibernate.SqlTypes.DateTime2SqlType sqlType) => throw null;
            public override string Name { get => throw null; }
        }
        public class DateTimeNoMsType : NHibernate.Type.AbstractDateTimeType
        {
            protected override System.DateTime AdjustDateTime(System.DateTime dateValue) => throw null;
            public DateTimeNoMsType() => throw null;
            public override int GetHashCode(object x) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class DateTimeOffsetType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public DateTimeOffsetType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public DateTimeOffsetType(NHibernate.SqlTypes.DateTimeOffsetSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public static System.DateTimeOffset Round(System.DateTimeOffset value, long resolution) => throw null;
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class DateTimeType : NHibernate.Type.AbstractDateTimeType
        {
            public DateTimeType() => throw null;
            public DateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null;
            public override string Name { get => throw null; }
        }
        public class DateType : NHibernate.Type.AbstractDateTimeType, NHibernate.UserTypes.IParameterizedType
        {
            protected override System.DateTime AdjustDateTime(System.DateTime dateValue) => throw null;
            public static readonly System.DateTime BaseDateValue;
            public const string BaseValueParameterName = default;
            public DateType() => throw null;
            public override object DefaultValue { get => throw null; }
            public override int GetHashCode(object x) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public void SetParameterValues(System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class DbTimestampType : NHibernate.Type.AbstractDateTimeType
        {
            public DbTimestampType() => throw null;
            protected virtual System.DateTime GetCurrentTimestamp(NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual System.Threading.Tasks.Task<System.DateTime> GetCurrentTimestampAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual string GetCurrentTimestampSelectString(NHibernate.Dialect.Dialect dialect) => throw null;
            public override string Name { get => throw null; }
            public override object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected virtual bool SupportsCurrentTimestampSelection(NHibernate.Dialect.Dialect dialect) => throw null;
            protected virtual System.DateTime UsePreparedStatement(string timestampSelectString, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected virtual System.Threading.Tasks.Task<System.DateTime> UsePreparedStatementAsync(string timestampSelectString, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class DecimalType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IIdentifierType, NHibernate.Type.IType
        {
            public DecimalType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public DecimalType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class DefaultCollectionTypeFactory : NHibernate.Bytecode.ICollectionTypeFactory
        {
            public virtual NHibernate.Type.CollectionType Array(string role, string propertyRef, System.Type elementClass) => throw null;
            public virtual NHibernate.Type.CollectionType Bag<T>(string role, string propertyRef) => throw null;
            public DefaultCollectionTypeFactory() => throw null;
            public virtual NHibernate.Type.CollectionType IdBag<T>(string role, string propertyRef) => throw null;
            public virtual NHibernate.Type.CollectionType List<T>(string role, string propertyRef) => throw null;
            public virtual NHibernate.Type.CollectionType Map<TKey, TValue>(string role, string propertyRef) => throw null;
            public virtual NHibernate.Type.CollectionType OrderedSet<T>(string role, string propertyRef) => throw null;
            public virtual NHibernate.Type.CollectionType Set<T>(string role, string propertyRef) => throw null;
            public virtual NHibernate.Type.CollectionType SortedDictionary<TKey, TValue>(string role, string propertyRef, System.Collections.Generic.IComparer<TKey> comparer) => throw null;
            public virtual NHibernate.Type.CollectionType SortedList<TKey, TValue>(string role, string propertyRef, System.Collections.Generic.IComparer<TKey> comparer) => throw null;
            public virtual NHibernate.Type.CollectionType SortedSet<T>(string role, string propertyRef, System.Collections.Generic.IComparer<T> comparer) => throw null;
        }
        public class DoubleType : NHibernate.Type.PrimitiveType
        {
            public DoubleType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public DoubleType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
        }
        public class EmbeddedComponentType : NHibernate.Type.ComponentType
        {
            public EmbeddedComponentType(NHibernate.Tuple.Component.ComponentMetamodel metamodel) : base(default(NHibernate.Tuple.Component.ComponentMetamodel)) => throw null;
            public override object Instantiate(object parent, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsEmbedded { get => throw null; }
        }
        public abstract class EntityType : NHibernate.Type.AbstractType, NHibernate.Type.IAssociationType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            public override int Compare(object x, object y) => throw null;
            protected EntityType(string entityName, string uniqueKeyPropertyName, bool eager, bool unwrapProxy) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public abstract NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get; }
            public virtual string GetAssociatedEntityName(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public string GetAssociatedEntityName() => throw null;
            public NHibernate.Persister.Entity.IJoinable GetAssociatedJoinable(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            protected object GetIdentifier(object value, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected System.Threading.Tasks.Task<object> GetIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public string GetIdentifierOrUniqueKeyPropertyName(NHibernate.Engine.IMapping factory) => throw null;
            public NHibernate.Type.IType GetIdentifierOrUniqueKeyType(NHibernate.Engine.IMapping factory) => throw null;
            public string GetOnCondition(string alias, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public virtual int GetOwnerColumnSpan(NHibernate.Engine.IMapping session) => throw null;
            protected object GetReferenceValue(object value, NHibernate.Engine.ISessionImplementor session) => throw null;
            protected object GetReferenceValue(object value, NHibernate.Engine.ISessionImplementor session, bool forbidDelayed) => throw null;
            protected System.Threading.Tasks.Task<object> GetReferenceValueAsync(object value, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            protected System.Threading.Tasks.Task<object> GetReferenceValueAsync(object value, NHibernate.Engine.ISessionImplementor session, bool forbidDelayed, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Type.IType GetSemiResolvedType(NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public abstract override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner);
            public abstract override System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            public abstract bool IsAlwaysDirtyChecked { get; }
            public override bool IsAssociationType { get => throw null; }
            public override sealed bool IsEntityType { get => throw null; }
            public override bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public virtual bool IsLogicalOneToOne() => throw null;
            public override bool IsMutable { get => throw null; }
            public virtual bool IsNull(object owner, NHibernate.Engine.ISessionImplementor session) => throw null;
            public abstract bool IsNullable { get; }
            public abstract bool IsOneToOne { get; }
            public bool IsReferenceToPrimaryKey { get => throw null; }
            public override bool IsSame(object x, object y) => throw null;
            public bool IsUniqueKeyReference { get => throw null; }
            public string LHSPropertyName { get => throw null; }
            public object LoadByUniqueKey(string entityName, string uniqueKeyPropertyName, object key, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> LoadByUniqueKeyAsync(string entityName, string uniqueKeyPropertyName, object key, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string Name { get => throw null; }
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override sealed object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override sealed System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public virtual string PropertyName { get => throw null; }
            public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, System.Threading.CancellationToken cancellationToken) => throw null;
            protected object ResolveIdentifier(object id, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            protected System.Threading.Tasks.Task<object> ResolveIdentifierAsync(object id, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public string RHSUniqueKeyPropertyName { get => throw null; }
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString() => throw null;
            protected readonly string uniqueKeyPropertyName;
            public abstract bool UseLHSPrimaryKey { get; }
        }
        public class EnumCharType<T> : NHibernate.Type.AbstractEnumType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public EnumCharType() : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual object GetInstance(object code) => throw null;
            public virtual object GetValue(object instance) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object value) => throw null;
        }
        public abstract class EnumStringType : NHibernate.Type.AbstractEnumType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            protected EnumStringType(System.Type enumClass) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null;
            protected EnumStringType(System.Type enumClass, int length) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual object GetInstance(object code) => throw null;
            public virtual object GetValue(object code) => throw null;
            public const int MaxLengthForEnumString = 255;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object value) => throw null;
        }
        public class EnumStringType<T> : NHibernate.Type.EnumStringType
        {
            public EnumStringType() : base(default(System.Type)) => throw null;
            public override string Name { get => throw null; }
        }
        public class EnumType<T> : NHibernate.Type.PersistentEnumType
        {
            public EnumType() : base(default(System.Type)) => throw null;
            public override string Name { get => throw null; }
        }
        public abstract class ForeignKeyDirection
        {
            public abstract bool CascadeNow(NHibernate.Engine.CascadePoint cascadePoint);
            protected ForeignKeyDirection() => throw null;
            public static NHibernate.Type.ForeignKeyDirection ForeignKeyFromParent;
            public static NHibernate.Type.ForeignKeyDirection ForeignKeyToParent;
        }
        public class GenericBagType<T> : NHibernate.Type.CollectionType
        {
            protected override void Add(object collection, object element) => throw null;
            protected override bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null;
            protected override void Clear(object collection) => throw null;
            public GenericBagType(string role, string propertyRef) : base(default(string), default(string)) => throw null;
            public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null;
        }
        public class GenericIdentifierBagType<T> : NHibernate.Type.CollectionType
        {
            protected override void Add(object collection, object element) => throw null;
            protected override bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null;
            protected override void Clear(object collection) => throw null;
            public GenericIdentifierBagType(string role, string propertyRef) : base(default(string), default(string)) => throw null;
            public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
            public override object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null;
        }
        public class GenericListType<T> : NHibernate.Type.CollectionType
        {
            protected override void Add(object collection, object element) => throw null;
            protected override void Clear(object collection) => throw null;
            public GenericListType(string role, string propertyRef) : base(default(string), default(string)) => throw null;
            public override object IndexOf(object collection, object element) => throw null;
            public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null;
        }
        public class GenericMapType<TKey, TValue> : NHibernate.Type.CollectionType
        {
            protected override void Add(object collection, object element) => throw null;
            protected override bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null;
            protected override void Clear(object collection) => throw null;
            public GenericMapType(string role, string propertyRef) : base(default(string), default(string)) => throw null;
            public override System.Collections.IEnumerable GetElementsIterator(object collection) => throw null;
            public override object IndexOf(object collection, object element) => throw null;
            public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
            public override object ReplaceElements(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceElementsAsync(object original, object target, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null;
        }
        public class GenericOrderedSetType<T> : NHibernate.Type.GenericSetType<T>
        {
            public GenericOrderedSetType(string role, string propertyRef) : base(default(string), default(string)) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
        }
        public class GenericSetType<T> : NHibernate.Type.CollectionType
        {
            protected override void Add(object collection, object element) => throw null;
            protected override bool AreCollectionElementsEqual(System.Collections.IEnumerable original, System.Collections.IEnumerable target) => throw null;
            protected override void Clear(object collection) => throw null;
            public GenericSetType(string role, string propertyRef) : base(default(string), default(string)) => throw null;
            public override NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister, object key) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection) => throw null;
        }
        public class GenericSortedDictionaryType<TKey, TValue> : NHibernate.Type.GenericMapType<TKey, TValue>
        {
            public System.Collections.Generic.IComparer<TKey> Comparer { get => throw null; }
            public GenericSortedDictionaryType(string role, string propertyRef, System.Collections.Generic.IComparer<TKey> comparer) : base(default(string), default(string)) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
        }
        public class GenericSortedListType<TKey, TValue> : NHibernate.Type.GenericMapType<TKey, TValue>
        {
            public System.Collections.Generic.IComparer<TKey> Comparer { get => throw null; }
            public GenericSortedListType(string role, string propertyRef, System.Collections.Generic.IComparer<TKey> comparer) : base(default(string), default(string)) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
        }
        public class GenericSortedSetType<T> : NHibernate.Type.GenericSetType<T>
        {
            public System.Collections.Generic.IComparer<T> Comparer { get => throw null; }
            public GenericSortedSetType(string role, string propertyRef, System.Collections.Generic.IComparer<T> comparer) : base(default(string), default(string)) => throw null;
            public override object Instantiate(int anticipatedSize) => throw null;
        }
        public class GuidType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
            public GuidType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public interface IAbstractComponentType : NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            NHibernate.Engine.CascadeStyle GetCascadeStyle(int i);
            NHibernate.FetchMode GetFetchMode(int i);
            object GetPropertyValue(object component, int i, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<object> GetPropertyValueAsync(object component, int i, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            object[] GetPropertyValues(object component, NHibernate.Engine.ISessionImplementor session);
            object[] GetPropertyValues(object component);
            System.Threading.Tasks.Task<object[]> GetPropertyValuesAsync(object component, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            bool IsEmbedded { get; }
            bool IsMethodOf(System.Reflection.MethodBase method);
            string[] PropertyNames { get; }
            bool[] PropertyNullability { get; }
            void SetPropertyValues(object component, object[] values);
            NHibernate.Type.IType[] Subtypes { get; }
        }
        public interface IAssociationType : NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get; }
            string GetAssociatedEntityName(NHibernate.Engine.ISessionFactoryImplementor factory);
            NHibernate.Persister.Entity.IJoinable GetAssociatedJoinable(NHibernate.Engine.ISessionFactoryImplementor factory);
            string GetOnCondition(string alias, NHibernate.Engine.ISessionFactoryImplementor factory, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters);
            bool IsAlwaysDirtyChecked { get; }
            string LHSPropertyName { get; }
            string RHSUniqueKeyPropertyName { get; }
            bool UseLHSPrimaryKey { get; }
        }
        public interface ICacheAssembler
        {
            object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner);
            System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            void BeforeAssemble(object cached, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task BeforeAssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner);
            System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
        }
        public interface IDiscriminatorType : NHibernate.Type.ICacheAssembler, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
        }
        public interface IIdentifierType : NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            object StringToObject(string xml);
        }
        public interface ILiteralType
        {
            string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect);
        }
        public abstract class ImmutableType : NHibernate.Type.NullableType
        {
            protected ImmutableType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override sealed bool IsMutable { get => throw null; }
            public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class Int16Type : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public Int16Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class Int32Type : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public Int32Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class Int64Type : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public Int64Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public interface IType : NHibernate.Type.ICacheAssembler
        {
            int Compare(object x, object y);
            object DeepCopy(object val, NHibernate.Engine.ISessionFactoryImplementor factory);
            int GetColumnSpan(NHibernate.Engine.IMapping mapping);
            int GetHashCode(object x);
            int GetHashCode(object x, NHibernate.Engine.ISessionFactoryImplementor factory);
            NHibernate.Type.IType GetSemiResolvedType(NHibernate.Engine.ISessionFactoryImplementor factory);
            object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner);
            System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            bool IsAnyType { get; }
            bool IsAssociationType { get; }
            bool IsCollectionType { get; }
            bool IsComponentType { get; }
            bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session);
            bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            bool IsEntityType { get; }
            bool IsEqual(object x, object y);
            bool IsEqual(object x, object y, NHibernate.Engine.ISessionFactoryImplementor factory);
            bool IsModified(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<bool> IsModifiedAsync(object oldHydratedState, object currentState, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            bool IsMutable { get; }
            bool IsSame(object x, object y);
            string Name { get; }
            object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner);
            object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner);
            System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session);
            void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready);
            object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection);
            System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken);
            System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken);
            object ResolveIdentifier(object value, NHibernate.Engine.ISessionImplementor session, object owner);
            System.Threading.Tasks.Task<object> ResolveIdentifierAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            System.Type ReturnedClass { get; }
            object SemiResolve(object value, NHibernate.Engine.ISessionImplementor session, object owner);
            System.Threading.Tasks.Task<object> SemiResolveAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken);
            NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping);
            bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping);
            string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory);
        }
        public interface IVersionType : NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            System.Collections.IComparer Comparator { get; }
            object FromStringValue(string xml);
            object Next(object current, NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
            object Seed(NHibernate.Engine.ISessionImplementor session);
            System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken);
        }
        public class LocalDateTimeNoMsType : NHibernate.Type.DateTimeNoMsType
        {
            public LocalDateTimeNoMsType() => throw null;
            protected override System.DateTimeKind Kind { get => throw null; }
            public override string Name { get => throw null; }
        }
        public class LocalDateTimeType : NHibernate.Type.DateTimeType
        {
            public LocalDateTimeType() => throw null;
            public LocalDateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null;
            protected override System.DateTimeKind Kind { get => throw null; }
            public override string Name { get => throw null; }
        }
        public class LocalDateType : NHibernate.Type.DateType
        {
            public LocalDateType() => throw null;
            protected override System.DateTimeKind Kind { get => throw null; }
        }
        public class ManyToOneType : NHibernate.Type.EntityType
        {
            public override object Assemble(object oid, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object oid, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void BeforeAssemble(object oid, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task BeforeAssembleAsync(object oid, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public ManyToOneType(string className) : base(default(string), default(string), default(bool), default(bool)) => throw null;
            public ManyToOneType(string className, bool lazy) : base(default(string), default(string), default(bool), default(bool)) => throw null;
            public ManyToOneType(string entityName, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne) : base(default(string), default(string), default(bool), default(bool)) => throw null;
            public ManyToOneType(string entityName, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne, string propertyName) : base(default(string), default(string), default(bool), default(bool)) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get => throw null; }
            public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsAlwaysDirtyChecked { get => throw null; }
            public override bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsLogicalOneToOne() => throw null;
            public override bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsNull(object owner, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsNullable { get => throw null; }
            public override bool IsOneToOne { get => throw null; }
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string PropertyName { get => throw null; }
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override bool UseLHSPrimaryKey { get => throw null; }
        }
        public class MetaType : NHibernate.Type.AbstractType
        {
            public MetaType(System.Collections.Generic.IDictionary<object, string> values, NHibernate.Type.IType baseType) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsMutable { get => throw null; }
            public override string Name { get => throw null; }
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Replace(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object current, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
        }
        public abstract class MutableType : NHibernate.Type.NullableType
        {
            protected MutableType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DeepCopy(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public abstract object DeepCopyNotNull(object value);
            public override sealed bool IsMutable { get => throw null; }
            public override object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public override System.Threading.Tasks.Task<object> ReplaceAsync(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public abstract class NullableType : NHibernate.Type.AbstractType
        {
            protected NullableType(NHibernate.SqlTypes.SqlType sqlType) => throw null;
            public override bool Equals(object obj) => throw null;
            public virtual object FromStringValue(string xml) => throw null;
            public abstract object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session);
            public abstract object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session);
            public override sealed int GetColumnSpan(NHibernate.Engine.IMapping session) => throw null;
            public override int GetHashCode() => throw null;
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override sealed object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public virtual object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override sealed object NullSafeGet(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override sealed System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override sealed System.Threading.Tasks.Task<object> NullSafeGetAsync(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override sealed void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override sealed System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public abstract void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session);
            public virtual NHibernate.SqlTypes.SqlType SqlType { get => throw null; }
            public override sealed NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public virtual string ToString(object val) => throw null;
            public override string ToString() => throw null;
        }
        public class OneToOneType : NHibernate.Type.EntityType, NHibernate.Type.IAssociationType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public OneToOneType(string referencedEntityName, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) : base(default(string), default(string), default(bool), default(bool)) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.Type.ForeignKeyDirection ForeignKeyDirection { get => throw null; }
            public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public override int GetOwnerColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsAlwaysDirtyChecked { get => throw null; }
            public override bool IsDirty(object old, object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsDirty(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task<bool> IsDirtyAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsModified(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<bool> IsModifiedAsync(object old, object current, bool[] checkable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool IsNull(object owner, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsNullable { get => throw null; }
            public override bool IsOneToOne { get => throw null; }
            public override void NullSafeSet(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand st, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override System.Threading.Tasks.Task NullSafeSetAsync(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string PropertyName { get => throw null; }
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool[] ToColumnNullness(object value, NHibernate.Engine.IMapping mapping) => throw null;
            public override bool UseLHSPrimaryKey { get => throw null; }
        }
        public class PersistentEnumType : NHibernate.Type.AbstractEnumType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public PersistentEnumType(System.Type enumClass) : base(default(NHibernate.SqlTypes.SqlType), default(System.Type)) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override bool Equals(object obj) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static NHibernate.Type.PersistentEnumType.IEnumConverter GetEnumCoverter(System.Type enumClass) => throw null;
            public override int GetHashCode() => throw null;
            public virtual object GetInstance(object code) => throw null;
            public virtual object GetValue(object code) => throw null;
            public interface IEnumConverter
            {
                NHibernate.SqlTypes.SqlType SqlType { get; }
                object ToEnumValue(object value);
                object ToObject(System.Type enumClass, object code);
            }
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object value) => throw null;
        }
        public abstract class PrimitiveType : NHibernate.Type.ImmutableType, NHibernate.Type.ILiteralType
        {
            protected PrimitiveType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public abstract object DefaultValue { get; }
            public abstract string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect);
            public abstract System.Type PrimitiveClass { get; }
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class SByteType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public SByteType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class SerializableType : NHibernate.Type.MutableType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object DeepCopyNotNull(object value) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public object FromBytes(byte[] bytes) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override int GetHashCode(object x) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object value) => throw null;
            internal SerializableType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public class SerializationException : NHibernate.HibernateException
        {
            public SerializationException() => throw null;
            public SerializationException(string message) => throw null;
            public SerializationException(string message, System.Exception e) => throw null;
            protected SerializationException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public class SingleType : NHibernate.Type.PrimitiveType
        {
            public SingleType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public SingleType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class SpecialOneToOneType : NHibernate.Type.OneToOneType
        {
            public SpecialOneToOneType(string referencedEntityName, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) : base(default(string), default(NHibernate.Type.ForeignKeyDirection), default(string), default(bool), default(bool), default(string), default(string)) => throw null;
            public override int GetColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public override int GetOwnerColumnSpan(NHibernate.Engine.IMapping mapping) => throw null;
            public override object Hydrate(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> HydrateAsync(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override NHibernate.SqlTypes.SqlType[] SqlTypes(NHibernate.Engine.IMapping mapping) => throw null;
            public override bool UseLHSPrimaryKey { get => throw null; }
        }
        public class StringClobType : NHibernate.Type.StringType
        {
            public override string Name { get => throw null; }
        }
        public class StringType : NHibernate.Type.AbstractStringType
        {
            public override string Name { get => throw null; }
            internal StringType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public class TicksType : NHibernate.Type.AbstractDateTimeType
        {
            public TicksType() => throw null;
            public override object FromStringValue(string xml) => throw null;
            protected override System.DateTime GetDateTime(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public override System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class TimeAsTimeSpanType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public TimeAsTimeSpanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public TimeAsTimeSpanType(NHibernate.SqlTypes.TimeSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class TimeSpanType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public TimeSpanType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class TimestampType : NHibernate.Type.AbstractDateTimeType
        {
            public TimestampType() => throw null;
            public override string Name { get => throw null; }
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class TimeType : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
            public TimeType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public TimeType(NHibernate.SqlTypes.TimeSqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override int GetHashCode(object x) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand st, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class TrueFalseType : NHibernate.Type.CharBooleanType
        {
            protected override sealed string FalseString { get => throw null; }
            public override string Name { get => throw null; }
            protected override sealed string TrueString { get => throw null; }
            internal TrueFalseType() : base(default(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType)) { }
        }
        public static class TypeFactory
        {
            public static NHibernate.Type.CollectionType Array(string role, string propertyRef, System.Type elementClass) => throw null;
            public static NHibernate.Type.IType Basic(string name) => throw null;
            public static NHibernate.Type.IType Basic(string name, System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public static void ClearCustomRegistrations() => throw null;
            public static NHibernate.Type.CollectionType CustomCollection(string typeName, System.Collections.Generic.IDictionary<string, string> typeParameters, string role, string propertyRef) => throw null;
            public static readonly string[] EmptyAliases;
            public static NHibernate.Type.CollectionType GenericBag(string role, string propertyRef, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericIdBag(string role, string propertyRef, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericList(string role, string propertyRef, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericMap(string role, string propertyRef, System.Type indexClass, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericOrderedSet(string role, string propertyRef, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericSet(string role, string propertyRef, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericSortedDictionary(string role, string propertyRef, object comparer, System.Type indexClass, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericSortedList(string role, string propertyRef, object comparer, System.Type indexClass, System.Type elementClass) => throw null;
            public static NHibernate.Type.CollectionType GenericSortedSet(string role, string propertyRef, object comparer, System.Type elementClass) => throw null;
            public static NHibernate.Type.NullableType GetAnsiStringType(int length) => throw null;
            public static NHibernate.Type.NullableType GetBinaryType(int length) => throw null;
            public static NHibernate.Type.NullableType GetDateTime2Type(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.Type.NullableType GetDateTimeOffsetType(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.Type.NullableType GetDateTimeType(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.Type.IType GetDefaultTypeFor(System.Type type) => throw null;
            public static NHibernate.Type.NullableType GetLocalDateTimeType(byte fractionalSecondsPrecision) => throw null;
            public delegate NHibernate.Type.NullableType GetNullableTypeWithLengthOrScale(int lengthOrScale);
            public delegate NHibernate.Type.NullableType GetNullableTypeWithPrecision(byte precision, byte scale);
            public static NHibernate.Type.NullableType GetSerializableType(System.Type serializableType) => throw null;
            public static NHibernate.Type.NullableType GetSerializableType(System.Type serializableType, int length) => throw null;
            public static NHibernate.Type.NullableType GetSerializableType(int length) => throw null;
            public static NHibernate.Type.NullableType GetStringType(int length) => throw null;
            public static NHibernate.Type.NullableType GetTimeAsTimeSpanType(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.Type.NullableType GetTimeType(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.Type.NullableType GetTypeType(int length) => throw null;
            public static NHibernate.Type.NullableType GetUtcDateTimeType(byte fractionalSecondsPrecision) => throw null;
            public static NHibernate.Type.IType HeuristicType(string typeName) => throw null;
            public static NHibernate.Type.IType HeuristicType(System.Type type) => throw null;
            public static NHibernate.Type.IType HeuristicType(string typeName, System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public static NHibernate.Type.IType HeuristicType(string typeName, System.Collections.Generic.IDictionary<string, string> parameters, int? length) => throw null;
            public static void InjectParameters(object type, System.Collections.Generic.IDictionary<string, string> parameters) => throw null;
            public static NHibernate.Type.EntityType ManyToOne(string persistentClass) => throw null;
            public static NHibernate.Type.EntityType ManyToOne(string persistentClass, bool lazy) => throw null;
            public static NHibernate.Type.EntityType ManyToOne(string persistentClass, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne, string propertyName) => throw null;
            public static NHibernate.Type.EntityType ManyToOne(string persistentClass, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, bool ignoreNotFound, bool isLogicalOneToOne) => throw null;
            public static NHibernate.Type.EntityType OneToOne(string persistentClass, NHibernate.Type.ForeignKeyDirection foreignKeyType, string uniqueKeyPropertyName, bool lazy, bool unwrapProxy, string entityName, string propertyName) => throw null;
            public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable<string> aliases) => throw null;
            public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable<string> aliases, NHibernate.Type.TypeFactory.GetNullableTypeWithLengthOrScale ctorLengthOrScale) => throw null;
            public static void RegisterType(System.Type systemType, NHibernate.Type.IType nhibernateType, System.Collections.Generic.IEnumerable<string> aliases, NHibernate.Type.TypeFactory.GetNullableTypeWithPrecision ctorPrecision) => throw null;
        }
        public static class TypeHelper
        {
            public static object[] Assemble(object[] row, NHibernate.Type.ICacheAssembler[] types, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public static System.Threading.Tasks.Task<object[]> AssembleAsync(object[] row, NHibernate.Type.ICacheAssembler[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public static void BeforeAssemble(object[] row, NHibernate.Type.ICacheAssembler[] types, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task BeforeAssembleAsync(object[] row, NHibernate.Type.ICacheAssembler[] types, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static void DeepCopy(object[] values, NHibernate.Type.IType[] types, bool[] copy, object[] target, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static object[] Disassemble(object[] row, NHibernate.Type.ICacheAssembler[] types, bool[] nonCacheable, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public static System.Threading.Tasks.Task<object[]> DisassembleAsync(object[] row, NHibernate.Type.ICacheAssembler[] types, bool[] nonCacheable, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public static readonly NHibernate.Type.IType[] EmptyTypeArray;
            public static int[] FindDirty(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, bool anyUninitializedProperties, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static int[] FindDirty(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<int[]> FindDirtyAsync(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, bool anyUninitializedProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static System.Threading.Tasks.Task<int[]> FindDirtyAsync(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static int[] FindModified(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, bool anyUninitializedProperties, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static int[] FindModified(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, NHibernate.Engine.ISessionImplementor session) => throw null;
            public static System.Threading.Tasks.Task<int[]> FindModifiedAsync(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, bool anyUninitializedProperties, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static System.Threading.Tasks.Task<int[]> FindModifiedAsync(NHibernate.Tuple.StandardProperty[] properties, object[] currentState, object[] previousState, bool[][] includeColumns, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public static object[] Replace(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready) => throw null;
            public static object[] Replace(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null;
            public static object[] ReplaceAssociations(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection) => throw null;
            public static System.Threading.Tasks.Task<object[]> ReplaceAssociationsAsync(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null;
            public static System.Threading.Tasks.Task<object[]> ReplaceAsync(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copiedAlready, System.Threading.CancellationToken cancellationToken) => throw null;
            public static System.Threading.Tasks.Task<object[]> ReplaceAsync(object[] original, object[] target, NHibernate.Type.IType[] types, NHibernate.Engine.ISessionImplementor session, object owner, System.Collections.IDictionary copyCache, NHibernate.Type.ForeignKeyDirection foreignKeyDirection, System.Threading.CancellationToken cancellationToken) => throw null;
        }
        public class TypeType : NHibernate.Type.ImmutableType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override NHibernate.SqlTypes.SqlType SqlType { get => throw null; }
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object value) => throw null;
            internal TypeType() : base(default(NHibernate.SqlTypes.SqlType)) { }
        }
        public class UInt16Type : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public UInt16Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class UInt32Type : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public UInt32Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class UInt64Type : NHibernate.Type.PrimitiveType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType, NHibernate.Type.IVersionType
        {
            public System.Collections.IComparer Comparator { get => throw null; }
            public UInt64Type() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DefaultValue { get => throw null; }
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public virtual object Next(object current, NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> NextAsync(object current, NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type PrimitiveClass { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public virtual object Seed(NHibernate.Engine.ISessionImplementor session) => throw null;
            public virtual System.Threading.Tasks.Task<object> SeedAsync(NHibernate.Engine.ISessionImplementor session, System.Threading.CancellationToken cancellationToken) => throw null;
            public override void Set(System.Data.Common.DbCommand rs, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
        }
        public class UriType : NHibernate.Type.ImmutableType, NHibernate.Type.ICacheAssembler, NHibernate.Type.IDiscriminatorType, NHibernate.Type.IIdentifierType, NHibernate.Type.ILiteralType, NHibernate.Type.IType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public UriType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public UriType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string Name { get => throw null; }
            public string ObjectToSQLString(object value, NHibernate.Dialect.Dialect dialect) => throw null;
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public object StringToObject(string xml) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class UtcDateTimeNoMsType : NHibernate.Type.DateTimeNoMsType
        {
            public UtcDateTimeNoMsType() => throw null;
            protected override System.DateTimeKind Kind { get => throw null; }
            public override string Name { get => throw null; }
        }
        public class UtcDateTimeType : NHibernate.Type.DateTimeType
        {
            public UtcDateTimeType() => throw null;
            public UtcDateTimeType(NHibernate.SqlTypes.DateTimeSqlType sqlType) => throw null;
            protected override System.DateTimeKind Kind { get => throw null; }
            public override string Name { get => throw null; }
        }
        public class UtcDbTimestampType : NHibernate.Type.DbTimestampType
        {
            public UtcDbTimestampType() => throw null;
            protected override string GetCurrentTimestampSelectString(NHibernate.Dialect.Dialect dialect) => throw null;
            protected override System.DateTimeKind Kind { get => throw null; }
            public override string Name { get => throw null; }
            protected override bool SupportsCurrentTimestampSelection(NHibernate.Dialect.Dialect dialect) => throw null;
        }
        public class UtcTicksType : NHibernate.Type.TicksType
        {
            public UtcTicksType() => throw null;
            protected override System.DateTimeKind Kind { get => throw null; }
            public override string Name { get => throw null; }
        }
        public class XDocType : NHibernate.Type.MutableType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public XDocType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public XDocType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DeepCopyNotNull(object value) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class XmlDocType : NHibernate.Type.MutableType
        {
            public override object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> AssembleAsync(object cached, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public XmlDocType() : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public XmlDocType(NHibernate.SqlTypes.SqlType sqlType) : base(default(NHibernate.SqlTypes.SqlType)) => throw null;
            public override object DeepCopyNotNull(object value) => throw null;
            public override object Disassemble(object value, NHibernate.Engine.ISessionImplementor session, object owner) => throw null;
            public override System.Threading.Tasks.Task<object> DisassembleAsync(object value, NHibernate.Engine.ISessionImplementor session, object owner, System.Threading.CancellationToken cancellationToken) => throw null;
            public override object FromStringValue(string xml) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override object Get(System.Data.Common.DbDataReader rs, string name, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override bool IsEqual(object x, object y) => throw null;
            public override string Name { get => throw null; }
            public override System.Type ReturnedClass { get => throw null; }
            public override void Set(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session) => throw null;
            public override string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory) => throw null;
            public override string ToString(object val) => throw null;
        }
        public class YesNoType : NHibernate.Type.CharBooleanType
        {
            public YesNoType() : base(default(NHibernate.SqlTypes.AnsiStringFixedLengthSqlType)) => throw null;
            protected override sealed string FalseString { get => throw null; }
            public override string Name { get => throw null; }
            protected override sealed string TrueString { get => throw null; }
        }
    }
    public class TypeMismatchException : NHibernate.HibernateException
    {
        public TypeMismatchException(string message) => throw null;
        public TypeMismatchException(string message, System.Exception inner) => throw null;
        protected TypeMismatchException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
    }
    public class UnresolvableObjectException : NHibernate.HibernateException
    {
        public UnresolvableObjectException(object identifier, System.Type clazz) => throw null;
        public UnresolvableObjectException(object identifier, string entityName) => throw null;
        public UnresolvableObjectException(string message, object identifier, System.Type clazz) => throw null;
        public UnresolvableObjectException(string message, object identifier, string entityName) => throw null;
        protected UnresolvableObjectException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public string EntityName { get => throw null; }
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public object Identifier { get => throw null; }
        public override string Message { get => throw null; }
        public System.Type PersistentClass { get => throw null; }
        public static void ThrowIfNull(object o, object id, System.Type clazz) => throw null;
        public static void ThrowIfNull(object o, object id, string entityName) => throw null;
    }
    namespace UserTypes
    {
        public interface ICompositeUserType
        {
            object Assemble(object cached, NHibernate.Engine.ISessionImplementor session, object owner);
            object DeepCopy(object value);
            object Disassemble(object value, NHibernate.Engine.ISessionImplementor session);
            bool Equals(object x, object y);
            int GetHashCode(object x);
            object GetPropertyValue(object component, int property);
            bool IsMutable { get; }
            object NullSafeGet(System.Data.Common.DbDataReader dr, string[] names, NHibernate.Engine.ISessionImplementor session, object owner);
            void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, bool[] settable, NHibernate.Engine.ISessionImplementor session);
            string[] PropertyNames { get; }
            NHibernate.Type.IType[] PropertyTypes { get; }
            object Replace(object original, object target, NHibernate.Engine.ISessionImplementor session, object owner);
            System.Type ReturnedClass { get; }
            void SetPropertyValue(object component, int property, object value);
        }
        public interface IEnhancedUserType : NHibernate.UserTypes.IUserType
        {
            object FromXMLString(string xml);
            string ObjectToSQLString(object value);
            string ToXMLString(object value);
        }
        public interface ILoggableUserType
        {
            string ToLoggableString(object value, NHibernate.Engine.ISessionFactoryImplementor factory);
        }
        public interface IParameterizedType
        {
            void SetParameterValues(System.Collections.Generic.IDictionary<string, string> parameters);
        }
        public interface IUserCollectionType
        {
            bool Contains(object collection, object entity);
            System.Collections.IEnumerable GetElements(object collection);
            object IndexOf(object collection, object entity);
            NHibernate.Collection.IPersistentCollection Instantiate(NHibernate.Engine.ISessionImplementor session, NHibernate.Persister.Collection.ICollectionPersister persister);
            object Instantiate(int anticipatedSize);
            object ReplaceElements(object original, object target, NHibernate.Persister.Collection.ICollectionPersister persister, object owner, System.Collections.IDictionary copyCache, NHibernate.Engine.ISessionImplementor session);
            NHibernate.Collection.IPersistentCollection Wrap(NHibernate.Engine.ISessionImplementor session, object collection);
        }
        public interface IUserType
        {
            object Assemble(object cached, object owner);
            object DeepCopy(object value);
            object Disassemble(object value);
            bool Equals(object x, object y);
            int GetHashCode(object x);
            bool IsMutable { get; }
            object NullSafeGet(System.Data.Common.DbDataReader rs, string[] names, NHibernate.Engine.ISessionImplementor session, object owner);
            void NullSafeSet(System.Data.Common.DbCommand cmd, object value, int index, NHibernate.Engine.ISessionImplementor session);
            object Replace(object original, object target, object owner);
            System.Type ReturnedType { get; }
            NHibernate.SqlTypes.SqlType[] SqlTypes { get; }
        }
        public interface IUserVersionType : System.Collections.IComparer, NHibernate.UserTypes.IUserType
        {
            object Next(object current, NHibernate.Engine.ISessionImplementor session);
            object Seed(NHibernate.Engine.ISessionImplementor session);
        }
    }
    namespace Util
    {
        public class ADOExceptionReporter
        {
            public const string DefaultExceptionMsg = default;
            public static void LogExceptions(System.Exception ex) => throw null;
            public static void LogExceptions(System.Exception ex, string message) => throw null;
        }
        public static class ArrayHelper
        {
            public static void AddAll(System.Collections.IList to, System.Collections.IList from) => throw null;
            public static void AddAll<T>(System.Collections.Generic.IList<T> to, System.Collections.Generic.IList<T> from) => throw null;
            public static void AddAll<TKey, TValue>(System.Collections.Generic.IDictionary<TKey, TValue> to, System.Collections.Generic.IDictionary<TKey, TValue> from) => throw null;
            public static System.Collections.Generic.IDictionary<TKey, TValue> AddOrOverride<TKey, TValue>(this System.Collections.Generic.IDictionary<TKey, TValue> destination, System.Collections.Generic.IDictionary<TKey, TValue> sourceOverride) => throw null;
            public static bool ArrayEquals<T>(T[] a, T[] b) => throw null;
            public static bool ArrayEquals(byte[] a, byte[] b) => throw null;
            public static int ArrayGetHashCode<T>(T[] array) => throw null;
            public static int CountTrue(bool[] array) => throw null;
            public static bool[] EmptyBoolArray { get => throw null; }
            public static int[] EmptyIntArray { get => throw null; }
            public static object[] EmptyObjectArray { get => throw null; }
            public static readonly bool[] False;
            public static T[] Fill<T>(T value, int length) => throw null;
            public static void Fill<T>(T[] array, T value) => throw null;
            public static int[] GetBatchSizes(int maxBatchSize) => throw null;
            public static bool IsAllFalse(bool[] array) => throw null;
            public static bool IsAllNegative(int[] array) => throw null;
            public static T[] Join<T>(T[] x, T[] y, bool[] use) => throw null;
            public static T[] Join<T>(T[] x, T[] y) => throw null;
            public static T[] Slice<T>(T[] strings, int begin, int length) => throw null;
            public static string ToString(object[] array) => throw null;
            public static readonly bool[] True;
        }
        public class AssemblyQualifiedTypeName
        {
            public string Assembly { get => throw null; }
            public AssemblyQualifiedTypeName(string type, string assembly) => throw null;
            public override bool Equals(object obj) => throw null;
            public bool Equals(NHibernate.Util.AssemblyQualifiedTypeName obj) => throw null;
            public override int GetHashCode() => throw null;
            public override string ToString() => throw null;
            public string Type { get => throw null; }
        }
        public sealed class AsyncLock
        {
            public AsyncLock() => throw null;
            public System.IDisposable Lock() => throw null;
            public System.Threading.Tasks.Task<System.IDisposable> LockAsync() => throw null;
        }
        public static class CollectionHelper
        {
            public static bool BagEquals<T>(System.Collections.Generic.IEnumerable<T> c1, System.Collections.Generic.IEnumerable<T> c2) => throw null;
            public static bool BagEquals<T>(System.Collections.Generic.IEnumerable<T> c1, System.Collections.Generic.IEnumerable<T> c2, System.Collections.Generic.IEqualityComparer<T> comparer) => throw null;
            public static bool CollectionEquals(System.Collections.ICollection c1, System.Collections.ICollection c2) => throw null;
            public static bool CollectionEquals<T>(System.Collections.Generic.ICollection<T> c1, System.Collections.Generic.ICollection<T> c2) => throw null;
            public static System.Collections.Generic.IDictionary<string, T> CreateCaseInsensitiveHashtable<T>() => throw null;
            public static System.Collections.Generic.IDictionary<string, T> CreateCaseInsensitiveHashtable<T>(System.Collections.Generic.IDictionary<string, T> dictionary) => throw null;
            public static bool DictionaryEquals(System.Collections.IDictionary a, System.Collections.IDictionary b) => throw null;
            public static bool DictionaryEquals<K, V>(System.Collections.Generic.IDictionary<K, V> m1, System.Collections.Generic.IDictionary<K, V> m2) => throw null;
            public static bool DictionaryEquals<K, V>(System.Collections.Generic.IDictionary<K, V> m1, System.Collections.Generic.IDictionary<K, V> m2, System.Collections.Generic.IEqualityComparer<V> comparer) => throw null;
            public static readonly System.Collections.ICollection EmptyCollection;
            public static System.Collections.Generic.IDictionary<TKey, TValue> EmptyDictionary<TKey, TValue>() => throw null;
            public static readonly System.Collections.IEnumerable EmptyEnumerable;
            public class EmptyEnumerableClass<T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
            {
                public EmptyEnumerableClass() => throw null;
                System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerable<T>.GetEnumerator() => throw null;
                public System.Collections.IEnumerator GetEnumerator() => throw null;
            }
            public static readonly System.Collections.IList EmptyList;
            public static readonly System.Collections.IDictionary EmptyMap;
            public class EmptyMapClass<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable
            {
                public void Add(TKey key, TValue value) => throw null;
                public void Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
                public void Clear() => throw null;
                public bool Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
                public bool ContainsKey(TKey key) => throw null;
                public void CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) => throw null;
                public int Count { get => throw null; }
                public EmptyMapClass() => throw null;
                System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>.GetEnumerator() => throw null;
                public System.Collections.IEnumerator GetEnumerator() => throw null;
                public bool IsReadOnly { get => throw null; }
                public System.Collections.Generic.ICollection<TKey> Keys { get => throw null; }
                public bool Remove(TKey key) => throw null;
                public bool Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
                public TValue this[TKey key] { get => throw null; set { } }
                public bool TryGetValue(TKey key, out TValue value) => throw null;
                public System.Collections.Generic.ICollection<TValue> Values { get => throw null; }
            }
            public static int GetHashCode(System.Collections.IEnumerable coll) => throw null;
            public static int GetHashCode<T>(System.Collections.Generic.IEnumerable<T> coll) => throw null;
            public static int GetHashCode<T>(System.Collections.Generic.IEnumerable<T> coll, System.Collections.Generic.IEqualityComparer<T> comparer) => throw null;
            public static bool SequenceEquals<T>(System.Collections.Generic.IEnumerable<T> c1, System.Collections.Generic.IEnumerable<T> c2) => throw null;
            public static bool SequenceEquals<T>(System.Collections.Generic.IEnumerable<T> c1, System.Collections.Generic.IEnumerable<T> c2, System.Collections.Generic.IEqualityComparer<T> comparer) => throw null;
            public static bool SetEquals<T>(System.Collections.Generic.ISet<T> s1, System.Collections.Generic.ISet<T> s2) => throw null;
        }
        public static class CollectionPrinter
        {
            public static string ToString(System.Collections.IDictionary dictionary) => throw null;
            public static string ToString(System.Collections.Generic.IDictionary<string, string> dictionary) => throw null;
            public static string ToString(System.Collections.IEnumerable elements) => throw null;
        }
        public sealed class DynamicComponent : System.Dynamic.DynamicObject, System.Collections.ICollection, System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IDictionary, System.Collections.Generic.IDictionary<string, object>, System.Collections.IEnumerable, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>, System.Runtime.Serialization.ISerializable
        {
            void System.Collections.IDictionary.Add(object key, object value) => throw null;
            void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Add(System.Collections.Generic.KeyValuePair<string, object> item) => throw null;
            void System.Collections.Generic.IDictionary<string, object>.Add(string key, object value) => throw null;
            void System.Collections.IDictionary.Clear() => throw null;
            void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Clear() => throw null;
            bool System.Collections.IDictionary.Contains(object key) => throw null;
            bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Contains(System.Collections.Generic.KeyValuePair<string, object> item) => throw null;
            bool System.Collections.Generic.IDictionary<string, object>.ContainsKey(string key) => throw null;
            void System.Collections.ICollection.CopyTo(System.Array array, int index) => throw null;
            void System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.CopyTo(System.Collections.Generic.KeyValuePair<string, object>[] array, int arrayIndex) => throw null;
            int System.Collections.ICollection.Count { get => throw null; }
            int System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Count { get => throw null; }
            public DynamicComponent() => throw null;
            public override System.Collections.Generic.IEnumerable<string> GetDynamicMemberNames() => throw null;
            System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<string, object>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string, object>>.GetEnumerator() => throw null;
            void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
            bool System.Collections.IDictionary.IsFixedSize { get => throw null; }
            bool System.Collections.IDictionary.IsReadOnly { get => throw null; }
            bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.IsReadOnly { get => throw null; }
            bool System.Collections.ICollection.IsSynchronized { get => throw null; }
            object System.Collections.IDictionary.this[object key] { get => throw null; set { } }
            object System.Collections.Generic.IDictionary<string, object>.this[string key] { get => throw null; set { } }
            System.Collections.ICollection System.Collections.IDictionary.Keys { get => throw null; }
            System.Collections.Generic.ICollection<string> System.Collections.Generic.IDictionary<string, object>.Keys { get => throw null; }
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            void System.Collections.IDictionary.Remove(object key) => throw null;
            bool System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<string, object>>.Remove(System.Collections.Generic.KeyValuePair<string, object> item) => throw null;
            bool System.Collections.Generic.IDictionary<string, object>.Remove(string key) => throw null;
            object System.Collections.ICollection.SyncRoot { get => throw null; }
            public override bool TryDeleteIndex(System.Dynamic.DeleteIndexBinder binder, object[] indexes) => throw null;
            public override bool TryDeleteMember(System.Dynamic.DeleteMemberBinder binder) => throw null;
            public override bool TryGetIndex(System.Dynamic.GetIndexBinder binder, object[] indexes, out object result) => throw null;
            public override bool TryGetMember(System.Dynamic.GetMemberBinder binder, out object result) => throw null;
            bool System.Collections.Generic.IDictionary<string, object>.TryGetValue(string key, out object value) => throw null;
            public override bool TryInvokeMember(System.Dynamic.InvokeMemberBinder binder, object[] args, out object result) => throw null;
            public override bool TrySetIndex(System.Dynamic.SetIndexBinder binder, object[] indexes, object value) => throw null;
            public override bool TrySetMember(System.Dynamic.SetMemberBinder binder, object value) => throw null;
            System.Collections.ICollection System.Collections.IDictionary.Values { get => throw null; }
            System.Collections.Generic.ICollection<object> System.Collections.Generic.IDictionary<string, object>.Values { get => throw null; }
        }
        public static partial class EnumerableExtensions
        {
            public static bool Any(this System.Collections.IEnumerable source) => throw null;
            public static object First(this System.Collections.IEnumerable source) => throw null;
            public static object FirstOrNull(this System.Collections.IEnumerable source) => throw null;
            public static void ForEach<T>(this System.Collections.Generic.IEnumerable<T> query, System.Action<T> method) => throw null;
        }
        public class EnumeratorAdapter<T> : System.IDisposable, System.Collections.Generic.IEnumerator<T>, System.Collections.IEnumerator
        {
            public EnumeratorAdapter(System.Collections.IEnumerator wrapped) => throw null;
            public T Current { get => throw null; }
            object System.Collections.IEnumerator.Current { get => throw null; }
            public void Dispose() => throw null;
            public bool MoveNext() => throw null;
            public void Reset() => throw null;
        }
        public static class EqualsHelper
        {
            public static bool Equals(object x, object y) => throw null;
        }
        public static class ExpressionsHelper
        {
            public static System.Reflection.MemberInfo DecodeMemberAccessExpression<TEntity, TResult>(System.Linq.Expressions.Expression<System.Func<TEntity, TResult>> expression) => throw null;
        }
        public sealed class FilterHelper
        {
            public FilterHelper(System.Collections.Generic.IDictionary<string, string> filters, NHibernate.Dialect.Dialect dialect, NHibernate.Dialect.Function.SQLFunctionRegistry sqlFunctionRegistry) => throw null;
            public static System.Collections.Generic.IDictionary<string, NHibernate.IFilter> GetEnabledForManyToOne(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public bool IsAffectedBy(System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public string Render(string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public void Render(System.Text.StringBuilder buffer, string alias, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
            public void Render(System.Text.StringBuilder buffer, string defaultAlias, System.Collections.Generic.IDictionary<string, string> propMap, System.Collections.Generic.IDictionary<string, NHibernate.IFilter> enabledFilters) => throw null;
        }
        public sealed class IdentityMap : System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IDictionary, System.Collections.IEnumerable
        {
            public void Add(object key, object val) => throw null;
            public void Clear() => throw null;
            public static System.Collections.ICollection ConcurrentEntries(System.Collections.IDictionary map) => throw null;
            public bool Contains(object key) => throw null;
            public void CopyTo(System.Array array, int i) => throw null;
            public int Count { get => throw null; }
            public static System.Collections.ICollection Entries(System.Collections.IDictionary map) => throw null;
            public System.Collections.IList EntryList { get => throw null; }
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null;
            public static System.Collections.IDictionary Instantiate(int size) => throw null;
            public static System.Collections.IDictionary InstantiateSequenced(int size) => throw null;
            public static System.Collections.IDictionary Invert(System.Collections.IDictionary map) => throw null;
            public bool IsFixedSize { get => throw null; }
            public bool IsReadOnly { get => throw null; }
            public bool IsSynchronized { get => throw null; }
            public System.Collections.ICollection Keys { get => throw null; }
            public void OnDeserialization(object sender) => throw null;
            public void Remove(object key) => throw null;
            public object SyncRoot { get => throw null; }
            public object this[object key] { get => throw null; set { } }
            public System.Collections.ICollection Values { get => throw null; }
        }
        public class IdentitySet : System.Collections.Generic.ICollection<object>, System.Collections.Generic.IEnumerable<object>, System.Collections.IEnumerable, System.Collections.Generic.ISet<object>
        {
            void System.Collections.Generic.ICollection<object>.Add(object item) => throw null;
            public bool Add(object o) => throw null;
            public void Clear() => throw null;
            public bool Contains(object o) => throw null;
            public void CopyTo(object[] array, int index) => throw null;
            public int Count { get => throw null; }
            public IdentitySet() => throw null;
            public IdentitySet(System.Collections.Generic.IEnumerable<object> members) => throw null;
            public void ExceptWith(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public System.Collections.Generic.IEnumerator<object> GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            public void IntersectWith(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public bool IsProperSubsetOf(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public bool IsProperSupersetOf(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public bool IsReadOnly { get => throw null; }
            public bool IsSubsetOf(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public bool IsSupersetOf(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public bool Overlaps(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public bool Remove(object o) => throw null;
            public bool SetEquals(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public void SymmetricExceptWith(System.Collections.Generic.IEnumerable<object> other) => throw null;
            public void UnionWith(System.Collections.Generic.IEnumerable<object> other) => throw null;
        }
        public class JoinedEnumerable : System.Collections.IEnumerable
        {
            public JoinedEnumerable(System.Collections.IEnumerable[] enumerables) => throw null;
            public JoinedEnumerable(System.Collections.Generic.IEnumerable<System.Collections.IEnumerable> enumerables) => throw null;
            public JoinedEnumerable(System.Collections.IEnumerable first, System.Collections.IEnumerable second) => throw null;
            public System.Collections.IEnumerator GetEnumerator() => throw null;
        }
        public class JoinedEnumerable<T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
        {
            public JoinedEnumerable(System.Collections.Generic.IEnumerable<T>[] enumerables) => throw null;
            public JoinedEnumerable(System.Collections.Generic.List<System.Collections.Generic.IEnumerable<T>> enumerables) => throw null;
            public JoinedEnumerable(System.Collections.Generic.IEnumerable<T> first, System.Collections.Generic.IEnumerable<T> second) => throw null;
            System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerable<T>.GetEnumerator() => throw null;
            public System.Collections.IEnumerator GetEnumerator() => throw null;
        }
        public class LinkedHashMap<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Runtime.Serialization.IDeserializationCallback, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable
        {
            public virtual void Add(TKey key, TValue value) => throw null;
            public void Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            protected abstract class BackwardEnumerator<T> : System.IDisposable, System.Collections.Generic.IEnumerator<T>, System.Collections.IEnumerator
            {
                public BackwardEnumerator(NHibernate.Util.LinkedHashMap<TKey, TValue> dictionary) => throw null;
                object System.Collections.IEnumerator.Current { get => throw null; }
                public abstract T Current { get; }
                protected readonly NHibernate.Util.LinkedHashMap<TKey, TValue> dictionary;
                public void Dispose() => throw null;
                public bool MoveNext() => throw null;
                public void Reset() => throw null;
                protected readonly long version;
            }
            public virtual void Clear() => throw null;
            public bool Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public virtual bool Contains(TKey key) => throw null;
            public virtual bool ContainsKey(TKey key) => throw null;
            public virtual bool ContainsValue(TValue value) => throw null;
            public void CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) => throw null;
            public virtual int Count { get => throw null; }
            public LinkedHashMap() => throw null;
            public LinkedHashMap(int capacity) => throw null;
            public LinkedHashMap(System.Collections.Generic.IEqualityComparer<TKey> equalityComparer) => throw null;
            public LinkedHashMap(int capacity, System.Collections.Generic.IEqualityComparer<TKey> equalityComparer) => throw null;
            protected class Entry
            {
                public Entry(TKey key, TValue value) => throw null;
                public override bool Equals(object obj) => throw null;
                public override int GetHashCode() => throw null;
                public TKey Key { get => throw null; }
                public NHibernate.Util.LinkedHashMap<TKey, TValue>.Entry Next { get => throw null; set { } }
                public NHibernate.Util.LinkedHashMap<TKey, TValue>.Entry Prev { get => throw null; set { } }
                public override string ToString() => throw null;
                public TValue Value { get => throw null; set { } }
            }
            public virtual TKey FirstKey { get => throw null; }
            public virtual TValue FirstValue { get => throw null; }
            public virtual System.Collections.IEnumerator GetEnumerator() => throw null;
            System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>.GetEnumerator() => throw null;
            public virtual bool IsFixedSize { get => throw null; }
            public virtual bool IsReadOnly { get => throw null; }
            public virtual System.Collections.Generic.ICollection<TKey> Keys { get => throw null; }
            public virtual TKey LastKey { get => throw null; }
            public virtual TValue LastValue { get => throw null; }
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            public virtual bool Remove(TKey key) => throw null;
            public bool Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public TValue this[TKey key] { get => throw null; set { } }
            public override string ToString() => throw null;
            public bool TryGetValue(TKey key, out TValue value) => throw null;
            public virtual System.Collections.Generic.ICollection<TValue> Values { get => throw null; }
        }
        public class LRUMap : NHibernate.Util.SequencedHashMap
        {
            public override void Add(object key, object value) => throw null;
            public LRUMap() => throw null;
            public LRUMap(int capacity) => throw null;
            public int MaximumSize { get => throw null; set { } }
            protected void ProcessRemovedLRU(object key, object value) => throw null;
            public override object this[object key] { get => throw null; set { } }
        }
        public class NullableDictionary<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable where TKey : class
        {
            public void Add(TKey key, TValue value) => throw null;
            public void Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public void Clear() => throw null;
            public bool Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public bool ContainsKey(TKey key) => throw null;
            public void CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) => throw null;
            public int Count { get => throw null; }
            public NullableDictionary() => throw null;
            public NullableDictionary(System.Collections.Generic.IEqualityComparer<TKey> comparer) => throw null;
            public System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            public bool IsReadOnly { get => throw null; }
            public System.Collections.Generic.ICollection<TKey> Keys { get => throw null; }
            public bool Remove(TKey key) => throw null;
            public bool Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public TValue this[TKey key] { get => throw null; set { } }
            public bool TryGetValue(TKey key, out TValue value) => throw null;
            public System.Collections.Generic.ICollection<TValue> Values { get => throw null; }
        }
        public static class ObjectHelpers
        {
            public static string IdentityToString(object obj) => throw null;
        }
        public class ParserException : System.Exception
        {
            public ParserException(string message) => throw null;
            protected ParserException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        }
        public static class PropertiesHelper
        {
            public static bool GetBoolean(string property, System.Collections.Generic.IDictionary<string, string> properties, bool defaultValue) => throw null;
            public static bool GetBoolean(string property, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
            public static byte? GetByte(string property, System.Collections.Generic.IDictionary<string, string> properties, byte? defaultValue) => throw null;
            public static TEnum GetEnum<TEnum>(string property, System.Collections.Generic.IDictionary<string, string> properties, TEnum defaultValue) where TEnum : struct => throw null;
            public static int GetInt32(string property, System.Collections.Generic.IDictionary<string, string> properties, int defaultValue) => throw null;
            public static long GetInt64(string property, System.Collections.Generic.IDictionary<string, string> properties, long defaultValue) => throw null;
            public static string GetString(string property, System.Collections.Generic.IDictionary<string, string> properties, string defaultValue) => throw null;
            public static System.Collections.Generic.IDictionary<string, string> ToDictionary(string property, string delim, System.Collections.Generic.IDictionary<string, string> properties) => throw null;
        }
        public static class ReflectHelper
        {
            public const System.Reflection.BindingFlags AnyVisibilityInstance = default;
            public static System.Type ClassForFullName(string classFullName) => throw null;
            public static System.Type ClassForFullNameOrNull(string classFullName) => throw null;
            public static System.Type ClassForName(string name) => throw null;
            public static System.Type GetCollectionElementType(this System.Collections.IEnumerable collectionInstance) => throw null;
            public static System.Type GetCollectionElementType(System.Type collectionType) => throw null;
            public static object GetConstantValue(System.Type type, string fieldName) => throw null;
            public static System.Reflection.ConstructorInfo GetConstructor(System.Type type, NHibernate.Type.IType[] types) => throw null;
            public static System.Reflection.ConstructorInfo GetDefaultConstructor(System.Type type) => throw null;
            public static System.Reflection.MethodInfo GetGenericMethodFrom<T>(string methodName, System.Type[] genericArgs, System.Type[] signature) => throw null;
            public static NHibernate.Properties.IGetter GetGetter(System.Type theClass, string propertyName, string propertyAccessorName) => throw null;
            public static System.Reflection.MethodInfo GetMethod<TSource>(System.Linq.Expressions.Expression<System.Action<TSource>> method) => throw null;
            public static System.Reflection.MethodInfo GetMethod<TSource, TResult>(System.Linq.Expressions.Expression<System.Func<TSource, TResult>> method) => throw null;
            public static System.Reflection.MethodInfo GetMethod(System.Linq.Expressions.Expression<System.Action> method) => throw null;
            public static System.Reflection.MethodInfo GetMethodDefinition<TSource>(System.Linq.Expressions.Expression<System.Action<TSource>> method) => throw null;
            public static System.Reflection.MethodInfo GetMethodDefinition(System.Linq.Expressions.Expression<System.Action> method) => throw null;
            public static System.Reflection.MethodInfo GetMethodOverload(System.Reflection.MethodInfo method, params System.Type[] parameterTypes) => throw null;
            public static System.Reflection.MemberInfo GetProperty<TSource, TResult>(System.Linq.Expressions.Expression<System.Func<TSource, TResult>> property) => throw null;
            public static System.Reflection.MemberInfo GetProperty<TResult>(System.Linq.Expressions.Expression<System.Func<TResult>> property) => throw null;
            public static string GetPropertyName(System.Reflection.MethodInfo method) => throw null;
            public static bool HasProperty(this System.Type source, string propertyName) => throw null;
            public static bool IsAbstractClass(System.Type type) => throw null;
            public static bool IsFinalClass(System.Type type) => throw null;
            public static bool IsMethodOf(this System.Reflection.MethodInfo source, System.Type realDeclaringType) => throw null;
            public static bool IsPropertyGet(System.Reflection.MethodInfo method) => throw null;
            public static bool IsPropertySet(System.Reflection.MethodInfo method) => throw null;
            public static bool OverridesEquals(System.Type clazz) => throw null;
            public static bool OverridesGetHashCode(System.Type clazz) => throw null;
            public static System.Type ReflectedPropertyClass(System.Type theClass, string name, string access) => throw null;
            public static System.Type ReflectedPropertyClass(string className, string name, string accessorName) => throw null;
            public static NHibernate.Type.IType ReflectedPropertyType(System.Type theClass, string name, string access) => throw null;
            public static System.Collections.Generic.IDictionary<string, string> ToTypeParameters(this object source) => throw null;
            public static System.Reflection.MethodInfo TryGetMethod(System.Type type, System.Reflection.MethodInfo method) => throw null;
            public static bool TryLoadAssembly(string assemblyName) => throw null;
            public static System.Type TypeFromAssembly(string type, string assembly, bool throwIfError) => throw null;
            public static System.Type TypeFromAssembly(NHibernate.Util.AssemblyQualifiedTypeName name, bool throwOnError) => throw null;
            public static System.Exception UnwrapTargetInvocationException(System.Reflection.TargetInvocationException ex) => throw null;
        }
        public class SafetyEnumerable<T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
        {
            public SafetyEnumerable(System.Collections.IEnumerable collection) => throw null;
            public System.Collections.Generic.IEnumerator<T> GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
        }
        public class SequencedHashMap : System.Collections.ICollection, System.Runtime.Serialization.IDeserializationCallback, System.Collections.IDictionary, System.Collections.IEnumerable
        {
            public virtual void Add(object key, object value) => throw null;
            public virtual void Clear() => throw null;
            public virtual bool Contains(object key) => throw null;
            public virtual bool ContainsKey(object key) => throw null;
            public virtual bool ContainsValue(object value) => throw null;
            public virtual void CopyTo(System.Array array, int index) => throw null;
            public virtual int Count { get => throw null; }
            public SequencedHashMap() => throw null;
            public SequencedHashMap(int capacity) => throw null;
            public SequencedHashMap(int capacity, float loadFactor) => throw null;
            public SequencedHashMap(int capacity, System.Collections.IEqualityComparer equalityComparer) => throw null;
            public SequencedHashMap(System.Collections.IEqualityComparer equalityComparer) => throw null;
            public SequencedHashMap(int capacity, float loadFactor, System.Collections.IEqualityComparer equalityComparer) => throw null;
            public virtual object FirstKey { get => throw null; }
            public virtual object FirstValue { get => throw null; }
            public virtual System.Collections.IDictionaryEnumerator GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            public virtual bool IsFixedSize { get => throw null; }
            public virtual bool IsReadOnly { get => throw null; }
            public virtual bool IsSynchronized { get => throw null; }
            public virtual System.Collections.ICollection Keys { get => throw null; }
            public virtual object LastKey { get => throw null; }
            public virtual object LastValue { get => throw null; }
            public void OnDeserialization(object sender) => throw null;
            public virtual void Remove(object key) => throw null;
            public virtual object SyncRoot { get => throw null; }
            public virtual object this[object o] { get => throw null; set { } }
            public override string ToString() => throw null;
            public virtual System.Collections.ICollection Values { get => throw null; }
        }
        public static class SerializationHelper
        {
            public static object Deserialize(byte[] data) => throw null;
            public static byte[] Serialize(object obj) => throw null;
            public sealed class SurrogateSelector : System.Runtime.Serialization.SurrogateSelector
            {
                public override void AddSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISerializationSurrogate surrogate) => throw null;
                public SurrogateSelector() => throw null;
                public override System.Runtime.Serialization.ISerializationSurrogate GetSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector) => throw null;
                public override void RemoveSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context) => throw null;
            }
        }
        public class SimpleMRUCache : System.Runtime.Serialization.IDeserializationCallback
        {
            public void Clear() => throw null;
            public int Count { get => throw null; }
            public SimpleMRUCache() => throw null;
            public SimpleMRUCache(int strongReferenceCount) => throw null;
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            public void Put(object key, object value) => throw null;
            public object this[object key] { get => throw null; }
        }
        public sealed class SingletonEnumerable<T> : System.Collections.Generic.IEnumerable<T>, System.Collections.IEnumerable
        {
            public SingletonEnumerable(T value) => throw null;
            public System.Collections.Generic.IEnumerator<T> GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
        }
        public class SoftLimitMRUCache : System.Runtime.Serialization.IDeserializationCallback
        {
            public void Clear() => throw null;
            public int Count { get => throw null; }
            public SoftLimitMRUCache(int strongReferenceCount) => throw null;
            public SoftLimitMRUCache() => throw null;
            void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender) => throw null;
            public void Put(object key, object value) => throw null;
            public int SoftCount { get => throw null; }
            public object this[object key] { get => throw null; }
        }
        public static class StringHelper
        {
            public const int AliasTruncateLength = 10;
            public static bool BooleanValue(string value) => throw null;
            public const string ClosedParen = default;
            public static string CollectionToString(System.Collections.IEnumerable keys) => throw null;
            public const string Comma = default;
            public const string CommaSpace = default;
            public static int CountUnquoted(string str, char character) => throw null;
            public const char Dot = default;
            public static bool EqualsCaseInsensitive(string a, string b) => throw null;
            public static int FirstIndexOfChar(string sqlString, string str, int startIndex) => throw null;
            public static string GenerateAlias(string description) => throw null;
            public static string GenerateAlias(string description, int unique) => throw null;
            public static string GetClassname(string typeName) => throw null;
            public static string GetFullClassname(string typeName) => throw null;
            public static int IndexOfAnyNewLine(this string str, int startIndex, out int newLineLength) => throw null;
            public static int IndexOfCaseInsensitive(string source, string value) => throw null;
            public static int IndexOfCaseInsensitive(string source, string value, int startIndex) => throw null;
            public static int IndexOfCaseInsensitive(string source, string value, int startIndex, int count) => throw null;
            public static string InternedIfPossible(string str) => throw null;
            public static bool IsAnyNewLine(this string str, int index, out int newLineLength) => throw null;
            public static bool IsBackticksEnclosed(string identifier) => throw null;
            public static bool IsEmpty(string str) => throw null;
            public static bool IsNotEmpty(string str) => throw null;
            public static string Join(string separator, System.Collections.IEnumerable objects) => throw null;
            public static int LastIndexOfCaseInsensitive(string source, string value) => throw null;
            public static int LastIndexOfLetter(string str) => throw null;
            public static string LinesToString(this string[] text) => throw null;
            public static string MoveAndToBeginning(string filter) => throw null;
            public static string[] Multiply(string str, System.Collections.Generic.IEnumerable<object> placeholders, System.Collections.Generic.IEnumerable<object> replacements) => throw null;
            public static string[] Multiply(string[] strings, string placeholder, string[] replacements) => throw null;
            public const string OpenParen = default;
            public static string[] ParseFilterParameterName(string filterParameterName) => throw null;
            public static string[] Prefix(string[] columns, string prefix) => throw null;
            public static string PurgeBackticksEnclosing(string identifier) => throw null;
            public static string Qualifier(string qualifiedName) => throw null;
            public static string Qualify(string prefix, string name) => throw null;
            public static string[] Qualify(string prefix, string[] names) => throw null;
            public static string Repeat(string str, int times) => throw null;
            public static string Replace(string template, string placeholder, string replacement) => throw null;
            public static string Replace(string template, string placeholder, string replacement, bool wholeWords) => throw null;
            public static string ReplaceOnce(string template, string placeholder, string replacement) => throw null;
            public static string ReplaceWholeWord(this string template, string placeholder, string replacement) => throw null;
            public static string Root(string qualifiedName) => throw null;
            public const char SingleQuote = default;
            public static string[] Split(string separators, string list) => throw null;
            public static string[] Split(string separators, string list, bool include) => throw null;
            public const string SqlParameter = default;
            public static bool StartsWithCaseInsensitive(string source, string prefix) => throw null;
            public static string[] Suffix(string[] columns, string suffix) => throw null;
            public static string Suffix(string name, string suffix) => throw null;
            public static string ToLowerCase(string str) => throw null;
            public static string ToString(object[] array) => throw null;
            public static string ToUpperCase(string str) => throw null;
            public static string Truncate(string str, int length) => throw null;
            public const char Underscore = default;
            public static string Unqualify(string qualifiedName) => throw null;
            public static string Unqualify(string qualifiedName, string seperator) => throw null;
            public static string UnqualifyEntityName(string entityName) => throw null;
            public static string Unroot(string qualifiedName) => throw null;
            public const string WhiteSpace = default;
        }
        public class StringTokenizer : System.Collections.Generic.IEnumerable<string>, System.Collections.IEnumerable
        {
            public StringTokenizer(string str) => throw null;
            public StringTokenizer(string str, string delim) => throw null;
            public StringTokenizer(string str, string delim, bool returnDelims) => throw null;
            public System.Collections.Generic.IEnumerator<string> GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
        }
        public static partial class TypeExtensions
        {
            public static bool IsEnumerableOfT(this System.Type type) => throw null;
            public static bool IsNonPrimitive(this System.Type type) => throw null;
            public static bool IsNullable(this System.Type type) => throw null;
            public static bool IsNullableOrReference(this System.Type type) => throw null;
            public static bool IsPrimitive(this System.Type type) => throw null;
            public static System.Type NullableOf(this System.Type type) => throw null;
        }
        public class TypeNameParser
        {
            public TypeNameParser(string defaultNamespace, string defaultAssembly) => throw null;
            public NHibernate.Util.AssemblyQualifiedTypeName MakeGenericType(NHibernate.Util.AssemblyQualifiedTypeName qualifiedName, bool isArrayType, NHibernate.Util.AssemblyQualifiedTypeName[] typeArguments) => throw null;
            public static NHibernate.Util.AssemblyQualifiedTypeName Parse(string type) => throw null;
            public static NHibernate.Util.AssemblyQualifiedTypeName Parse(string type, string defaultNamespace, string defaultAssembly) => throw null;
            public NHibernate.Util.AssemblyQualifiedTypeName ParseTypeName(string typeName) => throw null;
        }
        public class UnmodifiableDictionary<TKey, TValue> : System.Collections.Generic.ICollection<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.Generic.IDictionary<TKey, TValue>, System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>, System.Collections.IEnumerable
        {
            public void Add(TKey key, TValue value) => throw null;
            public void Add(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public void Clear() => throw null;
            public bool Contains(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public bool ContainsKey(TKey key) => throw null;
            public void CopyTo(System.Collections.Generic.KeyValuePair<TKey, TValue>[] array, int arrayIndex) => throw null;
            public int Count { get => throw null; }
            public UnmodifiableDictionary(System.Collections.Generic.IDictionary<TKey, TValue> dictionary) => throw null;
            System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<TKey, TValue>> System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<TKey, TValue>>.GetEnumerator() => throw null;
            public System.Collections.IEnumerator GetEnumerator() => throw null;
            public bool IsReadOnly { get => throw null; }
            public System.Collections.Generic.ICollection<TKey> Keys { get => throw null; }
            public bool Remove(TKey key) => throw null;
            public bool Remove(System.Collections.Generic.KeyValuePair<TKey, TValue> item) => throw null;
            public TValue this[TKey key] { get => throw null; set { } }
            public bool TryGetValue(TKey key, out TValue value) => throw null;
            public System.Collections.Generic.ICollection<TValue> Values { get => throw null; }
        }
        public class WeakEnumerator : System.Collections.IDictionaryEnumerator, System.Collections.IEnumerator
        {
            public WeakEnumerator(System.Collections.IDictionaryEnumerator innerEnumerator) => throw null;
            public object Current { get => throw null; }
            public System.Collections.DictionaryEntry Entry { get => throw null; }
            public object Key { get => throw null; }
            public bool MoveNext() => throw null;
            public void Reset() => throw null;
            public object Value { get => throw null; }
        }
        public class WeakHashtable : System.Collections.ICollection, System.Collections.IDictionary, System.Collections.IEnumerable
        {
            public void Add(object key, object value) => throw null;
            public void Clear() => throw null;
            public bool Contains(object key) => throw null;
            public void CopyTo(System.Array array, int index) => throw null;
            public int Count { get => throw null; }
            public WeakHashtable() => throw null;
            public System.Collections.IDictionaryEnumerator GetEnumerator() => throw null;
            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() => throw null;
            public bool IsFixedSize { get => throw null; }
            public bool IsReadOnly { get => throw null; }
            public bool IsSynchronized { get => throw null; }
            public System.Collections.ICollection Keys { get => throw null; }
            public void Remove(object key) => throw null;
            public void Scavenge() => throw null;
            public object SyncRoot { get => throw null; }
            public object this[object key] { get => throw null; set { } }
            public System.Collections.ICollection Values { get => throw null; }
        }
        public class WeakRefWrapper : System.Runtime.Serialization.IDeserializationCallback
        {
            public WeakRefWrapper(object target) => throw null;
            public override bool Equals(object obj) => throw null;
            public override int GetHashCode() => throw null;
            public bool IsAlive { get => throw null; }
            public void OnDeserialization(object sender) => throw null;
            public object Target { get => throw null; }
            public static object Unwrap(object value) => throw null;
            public static NHibernate.Util.WeakRefWrapper Wrap(object value) => throw null;
        }
    }
    public class WrongClassException : NHibernate.HibernateException, System.Runtime.Serialization.ISerializable
    {
        public WrongClassException(string message, object identifier, string entityName) => throw null;
        protected WrongClassException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public string EntityName { get => throw null; }
        public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) => throw null;
        public object Identifier { get => throw null; }
        public override string Message { get => throw null; }
    }
}
namespace System
{
    namespace Runtime
    {
        namespace CompilerServices
        {
            [System.AttributeUsage((System.AttributeTargets)1, AllowMultiple = true)]
            public class IgnoresAccessChecksToAttribute : System.Attribute
            {
                public string AssemblyName { get => throw null; }
                public IgnoresAccessChecksToAttribute(string assemblyName) => throw null;
            }
        }
    }
}
