using System.Threading.Tasks;
using Npgsql.Util;
namespace Npgsql.Internal;
///
/// A factory which get generate instances of , which describe a database
/// and the types it contains. When first connecting to a database, Npgsql will attempt to load information
/// about it via this factory.
///
public interface INpgsqlDatabaseInfoFactory
{
///
/// Given a connection, loads all necessary information about the connected database, e.g. its types.
/// A factory should only handle the exact database type it was meant for, and return null otherwise.
///
///
/// An object describing the database to which is connected, or null if the
/// database isn't of the correct type and isn't handled by this factory.
///
Task Load(NpgsqlConnector conn, NpgsqlTimeout timeout, bool async);
}