using System;
using System.Diagnostics.CodeAnalysis;
using Npgsql.Internal.Postgres;
namespace Npgsql.Internal;
///
/// An Npgsql resolver for type info. Used by Npgsql to read and write values to PostgreSQL.
///
[Experimental(NpgsqlDiagnostics.ConvertersExperimental)]
public interface IPgTypeInfoResolver
{
///
/// Resolve a type info for a given type and data type name, at least one value will be non-null.
///
/// The clr type being requested.
/// The postgres type being requested.
/// Used for configuration state and Npgsql type info or PostgreSQL type catalog lookups.
/// A result, or null if there was no match.
PgTypeInfo? GetTypeInfo(Type? type, DataTypeName? dataTypeName, PgSerializerOptions options);
}