Microsoft.Extensions.AI.Abstractions.xml•399 kB
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.Extensions.AI.Abstractions</name>
    </assembly>
    <members>
        <member name="T:System.Runtime.CompilerServices.RequiredMemberAttribute">
            <summary>Specifies that a type has required members or that a member is required.</summary>
        </member>
        <member name="T:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute">
            <summary>
            Tags parameter that should be filled with specific caller name.
            </summary>
        </member>
        <member name="M:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute"/> class.
            </summary>
            <param name="parameterName">Function parameter to take the name from.</param>
        </member>
        <member name="P:System.Runtime.CompilerServices.CallerArgumentExpressionAttribute.ParameterName">
            <summary>
            Gets name of the function parameter that name should be taken from.
            </summary>
        </member>
        <member name="T:System.Runtime.CompilerServices.SkipLocalsInitAttribute">
            <summary>
            Used to indicate to the compiler that the <c>.locals init</c>
            flag should not be set in method headers.
            </summary>
            <remarks>
            This attribute is unsafe because it may reveal uninitialized memory to
            the application in certain instances (e.g., reading from uninitialized
            stackalloc'd memory). If applied to a method directly, the attribute
            applies to that method and all nested functions (lambdas, local
            functions) below it. If applied to a type or module, it applies to all
            methods nested inside. This attribute is intentionally not permitted on
            assemblies. Use at the module level instead to apply to multiple type
            declarations.
            </remarks>
        </member>
        <member name="M:System.Index.#ctor(System.Int32,System.Boolean)">
            <summary>Construct an Index using a value and indicating if the index is from the start or from the end.</summary>
            <param name="value">The index value. it has to be zero or positive number.</param>
            <param name="fromEnd">Indicating if the index is from the start or from the end.</param>
            <remarks>
            If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element.
            </remarks>
        </member>
        <member name="P:System.Index.Start">
            <summary>Create an Index pointing at first element.</summary>
        </member>
        <member name="P:System.Index.End">
            <summary>Create an Index pointing at beyond last element.</summary>
        </member>
        <member name="M:System.Index.FromStart(System.Int32)">
            <summary>Create an Index from the start at the position indicated by the value.</summary>
            <param name="value">The index value from the start.</param>
        </member>
        <member name="M:System.Index.FromEnd(System.Int32)">
            <summary>Create an Index from the end at the position indicated by the value.</summary>
            <param name="value">The index value from the end.</param>
        </member>
        <member name="P:System.Index.Value">
            <summary>Returns the index value.</summary>
        </member>
        <member name="P:System.Index.IsFromEnd">
            <summary>Indicates whether the index is from the start or the end.</summary>
        </member>
        <member name="M:System.Index.GetOffset(System.Int32)">
            <summary>Calculate the offset from the start using the giving collection length.</summary>
            <param name="length">The length of the collection that the Index will be used with. length has to be a positive value.</param>
            <remarks>
            For performance reason, we don't validate the input length parameter and the returned offset value against negative values.
            we don't validate either the returned offset is greater than the input length.
            It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and
            then used to index a collection will get out of range exception which will be same affect as the validation.
            </remarks>
        </member>
        <member name="M:System.Index.Equals(System.Object)">
            <summary>Indicates whether the current Index object is equal to another object of the same type.</summary>
            <param name="value">An object to compare with this object.</param>
        </member>
        <member name="M:System.Index.Equals(System.Index)">
            <summary>Indicates whether the current Index object is equal to another Index object.</summary>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:System.Index.GetHashCode">
            <summary>Returns the hash code for this instance.</summary>
        </member>
        <member name="M:System.Index.op_Implicit(System.Int32)~System.Index">
            <summary>Converts integer number to an Index.</summary>
        </member>
        <member name="M:System.Index.ToString">
            <summary>Converts the value of the current Index object to its equivalent string representation.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
            <summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
            <summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
            <summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
            <summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
            <summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
            <summary>Initializes the attribute with the specified return value condition.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter may be <see langword="null" />.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
            <summary>Gets the return value condition.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
            <summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
            <summary>Initializes the attribute with the specified return value condition.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter will not be <see langword="null" />.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
            <summary>Gets the return value condition.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
            <summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
            <summary>Initializes the attribute with the associated parameter name.</summary>
            <param name="parameterName">
            The associated parameter name.  The output will be non-null if the argument to the parameter specified is non-null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
            <summary>Gets the associated parameter name.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
            <summary>Applied to a method that will never return under any circumstance.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
            <summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
            <summary>Initializes the attribute with the specified parameter value.</summary>
            <param name="parameterValue">
            The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
            the associated parameter matches this value.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
            <summary>Gets the condition parameter value.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
            <summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
            <summary>Initializes the attribute with a field or property member.</summary>
            <param name="member">
            The field or property member that is promised to be not-null.
            </param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
            <summary>Initializes the attribute with the list of field and property members.</summary>
            <param name="members">
            The list of field and property members that are promised to be not-null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
            <summary>Gets field or property member names.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
            <summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
            <summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter will not be <see langword="null" />.
            </param>
            <param name="member">
            The field or property member that is promised to be not-null.
            </param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
            <summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter will not be <see langword="null" />.
            </param>
            <param name="members">
            The list of field and property members that are promised to be not-null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
            <summary>Gets the return value condition.</summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
            <summary>Gets field or property member names.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute">
             <summary>
             Indicates that certain members on a specified <see cref="T:System.Type"/> are accessed dynamically,
             for example through <see cref="N:System.Reflection"/>.
             </summary>
             <remarks>
             This allows tools to understand which members are being accessed during the execution
             of a program.
            
             This attribute is valid on members whose type is <see cref="T:System.Type"/> or <see cref="T:System.String"/>.
            
             When this attribute is applied to a location of type <see cref="T:System.String"/>, the assumption is
             that the string represents a fully qualified type name.
            
             When this attribute is applied to a class, interface, or struct, the members specified
             can be accessed dynamically on <see cref="T:System.Type"/> instances returned from calling
             <see cref="M:System.Object.GetType"/> on instances of that class, interface, or struct.
            
             If the attribute is applied to a method it's treated as a special case and it implies
             the attribute should be applied to the "this" parameter of the method. As such the attribute
             should only be used on instance methods of types assignable to System.Type (or string, but no methods
             will use it there).
             </remarks>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.#ctor(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute"/> class
            with the specified member types.
            </summary>
            <param name="memberTypes">The types of members dynamically accessed.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute.MemberTypes">
            <summary>
            Gets the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes"/> which specifies the type
            of members dynamically accessed.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes">
             <summary>
             Specifies the types of members that are dynamically accessed.
            
             This enumeration has a <see cref="T:System.FlagsAttribute"/> attribute that allows a
             bitwise combination of its member values.
             </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.None">
            <summary>
            Specifies no members.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicParameterlessConstructor">
            <summary>
            Specifies the default, parameterless public constructor.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors">
            <summary>
            Specifies all public constructors.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors">
            <summary>
            Specifies all non-public constructors.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicMethods">
            <summary>
            Specifies all public methods.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicMethods">
            <summary>
            Specifies all non-public methods.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicFields">
            <summary>
            Specifies all public fields.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicFields">
            <summary>
            Specifies all non-public fields.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicNestedTypes">
            <summary>
            Specifies all public nested types.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicNestedTypes">
            <summary>
            Specifies all non-public nested types.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties">
            <summary>
            Specifies all public properties.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties">
            <summary>
            Specifies all non-public properties.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicEvents">
            <summary>
            Specifies all public events.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicEvents">
            <summary>
            Specifies all non-public events.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces">
            <summary>
            Specifies all interfaces implemented by the type.
            </summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.All">
            <summary>
            Specifies all members.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute">
            <summary>
            States a dependency that one member has on another.
            </summary>
            <remarks>
            This can be used to inform tooling of a dependency that is otherwise not evident purely from
            metadata and IL, for example a member relied on via reflection.
            </remarks>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute"/> class
            with the specified signature of a member on the same type as the consumer.
            </summary>
            <param name="memberSignature">The signature of the member depended on.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.#ctor(System.String,System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute"/> class
            with the specified signature of a member on a <see cref="T:System.Type"/>.
            </summary>
            <param name="memberSignature">The signature of the member depended on.</param>
            <param name="type">The <see cref="T:System.Type"/> containing <paramref name="memberSignature"/>.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.#ctor(System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute"/> class
            with the specified signature of a member on a type in an assembly.
            </summary>
            <param name="memberSignature">The signature of the member depended on.</param>
            <param name="typeName">The full name of the type containing the specified member.</param>
            <param name="assemblyName">The assembly name of the type containing the specified member.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.#ctor(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes,System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute"/> class
            with the specified types of members on a <see cref="T:System.Type"/>.
            </summary>
            <param name="memberTypes">The types of members depended on.</param>
            <param name="type">The <see cref="T:System.Type"/> containing the specified members.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.#ctor(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute"/> class
            with the specified types of members on a type in an assembly.
            </summary>
            <param name="memberTypes">The types of members depended on.</param>
            <param name="typeName">The full name of the type containing the specified members.</param>
            <param name="assemblyName">The assembly name of the type containing the specified members.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.MemberSignature">
            <summary>
            Gets the signature of the member depended on.
            </summary>
            <remarks>
            Either <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.MemberSignature"/> must be a valid string or <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.MemberTypes"/>
            must not equal <see cref="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.None"/>, but not both.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.MemberTypes">
            <summary>
            Gets the <see cref="T:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes"/> which specifies the type
            of members depended on.
            </summary>
            <remarks>
            Either <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.MemberSignature"/> must be a valid string or <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.MemberTypes"/>
            must not equal <see cref="F:System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.None"/>, but not both.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.Type">
            <summary>
            Gets the <see cref="T:System.Type"/> containing the specified member.
            </summary>
            <remarks>
            If neither <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.Type"/> nor <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.TypeName"/> are specified,
            the type of the consumer is assumed.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.TypeName">
            <summary>
            Gets the full name of the type containing the specified member.
            </summary>
            <remarks>
            If neither <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.Type"/> nor <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.TypeName"/> are specified,
            the type of the consumer is assumed.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.AssemblyName">
            <summary>
            Gets the assembly name of the specified type.
            </summary>
            <remarks>
            <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.AssemblyName"/> is only valid when <see cref="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.TypeName"/> is specified.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute.Condition">
            <summary>
            Gets or sets the condition in which the dependency is applicable, e.g. "DEBUG".
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute">
            <summary>
            /// Indicates that the specified member requires assembly files to be on disk.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute"/> class.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute"/> class.
            </summary>
            <param name="message">
            A message that contains information about the need for assembly files to be on disk.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.Message">
            <summary>
            Gets an optional message that contains information about the need for
            assembly files to be on disk.
            </summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.RequiresAssemblyFilesAttribute.Url">
            <summary>
            Gets or sets an optional URL that contains more information about the member,
            why it requires assembly files to be on disk, and what options a consumer has
            to deal with it.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute">
            <summary>
            Indicates that the specified method requires the ability to generate new code at runtime,
            for example through <see cref="N:System.Reflection"/>.
            </summary>
            <remarks>
            This allows tools to understand which methods are unsafe to call when compiling ahead of time.
            </remarks>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute"/> class
            with the specified message.
            </summary>
            <param name="message">
            A message that contains information about the usage of dynamic code.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.Message">
            <summary>
            Gets a message that contains information about the usage of dynamic code.
            </summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute.Url">
            <summary>
            Gets or sets an optional URL that contains more information about the method,
            why it requires dynamic code, and what options a consumer has to deal with it.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute">
            <summary>
            /// Indicates that the specified method requires dynamic access to code that is not referenced
            statically, for example through <see cref="N:System.Reflection"/>.
            </summary>
            <remarks>
            This allows tools to understand which methods are unsafe to call when removing unreferenced
            code from an application.
            </remarks>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute"/> class
            with the specified message.
            </summary>
            <param name="message">
            A message that contains information about the usage of unreferenced code.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Message">
            <summary>
            Gets a message that contains information about the usage of unreferenced code.
            </summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Url">
            <summary>
            Gets or sets an optional URL that contains more information about the method,
            why it requires unreferenced code, and what options a consumer has to deal with it.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute">
            <summary>
            /// Suppresses reporting of a specific rule violation, allowing multiple suppressions on a
            single code artifact.
            </summary>
            <remarks>
            <see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/> is different than
            <see cref="T:System.Diagnostics.CodeAnalysis.SuppressMessageAttribute"/> in that it doesn't have a
            <see cref="T:System.Diagnostics.ConditionalAttribute"/>. So it is always preserved in the compiled assembly.
            </remarks>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/>
            class, specifying the category of the tool and the identifier for an analysis rule.
            </summary>
            <param name="category">The category for the attribute.</param>
            <param name="checkId">The identifier of the analysis rule the attribute applies to.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category">
            <summary>
            Gets the category identifying the classification of the attribute.
            </summary>
            <remarks>
            The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category"/> property describes the tool or tool analysis category
            for which a message suppression attribute applies.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.CheckId">
            <summary>
            Gets the identifier of the analysis tool rule to be suppressed.
            </summary>
            <remarks>
            Concatenated together, the <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Category"/> and <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.CheckId"/>
            properties form a unique check identifier.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Scope">
            <summary>
            Gets or sets the scope of the code that is relevant for the attribute.
            </summary>
            <remarks>
            The Scope property is an optional argument that specifies the metadata scope for which
            the attribute is relevant.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Target">
            <summary>
            Gets or sets a fully qualified path that represents the target of the attribute.
            </summary>
            <remarks>
            The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Target"/> property is an optional argument identifying the analysis target
            of the attribute. An example value is "System.IO.Stream.ctor():System.Void".
            Because it is fully qualified, it can be long, particularly for targets such as parameters.
            The analysis tool user interface should be capable of automatically formatting the parameter.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.MessageId">
            <summary>
            Gets or sets an optional argument expanding on exclusion criteria.
            </summary>
            <remarks>
            The <see cref="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.MessageId"/> property is an optional argument that specifies additional
            exclusion where the literal metadata target is not sufficiently precise. For example,
            the <see cref="T:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute"/> cannot be applied within a method,
            and it may be desirable to suppress a violation against a statement in the method that will
            give a rule violation, but not against all statements in the method.
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.UnconditionalSuppressMessageAttribute.Justification">
            <summary>
            Gets or sets the justification for suppressing the code analysis message.
            </summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute">
            <summary>Specifies the syntax used in a string.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.#ctor(System.String)">
            <summary>Initializes the <see cref="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute"/> with the identifier of the syntax used.</summary>
            <param name="syntax">The syntax identifier.</param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.#ctor(System.String,System.Object[])">
            <summary>Initializes the <see cref="T:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute"/> with the identifier of the syntax used.</summary>
            <param name="syntax">The syntax identifier.</param>
            <param name="arguments">Optional arguments associated with the specific syntax employed.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Syntax">
            <summary>Gets the identifier of the syntax used.</summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Arguments">
            <summary>Optional arguments associated with the specific syntax employed.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.CompositeFormat">
            <summary>The syntax identifier for strings containing composite formats for string formatting.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.DateOnlyFormat">
            <summary>The syntax identifier for strings containing date format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.DateTimeFormat">
            <summary>The syntax identifier for strings containing date and time format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.EnumFormat">
            <summary>The syntax identifier for strings containing <see cref="T:System.Enum"/> format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.GuidFormat">
            <summary>The syntax identifier for strings containing <see cref="T:System.Guid"/> format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Json">
            <summary>The syntax identifier for strings containing JavaScript Object Notation (JSON).</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.NumericFormat">
            <summary>The syntax identifier for strings containing numeric format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Regex">
            <summary>The syntax identifier for strings containing regular expressions.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.TimeOnlyFormat">
            <summary>The syntax identifier for strings containing time format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.TimeSpanFormat">
            <summary>The syntax identifier for strings containing <see cref="T:System.TimeSpan"/> format specifiers.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Uri">
            <summary>The syntax identifier for strings containing URIs.</summary>
        </member>
        <member name="F:System.Diagnostics.CodeAnalysis.StringSyntaxAttribute.Xml">
            <summary>The syntax identifier for strings containing XML.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.ExperimentalAttribute">
            <summary>
            Indicates that an API element is experimental and subject to change without notice.
            </summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.ExperimentalAttribute"/> class.
            </summary>
            <param name="diagnosticId">Human readable explanation for marking experimental API.</param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.DiagnosticId">
            <summary>
             Gets the ID that the compiler will use when reporting a use of the API the attribute applies to.
            </summary>
            <value>The unique diagnostic ID.</value>
            <remarks>
             The diagnostic ID is shown in build output for warnings and errors.
             <para>This property represents the unique ID that can be used to suppress the warnings or errors, if needed.</para>
            </remarks>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.ExperimentalAttribute.UrlFormat">
            <summary>
             Gets or sets the URL for corresponding documentation.
             The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID.
            </summary>
            <value>The format string that represents a URL to corresponding documentation.</value>
            <remarks>An example format string is <c>https://contoso.com/obsoletion-warnings/{0}</c>.</remarks>
        </member>
        <member name="T:System.Text.Json.Schema.JsonSchemaExporter">
            <summary>
            Maps .NET types to JSON schema objects using contract metadata from <see cref="T:System.Text.Json.Serialization.Metadata.JsonTypeInfo"/> instances.
            </summary>
        </member>
        <member name="M:System.Text.Json.Schema.JsonSchemaExporter.GetJsonSchemaAsNode(System.Text.Json.JsonSerializerOptions,System.Type,System.Text.Json.Schema.JsonSchemaExporterOptions)">
            <summary>
            Generates a JSON schema corresponding to the contract metadata of the specified type.
            </summary>
            <param name="options">The options instance from which to resolve the contract metadata.</param>
            <param name="type">The root type for which to generate the JSON schema.</param>
            <param name="exporterOptions">The exporterOptions object controlling the schema generation.</param>
            <returns>A new <see cref="T:System.Text.Json.Nodes.JsonNode"/> instance defining the JSON schema for <paramref name="type"/>.</returns>
            <exception cref="T:System.ArgumentNullException">One of the specified parameters is <see langword="null" />.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="options"/> parameter contains unsupported exporterOptions.</exception>
        </member>
        <member name="M:System.Text.Json.Schema.JsonSchemaExporter.GetJsonSchemaAsNode(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.Schema.JsonSchemaExporterOptions)">
            <summary>
            Generates a JSON schema corresponding to the specified contract metadata.
            </summary>
            <param name="typeInfo">The contract metadata for which to generate the schema.</param>
            <param name="exporterOptions">The exporterOptions object controlling the schema generation.</param>
            <returns>A new <see cref="T:System.Text.Json.Nodes.JsonNode"/> instance defining the JSON schema for <paramref name="typeInfo"/>.</returns>
            <exception cref="T:System.ArgumentNullException">One of the specified parameters is <see langword="null" />.</exception>
            <exception cref="T:System.NotSupportedException">The <paramref name="typeInfo"/> parameter contains unsupported exporterOptions.</exception>
        </member>
        <member name="M:System.Text.Json.Schema.JsonSchemaExporter.GenerationState.TryGetExistingJsonPointer(System.Text.Json.Schema.JsonSchemaExporterContext@,System.String@)">
            <summary>
            Registers the current schema node generation context; if it has already been generated return a JSON pointer to its location.
            </summary>
        </member>
        <member name="T:System.Text.Json.Schema.JsonSchemaExporterContext">
            <summary>
            Defines the context in which a JSON schema within a type graph is being generated.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterContext.Path">
            <summary>
            Gets the path to the schema document currently being generated.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterContext.TypeInfo">
            <summary>
            Gets the <see cref="T:System.Text.Json.Serialization.Metadata.JsonTypeInfo"/> for the type being processed.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterContext.DeclaringType">
            <summary>
            Gets the declaring type of the property or parameter being processed.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterContext.BaseTypeInfo">
            <summary>
            Gets the type info for the polymorphic base type if generated as a derived type.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterContext.PropertyInfo">
            <summary>
            Gets the <see cref="T:System.Text.Json.Serialization.Metadata.JsonPropertyInfo"/> if the schema is being generated for a property.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterContext.ParameterInfo">
            <summary>
            Gets the <see cref="T:System.Reflection.ParameterInfo"/> if a constructor parameter
            has been associated with the accompanying <see cref="P:System.Text.Json.Schema.JsonSchemaExporterContext.PropertyInfo"/>.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterContext.PropertyAttributeProvider">
            <summary>
            Gets the <see cref="T:System.Reflection.ICustomAttributeProvider"/> corresponding to the property or field being processed.
            </summary>
        </member>
        <member name="T:System.Text.Json.Schema.JsonSchemaExporterOptions">
            <summary>
            Controls the behavior of the <see cref="T:System.Text.Json.Schema.JsonSchemaExporter"/> class.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterOptions.Default">
            <summary>
            Gets the default configuration object used by <see cref="T:System.Text.Json.Schema.JsonSchemaExporter"/>.
            </summary>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterOptions.TreatNullObliviousAsNonNullable">
            <summary>
            Gets a value indicating whether non-nullable schemas should be generated for null oblivious reference types.
            </summary>
            <remarks>
            Defaults to <see langword="false"/>. Due to restrictions in the run-time representation of nullable reference types
            most occurrences are null oblivious and are treated as nullable by the serializer. A notable exception to that rule
            are nullability annotations of field, property and constructor parameters which are represented in the contract metadata.
            </remarks>
        </member>
        <member name="P:System.Text.Json.Schema.JsonSchemaExporterOptions.TransformSchemaNode">
            <summary>
            Gets a callback that is invoked for every schema that is generated within the type graph.
            </summary>
        </member>
        <member name="T:System.Reflection.NullabilityInfo">
            <summary>
            A class that represents nullability info.
            </summary>
        </member>
        <member name="P:System.Reflection.NullabilityInfo.Type">
            <summary>
            The <see cref="T:System.Type" /> of the member or generic parameter
            to which this NullabilityInfo belongs.
            </summary>
        </member>
        <member name="P:System.Reflection.NullabilityInfo.ReadState">
            <summary>
            The nullability read state of the member.
            </summary>
        </member>
        <member name="P:System.Reflection.NullabilityInfo.WriteState">
            <summary>
            The nullability write state of the member.
            </summary>
        </member>
        <member name="P:System.Reflection.NullabilityInfo.ElementType">
            <summary>
            If the member type is an array, gives the <see cref="T:System.Reflection.NullabilityInfo" /> of the elements of the array, null otherwise.
            </summary>
        </member>
        <member name="P:System.Reflection.NullabilityInfo.GenericTypeArguments">
            <summary>
            If the member type is a generic type, gives the array of <see cref="T:System.Reflection.NullabilityInfo" /> for each type parameter.
            </summary>
        </member>
        <member name="T:System.Reflection.NullabilityState">
            <summary>
            An enum that represents nullability state.
            </summary>
        </member>
        <member name="F:System.Reflection.NullabilityState.Unknown">
            <summary>
            Nullability context not enabled (oblivious).
            </summary>
        </member>
        <member name="F:System.Reflection.NullabilityState.NotNull">
            <summary>
            Non nullable value or reference type.
            </summary>
        </member>
        <member name="F:System.Reflection.NullabilityState.Nullable">
            <summary>
            Nullable value or reference type.
            </summary>
        </member>
        <member name="T:System.Reflection.NullabilityInfoContext">
            <summary>
            Provides APIs for populating nullability information/context from reflection members:
            <see cref="T:System.Reflection.ParameterInfo"/>, <see cref="T:System.Reflection.FieldInfo"/>, <see cref="T:System.Reflection.PropertyInfo"/> and <see cref="T:System.Reflection.EventInfo"/>.
            </summary>
        </member>
        <member name="M:System.Reflection.NullabilityInfoContext.Create(System.Reflection.ParameterInfo)">
            <summary>
            Populates <see cref="T:System.Reflection.NullabilityInfo" /> for the given <see cref="T:System.Reflection.ParameterInfo" />.
            If the nullablePublicOnly feature is set for an assembly, like it does in .NET SDK, the private and/or internal member's
            nullability attributes are omitted, in this case the API will return NullabilityState.Unknown state.
            </summary>
            <param name="parameterInfo">The parameter which nullability info gets populated.</param>
            <exception cref="T:System.ArgumentNullException">If the parameterInfo parameter is null.</exception>
            <returns><see cref="T:System.Reflection.NullabilityInfo" />.</returns>
        </member>
        <member name="M:System.Reflection.NullabilityInfoContext.Create(System.Reflection.PropertyInfo)">
            <summary>
            Populates <see cref="T:System.Reflection.NullabilityInfo" /> for the given <see cref="T:System.Reflection.PropertyInfo" />.
            If the nullablePublicOnly feature is set for an assembly, like it does in .NET SDK, the private and/or internal member's
            nullability attributes are omitted, in this case the API will return NullabilityState.Unknown state.
            </summary>
            <param name="propertyInfo">The parameter which nullability info gets populated.</param>
            <exception cref="T:System.ArgumentNullException">If the propertyInfo parameter is null.</exception>
            <returns><see cref="T:System.Reflection.NullabilityInfo" />.</returns>
        </member>
        <member name="M:System.Reflection.NullabilityInfoContext.Create(System.Reflection.EventInfo)">
            <summary>
            Populates <see cref="T:System.Reflection.NullabilityInfo" /> for the given <see cref="T:System.Reflection.EventInfo" />.
            If the nullablePublicOnly feature is set for an assembly, like it does in .NET SDK, the private and/or internal member's
            nullability attributes are omitted, in this case the API will return NullabilityState.Unknown state.
            </summary>
            <param name="eventInfo">The parameter which nullability info gets populated.</param>
            <exception cref="T:System.ArgumentNullException">If the eventInfo parameter is null.</exception>
            <returns><see cref="T:System.Reflection.NullabilityInfo" />.</returns>
        </member>
        <member name="M:System.Reflection.NullabilityInfoContext.Create(System.Reflection.FieldInfo)">
            <summary>
            Populates <see cref="T:System.Reflection.NullabilityInfo" /> for the given <see cref="T:System.Reflection.FieldInfo" />
            If the nullablePublicOnly feature is set for an assembly, like it does in .NET SDK, the private and/or internal member's
            nullability attributes are omitted, in this case the API will return NullabilityState.Unknown state.
            </summary>
            <param name="fieldInfo">The parameter which nullability info gets populated.</param>
            <exception cref="T:System.ArgumentNullException">If the fieldInfo parameter is null.</exception>
            <returns><see cref="T:System.Reflection.NullabilityInfo" />.</returns>
        </member>
        <member name="T:System.Reflection.NullabilityInfoHelpers">
            <summary>
            Polyfills for System.Private.CoreLib internals.
            </summary>
        </member>
        <member name="T:Microsoft.Shared.Diagnostics.Throw">
            <summary>
            Defines static methods used to throw exceptions.
            </summary>
            <remarks>
            The main purpose is to reduce code size, improve performance, and standardize exception
            messages.
            </remarks>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfNull``1(``0,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentNullException"/> if the specified argument is <see langword="null"/>.
            </summary>
            <typeparam name="T">Argument type to be checked for <see langword="null"/>.</typeparam>
            <param name="argument">Object to be checked for <see langword="null"/>.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfNullOrMemberNull``2(``0,``1,System.String,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentNullException"/> if the specified argument is <see langword="null"/>,
            or <see cref="T:System.ArgumentException" /> if the specified member is <see langword="null"/>.
            </summary>
            <typeparam name="TParameter">Argument type to be checked for <see langword="null"/>.</typeparam>
            <typeparam name="TMember">Member type to be checked for <see langword="null"/>.</typeparam>
            <param name="argument">Argument to be checked for <see langword="null"/>.</param>
            <param name="member">Object member to be checked for <see langword="null"/>.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <param name="memberName">The name of the member.</param>
            <returns>The original value of <paramref name="member"/>.</returns>
            <example>
            <code language="csharp">
            Throws.IfNullOrMemberNull(myObject, myObject?.MyProperty)
            </code>
            </example>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfMemberNull``2(``0,``1,System.String,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentException" /> if the specified member is <see langword="null"/>.
            </summary>
            <typeparam name="TParameter">Argument type.</typeparam>
            <typeparam name="TMember">Member type to be checked for <see langword="null"/>.</typeparam>
            <param name="argument">Argument to which member belongs.</param>
            <param name="member">Object member to be checked for <see langword="null"/>.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <param name="memberName">The name of the member.</param>
            <returns>The original value of <paramref name="member"/>.</returns>
            <example>
            <code language="csharp">
            Throws.IfMemberNull(myObject, myObject.MyProperty)
            </code>
            </example>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfNullOrWhitespace(System.String,System.String)">
            <summary>
            Throws either an <see cref="T:System.ArgumentNullException"/> or an <see cref="T:System.ArgumentException"/>
            if the specified string is <see langword="null"/> or whitespace respectively.
            </summary>
            <param name="argument">String to be checked for <see langword="null"/> or whitespace.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfNullOrEmpty(System.String,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentNullException"/> if the string is <see langword="null"/>,
            or <see cref="T:System.ArgumentException"/> if it is empty.
            </summary>
            <param name="argument">String to be checked for <see langword="null"/> or empty.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfBufferTooSmall(System.Int32,System.Int32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentException"/> if the argument's buffer size is less than the required buffer size.
            </summary>
            <param name="bufferSize">The actual buffer size.</param>
            <param name="requiredSize">The required buffer size.</param>
            <param name="paramName">The name of the parameter to be checked.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfOutOfRange``1(``0,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the enum value is not valid.
            </summary>
            <param name="argument">The argument to evaluate.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <typeparam name="T">The type of the enumeration.</typeparam>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfNullOrEmpty``1(System.Collections.Generic.IEnumerable{``0},System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentNullException"/> if the collection is <see langword="null"/>,
            or <see cref="T:System.ArgumentException"/> if it is empty.
            </summary>
            <param name="argument">The collection to evaluate.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <typeparam name="T">The type of objects in the collection.</typeparam>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.ArgumentNullException(System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentNullException"/>.
            </summary>
            <param name="paramName">The name of the parameter that caused the exception.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.ArgumentNullException(System.String,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentNullException"/>.
            </summary>
            <param name="paramName">The name of the parameter that caused the exception.</param>
            <param name="message">A message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.ArgumentOutOfRangeException(System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>.
            </summary>
            <param name="paramName">The name of the parameter that caused the exception.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.ArgumentOutOfRangeException(System.String,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>.
            </summary>
            <param name="paramName">The name of the parameter that caused the exception.</param>
            <param name="message">A message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.ArgumentOutOfRangeException(System.String,System.Object,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>.
            </summary>
            <param name="paramName">The name of the parameter that caused the exception.</param>
            <param name="actualValue">The value of the argument that caused this exception.</param>
            <param name="message">A message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.ArgumentException(System.String,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentException"/>.
            </summary>
            <param name="paramName">The name of the parameter that caused the exception.</param>
            <param name="message">A message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.ArgumentException(System.String,System.String,System.Exception)">
            <summary>
            Throws an <see cref="T:System.ArgumentException"/>.
            </summary>
            <param name="paramName">The name of the parameter that caused the exception.</param>
            <param name="message">A message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
            <remarks>
            If the <paramref name="innerException"/> is not a <see langword="null"/>, the current exception is raised in a catch
            block that handles the inner exception.
            </remarks>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.InvalidOperationException(System.String)">
            <summary>
            Throws an <see cref="T:System.InvalidOperationException"/>.
            </summary>
            <param name="message">A message that describes the error.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.InvalidOperationException(System.String,System.Exception)">
            <summary>
            Throws an <see cref="T:System.InvalidOperationException"/>.
            </summary>
            <param name="message">A message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThan(System.Int32,System.Int32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>  if the specified number is less than min.
            </summary>
            <param name="argument">Number to be expected being less than min.</param>
            <param name="min">The number that must be less than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThan(System.Int32,System.Int32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater than max.
            </summary>
            <param name="argument">Number to be expected being greater than max.</param>
            <param name="max">The number that must be greater than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThanOrEqual(System.Int32,System.Int32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is less or equal than min.
            </summary>
            <param name="argument">Number to be expected being less or equal than min.</param>
            <param name="min">The number that must be less or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThanOrEqual(System.Int32,System.Int32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater or equal than max.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="max">The number that must be greater or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfOutOfRange(System.Int32,System.Int32,System.Int32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is not in the specified range.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="min">The lower bound of the allowed range of argument values.</param>
            <param name="max">The upper bound of the allowed range of argument values.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfZero(System.Int32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is equal to 0.
            </summary>
            <param name="argument">Number to be expected being not equal to zero.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThan(System.UInt32,System.UInt32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>  if the specified number is less than min.
            </summary>
            <param name="argument">Number to be expected being less than min.</param>
            <param name="min">The number that must be less than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThan(System.UInt32,System.UInt32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater than max.
            </summary>
            <param name="argument">Number to be expected being greater than max.</param>
            <param name="max">The number that must be greater than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThanOrEqual(System.UInt32,System.UInt32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is less or equal than min.
            </summary>
            <param name="argument">Number to be expected being less or equal than min.</param>
            <param name="min">The number that must be less or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThanOrEqual(System.UInt32,System.UInt32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater or equal than max.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="max">The number that must be greater or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfOutOfRange(System.UInt32,System.UInt32,System.UInt32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is not in the specified range.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="min">The lower bound of the allowed range of argument values.</param>
            <param name="max">The upper bound of the allowed range of argument values.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfZero(System.UInt32,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is equal to 0.
            </summary>
            <param name="argument">Number to be expected being not equal to zero.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThan(System.Int64,System.Int64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>  if the specified number is less than min.
            </summary>
            <param name="argument">Number to be expected being less than min.</param>
            <param name="min">The number that must be less than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThan(System.Int64,System.Int64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater than max.
            </summary>
            <param name="argument">Number to be expected being greater than max.</param>
            <param name="max">The number that must be greater than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThanOrEqual(System.Int64,System.Int64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is less or equal than min.
            </summary>
            <param name="argument">Number to be expected being less or equal than min.</param>
            <param name="min">The number that must be less or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThanOrEqual(System.Int64,System.Int64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater or equal than max.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="max">The number that must be greater or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfOutOfRange(System.Int64,System.Int64,System.Int64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is not in the specified range.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="min">The lower bound of the allowed range of argument values.</param>
            <param name="max">The upper bound of the allowed range of argument values.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfZero(System.Int64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is equal to 0.
            </summary>
            <param name="argument">Number to be expected being not equal to zero.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThan(System.UInt64,System.UInt64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/>  if the specified number is less than min.
            </summary>
            <param name="argument">Number to be expected being less than min.</param>
            <param name="min">The number that must be less than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThan(System.UInt64,System.UInt64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater than max.
            </summary>
            <param name="argument">Number to be expected being greater than max.</param>
            <param name="max">The number that must be greater than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThanOrEqual(System.UInt64,System.UInt64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is less or equal than min.
            </summary>
            <param name="argument">Number to be expected being less or equal than min.</param>
            <param name="min">The number that must be less or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThanOrEqual(System.UInt64,System.UInt64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater or equal than max.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="max">The number that must be greater or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfOutOfRange(System.UInt64,System.UInt64,System.UInt64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is not in the specified range.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="min">The lower bound of the allowed range of argument values.</param>
            <param name="max">The upper bound of the allowed range of argument values.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfZero(System.UInt64,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is equal to 0.
            </summary>
            <param name="argument">Number to be expected being not equal to zero.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThan(System.Double,System.Double,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is less than min.
            </summary>
            <param name="argument">Number to be expected being less than min.</param>
            <param name="min">The number that must be less than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThan(System.Double,System.Double,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater than max.
            </summary>
            <param name="argument">Number to be expected being greater than max.</param>
            <param name="max">The number that must be greater than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfLessThanOrEqual(System.Double,System.Double,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is less or equal than min.
            </summary>
            <param name="argument">Number to be expected being less or equal than min.</param>
            <param name="min">The number that must be less or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfGreaterThanOrEqual(System.Double,System.Double,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is greater or equal than max.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="max">The number that must be greater or equal than the argument.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfOutOfRange(System.Double,System.Double,System.Double,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is not in the specified range.
            </summary>
            <param name="argument">Number to be expected being greater or equal than max.</param>
            <param name="min">The lower bound of the allowed range of argument values.</param>
            <param name="max">The upper bound of the allowed range of argument values.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.IfZero(System.Double,System.String)">
            <summary>
            Throws an <see cref="T:System.ArgumentOutOfRangeException"/> if the specified number is equal to 0.
            </summary>
            <param name="argument">Number to be expected being not equal to zero.</param>
            <param name="paramName">The name of the parameter being checked.</param>
            <returns>The original value of <paramref name="argument"/>.</returns>
        </member>
        <member name="M:Microsoft.Shared.Diagnostics.Throw.CreateMissingServiceException(System.Type,System.Object)">
            <summary>Throws an exception indicating that a required service is not available.</summary>
        </member>
        <member name="T:Microsoft.Shared.Collections.Empty">
            <summary>
            Defines static methods used to optimize the use of empty collections.
            </summary>
        </member>
        <member name="M:Microsoft.Shared.Collections.Empty.ReadOnlyCollection``1">
            <summary>
            Returns an optimized empty collection.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <returns>Returns an efficient static instance of an empty collection.</returns>
        </member>
        <member name="M:Microsoft.Shared.Collections.Empty.Enumerable``1">
            <summary>
            Returns an optimized empty collection.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <returns>Returns an efficient static instance of an empty collection.</returns>
        </member>
        <member name="M:Microsoft.Shared.Collections.Empty.ReadOnlyList``1">
            <summary>
            Returns an optimized empty collection.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <returns>Returns an efficient static instance of an empty list.</returns>
        </member>
        <member name="M:Microsoft.Shared.Collections.Empty.ReadOnlyDictionary``2">
            <summary>
            Returns an optimized empty dictionary.
            </summary>
            <typeparam name="TKey">The key type of the dictionary.</typeparam>
            <typeparam name="TValue">The value type of the dictionary.</typeparam>
            <returns>Returns an efficient static instance of an empty dictionary.</returns>
        </member>
        <member name="T:Microsoft.Shared.Collections.EmptyCollectionExtensions">
            <summary>
            Defines static methods used to optimize the use of empty collections.
            </summary>
        </member>
        <member name="M:Microsoft.Shared.Collections.EmptyCollectionExtensions.EmptyIfNull``1(System.Collections.Generic.IReadOnlyCollection{``0})">
            <summary>
            Returns an optimized empty collection if the input is <see langword="null"/> or empty, otherwise returns the input.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <param name="collection">The collection to check for <see langword="null"/> or empty.</param>
            <returns>Returns a static instance of an empty type if the input collection is <see langword="null"/> or empty, otherwise the collection.</returns>
            <remarks>
            Substituting a static collection whenever an empty collection is needed helps in two ways. First,
            it allows the original empty collection to be garbage collected, freeing memory. Second, the
            empty collection that is returned is optimized to not allocated memory whenever the collection is
            enumerated.
            </remarks>
        </member>
        <member name="M:Microsoft.Shared.Collections.EmptyCollectionExtensions.EmptyIfNull``1(System.Collections.Generic.ICollection{``0})">
            <summary>
            Returns an optimized empty collection if the input is <see langword="null"/> or empty, otherwise returns the input.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <param name="collection">The collection to check for <see langword="null"/> or empty.</param>
            <returns>Returns a static instance of an empty type if the input collection is <see langword="null"/> or empty, otherwise the collection.</returns>
            <remarks>
            Substituting a static collection whenever an empty collection is needed helps in two ways. First,
            it allows the original empty collection to be garbage collected, freeing memory. Second, the
            empty collection that is returned is optimized to not allocated memory whenever the collection is
            enumerated.
            </remarks>
        </member>
        <member name="M:Microsoft.Shared.Collections.EmptyCollectionExtensions.EmptyIfNull``1(System.Collections.Generic.IReadOnlyList{``0})">
            <summary>
            Returns an optimized empty collection if the input is <see langword="null"/> or empty, otherwise returns the input.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <param name="list">The collection to check for <see langword="null"/> or empty.</param>
            <returns>Returns a static instance of an empty type if the input collection is <see langword="null"/> or empty, otherwise the collection.</returns>
            <remarks>
            Substituting a static collection whenever an empty collection is needed helps in two ways. First,
            it allows the original empty collection to be garbage collected, freeing memory. Second, the
            empty collection that is returned is optimized to not allocated memory whenever the collection is
            enumerated.
            </remarks>
        </member>
        <member name="M:Microsoft.Shared.Collections.EmptyCollectionExtensions.EmptyIfNull``1(System.Collections.Generic.IList{``0})">
            <summary>
            Returns an optimized empty list if the input is <see langword="null"/> or empty, otherwise returns the input.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <param name="list">The list to check for <see langword="null"/> or empty.</param>
            <returns>Returns a static instance of an empty type if the input collection is <see langword="null"/> or empty, otherwise the collection.</returns>
            <remarks>
            Substituting a static list whenever an empty collection is needed helps in two ways. First,
            it allows the original empty collection to be garbage collected, freeing memory. Second, the
            empty collection that is returned is optimized to not allocated memory whenever the collection is
            enumerated.
            </remarks>
        </member>
        <member name="M:Microsoft.Shared.Collections.EmptyCollectionExtensions.EmptyIfNull``1(``0[])">
            <summary>
            Returns an optimized empty array if the input is <see langword="null"/> or empty, otherwise returns the input.
            </summary>
            <typeparam name="T">The type of the array.</typeparam>
            <param name="array">The array to check for <see langword="null"/> or empty.</param>
            <returns>Returns a static instance of an empty array if the input array is <see langword="null"/> or empty, otherwise the array.</returns>
        </member>
        <member name="M:Microsoft.Shared.Collections.EmptyCollectionExtensions.EmptyIfNull``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Returns an optimized empty collection if the input is <see langword="null"/> or can be determined to be empty, otherwise returns the input.
            </summary>
            <typeparam name="T">The type of the collection.</typeparam>
            <param name="enumerable">The collection to check for <see langword="null"/> or empty.</param>
            <returns>Returns a static instance of an empty type if the input collection is <see langword="null"/> or empty, otherwise the collection.</returns>
            <remarks>
            This method does not enumerate the collection.
            </remarks>
        </member>
        <member name="M:Microsoft.Shared.Collections.EmptyCollectionExtensions.EmptyIfNull``2(System.Collections.Generic.IReadOnlyDictionary{``0,``1})">
            <summary>
            Returns an optimized empty dictionary if the input is <see langword="null"/> or can be determined to be empty, otherwise returns the input.
            </summary>
            <typeparam name="TKey">The key type of the dictionary.</typeparam>
            <typeparam name="TValue">The value type of the dictionary.</typeparam>
            <param name="dictionary">The dictionary to check for <see langword="null"/> or empty.</param>
            <returns>Returns a static instance of an empty type if the input dictionary is <see langword="null"/> or empty, otherwise the dictionary.</returns>
            <remarks>
            Note that this method does not enumerate the dictionary.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary">
            <summary>Provides a dictionary used as the AdditionalProperties dictionary on Microsoft.Extensions.AI objects.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary.Clone">
            <summary>Creates a shallow clone of the properties dictionary.</summary>
            <returns>
            A shallow clone of the properties dictionary. The instance will not be the same as the current instance,
            but it will contain all of the same key-value pairs.
            </returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1">
            <summary>Provides a dictionary used as the AdditionalProperties dictionary on Microsoft.Extensions.AI objects.</summary>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
        </member>
        <member name="F:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1._dictionary">
            <summary>The underlying dictionary.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.#ctor(System.Collections.Generic.IDictionary{System.String,`0})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,`0}})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Clone">
            <summary>Creates a shallow clone of the properties dictionary.</summary>
            <returns>
            A shallow clone of the properties dictionary. The instance will not be the same as the current instance,
            but it will contain all of the same key-value pairs.
            </returns>
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Keys">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Values">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Count">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,TValue}}#IsReadOnly">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#IReadOnlyDictionary{System#String,TValue}#Keys">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#IReadOnlyDictionary{System#String,TValue}#Values">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Add(System.String,`0)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.TryAdd(System.String,`0)">
            <summary>Attempts to add the specified key and value to the dictionary.</summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">The value of the element to add.</param>
            <returns><see langword="true"/> if the key/value pair was added to the dictionary successfully; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,TValue}}#Add(System.Collections.Generic.KeyValuePair{System.String,`0})">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Clear">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,TValue}}#Contains(System.Collections.Generic.KeyValuePair{System.String,`0})">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,TValue}}#CopyTo(System.Collections.Generic.KeyValuePair{System.String,`0}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1"/>.
            </summary>
            <returns>An <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator"/> that enumerates the contents of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#IEnumerable{System#Collections#Generic#KeyValuePair{System#String,TValue}}#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,TValue}}#Remove(System.Collections.Generic.KeyValuePair{System.String,`0})">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.TryGetValue``1(System.String,``0@)">
            <summary>Attempts to extract a typed value from the dictionary.</summary>
            <typeparam name="T">The type of the value to be retrieved.</typeparam>
            <param name="key">The key to locate.</param>
            <param name="value">
            When this method returns, contains the value retrieved from the dictionary, if found and successfully converted to the requested type;
            otherwise, the default value of <typeparamref name="T"/>.
            </param>
            <returns>
            <see langword="true"/> if a non-<see langword="null"/> value was found for <paramref name="key"/>
            in the dictionary and converted to the requested type; otherwise, <see langword="false"/>.
            </returns>
            <remarks>
            If a non-<see langword="null"/> value is found for the key in the dictionary, but the value is not of the requested type and is
            an <see cref="T:System.IConvertible"/> object, the method attempts to convert the object to the requested type.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.TryGetValue(System.String,`0@)">
            <summary>Gets the value associated with the specified key.</summary>
            <returns><see langword="true"/> if the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1"/> contains an element with the specified key; otherwise <see langword="false"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#IDictionary{System#String,TValue}#TryGetValue(System.String,`0@)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.System#Collections#Generic#IReadOnlyDictionary{System#String,TValue}#TryGetValue(System.String,`0@)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.SetAll(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,`0}})">
            <summary>Copies all of the entries from <paramref name="items"/> into the dictionary, overwriting any existing items in the dictionary with the same key.</summary>
            <param name="items">The items to add.</param>
        </member>
        <member name="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator">
            <summary>Enumerates the elements of an <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1"/>.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator._dictionaryEnumerator">
            <summary>The wrapped dictionary enumerator.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator.#ctor(System.Collections.Generic.Dictionary{System.String,`0}.Enumerator)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator"/> struct with the dictionary enumerator to wrap.</summary>
            <param name="dictionaryEnumerator">The dictionary enumerator to wrap.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator.Current">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator.System#Collections#IEnumerator#Current">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator.MoveNext">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator.Reset">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.Enumerator.Reset``1(``0@)">
            <summary>Calls <see cref="M:System.Collections.IEnumerator.Reset"/> on an enumerator.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.DebugView">
            <summary>Provides a debugger view for the collection.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AdditionalPropertiesDictionary`1.DebugView.#ctor(Microsoft.Extensions.AI.AdditionalPropertiesDictionary{`0})">
            <summary>Provides a debugger view for the collection.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AITool">
            <summary>Represents a tool that can be specified to an AI service.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AITool.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AITool"/> class.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AITool.Name">
            <summary>Gets the name of the tool.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AITool.Description">
            <summary>Gets a description of the tool, suitable for use in describing the purpose to a model.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AITool.AdditionalProperties">
            <summary>Gets any additional properties associated with the tool.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AITool.ToString">
            <inheritdoc/>
        </member>
        <member name="P:Microsoft.Extensions.AI.AITool.DebuggerDisplay">
            <summary>Gets the string to display in the debugger for this instance.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AutoChatToolMode">
            <summary>
            Indicates that an <see cref="T:Microsoft.Extensions.AI.IChatClient"/> is free to select any of the available tools, or none at all.
            </summary>
            <remarks>
            Use <see cref="P:Microsoft.Extensions.AI.ChatToolMode.Auto"/> to get an instance of <see cref="T:Microsoft.Extensions.AI.AutoChatToolMode"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.AutoChatToolMode.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AutoChatToolMode"/> class.</summary>
            <remarks>Use <see cref="P:Microsoft.Extensions.AI.ChatToolMode.Auto"/> to get an instance of <see cref="T:Microsoft.Extensions.AI.AutoChatToolMode"/>.</remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.AutoChatToolMode.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.AutoChatToolMode.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatClientExtensions">
            <summary>Provides a collection of static methods for extending <see cref="T:Microsoft.Extensions.AI.IChatClient"/> instances.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientExtensions.GetService``1(Microsoft.Extensions.AI.IChatClient,System.Object)">
            <summary>Asks the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> for an object of type <typeparamref name="TService"/>.</summary>
            <typeparam name="TService">The type of the object to be retrieved.</typeparam>
            <param name="client">The client.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object, otherwise <see langword="null"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="client"/> is <see langword="null"/>.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly typed services that may be provided by the <see cref="T:Microsoft.Extensions.AI.IChatClient"/>,
            including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientExtensions.GetRequiredService(Microsoft.Extensions.AI.IChatClient,System.Type,System.Object)">
            <summary>
            Asks the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> for an object of the specified type <paramref name="serviceType"/>
            and throws an exception if one isn't available.
            </summary>
            <param name="client">The client.</param>
            <param name="serviceType">The type of object being requested.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="client"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="serviceType"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">No service of the requested type for the specified key is available.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of services that are required to be provided by the <see cref="T:Microsoft.Extensions.AI.IChatClient"/>,
            including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientExtensions.GetRequiredService``1(Microsoft.Extensions.AI.IChatClient,System.Object)">
            <summary>
            Asks the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> for an object of type <typeparamref name="TService"/>
            and throws an exception if one isn't available.
            </summary>
            <typeparam name="TService">The type of the object to be retrieved.</typeparam>
            <param name="client">The client.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="client"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">No service of the requested type for the specified key is available.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly typed services that are required to be provided by the <see cref="T:Microsoft.Extensions.AI.IChatClient"/>,
            including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientExtensions.GetResponseAsync(Microsoft.Extensions.AI.IChatClient,System.String,Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <summary>Sends a user chat text message and returns the response messages.</summary>
            <param name="client">The chat client.</param>
            <param name="chatMessage">The text content for the chat message to send.</param>
            <param name="options">The chat options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The response messages generated by the client.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="client"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="chatMessage"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientExtensions.GetResponseAsync(Microsoft.Extensions.AI.IChatClient,Microsoft.Extensions.AI.ChatMessage,Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <summary>Sends a chat message and returns the response messages.</summary>
            <param name="client">The chat client.</param>
            <param name="chatMessage">The chat message to send.</param>
            <param name="options">The chat options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The response messages generated by the client.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="client"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="chatMessage"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientExtensions.GetStreamingResponseAsync(Microsoft.Extensions.AI.IChatClient,System.String,Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <summary>Sends a user chat text message and streams the response messages.</summary>
            <param name="client">The chat client.</param>
            <param name="chatMessage">The text content for the chat message to send.</param>
            <param name="options">The chat options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The response messages generated by the client.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="client"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="chatMessage"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientExtensions.GetStreamingResponseAsync(Microsoft.Extensions.AI.IChatClient,Microsoft.Extensions.AI.ChatMessage,Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <summary>Sends a chat message and streams the response messages.</summary>
            <param name="client">The chat client.</param>
            <param name="chatMessage">The chat message to send.</param>
            <param name="options">The chat options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The response messages generated by the client.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="client"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="chatMessage"/> is <see langword="null"/>.</exception>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatClientMetadata">
            <summary>Provides metadata about an <see cref="T:Microsoft.Extensions.AI.IChatClient"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatClientMetadata.#ctor(System.String,System.Uri,System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatClientMetadata"/> class.</summary>
            <param name="providerName">
            The name of the chat provider, if applicable. Where possible, this should map to the
            appropriate name defined in the OpenTelemetry Semantic Conventions for Generative AI systems.
            </param>
            <param name="providerUri">The URL for accessing the chat provider, if applicable.</param>
            <param name="defaultModelId">The ID of the chat model used by default, if applicable.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatClientMetadata.ProviderName">
            <summary>Gets the name of the chat provider.</summary>
            <remarks>
            Where possible, this maps to the appropriate name defined in the
            OpenTelemetry Semantic Conventions for Generative AI systems.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatClientMetadata.ProviderUri">
            <summary>Gets the URL for accessing the chat provider.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatClientMetadata.DefaultModelId">
            <summary>Gets the ID of the default model used by this chat client.</summary>
            <remarks>
            This value can be <see langword="null"/> if no default model is set on the corresponding <see cref="T:Microsoft.Extensions.AI.IChatClient"/>.
            An individual request may override this value via <see cref="P:Microsoft.Extensions.AI.ChatOptions.ModelId"/>.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatFinishReason">
            <summary>Represents the reason a chat response completed.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.ChatFinishReason._value">
            <summary>The finish reason value. If <see langword="null"/> because `default(ChatFinishReason)` was used, the instance will behave like <see cref="P:Microsoft.Extensions.AI.ChatFinishReason.Stop"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.#ctor(System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatFinishReason"/> struct with a string that describes the reason.</summary>
            <param name="value">The reason value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> is empty or composed entirely of whitespace.</exception>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatFinishReason.Value">
            <summary>Gets the finish reason value.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.Equals(Microsoft.Extensions.AI.ChatFinishReason)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.op_Equality(Microsoft.Extensions.AI.ChatFinishReason,Microsoft.Extensions.AI.ChatFinishReason)">
            <summary>
            Compares two instances.
            </summary>
            <param name="left">The left argument of the comparison.</param>
            <param name="right">The right argument of the comparison.</param>
            <returns><see langword="true" /> if the two instances are equal; <see langword="false" /> if they aren't equal.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.op_Inequality(Microsoft.Extensions.AI.ChatFinishReason,Microsoft.Extensions.AI.ChatFinishReason)">
            <summary>
            Compares two instances.
            </summary>
            <param name="left">The left argument of the comparison.</param>
            <param name="right">The right argument of the comparison.</param>
            <returns><see langword="true" /> if the two instances aren't equal; <see langword="false" /> if they are equal.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.ToString">
            <summary>Gets the <see cref="P:Microsoft.Extensions.AI.ChatFinishReason.Value"/> of the finish reason.</summary>
            <returns>The <see cref="P:Microsoft.Extensions.AI.ChatFinishReason.Value"/> of the finish reason.</returns>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatFinishReason.Stop">
            <summary>Gets a <see cref="T:Microsoft.Extensions.AI.ChatFinishReason"/> representing the model encountering a natural stop point or provided stop sequence.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatFinishReason.Length">
            <summary>Gets a <see cref="T:Microsoft.Extensions.AI.ChatFinishReason"/> representing the model reaching the maximum length allowed for the request and/or response (typically in terms of tokens).</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatFinishReason.ToolCalls">
            <summary>Gets a <see cref="T:Microsoft.Extensions.AI.ChatFinishReason"/> representing the model requesting the use of a tool that was defined in the request.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatFinishReason.ContentFilter">
            <summary>Gets a <see cref="T:Microsoft.Extensions.AI.ChatFinishReason"/> representing the model filtering content, whether for safety, prohibited content, sensitive content, or other such issues.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatFinishReason.Converter">
            <summary>Provides a <see cref="T:System.Text.Json.Serialization.JsonConverter`1"/> for serializing <see cref="T:Microsoft.Extensions.AI.ChatFinishReason"/> instances.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.Converter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatFinishReason.Converter.Write(System.Text.Json.Utf8JsonWriter,Microsoft.Extensions.AI.ChatFinishReason,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatMessage">
            <summary>Represents a chat message used by an <see cref="T:Microsoft.Extensions.AI.IChatClient" />.</summary>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/quickstarts/build-chat-app">Build an AI chat app with .NET.</related>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatMessage.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> class.</summary>
            <remarks>The instance defaults to having a role of <see cref="P:Microsoft.Extensions.AI.ChatRole.User"/>.</remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatMessage.#ctor(Microsoft.Extensions.AI.ChatRole,System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> class.</summary>
            <param name="role">The role of the author of the message.</param>
            <param name="content">The text content of the message.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatMessage.#ctor(Microsoft.Extensions.AI.ChatRole,System.Collections.Generic.IList{Microsoft.Extensions.AI.AIContent})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> class.</summary>
            <param name="role">The role of the author of the message.</param>
            <param name="contents">The contents for this message.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatMessage.Clone">
            <summary>Clones the <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> to a new <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instance.</summary>
            <returns>A shallow clone of the original message object.</returns>
            <remarks>
            This is a shallow clone. The returned instance is different from the original, but all properties
            refer to the same objects as the original.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.AuthorName">
            <summary>Gets or sets the name of the author of the message.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.Role">
            <summary>Gets or sets the role of the author of the message.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.Text">
            <summary>Gets the text of this message.</summary>
            <remarks>
            This property concatenates the text of all <see cref="T:Microsoft.Extensions.AI.TextContent"/> objects in <see cref="P:Microsoft.Extensions.AI.ChatMessage.Contents"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.Contents">
            <summary>Gets or sets the chat message content items.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.MessageId">
            <summary>Gets or sets the ID of the chat message.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.RawRepresentation">
            <summary>Gets or sets the raw representation of the chat message from an underlying implementation.</summary>
            <remarks>
            If a <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> is created to represent some underlying object from another object
            model, this property can be used to store that original object. This can be useful for debugging or
            for enabling a consumer to access the underlying object model if needed.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.AdditionalProperties">
            <summary>Gets or sets any additional properties associated with the message.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatMessage.ToString">
            <inheritdoc/>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.ContentForDebuggerDisplay">
            <summary>Gets a <see cref="T:Microsoft.Extensions.AI.AIContent"/> object to display in the debugger display.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatMessage.EllipsesForDebuggerDisplay">
            <summary>Gets an indication for the debugger display of whether there's more content.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatOptions">
            <summary>Represents the options for a chat request.</summary>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#provide-options">Provide options.</related>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.ConversationId">
            <summary>Gets or sets an optional identifier used to associate a request with an existing conversation.</summary>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#stateless-vs-stateful-clients">Stateless vs. stateful clients.</related>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.Temperature">
            <summary>Gets or sets the temperature for generating chat responses.</summary>
            <remarks>
            This value controls the randomness of predictions made by the model. Use a lower value to decrease randomness in the response.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.MaxOutputTokens">
            <summary>Gets or sets the maximum number of tokens in the generated chat response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.TopP">
            <summary>Gets or sets the "nucleus sampling" factor (or "top p") for generating chat responses.</summary>
            <remarks>
            Nucleus sampling is an alternative to sampling with temperature where the model
            considers the results of the tokens with <see cref="P:Microsoft.Extensions.AI.ChatOptions.TopP"/> probability mass.
            For example, 0.1 means only the tokens comprising the top 10% probability mass are considered.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.TopK">
            <summary>
            Gets or sets the number of most probable tokens that the model considers when generating the next part of the text.
            </summary>
            <remarks>
            This property reduces the probability of generating nonsense. A higher value gives more diverse answers, while a lower value is more conservative.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.FrequencyPenalty">
            <summary>
            Gets or sets the penalty for repeated tokens in chat responses proportional to how many times they've appeared.
            </summary>
            <remarks>
            You can modify this value to reduce the repetitiveness of generated tokens. The higher the value, the stronger a penalty
            is applied to previously present tokens, proportional to how many times they've already appeared in the prompt or prior generation.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.PresencePenalty">
            <summary>
            Gets or sets a value that influences the probability of generated tokens appearing based on their existing presence in generated text.
            </summary>
            <remarks>
            You can modify this value to reduce repetitiveness of generated tokens. Similar to <see cref="P:Microsoft.Extensions.AI.ChatOptions.FrequencyPenalty"/>,
            except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.Seed">
            <summary>Gets or sets a seed value used by a service to control the reproducibility of results.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.ResponseFormat">
            <summary>
            Gets or sets the response format for the chat request.
            </summary>
            <remarks>
            If <see langword="null"/>, no response format is specified and the client will use its default.
            This property can be set to <see cref="P:Microsoft.Extensions.AI.ChatResponseFormat.Text"/> to specify that the response should be unstructured text,
            to <see cref="P:Microsoft.Extensions.AI.ChatResponseFormat.Json"/> to specify that the response should be structured JSON data, or
            an instance of <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatJson"/> constructed with a specific JSON schema to request that the
            response be structured JSON data according to that schema. It is up to the client implementation if or how
            to honor the request. If the client implementation doesn't recognize the specific kind of <see cref="T:Microsoft.Extensions.AI.ChatResponseFormat"/>,
            it can be ignored.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.ModelId">
            <summary>Gets or sets the model ID for the chat request.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.StopSequences">
            <summary>
            Gets or sets the list of stop sequences.
            </summary>
            <remarks>
            After a stop sequence is detected, the model stops generating further tokens for chat responses.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.AllowMultipleToolCalls">
            <summary>
            Gets or sets a flag to indicate whether a single response is allowed to include multiple tool calls.
            If <see langword="false"/>, the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> is asked to return a maximum of one tool call per request.
            If <see langword="true"/>, there is no limit.
            If <see langword="null"/>, the provider may select its own default.
            </summary>
            <remarks>
            <para>
            When used with function calling middleware, this does not affect the ability to perform multiple function calls in sequence.
            It only affects the number of function calls within a single iteration of the function calling loop.
            </para>
            <para>
            The underlying provider is not guaranteed to support or honor this flag. For example it may choose to ignore it and return multiple tool calls regardless.
            </para>
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.ToolMode">
            <summary>Gets or sets the tool mode for the chat request.</summary>
            <remarks>The default value is <see langword="null"/>, which is treated the same as <see cref="P:Microsoft.Extensions.AI.ChatToolMode.Auto"/>.</remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.Tools">
            <summary>Gets or sets the list of tools to include with a chat request.</summary>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#tool-calling">Tool calling.</related>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.RawRepresentationFactory">
            <summary>
            Gets or sets a callback responsible for creating the raw representation of the chat options from an underlying implementation.
            </summary>
            <remarks>
            The underlying <see cref="T:Microsoft.Extensions.AI.IChatClient" /> implementation may have its own representation of options.
            When <see cref="M:Microsoft.Extensions.AI.IChatClient.GetResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)" /> or <see cref="M:Microsoft.Extensions.AI.IChatClient.GetStreamingResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)" />
            is invoked with a <see cref="T:Microsoft.Extensions.AI.ChatOptions" />, that implementation may convert the provided options into
            its own representation in order to use it while performing the operation. For situations where a consumer knows
            which concrete <see cref="T:Microsoft.Extensions.AI.IChatClient" /> is being used and how it represents options, a new instance of that
            implementation-specific options type may be returned by this callback, for the <see cref="T:Microsoft.Extensions.AI.IChatClient" />
            implementation to use instead of creating a new instance. Such implementations may mutate the supplied options
            instance further based on other settings supplied on this <see cref="T:Microsoft.Extensions.AI.ChatOptions" /> instance or from other inputs,
            like the enumerable of <see cref="T:Microsoft.Extensions.AI.ChatMessage"/>s, therefore, it is <b>strongly recommended</b> to not return shared instances
            and instead make the callback return a new instance on each call.
            This is typically used to set an implementation-specific setting that isn't otherwise exposed from the strongly-typed
            properties on <see cref="T:Microsoft.Extensions.AI.ChatOptions" />.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatOptions.AdditionalProperties">
            <summary>Gets or sets any additional properties associated with the options.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatOptions.Clone">
            <summary>Produces a clone of the current <see cref="T:Microsoft.Extensions.AI.ChatOptions"/> instance.</summary>
            <returns>A clone of the current <see cref="T:Microsoft.Extensions.AI.ChatOptions"/> instance.</returns>
            <remarks>
            The clone will have the same values for all properties as the original instance. Any collections, like <see cref="P:Microsoft.Extensions.AI.ChatOptions.Tools"/>,
            <see cref="P:Microsoft.Extensions.AI.ChatOptions.StopSequences"/>, and <see cref="P:Microsoft.Extensions.AI.ChatOptions.AdditionalProperties"/>, are shallow-cloned, meaning a new collection instance is created,
            but any references contained by the collections are shared with the original.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatResponse">
            <summary>Represents the response to a chat request.</summary>
            <remarks>
            <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> provides one or more response messages and metadata about the response.
            A typical response will contain a single message, however a response may contain multiple messages
            in a variety of scenarios. For example, if automatic function calling is employed, such that a single
            request to a <see cref="T:Microsoft.Extensions.AI.IChatClient"/> may actually generate multiple roundtrips to an inner <see cref="T:Microsoft.Extensions.AI.IChatClient"/>
            it uses, all of the involved messages may be surfaced as part of the final <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>.
            </remarks>
        </member>
        <member name="F:Microsoft.Extensions.AI.ChatResponse._messages">
            <summary>The response messages.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponse.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponse.#ctor(Microsoft.Extensions.AI.ChatMessage)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> class.</summary>
            <param name="message">The response message.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="message"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponse.#ctor(System.Collections.Generic.IList{Microsoft.Extensions.AI.ChatMessage})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> class.</summary>
            <param name="messages">The response messages.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.Messages">
            <summary>Gets or sets the chat response messages.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.Text">
            <summary>Gets the text of the response.</summary>
            <remarks>
            This property concatenates the <see cref="P:Microsoft.Extensions.AI.ChatMessage.Text"/> of all <see cref="T:Microsoft.Extensions.AI.ChatMessage"/>
            instances in <see cref="P:Microsoft.Extensions.AI.ChatResponse.Messages"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.ResponseId">
            <summary>Gets or sets the ID of the chat response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.ConversationId">
            <summary>Gets or sets an identifier for the state of the conversation.</summary>
            <remarks>
            Some <see cref="T:Microsoft.Extensions.AI.IChatClient"/> implementations are capable of storing the state for a conversation, such that
            the input messages supplied to <see cref="M:Microsoft.Extensions.AI.IChatClient.GetResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)"/> need only be the additional messages beyond
            what's already stored. If this property is non-<see langword="null"/>, it represents an identifier for that state,
            and it should be used in a subsequent <see cref="P:Microsoft.Extensions.AI.ChatOptions.ConversationId"/> instead of supplying the same messages
            (and this <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>'s message) as part of the <c>messages</c> parameter. Note that the value may
            or may not differ on every response, depending on whether the underlying provider uses a fixed ID for each conversation
            or updates it for each message.
            </remarks>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#stateless-vs-stateful-clients">Stateless vs. stateful clients.</related>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.ModelId">
            <summary>Gets or sets the model ID used in the creation of the chat response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.CreatedAt">
            <summary>Gets or sets a timestamp for the chat response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.FinishReason">
            <summary>Gets or sets the reason for the chat response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.Usage">
            <summary>Gets or sets usage details for the chat response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.RawRepresentation">
            <summary>Gets or sets the raw representation of the chat response from an underlying implementation.</summary>
            <remarks>
            If a <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> is created to represent some underlying object from another object
            model, this property can be used to store that original object. This can be useful for debugging or
            for enabling a consumer to access the underlying object model if needed.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponse.AdditionalProperties">
            <summary>Gets or sets any additional properties associated with the chat response.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponse.ToString">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponse.ToChatResponseUpdates">
            <summary>Creates an array of <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate" /> instances that represent this <see cref="T:Microsoft.Extensions.AI.ChatResponse" />.</summary>
            <returns>An array of <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate" /> instances that may be used to represent this <see cref="T:Microsoft.Extensions.AI.ChatResponse" />.</returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatResponseExtensions">
            <summary>
            Provides extension methods for working with <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> and <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> instances.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.AddMessages(System.Collections.Generic.IList{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatResponse)">
            <summary>Adds all of the messages from <paramref name="response"/> into <paramref name="list"/>.</summary>
            <param name="list">The destination list to which the messages from <paramref name="response"/> should be added.</param>
            <param name="response">The response containing the messages to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="response"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.AddMessages(System.Collections.Generic.IList{Microsoft.Extensions.AI.ChatMessage},System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatResponseUpdate})">
            <summary>Converts the <paramref name="updates"/> into <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary>
            <param name="list">The destination list to which the newly constructed messages should be added.</param>
            <param name="updates">The <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> instances to convert to messages and add to the list.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="updates"/> is <see langword="null"/>.</exception>
            <remarks>
            As part of combining <paramref name="updates"/> into a series of <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances, the
            method may use <see cref="P:Microsoft.Extensions.AI.ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce
            contiguous <see cref="T:Microsoft.Extensions.AI.AIContent"/> items where applicable, e.g. multiple
            <see cref="T:Microsoft.Extensions.AI.TextContent"/> instances in a row may be combined into a single <see cref="T:Microsoft.Extensions.AI.TextContent"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.AddMessages(System.Collections.Generic.IList{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatResponseUpdate,System.Func{Microsoft.Extensions.AI.AIContent,System.Boolean})">
            <summary>Converts the <paramref name="update"/> into a <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instance and adds it to <paramref name="list"/>.</summary>
            <param name="list">The destination list to which the newly constructed message should be added.</param>
            <param name="update">The <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> instance to convert to a message and add to the list.</param>
            <param name="filter">A predicate to filter which <see cref="T:Microsoft.Extensions.AI.AIContent"/> gets included in the message.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="update"/> is <see langword="null"/>.</exception>
            <remarks>
            If the <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> has no content, or all its content gets excluded by <paramref name="filter"/>, then
            no <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> will be added to the <paramref name="list"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.AddMessagesAsync(System.Collections.Generic.IList{Microsoft.Extensions.AI.ChatMessage},System.Collections.Generic.IAsyncEnumerable{Microsoft.Extensions.AI.ChatResponseUpdate},System.Threading.CancellationToken)">
            <summary>Converts the <paramref name="updates"/> into <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances and adds them to <paramref name="list"/>.</summary>
            <param name="list">The list to which the newly constructed messages should be added.</param>
            <param name="updates">The <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> instances to convert to messages and add to the list.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>A <see cref="T:System.Threading.Tasks.Task"/> representing the completion of the operation.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="updates"/> is <see langword="null"/>.</exception>
            <remarks>
            As part of combining <paramref name="updates"/> into a series of <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances, tne
            method may use <see cref="P:Microsoft.Extensions.AI.ChatResponseUpdate.MessageId"/> to determine message boundaries, as well as coalesce
            contiguous <see cref="T:Microsoft.Extensions.AI.AIContent"/> items where applicable, e.g. multiple
            <see cref="T:Microsoft.Extensions.AI.TextContent"/> instances in a row may be combined into a single <see cref="T:Microsoft.Extensions.AI.TextContent"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.ToChatResponse(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatResponseUpdate})">
            <summary>Combines <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> instances into a single <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>.</summary>
            <param name="updates">The updates to be combined.</param>
            <returns>The combined <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="updates"/> is <see langword="null"/>.</exception>
            <remarks>
            As part of combining <paramref name="updates"/> into a single <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>, the method will attempt to reconstruct
            <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances. This includes using <see cref="P:Microsoft.Extensions.AI.ChatResponseUpdate.MessageId"/> to determine
            message boundaries, as well as coalescing contiguous <see cref="T:Microsoft.Extensions.AI.AIContent"/> items where applicable, e.g. multiple
            <see cref="T:Microsoft.Extensions.AI.TextContent"/> instances in a row may be combined into a single <see cref="T:Microsoft.Extensions.AI.TextContent"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.ToChatResponseAsync(System.Collections.Generic.IAsyncEnumerable{Microsoft.Extensions.AI.ChatResponseUpdate},System.Threading.CancellationToken)">
            <summary>Combines <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> instances into a single <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>.</summary>
            <param name="updates">The updates to be combined.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The combined <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="updates"/> is <see langword="null"/>.</exception>
            <remarks>
            As part of combining <paramref name="updates"/> into a single <see cref="T:Microsoft.Extensions.AI.ChatResponse"/>, the method will attempt to reconstruct
            <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances. This includes using <see cref="P:Microsoft.Extensions.AI.ChatResponseUpdate.MessageId"/> to determine
            message boundaries, as well as coalescing contiguous <see cref="T:Microsoft.Extensions.AI.AIContent"/> items where applicable, e.g. multiple
            <see cref="T:Microsoft.Extensions.AI.TextContent"/> instances in a row may be combined into a single <see cref="T:Microsoft.Extensions.AI.TextContent"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.CoalesceTextContent(System.Collections.Generic.List{Microsoft.Extensions.AI.AIContent})">
            <summary>Coalesces sequential <see cref="T:Microsoft.Extensions.AI.AIContent"/> content elements.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.FinalizeResponse(Microsoft.Extensions.AI.ChatResponse)">
            <summary>Finalizes the <paramref name="response"/> object.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseExtensions.ProcessUpdate(Microsoft.Extensions.AI.ChatResponseUpdate,Microsoft.Extensions.AI.ChatResponse)">
            <summary>Processes the <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/>, incorporating its contents into <paramref name="response"/>.</summary>
            <param name="update">The update to process.</param>
            <param name="response">The <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> object that should be updated based on <paramref name="update"/>.</param>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatResponseFormat">
            <summary>Represents the response format that is desired by the caller.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseFormat.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponseFormat"/> class.</summary>
            <remarks>Prevents external instantiation. Close the inheritance hierarchy for now until we have good reason to open it.</remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseFormat.Text">
            <summary>Gets a singleton instance representing unstructured textual data.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseFormat.Json">
            <summary>Gets a singleton instance representing structured JSON data but without any particular schema.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseFormat.ForJsonSchema(System.Text.Json.JsonElement,System.String,System.String)">
            <summary>Creates a <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatJson"/> representing structured JSON data with the specified schema.</summary>
            <param name="schema">The JSON schema.</param>
            <param name="schemaName">An optional name of the schema. For example, if the schema represents a particular class, this could be the name of the class.</param>
            <param name="schemaDescription">An optional description of the schema.</param>
            <returns>The <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatJson"/> instance.</returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatResponseFormatJson">
            <summary>Represents a response format for structured JSON data.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseFormatJson.#ctor(System.Nullable{System.Text.Json.JsonElement},System.String,System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatJson"/> class with the specified schema.</summary>
            <param name="schema">The schema to associate with the JSON response.</param>
            <param name="schemaName">A name for the schema.</param>
            <param name="schemaDescription">A description of the schema.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseFormatJson.Schema">
            <summary>Gets the JSON schema associated with the response, or <see langword="null"/> if there is none.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseFormatJson.SchemaName">
            <summary>Gets a name for the schema.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseFormatJson.SchemaDescription">
            <summary>Gets a description of the schema.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseFormatJson.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatResponseFormatText">
            <summary>Represents a response format with no constraints around the format.</summary>
            <remarks>
            Use <see cref="P:Microsoft.Extensions.AI.ChatResponseFormat.Text"/> to get an instance of <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatText"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseFormatText.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatText"/> class.</summary>
            <remarks> Use <see cref="P:Microsoft.Extensions.AI.ChatResponseFormat.Text"/> to get an instance of <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatText"/>.</remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseFormatText.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseFormatText.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatResponseUpdate">
            <summary>
            Represents a single streaming response chunk from an <see cref="T:Microsoft.Extensions.AI.IChatClient"/>.
            </summary>
            <remarks>
            <para>
            <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> is so named because it represents updates
            that layer on each other to form a single chat response. Conceptually, this combines the roles of
            <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> and <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> in streaming output.
            </para>
            <para>
            The relationship between <see cref="T:Microsoft.Extensions.AI.ChatResponse"/> and <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> is
            codified in the <see cref="M:Microsoft.Extensions.AI.ChatResponseExtensions.ToChatResponseAsync(System.Collections.Generic.IAsyncEnumerable{Microsoft.Extensions.AI.ChatResponseUpdate},System.Threading.CancellationToken)"/> and
            <see cref="M:Microsoft.Extensions.AI.ChatResponse.ToChatResponseUpdates"/>, which enable bidirectional conversions
            between the two. Note, however, that the provided conversions may be lossy, for example if multiple
            updates all have different <see cref="P:Microsoft.Extensions.AI.ChatResponseUpdate.RawRepresentation"/> objects whereas there's only one slot for
            such an object available in <see cref="P:Microsoft.Extensions.AI.ChatResponse.RawRepresentation"/>. Similarly, if different
            updates provide different values for properties like <see cref="P:Microsoft.Extensions.AI.ChatResponseUpdate.ModelId"/>,
            only one of the values will be used to populate <see cref="P:Microsoft.Extensions.AI.ChatResponse.ModelId"/>.
            </para>
            </remarks>
        </member>
        <member name="F:Microsoft.Extensions.AI.ChatResponseUpdate._contents">
            <summary>The response update content items.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.ChatResponseUpdate._authorName">
            <summary>The name of the author of the update.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseUpdate.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseUpdate.#ctor(System.Nullable{Microsoft.Extensions.AI.ChatRole},System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> class.</summary>
            <param name="role">The role of the author of the update.</param>
            <param name="content">The text content of the update.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseUpdate.#ctor(System.Nullable{Microsoft.Extensions.AI.ChatRole},System.Collections.Generic.IList{Microsoft.Extensions.AI.AIContent})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> class.</summary>
            <param name="role">The role of the author of the update.</param>
            <param name="contents">The contents of the update.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.AuthorName">
            <summary>Gets or sets the name of the author of the response update.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.Role">
            <summary>Gets or sets the role of the author of the response update.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.Text">
            <summary>Gets the text of this update.</summary>
            <remarks>
            This property concatenates the text of all <see cref="T:Microsoft.Extensions.AI.TextContent"/> objects in <see cref="P:Microsoft.Extensions.AI.ChatResponseUpdate.Contents"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.Contents">
            <summary>Gets or sets the chat response update content items.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.RawRepresentation">
            <summary>Gets or sets the raw representation of the response update from an underlying implementation.</summary>
            <remarks>
            If a <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> is created to represent some underlying object from another object
            model, this property can be used to store that original object. This can be useful for debugging or
            for enabling a consumer to access the underlying object model if needed.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.AdditionalProperties">
            <summary>Gets or sets additional properties for the update.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.ResponseId">
            <summary>Gets or sets the ID of the response of which this update is a part.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.MessageId">
             <summary>Gets or sets the ID of the message of which this update is a part.</summary>
             <remarks>
             A single streaming response may be composed of multiple messages, each of which may be represented
             by multiple updates. This property is used to group those updates together into messages.
            
             Some providers may consider streaming responses to be a single message, and in that case
             the value of this property may be the same as the response ID.
             
             This value is used when <see cref="M:Microsoft.Extensions.AI.ChatResponseExtensions.ToChatResponseAsync(System.Collections.Generic.IAsyncEnumerable{Microsoft.Extensions.AI.ChatResponseUpdate},System.Threading.CancellationToken)"/>
             groups <see cref="T:Microsoft.Extensions.AI.ChatResponseUpdate"/> instances into <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances.
             The value must be unique to each call to the underlying provider, and must be shared by
             all updates that are part of the same logical message within a streaming response.
             </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.ConversationId">
            <summary>Gets or sets an identifier for the state of the conversation of which this update is a part.</summary>
            <remarks>
            Some <see cref="T:Microsoft.Extensions.AI.IChatClient"/> implementations are capable of storing the state for a conversation, such that
            the input messages supplied to <see cref="M:Microsoft.Extensions.AI.IChatClient.GetStreamingResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)"/> need only be the additional messages beyond
            what's already stored. If this property is non-<see langword="null"/>, it represents an identifier for that state,
            and it should be used in a subsequent <see cref="P:Microsoft.Extensions.AI.ChatOptions.ConversationId"/> instead of supplying the same messages
            (and this streaming message) as part of the <c>messages</c> parameter. Note that the value may or may not differ on every
            response, depending on whether the underlying provider uses a fixed ID for each conversation or updates it for each message.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.CreatedAt">
            <summary>Gets or sets a timestamp for the response update.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.FinishReason">
            <summary>Gets or sets the finish reason for the operation.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.ModelId">
            <summary>Gets or sets the model ID associated with this response update.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatResponseUpdate.ToString">
            <inheritdoc/>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.ContentForDebuggerDisplay">
            <summary>Gets a <see cref="T:Microsoft.Extensions.AI.AIContent"/> object to display in the debugger display.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatResponseUpdate.EllipsesForDebuggerDisplay">
            <summary>Gets an indication for the debugger display of whether there's more content.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatRole">
            <summary>
            Describes the intended purpose of a message within a chat interaction.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatRole.System">
            <summary>Gets the role that instructs or sets the behavior of the system.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatRole.Assistant">
            <summary>Gets the role that provides responses to system-instructed, user-prompted input.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatRole.User">
            <summary>Gets the role that provides user input for chat interactions.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatRole.Tool">
            <summary>Gets the role that provides additional information and references in response to tool use requests.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatRole.Value">
            <summary>
            Gets the value associated with this <see cref="T:Microsoft.Extensions.AI.ChatRole"/>.
            </summary>
            <remarks>
            The value will be serialized into the "role" message field of the Chat Message format.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatRole"/> struct with the provided value.
            </summary>
            <param name="value">The value to associate with this <see cref="T:Microsoft.Extensions.AI.ChatRole"/>.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.op_Equality(Microsoft.Extensions.AI.ChatRole,Microsoft.Extensions.AI.ChatRole)">
            <summary>
            Returns a value indicating whether two <see cref="T:Microsoft.Extensions.AI.ChatRole"/> instances are equivalent, as determined by a
            case-insensitive comparison of their values.
            </summary>
            <param name="left">The first <see cref="T:Microsoft.Extensions.AI.ChatRole"/> instance to compare.</param>
            <param name="right">The second <see cref="T:Microsoft.Extensions.AI.ChatRole"/> instance to compare.</param>
            <returns><see langword="true"/> if left and right are both <see langword="null"/> or have equivalent values; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.op_Inequality(Microsoft.Extensions.AI.ChatRole,Microsoft.Extensions.AI.ChatRole)">
            <summary>
            Returns a value indicating whether two <see cref="T:Microsoft.Extensions.AI.ChatRole"/> instances are not equivalent, as determined by a
            case-insensitive comparison of their values.
            </summary>
            <param name="left">The first <see cref="T:Microsoft.Extensions.AI.ChatRole"/> instance to compare. </param>
            <param name="right">The second <see cref="T:Microsoft.Extensions.AI.ChatRole"/> instance to compare. </param>
            <returns><see langword="true"/> if left and right have different values; <see langword="false"/> if they have equivalent values or are both <see langword="null"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.Equals(Microsoft.Extensions.AI.ChatRole)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.ToString">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatRole.Converter">
            <summary>Provides a <see cref="T:System.Text.Json.Serialization.JsonConverter`1"/> for serializing <see cref="T:Microsoft.Extensions.AI.ChatRole"/> instances.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.Converter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatRole.Converter.Write(System.Text.Json.Utf8JsonWriter,Microsoft.Extensions.AI.ChatRole,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.AI.ChatToolMode">
            <summary>
            Describes how tools should be selected by a <see cref="T:Microsoft.Extensions.AI.IChatClient"/>.
            </summary>
            <remarks>
            The predefined values <see cref="P:Microsoft.Extensions.AI.ChatToolMode.Auto" />, <see cref="P:Microsoft.Extensions.AI.ChatToolMode.None"/>, and <see cref="P:Microsoft.Extensions.AI.ChatToolMode.RequireAny"/> are provided.
            To nominate a specific function, use <see cref="M:Microsoft.Extensions.AI.ChatToolMode.RequireSpecific(System.String)"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatToolMode.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ChatToolMode"/> class.</summary>
            <remarks>Prevents external instantiation. Close the inheritance hierarchy for now until we have good reason to open it.</remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatToolMode.Auto">
            <summary>
            Gets a predefined <see cref="T:Microsoft.Extensions.AI.ChatToolMode"/> indicating that tool usage is optional.
            </summary>
            <remarks>
            <see cref="P:Microsoft.Extensions.AI.ChatOptions.Tools"/> can contain zero or more <see cref="T:Microsoft.Extensions.AI.AITool"/>
            instances, and the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> is free to invoke zero or more of them.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatToolMode.None">
            <summary>
            Gets a predefined <see cref="T:Microsoft.Extensions.AI.ChatToolMode"/> indicating that tool usage is unsupported.
            </summary>
            <remarks>
            <see cref="P:Microsoft.Extensions.AI.ChatOptions.Tools"/> can contain zero or more <see cref="T:Microsoft.Extensions.AI.AITool"/>
            instances, but the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> should not request the invocation of
            any of them. This can be used when the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> should know about
            tools in order to provide information about them or plan out their usage, but should
            not request the invocation of any of them.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.ChatToolMode.RequireAny">
            <summary>
            Gets a predefined <see cref="T:Microsoft.Extensions.AI.ChatToolMode"/> indicating that tool usage is required,
            but that any tool can be selected. At least one tool must be provided in <see cref="P:Microsoft.Extensions.AI.ChatOptions.Tools"/>.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ChatToolMode.RequireSpecific(System.String)">
            <summary>
            Instantiates a <see cref="T:Microsoft.Extensions.AI.ChatToolMode"/> indicating that tool usage is required,
            and that the specified <see cref="T:Microsoft.Extensions.AI.AIFunction"/> must be selected. The function name
            must match an entry in <see cref="P:Microsoft.Extensions.AI.ChatOptions.Tools"/>.
            </summary>
            <param name="functionName">The name of the required function.</param>
            <returns>An instance of <see cref="T:Microsoft.Extensions.AI.RequiredChatToolMode"/> for the specified function name.</returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.DelegatingChatClient">
            <summary>
            Provides an optional base class for an <see cref="T:Microsoft.Extensions.AI.IChatClient"/> that passes through calls to another instance.
            </summary>
            <remarks>
            This is recommended as a base type when building clients that can be chained around an underlying <see cref="T:Microsoft.Extensions.AI.IChatClient"/>.
            The default implementation simply passes each call to the inner client instance.
            </remarks>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#custom-ichatclient-middleware">Custom IChatClient middleware.</related>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingChatClient.#ctor(Microsoft.Extensions.AI.IChatClient)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.DelegatingChatClient"/> class.
            </summary>
            <param name="innerClient">The wrapped client instance.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingChatClient.Dispose">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.DelegatingChatClient.InnerClient">
            <summary>Gets the inner <see cref="T:Microsoft.Extensions.AI.IChatClient" />.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingChatClient.GetResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingChatClient.GetStreamingResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingChatClient.GetService(System.Type,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingChatClient.Dispose(System.Boolean)">
            <summary>Provides a mechanism for releasing unmanaged resources.</summary>
            <param name="disposing"><see langword="true"/> if being called from <see cref="M:Microsoft.Extensions.AI.DelegatingChatClient.Dispose"/>; otherwise, <see langword="false"/>.</param>
        </member>
        <member name="T:Microsoft.Extensions.AI.IChatClient">
            <summary>Represents a chat client.</summary>
            <remarks>
            <para>
            Applications must consider risks such as prompt injection attacks, data sizes, and the number of messages
            sent to the underlying provider or returned from it. Unless a specific <see cref="T:Microsoft.Extensions.AI.IChatClient"/> implementation
            explicitly documents safeguards for these concerns, the application is expected to implement appropriate protections.
            </para>
            <para>
            Unless otherwise specified, all members of <see cref="T:Microsoft.Extensions.AI.IChatClient"/> are thread-safe for concurrent use.
            It is expected that all implementations of <see cref="T:Microsoft.Extensions.AI.IChatClient"/> support being used by multiple requests concurrently.
            Instances must not be disposed of while the instance is still in use.
            </para>
            <para>
            However, implementations of <see cref="T:Microsoft.Extensions.AI.IChatClient"/> might mutate the arguments supplied to <see cref="M:Microsoft.Extensions.AI.IChatClient.GetResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)"/> and
            <see cref="M:Microsoft.Extensions.AI.IChatClient.GetStreamingResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)"/>, such as by configuring the options instance. Thus, consumers of the interface either
            should avoid using shared instances of these arguments for concurrent invocations or should otherwise ensure by construction
            that no <see cref="T:Microsoft.Extensions.AI.IChatClient"/> instances are used which might employ such mutation. For example, the ConfigureOptions method is
            provided with a callback that could mutate the supplied options argument, and that should be avoided if using a singleton options instance.
            </para>
            </remarks>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/quickstarts/build-chat-app">Build an AI chat app with .NET.</related>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#the-ichatclient-interface">The IChatClient interface.</related>
        </member>
        <member name="M:Microsoft.Extensions.AI.IChatClient.GetResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <summary>Sends chat messages and returns the response.</summary>
            <param name="messages">The sequence of chat messages to send.</param>
            <param name="options">The chat options with which to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The response messages generated by the client.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="messages"/> is <see langword="null"/>.</exception>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#request-a-chat-response">Request a chat response.</related>
        </member>
        <member name="M:Microsoft.Extensions.AI.IChatClient.GetStreamingResponseAsync(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.ChatMessage},Microsoft.Extensions.AI.ChatOptions,System.Threading.CancellationToken)">
            <summary>Sends chat messages and streams the response.</summary>
            <param name="messages">The sequence of chat messages to send.</param>
            <param name="options">The chat options with which to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The response messages generated by the client.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="messages"/> is <see langword="null"/>.</exception>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#request-a-streaming-chat-response">Request a streaming chat response.</related>
        </member>
        <member name="M:Microsoft.Extensions.AI.IChatClient.GetService(System.Type,System.Object)">
            <summary>Asks the <see cref="T:Microsoft.Extensions.AI.IChatClient"/> for an object of the specified type <paramref name="serviceType"/>.</summary>
            <param name="serviceType">The type of object being requested.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object, otherwise <see langword="null"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serviceType"/> is <see langword="null"/>.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly-typed services that might be provided by the <see cref="T:Microsoft.Extensions.AI.IChatClient"/>,
            including itself or any services it might be wrapping. For example, to access the <see cref="T:Microsoft.Extensions.AI.ChatClientMetadata"/> for the instance,
            <see cref="M:Microsoft.Extensions.AI.IChatClient.GetService(System.Type,System.Object)"/> may be used to request it.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.NoneChatToolMode">
            <summary>
            Indicates that an <see cref="T:Microsoft.Extensions.AI.IChatClient"/> should not request the invocation of any tools.
            </summary>
            <remarks>
            Use <see cref="P:Microsoft.Extensions.AI.ChatToolMode.None"/> to get an instance of <see cref="T:Microsoft.Extensions.AI.NoneChatToolMode"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.NoneChatToolMode.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.NoneChatToolMode"/> class.</summary>
            <remarks>Use <see cref="P:Microsoft.Extensions.AI.ChatToolMode.None"/> to get an instance of <see cref="T:Microsoft.Extensions.AI.NoneChatToolMode"/>.</remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.NoneChatToolMode.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.NoneChatToolMode.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.RequiredChatToolMode">
            <summary>
            Represents a mode where a chat tool must be called. This class can optionally nominate a specific function
            or indicate that any of the functions can be selected.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.RequiredChatToolMode.RequiredFunctionName">
            <summary>
            Gets the name of a specific <see cref="T:Microsoft.Extensions.AI.AIFunction"/> that must be called.
            </summary>
            <remarks>
            If the value is <see langword="null"/>, any available function can be selected (but at least one must be).
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.RequiredChatToolMode.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.RequiredChatToolMode"/> class that requires a specific function to be called.
            </summary>
            <param name="requiredFunctionName">The name of the function that must be called.</param>
            <exception cref="T:System.ArgumentException"><paramref name="requiredFunctionName"/> is empty or composed entirely of whitespace.</exception>
            <remarks>
            <paramref name="requiredFunctionName"/> can be <see langword="null"/>. However, it's preferable to use
            <see cref="P:Microsoft.Extensions.AI.ChatToolMode.RequireAny"/> when any function can be selected.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.RequiredChatToolMode.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.RequiredChatToolMode.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.RequiredChatToolMode.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIContent">
            <summary>Represents content used by AI services.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIContent.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AIContent"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIContent.RawRepresentation">
            <summary>Gets or sets the raw representation of the content from an underlying implementation.</summary>
            <remarks>
            If an <see cref="T:Microsoft.Extensions.AI.AIContent"/> is created to represent some underlying object from another object
            model, this property can be used to store that original object. This can be useful for debugging or
            for enabling a consumer to access the underlying object model, if needed.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIContent.AdditionalProperties">
            <summary>Gets or sets additional properties for the content.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIContentExtensions">
            <summary>Internal extensions for working with <see cref="T:Microsoft.Extensions.AI.AIContent"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIContentExtensions.ConcatText(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.AIContent})">
            <summary>Concatenates the text of all <see cref="T:Microsoft.Extensions.AI.TextContent"/> instances in the list.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIContentExtensions.ConcatText(System.Collections.Generic.IList{Microsoft.Extensions.AI.ChatMessage})">
            <summary>Concatenates the <see cref="P:Microsoft.Extensions.AI.ChatMessage.Text"/> of all <see cref="T:Microsoft.Extensions.AI.ChatMessage"/> instances in the list.</summary>
            <remarks>A newline separator is added between each non-empty piece of text.</remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.DataContent">
            <summary>
            Represents binary content with an associated media type (also known as MIME type).
            </summary>
            <remarks>
            <para>
            The content represents in-memory data. For references to data at a remote URI, use <see cref="T:Microsoft.Extensions.AI.UriContent"/> instead.
            </para>
            <para>
            <see cref="P:Microsoft.Extensions.AI.DataContent.Uri"/> always returns a valid URI string, even if the instance was constructed from
            a <see cref="T:System.ReadOnlyMemory`1"/>. In that case, a data URI will be constructed and returned.
            </para>
            </remarks>
        </member>
        <member name="F:Microsoft.Extensions.AI.DataContent._dataUri">
            <summary>Parsed data URI information.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.DataContent._uri">
            <summary>The string-based representation of the URI, including any data in the instance.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.DataContent._data">
            <summary>The data, lazily initialized if the data is provided in a data URI.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.DataContent.#ctor(System.Uri,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.DataContent"/> class.
            </summary>
            <param name="uri">The data URI containing the content.</param>
            <param name="mediaType">
            The media type (also known as MIME type) represented by the content. If not provided,
            it must be provided as part of the <paramref name="uri"/>.
            </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="uri"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="uri"/> is not a data URI.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="uri"/> did not contain a media type and <paramref name="mediaType"/> was not supplied.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mediaType"/> is an invalid media type.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.DataContent.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.DataContent"/> class.
            </summary>
            <param name="uri">The data URI containing the content.</param>
            <param name="mediaType">The media type (also known as MIME type) represented by the content.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="uri"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="uri"/> is not a data URI.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="uri"/> did not contain a media type and <paramref name="mediaType"/> was not supplied.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mediaType"/> is an invalid media type.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.DataContent.#ctor(System.ReadOnlyMemory{System.Byte},System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.DataContent"/> class.
            </summary>
            <param name="data">The byte contents.</param>
            <param name="mediaType">The media type (also known as MIME type) represented by the content.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="mediaType"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mediaType"/> is empty or composed entirely of whitespace.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.DataContent.HasTopLevelMediaType(System.String)">
            <summary>
            Determines whether the <see cref="P:Microsoft.Extensions.AI.DataContent.MediaType"/>'s top-level type matches the specified <paramref name="topLevelType"/>.
            </summary>
            <param name="topLevelType">The type to compare against <see cref="P:Microsoft.Extensions.AI.DataContent.MediaType"/>.</param>
            <returns><see langword="true"/> if the type portion of <see cref="P:Microsoft.Extensions.AI.DataContent.MediaType"/> matches the specified value; otherwise, false.</returns>
            <remarks>
            A media type is primarily composed of two parts, a "type" and a "subtype", separated by a slash ("/").
            The type portion is also referred to as the "top-level type"; for example,
            "image/png" has a top-level type of "image". <see cref="M:Microsoft.Extensions.AI.DataContent.HasTopLevelMediaType(System.String)"/> compares
            the specified <paramref name="topLevelType"/> against the type portion of <see cref="P:Microsoft.Extensions.AI.DataContent.MediaType"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.DataContent.Uri">
            <summary>Gets the data URI for this <see cref="T:Microsoft.Extensions.AI.DataContent"/>.</summary>
            <remarks>
            The returned URI is always a valid data URI string, even if the instance was constructed from a <see cref="T:System.ReadOnlyMemory`1"/>
            or from a <see cref="T:System.Uri"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.DataContent.MediaType">
            <summary>Gets the media type (also known as MIME type) of the content.</summary>
            <remarks>
            If the media type was explicitly specified, this property returns that value.
            If the media type was not explicitly specified, but a data URI was supplied and that data URI contained a non-default
            media type, that media type is returned.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.DataContent.Data">
            <summary>Gets the data represented by this instance.</summary>
            <remarks>
            If the instance was constructed from a <see cref="T:System.ReadOnlyMemory`1"/>, this property returns that data.
            If the instance was constructed from a data URI, this property the data contained within the data URI.
            If, however, the instance was constructed from another form of URI, one that simply references where the
            data can be found but doesn't actually contain the data, this property returns <see langword="null"/>;
            no attempt is made to retrieve the data from that URI.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.DataContent.Base64Data">
            <summary>Gets the data represented by this instance as a Base64 character sequence.</summary>
            <returns>The base64 representation of the data.</returns>
        </member>
        <member name="P:Microsoft.Extensions.AI.DataContent.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.DataUriParser">
            <summary>
            Minimal data URI parser based on RFC 2397: https://datatracker.ietf.org/doc/html/rfc2397.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.DataUriParser.IsValidMediaType(System.ReadOnlySpan{System.Char},System.String@)">
            <summary>Validates that a media type is valid, and if successful, ensures we have it as a string.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.DataUriParser.IsValidBase64Data(System.ReadOnlySpan{System.Char})">
            <summary>Test whether the value is a base64 string without whitespace.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.DataUriParser.DataUri">
            <summary>Provides the parts of a parsed data URI.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.DataUriParser.DataUri.#ctor(System.ReadOnlyMemory{System.Char},System.Boolean,System.String)">
            <summary>Provides the parts of a parsed data URI.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.ErrorContent">
            <summary>Represents an error.</summary>
            <remarks>
            Typically, <see cref="T:Microsoft.Extensions.AI.ErrorContent"/> is used for non-fatal errors, where something went wrong
            as part of the operation but the operation was still able to continue.
            </remarks>
        </member>
        <member name="F:Microsoft.Extensions.AI.ErrorContent._message">
            <summary>The error message.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.ErrorContent.#ctor(System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.ErrorContent"/> class with the specified error message.</summary>
            <param name="message">The error message to store in this content.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.ErrorContent.Message">
            <summary>Gets or sets the error message.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ErrorContent.ErrorCode">
            <summary>Gets or sets an error code associated with the error.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ErrorContent.Details">
            <summary>Gets or sets additional details about the error.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.ErrorContent.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.FunctionCallContent">
            <summary>
            Represents a function call request.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.FunctionCallContent.#ctor(System.String,System.String,System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.FunctionCallContent"/> class.
            </summary>
            <param name="callId">The function call ID.</param>
            <param name="name">The function name.</param>
            <param name="arguments">The function original arguments.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionCallContent.CallId">
            <summary>
            Gets the function call ID.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionCallContent.Name">
            <summary>
            Gets the name of the function requested.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionCallContent.Arguments">
            <summary>
            Gets or sets the arguments requested to be provided to the function.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionCallContent.Exception">
            <summary>
            Gets or sets any exception that occurred while mapping the original function call data to this class.
            </summary>
            <remarks>
            This property is for information purposes only. The <see cref="P:Microsoft.Extensions.AI.FunctionCallContent.Exception"/> is not serialized as part of serializing
            instances of this class with <see cref="T:System.Text.Json.JsonSerializer"/>; as such, upon deserialization, this property will be <see langword="null"/>.
            Consumers should not rely on <see langword="null"/> indicating success. 
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.FunctionCallContent.CreateFromParsedArguments``1(``0,System.String,System.String,System.Func{``0,System.Collections.Generic.IDictionary{System.String,System.Object}})">
            <summary>
            Creates a new instance of <see cref="T:Microsoft.Extensions.AI.FunctionCallContent"/> parsing arguments using a specified encoding and parser.
            </summary>
            <typeparam name="TEncoding">The encoding format from which to parse function call arguments.</typeparam>
            <param name="encodedArguments">The input arguments encoded in <typeparamref name="TEncoding"/>.</param>
            <param name="callId">The function call ID.</param>
            <param name="name">The function name.</param>
            <param name="argumentParser">The parsing implementation converting the encoding to a dictionary of arguments.</param>
            <returns>A new instance of <see cref="T:Microsoft.Extensions.AI.FunctionCallContent"/> containing the parse result.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="callId"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="encodedArguments"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="argumentParser"/> is <see langword="null"/>.</exception>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionCallContent.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.FunctionResultContent">
            <summary>
            Represents the result of a function call.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.FunctionResultContent.#ctor(System.String,System.Object)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.FunctionResultContent"/> class.
            </summary>
            <param name="callId">The function call ID for which this is the result.</param>
            <param name="result">
            <see langword="null"/> if the function returned <see langword="null"/> or was void-returning
            and thus had no result, or if the function call failed. Typically, however, to provide meaningfully representative
            information to an AI service, a human-readable representation of those conditions should be supplied.
            </param>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionResultContent.CallId">
            <summary>
            Gets the ID of the function call for which this is the result.
            </summary>
            <remarks>
            If this is the result for a <see cref="T:Microsoft.Extensions.AI.FunctionCallContent"/>, this property should contain the same
            <see cref="P:Microsoft.Extensions.AI.FunctionCallContent.CallId"/> value.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionResultContent.Result">
            <summary>
            Gets or sets the result of the function call, or a generic error message if the function call failed.
            </summary>
            <remarks>
            <see langword="null"/> if the function returned <see langword="null"/> or was void-returning
            and thus had no result, or if the function call failed. Typically, however, to provide meaningfully representative
            information to an AI service, a human-readable representation of those conditions should be supplied.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionResultContent.Exception">
            <summary>
            Gets or sets an exception that occurred if the function call failed.
            </summary>
            <remarks>
            This property is for informational purposes only. The <see cref="P:Microsoft.Extensions.AI.FunctionResultContent.Exception"/> is not serialized as part of serializing
            instances of this class with <see cref="T:System.Text.Json.JsonSerializer"/>. As such, upon deserialization, this property will be <see langword="null"/>.
            Consumers should not rely on <see langword="null"/> indicating success.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.FunctionResultContent.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.TextContent">
            <summary>
            Represents text content in a chat.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.TextContent.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.TextContent"/> class.
            </summary>
            <param name="text">The text content.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.TextContent.Text">
            <summary>
            Gets or sets the text content.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.TextContent.ToString">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.TextReasoningContent">
            <summary>
            Represents text reasoning content in a chat.
            </summary>
            <remarks>
            <see cref="T:Microsoft.Extensions.AI.TextReasoningContent"/> is distinct from <see cref="T:Microsoft.Extensions.AI.TextContent"/>. <see cref="T:Microsoft.Extensions.AI.TextReasoningContent"/>
            represents "thinking" or "reasoning" performed by the model and is distinct from the actual output text from
            the model, which is represented by <see cref="T:Microsoft.Extensions.AI.TextContent"/>. Neither types derives from the other.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.TextReasoningContent.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.TextReasoningContent"/> class.
            </summary>
            <param name="text">The text reasoning content.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.TextReasoningContent.Text">
            <summary>
            Gets or sets the text reasoning content.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.TextReasoningContent.ToString">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.UriContent">
            <summary>
            Represents a URL, typically to hosted content such as an image, audio, or video.
            </summary>
            <remarks>
            This class is intended for use with HTTP or HTTPS URIs that reference hosted content.
            For data URIs, use <see cref="T:Microsoft.Extensions.AI.DataContent"/> instead.
            </remarks>
        </member>
        <member name="F:Microsoft.Extensions.AI.UriContent._uri">
            <summary>The URI represented.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.UriContent._mediaType">
            <summary>The MIME type of the data at the referenced URI.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.UriContent.#ctor(System.String,System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.UriContent"/> class.</summary>
            <param name="uri">The URI to the represented content.</param>
            <param name="mediaType">The media type (also known as MIME type) represented by the content.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="uri"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="mediaType"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mediaType"/> is an invalid media type.</exception>
            <exception cref="T:System.UriFormat"><paramref name="uri"/> is an invalid URL.</exception>
            <remarks>
            A media type must be specified, so that consumers know what to do with the content.
            If an exact media type is not known, but the category (e.g. image) is known, a wildcard
            may be used (e.g. "image/*").
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.UriContent.#ctor(System.Uri,System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.UriContent"/> class.</summary>
            <param name="uri">The URI to the represented content.</param>
            <param name="mediaType">The media type (also known as MIME type) represented by the content.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="uri"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="mediaType"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="mediaType"/> is an invalid media type.</exception>
            <remarks>
            A media type must be specified, so that consumers know what to do with the content.
            If an exact media type is not known, but the category (e.g. image) is known, a wildcard
            may be used (e.g. "image/*").
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.UriContent.Uri">
            <summary>Gets or sets the <see cref="P:Microsoft.Extensions.AI.UriContent.Uri"/> for this content.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.UriContent.MediaType">
            <summary>Gets or sets the media type (also known as MIME type) for this content.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.UriContent.HasTopLevelMediaType(System.String)">
            <summary>
            Determines whether the <see cref="P:Microsoft.Extensions.AI.UriContent.MediaType"/>'s top-level type matches the specified <paramref name="topLevelType"/>.
            </summary>
            <param name="topLevelType">The type to compare against <see cref="P:Microsoft.Extensions.AI.UriContent.MediaType"/>.</param>
            <returns><see langword="true"/> if the type portion of <see cref="P:Microsoft.Extensions.AI.UriContent.MediaType"/> matches the specified value; otherwise, false.</returns>
            <remarks>
            A media type is primarily composed of two parts, a "type" and a "subtype", separated by a slash ("/").
            The type portion is also referred to as the "top-level type"; for example,
            "image/png" has a top-level type of "image". <see cref="M:Microsoft.Extensions.AI.UriContent.HasTopLevelMediaType(System.String)"/> compares
            the specified <paramref name="topLevelType"/> against the type portion of <see cref="P:Microsoft.Extensions.AI.UriContent.MediaType"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.UriContent.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.UsageContent">
            <summary>
            Represents usage information associated with a chat request and response.
            </summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.UsageContent._details">
            <summary>Usage information.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.UsageContent.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.UsageContent"/> class with an empty <see cref="T:Microsoft.Extensions.AI.UsageDetails"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.UsageContent.#ctor(Microsoft.Extensions.AI.UsageDetails)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.UsageContent"/> class with the specified <see cref="T:Microsoft.Extensions.AI.UsageDetails"/> instance.</summary>
            <param name="details">The usage details to store in this content.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.UsageContent.Details">
            <summary>Gets or sets the usage information.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.UsageContent.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.BinaryEmbedding">
            <summary>Represents an embedding composed of a bit vector.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.BinaryEmbedding._vector">
            <summary>The embedding vector this embedding represents.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.BinaryEmbedding.#ctor(System.Collections.BitArray)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.BinaryEmbedding"/> class with the embedding vector.</summary>
            <param name="vector">The embedding vector this embedding represents.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="vector"/> is <see langword="null"/>.</exception>
        </member>
        <member name="P:Microsoft.Extensions.AI.BinaryEmbedding.Vector">
            <summary>Gets or sets the embedding vector this embedding represents.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.BinaryEmbedding.Dimensions">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.AI.BinaryEmbedding.VectorConverter">
            <summary>Provides a <see cref="T:System.Text.Json.Serialization.JsonConverter`1"/> for serializing <see cref="T:System.Collections.BitArray"/> instances.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.BinaryEmbedding.VectorConverter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.BinaryEmbedding.VectorConverter.Write(System.Text.Json.Utf8JsonWriter,System.Collections.BitArray,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2">
            <summary>
            Provides an optional base class for an <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> that passes through calls to another instance.
            </summary>
            <typeparam name="TInput">The type of the input passed to the generator.</typeparam>
            <typeparam name="TEmbedding">The type of the embedding instance produced by the generator.</typeparam>
            <remarks>
            This type is recommended as a base type when building generators that can be chained around an underlying <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>.
            The default implementation simply passes each call to the inner generator instance.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2.#ctor(Microsoft.Extensions.AI.IEmbeddingGenerator{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2"/> class.
            </summary>
            <param name="innerGenerator">The wrapped generator instance.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2.InnerGenerator">
            <summary>Gets the inner <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2" />.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2.GenerateAsync(System.Collections.Generic.IEnumerable{`0},Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2.GetService(System.Type,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2.Dispose(System.Boolean)">
            <summary>Provides a mechanism for releasing unmanaged resources.</summary>
            <param name="disposing"><see langword="true"/> if being called from <see cref="M:Microsoft.Extensions.AI.DelegatingEmbeddingGenerator`2.Dispose"/>; otherwise, <see langword="false"/>.</param>
        </member>
        <member name="T:Microsoft.Extensions.AI.Embedding">
            <summary>Represents an embedding generated by a <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>.</summary>
            <remarks>This base class provides metadata about the embedding. Derived types provide the concrete data contained in the embedding.</remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.Embedding.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.Embedding"/> class.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.Embedding.CreatedAt">
            <summary>Gets or sets a timestamp at which the embedding was created.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.Embedding.Dimensions">
            <summary>Gets the dimensionality of the embedding vector.</summary>
            <remarks>
            This value corresponds to the number of elements in the embedding vector.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.Embedding.ModelId">
            <summary>Gets or sets the model ID using in the creation of the embedding.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.Embedding.AdditionalProperties">
            <summary>Gets or sets any additional properties associated with the embedding.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.EmbeddingGenerationOptions">
            <summary>Represents the options for an embedding generation request.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGenerationOptions.Dimensions">
            <summary>Gets or sets the number of dimensions requested in the embedding.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGenerationOptions.ModelId">
            <summary>Gets or sets the model ID for the embedding generation request.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGenerationOptions.AdditionalProperties">
            <summary>Gets or sets additional properties for the embedding generation request.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGenerationOptions.RawRepresentationFactory">
            <summary>
            Gets or sets a callback responsible for creating the raw representation of the embedding generation options from an underlying implementation.
            </summary>
            <remarks>
            The underlying <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator" /> implementation may have its own representation of options.
            When <see cref="M:Microsoft.Extensions.AI.IEmbeddingGenerator`2.GenerateAsync(System.Collections.Generic.IEnumerable{`0},Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)" /> 
            is invoked with an <see cref="T:Microsoft.Extensions.AI.EmbeddingGenerationOptions" />, that implementation may convert the provided options into
            its own representation in order to use it while performing the operation. For situations where a consumer knows
            which concrete <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator" /> is being used and how it represents options, a new instance of that
            implementation-specific options type may be returned by this callback, for the <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator" />
            implementation to use instead of creating a new instance. Such implementations may mutate the supplied options
            instance further based on other settings supplied on this <see cref="T:Microsoft.Extensions.AI.EmbeddingGenerationOptions" /> instance or from other inputs,
            therefore, it is <b>strongly recommended</b> to not return shared instances and instead make the callback return a new instance on each call.
            This is typically used to set an implementation-specific setting that isn't otherwise exposed from the strongly-typed
            properties on <see cref="T:Microsoft.Extensions.AI.EmbeddingGenerationOptions" />.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGenerationOptions.Clone">
            <summary>Produces a clone of the current <see cref="T:Microsoft.Extensions.AI.EmbeddingGenerationOptions"/> instance.</summary>
            <returns>A clone of the current <see cref="T:Microsoft.Extensions.AI.EmbeddingGenerationOptions"/> instance.</returns>
            <remarks>
            The clone will have the same values for all properties as the original instance. Any collections, like <see cref="P:Microsoft.Extensions.AI.EmbeddingGenerationOptions.AdditionalProperties"/>
            are shallow-cloned, meaning a new collection instance is created, but any references contained by the collections are shared with the original.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions">
            <summary>Provides a collection of static methods for extending <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> instances.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions.GetService``1(Microsoft.Extensions.AI.IEmbeddingGenerator,System.Object)">
            <summary>Asks the <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> for an object of type <typeparamref name="TService"/>.</summary>
            <typeparam name="TService">The type of the object to be retrieved.</typeparam>
            <param name="generator">The generator.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object, otherwise <see langword="null"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="generator"/> is <see langword="null"/>.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly typed services that may be provided by the
            <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>, including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions.GetRequiredService(Microsoft.Extensions.AI.IEmbeddingGenerator,System.Type,System.Object)">
            <summary>
            Asks the <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> for an object of the specified type <paramref name="serviceType"/>
            and throws an exception if one isn't available.
            </summary>
            <param name="generator">The generator.</param>
            <param name="serviceType">The type of object being requested.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="generator"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="serviceType"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">No service of the requested type for the specified key is available.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of services that are required to be provided by the
            <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>, including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions.GetRequiredService``1(Microsoft.Extensions.AI.IEmbeddingGenerator,System.Object)">
            <summary>
            Asks the <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> for an object of type <typeparamref name="TService"/>
            and throws an exception if one isn't available.
            </summary>
            <typeparam name="TService">The type of the object to be retrieved.</typeparam>
            <param name="generator">The generator.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="generator"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">No service of the requested type for the specified key is available.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly typed services that are required to be provided by the
            <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>, including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions.GenerateVectorAsync``2(Microsoft.Extensions.AI.IEmbeddingGenerator{``0,Microsoft.Extensions.AI.Embedding{``1}},``0,Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)">
            <summary>Generates an embedding vector from the specified <paramref name="value"/>.</summary>
            <typeparam name="TInput">The type from which embeddings will be generated.</typeparam>
            <typeparam name="TEmbeddingElement">The numeric type of the embedding data.</typeparam>
            <param name="generator">The embedding generator.</param>
            <param name="value">A value from which an embedding will be generated.</param>
            <param name="options">The embedding generation options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The generated embedding for the specified <paramref name="value"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="generator"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The generator did not produce exactly one embedding.</exception>
            <remarks>
            This operation is equivalent to using <see cref="M:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions.GenerateAsync``2(Microsoft.Extensions.AI.IEmbeddingGenerator{``0,``1},``0,Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)"/> and returning the
            resulting <see cref="T:Microsoft.Extensions.AI.Embedding`1"/>'s <see cref="P:Microsoft.Extensions.AI.Embedding`1.Vector"/> property.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions.GenerateAsync``2(Microsoft.Extensions.AI.IEmbeddingGenerator{``0,``1},``0,Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)">
            <summary>Generates an embedding from the specified <paramref name="value"/>.</summary>
            <typeparam name="TInput">The type from which embeddings will be generated.</typeparam>
            <typeparam name="TEmbedding">The type of embedding to generate.</typeparam>
            <param name="generator">The embedding generator.</param>
            <param name="value">A value from which an embedding will be generated.</param>
            <param name="options">The embedding generation options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>
            The generated embedding for the specified <paramref name="value"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="generator"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The generator did not produce exactly one embedding.</exception>
            <remarks>
            This operations is equivalent to using <see cref="M:Microsoft.Extensions.AI.IEmbeddingGenerator`2.GenerateAsync(System.Collections.Generic.IEnumerable{`0},Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)"/> with a
            collection composed of the single <paramref name="value"/> and then returning the first embedding element from the
            resulting <see cref="T:Microsoft.Extensions.AI.GeneratedEmbeddings`1"/> collection.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGeneratorExtensions.GenerateAndZipAsync``2(Microsoft.Extensions.AI.IEmbeddingGenerator{``0,``1},System.Collections.Generic.IEnumerable{``0},Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)">
            <summary>
            Generates embeddings for each of the supplied <paramref name="values"/> and produces a list that pairs
            each input value with its resulting embedding.
            </summary>
            <typeparam name="TInput">The type from which embeddings will be generated.</typeparam>
            <typeparam name="TEmbedding">The type of embedding to generate.</typeparam>
            <param name="generator">The embedding generator.</param>
            <param name="values">The collection of values for which to generate embeddings.</param>
            <param name="options">The embedding generation options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>An array containing tuples of the input values and the associated generated embeddings.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="generator"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="values"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The generator did not produce one embedding for each input value.</exception>
        </member>
        <member name="T:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata">
            <summary>Provides metadata about an <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata.#ctor(System.String,System.Uri,System.String,System.Nullable{System.Int32})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata"/> class.</summary>
            <param name="providerName">
            The name of the embedding generation provider, if applicable. Where possible, this should map to the
            appropriate name defined in the OpenTelemetry Semantic Conventions for Generative AI systems.
            </param>
            <param name="providerUri">The URL for accessing the embedding generation provider, if applicable.</param>
            <param name="defaultModelId">The ID of the default embedding generation model used, if applicable.</param>
            <param name="defaultModelDimensions">The number of dimensions in vectors produced by the default model, if applicable.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata.ProviderName">
            <summary>Gets the name of the embedding generation provider.</summary>
            <remarks>
            Where possible, this maps to the appropriate name defined in the
            OpenTelemetry Semantic Conventions for Generative AI systems.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata.ProviderUri">
            <summary>Gets the URL for accessing the embedding generation provider.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata.DefaultModelId">
            <summary>Gets the ID of the default model used by this embedding generator.</summary>
            <remarks>
            This value can be <see langword="null"/> if no default model is set on the corresponding embedding generator.
            An individual request may override this value via <see cref="P:Microsoft.Extensions.AI.EmbeddingGenerationOptions.ModelId"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata.DefaultModelDimensions">
            <summary>Gets the number of dimensions in the embeddings produced by the default model.</summary>
            <remarks>
            This value can be <see langword="null"/> if either the number of dimensions is unknown or there are multiple possible lengths associated with this model.
            An individual request may override this value via <see cref="P:Microsoft.Extensions.AI.EmbeddingGenerationOptions.Dimensions"/>.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.Embedding`1">
            <summary>Represents an embedding composed of a vector of <typeparamref name="T"/> values.</summary>
            <typeparam name="T">The type of the values in the embedding vector.</typeparam>
            <remarks>Typical values of <typeparamref name="T"/> are <see cref="T:System.Single"/>, <see cref="T:System.Double"/>, or Half.</remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.Embedding`1.#ctor(System.ReadOnlyMemory{`0})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.Embedding`1"/> class with the embedding vector.</summary>
            <param name="vector">The embedding vector this embedding represents.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.Embedding`1.Vector">
            <summary>Gets or sets the embedding vector this embedding represents.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.Embedding`1.Dimensions">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.AI.GeneratedEmbeddings`1">
            <summary>Represents the result of an operation to generate embeddings.</summary>
            <typeparam name="TEmbedding">Specifies the type of the generated embeddings.</typeparam>
        </member>
        <member name="F:Microsoft.Extensions.AI.GeneratedEmbeddings`1._embeddings">
            <summary>The underlying list of embeddings.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.GeneratedEmbeddings`1"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.#ctor(System.Int32)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.GeneratedEmbeddings`1"/> class with the specified capacity.</summary>
            <param name="capacity">The number of embeddings that the new list can initially store.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.GeneratedEmbeddings`1"/> class that contains all of the embeddings from the specified collection.
            </summary>
            <param name="embeddings">The collection whose embeddings are copied to the new list.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Usage">
            <summary>Gets or sets usage details for the embeddings' generation.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.GeneratedEmbeddings`1.AdditionalProperties">
            <summary>Gets or sets any additional properties associated with the embeddings.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Item(System.Int32)">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Count">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.GeneratedEmbeddings`1.System#Collections#Generic#ICollection{TEmbedding}#IsReadOnly">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Add(`0)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>Adds the embeddings from the specified collection to the end of this list.</summary>
            <param name="items">The collection whose elements should be added to this list.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Clear">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Contains(`0)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.CopyTo(`0[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.IndexOf(`0)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Insert(System.Int32,`0)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.Remove(`0)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.GeneratedEmbeddings`1.RemoveAt(System.Int32)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.AI.IEmbeddingGenerator">
            <summary>Represents a generator of embeddings.</summary>
            <remarks>
            This base interface is used to allow for embedding generators to be stored in a non-generic manner.
            To use the generator to create embeddings, instances typed as this base interface first need to be
            cast to the generic interface <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.IEmbeddingGenerator.GetService(System.Type,System.Object)">
            <summary>Asks the <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> for an object of the specified type <paramref name="serviceType"/>.</summary>
            <param name="serviceType">The type of object being requested.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object, otherwise <see langword="null"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serviceType"/> is <see langword="null"/>.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly typed services that might be provided by the
            <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/>, including itself or any services it might be wrapping.
            For example, to access the <see cref="T:Microsoft.Extensions.AI.EmbeddingGeneratorMetadata"/> for the instance, <see cref="M:Microsoft.Extensions.AI.IEmbeddingGenerator.GetService(System.Type,System.Object)"/> may
            be used to request it.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2">
            <summary>Represents a generator of embeddings.</summary>
            <typeparam name="TInput">The type from which embeddings will be generated.</typeparam>
            <typeparam name="TEmbedding">The type of embeddings to generate.</typeparam>
            <remarks>
            <para>
            Unless otherwise specified, all members of <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> are thread-safe for concurrent use.
            It is expected that all implementations of <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> support being used by multiple requests concurrently.
            Instances must not be disposed of while the instance is still in use.
            </para>
            <para>
            However, implementations of <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> may mutate the arguments supplied to
            <see cref="M:Microsoft.Extensions.AI.IEmbeddingGenerator`2.GenerateAsync(System.Collections.Generic.IEnumerable{`0},Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)"/>, such as by configuring the options instance. Thus, consumers of the interface either should
            avoid using shared instances of these arguments for concurrent invocations or should otherwise ensure by construction that
            no <see cref="T:Microsoft.Extensions.AI.IEmbeddingGenerator`2"/> instances are used which might employ such mutation.
            </para>
            </remarks>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#the-iembeddinggenerator-interface">The IEmbeddingGenerator interface.</related>
        </member>
        <member name="M:Microsoft.Extensions.AI.IEmbeddingGenerator`2.GenerateAsync(System.Collections.Generic.IEnumerable{`0},Microsoft.Extensions.AI.EmbeddingGenerationOptions,System.Threading.CancellationToken)">
            <summary>Generates embeddings for each of the supplied <paramref name="values"/>.</summary>
            <param name="values">The sequence of values for which to generate embeddings.</param>
            <param name="options">The embedding generation options with which to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The generated embeddings.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="values"/> is <see langword="null"/>.</exception>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/microsoft-extensions-ai#create-embeddings">Create embeddings.</related>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIFunction">
            <summary>Represents a function that can be described to an AI service and invoked.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunction.JsonSchema">
            <summary>Gets a JSON Schema describing the function and its input parameters.</summary>
            <remarks>
            <para>
            When specified, declares a self-contained JSON schema document that describes the function and its input parameters.
            A simple example of a JSON schema for a function that adds two numbers together is shown below:
            </para>
            <code>
            {
              "title" : "addNumbers",
              "description": "A simple function that adds two numbers together.",
              "type": "object",
              "properties": {
                "a" : { "type": "number" },
                "b" : { "type": "number", "default": 1 }
              }, 
              "required" : ["a"]
            }
            </code>
            <para>
            The metadata present in the schema document plays an important role in guiding AI function invocation.
            </para>
            <para>
            When no schema is specified, consuming chat clients should assume the "{}" or "true" schema, indicating that any JSON input is admissible.
            </para>
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunction.ReturnJsonSchema">
            <summary>Gets a JSON Schema describing the function's return value.</summary>
            <remarks>
            A <see langword="null"/> typically reflects a function that doesn't specify a return schema
            or a function that returns <see cref="T:System.Void"/>, <see cref="T:System.Threading.Tasks.Task"/>, or <see cref="T:System.Threading.Tasks.ValueTask"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunction.UnderlyingMethod">
            <summary>
            Gets the underlying <see cref="T:System.Reflection.MethodInfo"/> that this <see cref="T:Microsoft.Extensions.AI.AIFunction"/> might be wrapping.
            </summary>
            <remarks>
            Provides additional metadata on the function and its signature. Implementations not wrapping .NET methods may return <see langword="null"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunction.JsonSerializerOptions">
            <summary>Gets a <see cref="P:Microsoft.Extensions.AI.AIFunction.JsonSerializerOptions"/> that can be used to marshal function parameters.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)">
            <summary>Invokes the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> and returns its result.</summary>
            <param name="arguments">The arguments to pass to the function's invocation.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The result of the function's execution.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunction.InvokeCoreAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)">
            <summary>Invokes the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> and returns its result.</summary>
            <param name="arguments">The arguments to pass to the function's invocation.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests.</param>
            <returns>The result of the function's execution.</returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIFunctionArguments">
            <summary>Represents arguments to be used with <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>.</summary>
            <remarks>
            <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> is a dictionary of name/value pairs that are used
            as inputs to an <see cref="T:Microsoft.Extensions.AI.AIFunction"/>. However, an instance carries additional non-nominal
            information, such as an optional <see cref="T:System.IServiceProvider"/> that can be used by
            an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> if it needs to resolve any services from a dependency injection
            container.
            </remarks>
        </member>
        <member name="F:Microsoft.Extensions.AI.AIFunctionArguments._arguments">
            <summary>The nominal arguments.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> class, and uses the default comparer for key comparisons.</summary>
            <remarks>The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> is ordinal by default.</remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> class containing
            the specified <paramref name="arguments"/>.
            </summary>
            <param name="arguments">The arguments represented by this instance.</param>
            <remarks>
            The <paramref name="arguments"/> reference will be stored if the instance is
            already a <see cref="T:System.Collections.Generic.Dictionary`2"/>, in which case all dictionary
            operations on this instance will be routed directly to that instance. If <paramref name="arguments"/>
            is not a dictionary, a shallow clone of its data will be used to populate this
            instance. A <see langword="null"/> <paramref name="arguments"/> is treated as an
            empty parameters dictionary.
            The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> is ordinal by default.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.#ctor(System.Collections.Generic.IEqualityComparer{System.String})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> class.</summary>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to use for key comparisons.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object},System.Collections.Generic.IEqualityComparer{System.String})">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> class containing
            the specified <paramref name="arguments"/>.
            </summary>
            <param name="arguments">The arguments represented by this instance.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to be used.</param>
            <remarks>
            The <paramref name="arguments"/> reference will be stored if the instance is already a
            <see cref="T:System.Collections.Generic.Dictionary`2"/> with the same <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> or if
            <paramref name="arguments"/> is <see langword="null" /> in which case all dictionary operations
            on this instance will be routed directly to that instance otherwise a shallow clone of the provided <paramref name="arguments"/>.
            A <see langword="null"/> <paramref name="arguments"/> is will be treated as an empty parameters dictionary.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.Services">
            <summary>Gets or sets services optionally associated with these arguments.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.Context">
            <summary>Gets or sets additional context associated with these arguments.</summary>
            <remarks>
            The context is a dictionary of name/value pairs that can be used to store arbitrary
            information for use by an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> implementation. The meaning of this
            data is left up to the implementer of the <see cref="T:Microsoft.Extensions.AI.AIFunction"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.Item(System.String)">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.Keys">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.Values">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.Count">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,System#Object}}#IsReadOnly">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.System#Collections#Generic#IReadOnlyDictionary{System#String,System#Object}#Keys">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionArguments.System#Collections#Generic#IReadOnlyDictionary{System#String,System#Object}#Values">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.Add(System.String,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,System#Object}}#Add(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.Clear">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,System#Object}}#Contains(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.ContainsKey(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.Object}[],System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.Remove(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{System#String,System#Object}}#Remove(System.Collections.Generic.KeyValuePair{System.String,System.Object})">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.TryGetValue(System.String,System.Object@)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionArguments.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.AI.AIFunctionFactory">
            <summary>Provides factory methods for creating commonly-used implementations of <see cref="T:Microsoft.Extensions.AI.AIFunction"/>.</summary>
            <related type="Article" href="https://learn.microsoft.com/dotnet/ai/quickstarts/use-function-calling">Invoke .NET functions using an AI model.</related>
        </member>
        <member name="F:Microsoft.Extensions.AI.AIFunctionFactory._defaultOptions">
            <summary>Holds the default options instance used when creating function.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.Create(System.Delegate,Microsoft.Extensions.AI.AIFunctionFactoryOptions)">
            <summary>Creates an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instance for a method, specified via a delegate.</summary>
            <param name="method">The method to be represented via the created <see cref="T:Microsoft.Extensions.AI.AIFunction"/>.</param>
            <param name="options">Metadata to use to override defaults inferred from <paramref name="method"/>.</param>
            <returns>The created <see cref="T:Microsoft.Extensions.AI.AIFunction"/> for invoking <paramref name="method"/>.</returns>
            <remarks>
            <para>
            By default, any parameters to <paramref name="method"/> are sourced from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary
            of key/value pairs and are represented in the JSON schema for the function, as exposed in the returned <see cref="T:Microsoft.Extensions.AI.AIFunction"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunction.JsonSchema"/>. There are a few exceptions to this:
            <list type="bullet">
              <item>
                <description>
                  <see cref="T:System.Threading.CancellationToken"/> parameters are automatically bound to the <see cref="T:System.Threading.CancellationToken"/> passed into
                  the invocation via <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>'s <see cref="T:System.Threading.CancellationToken"/> parameter. The parameter is
                  not included in the generated JSON schema. The behavior of <see cref="T:System.Threading.CancellationToken"/> parameters may not be overridden.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:System.IServiceProvider"/> parameters are bound from the <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> property
                  and are not included in the JSON schema. If the parameter is optional, such that a default value is provided,
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> is allowed to be <see langword="null"/>; otherwise, <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/>
                  must be non-<see langword="null"/>, or else the invocation will fail with an exception due to the required nature of the parameter.
                  The handling of <see cref="T:System.IServiceProvider"/> parameters may be overridden via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/>.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters are bound directly to <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> instance
                  passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> and are not included in the JSON schema. If the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>
                  instance passed to <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> is <see langword="null"/>, the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> implementation
                  manufactures an empty instance, such that parameters of type <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> may always be satisfied, whether
                  optional or not. The handling of <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters may be overridden via
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/>.
                </description>
              </item>
            </list>
            All other parameter types are, by default, bound from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>
            and are included in the generated JSON schema. This may be overridden by the <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> provided
            via the <paramref name="options"/> parameter; for every parameter, the delegate is enabled to choose if the parameter should be included in the
            generated schema and how its value should be bound, including handling of optionality (by default, required parameters that are not included in the
            <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary will result in an exception being thrown). Loosely-typed additional context information may be passed
            into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> via the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Context"/> dictionary; the default
            binding ignores this collection, but a custom binding supplied via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> may choose to
            source arguments from this data.
            </para>
            <para>
            The default marshaling of parameters from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary permits values to be passed into the <paramref name="method"/>'s
            invocation directly if the object is already of a compatible type. Otherwise, if the argument is a <see cref="T:System.Text.Json.JsonElement"/>, <see cref="T:System.Text.Json.JsonDocument"/>,
            or <see cref="T:System.Text.Json.Nodes.JsonNode"/>, it is deserialized into the parameter type, utilizing <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/> if provided,
            or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
            and then deserializing it to the expected type.
            </para>
            <para>
            In general, the data supplied via an <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary is supplied from an AI service and should be considered
            unvalidated and untrusted. To provide validated and trusted data to the invocation of <paramref name="method"/>, consider having <paramref name="method"/>
            point to an instance method on an instance configured to hold the appropriate state. An <see cref="T:System.IServiceProvider"/> parameter may also be
            used to resolve services from a dependency injection container.
            </para>
            <para>
            By default, return values are serialized to <see cref="T:System.Text.Json.JsonElement"/> using <paramref name="options"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>.
            Handling of return values may be overridden via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.MarshalResult"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.Text.Json.JsonException">A parameter to <paramref name="method"/> is not serializable.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.Create(System.Delegate,System.String,System.String,System.Text.Json.JsonSerializerOptions)">
            <summary>Creates an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instance for a method, specified via a delegate.</summary>
            <param name="method">The method to be represented via the created <see cref="T:Microsoft.Extensions.AI.AIFunction"/>.</param>
            <param name="name">
            The name to use for the <see cref="T:Microsoft.Extensions.AI.AIFunction"/>. If <see langword="null"/>, the name will be derived from
            the name of <paramref name="method"/>.
            </param>
            <param name="description">
            The description to use for the <see cref="T:Microsoft.Extensions.AI.AIFunction"/>. If <see langword="null"/>, a description will be derived from
            any <see cref="T:System.ComponentModel.DescriptionAttribute"/> on <paramref name="method"/>, if available.
            </param>
            <param name="serializerOptions">The <see cref="T:System.Text.Json.JsonSerializerOptions"/> used to marshal function parameters and any return value.</param>
            <returns>The created <see cref="T:Microsoft.Extensions.AI.AIFunction"/> for invoking <paramref name="method"/>.</returns>
            <remarks>
            <para>
            Any parameters to <paramref name="method"/> are sourced from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary
            of key/value pairs and are represented in the JSON schema for the function, as exposed in the returned <see cref="T:Microsoft.Extensions.AI.AIFunction"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunction.JsonSchema"/>. There are a few exceptions to this:
            <list type="bullet">
              <item>
                <description>
                  <see cref="T:System.Threading.CancellationToken"/> parameters are automatically bound to the <see cref="T:System.Threading.CancellationToken"/> passed into
                  the invocation via <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>'s <see cref="T:System.Threading.CancellationToken"/> parameter. The parameter is
                  not included in the generated JSON schema.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:System.IServiceProvider"/> parameters are bound from the <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> property
                  and are not included in the JSON schema. If the parameter is optional, such that a default value is provided,
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> is allowed to be <see langword="null"/>; otherwise, <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/>
                  must be non-<see langword="null"/>, or else the invocation will fail with an exception due to the required nature of the parameter.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters are bound directly to <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> instance
                  passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> and are not included in the JSON schema. If the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>
                  instance passed to <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> is <see langword="null"/>, the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> implementation
                  manufactures an empty instance, such that parameters of type <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> may always be satisfied, whether
                  optional or not.
                </description>
              </item>
            </list>
            All other parameter types are bound from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>
            and are included in the generated JSON schema.
            </para>
            <para>
            The marshaling of parameters from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary permits values to be passed into the <paramref name="method"/>'s
            invocation directly if the object is already of a compatible type. Otherwise, if the argument is a <see cref="T:System.Text.Json.JsonElement"/>, <see cref="T:System.Text.Json.JsonDocument"/>,
            or <see cref="T:System.Text.Json.Nodes.JsonNode"/>, it is deserialized into the parameter type, utilizing <paramref name="serializerOptions"/> if provided, or else
            <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
            and then deserializing it to the expected type.
            </para>
            <para>
            In general, the data supplied via an <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary is supplied from an AI service and should be considered
            unvalidated and untrusted. To provide validated and trusted data to the invocation of <paramref name="method"/>, consider having <paramref name="method"/>
            point to an instance method on an instance configured to hold the appropriate state. An <see cref="T:System.IServiceProvider"/> parameter may also be
            used to resolve services from a dependency injection container.
            </para>
            <para>
            Return values are serialized to <see cref="T:System.Text.Json.JsonElement"/> using <paramref name="serializerOptions"/> if provided,
            or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.Text.Json.JsonException">A parameter to <paramref name="method"/> is not serializable.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.Create(System.Reflection.MethodInfo,System.Object,Microsoft.Extensions.AI.AIFunctionFactoryOptions)">
            <summary>
            Creates an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instance for a method, specified via an <see cref="T:System.Reflection.MethodInfo"/> instance
            and an optional target object if the method is an instance method.
            </summary>
            <param name="method">The method to be represented via the created <see cref="T:Microsoft.Extensions.AI.AIFunction"/>.</param>
            <param name="target">
            The target object for the <paramref name="method"/> if it represents an instance method.
            This should be <see langword="null"/> if and only if <paramref name="method"/> is a static method.
            </param>
            <param name="options">Metadata to use to override defaults inferred from <paramref name="method"/>.</param>
            <returns>The created <see cref="T:Microsoft.Extensions.AI.AIFunction"/> for invoking <paramref name="method"/>.</returns>
            <remarks>
            <para>
            By default, any parameters to <paramref name="method"/> are sourced from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary
            of key/value pairs and are represented in the JSON schema for the function, as exposed in the returned <see cref="T:Microsoft.Extensions.AI.AIFunction"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunction.JsonSchema"/>. There are a few exceptions to this:
            <list type="bullet">
              <item>
                <description>
                  <see cref="T:System.Threading.CancellationToken"/> parameters are automatically bound to the <see cref="T:System.Threading.CancellationToken"/> passed into
                  the invocation via <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>'s <see cref="T:System.Threading.CancellationToken"/> parameter. The parameter is
                  not included in the generated JSON schema. The behavior of <see cref="T:System.Threading.CancellationToken"/> parameters may not be overridden.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:System.IServiceProvider"/> parameters are bound from the <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> property
                  and are not included in the JSON schema. If the parameter is optional, such that a default value is provided,
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> is allowed to be <see langword="null"/>; otherwise, <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/>
                  must be non-<see langword="null"/>, or else the invocation will fail with an exception due to the required nature of the parameter.
                  The handling of <see cref="T:System.IServiceProvider"/> parameters may be overridden via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/>.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters are bound directly to <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> instance
                  passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> and are not included in the JSON schema. If the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>
                  instance passed to <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> is <see langword="null"/>, the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> implementation
                  manufactures an empty instance, such that parameters of type <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> may always be satisfied, whether
                  optional or not. The handling of <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters may be overridden via
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/>.
                </description>
              </item>
            </list>
            All other parameter types are, by default, bound from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>
            and are included in the generated JSON schema. This may be overridden by the <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> provided
            via the <paramref name="options"/> parameter; for every parameter, the delegate is enabled to choose if the parameter should be included in the
            generated schema and how its value should be bound, including handling of optionality (by default, required parameters that are not included in the
            <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary will result in an exception being thrown). Loosely-typed additional context information may be passed
            into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> via the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Context"/> dictionary; the default
            binding ignores this collection, but a custom binding supplied via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> may choose to
            source arguments from this data.
            </para>
            <para>
            The default marshaling of parameters from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary permits values to be passed into the <paramref name="method"/>'s
            invocation directly if the object is already of a compatible type. Otherwise, if the argument is a <see cref="T:System.Text.Json.JsonElement"/>, <see cref="T:System.Text.Json.JsonDocument"/>,
            or <see cref="T:System.Text.Json.Nodes.JsonNode"/>, it is deserialized into the parameter type, utilizing <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/> if provided,
            or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
            and then deserializing it to the expected type.
            </para>
            <para>
            In general, the data supplied via an <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary is supplied from an AI service and should be considered
            unvalidated and untrusted. To provide validated and trusted data to the invocation of <paramref name="method"/>, consider having <paramref name="method"/>
            point to an instance method on an instance configured to hold the appropriate state. An <see cref="T:System.IServiceProvider"/> parameter may also be
            used to resolve services from a dependency injection container.
            </para>
            <para>
            By default, return values are serialized to <see cref="T:System.Text.Json.JsonElement"/> using <paramref name="options"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>.
            Handling of return values may be overridden via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.MarshalResult"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> represents an instance method but <paramref name="target"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="method"/> represents an open generic method.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="method"/> contains a parameter without a parameter name.</exception>
            <exception cref="T:System.Text.Json.JsonException">A parameter to <paramref name="method"/> or its return type is not serializable.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.Create(System.Reflection.MethodInfo,System.Object,System.String,System.String,System.Text.Json.JsonSerializerOptions)">
            <summary>
            Creates an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instance for a method, specified via an <see cref="T:System.Reflection.MethodInfo"/> instance
            and an optional target object if the method is an instance method.
            </summary>
            <param name="method">The method to be represented via the created <see cref="T:Microsoft.Extensions.AI.AIFunction"/>.</param>
            <param name="target">
            The target object for the <paramref name="method"/> if it represents an instance method.
            This should be <see langword="null"/> if and only if <paramref name="method"/> is a static method.
            </param>
            <param name="name">
            The name to use for the <see cref="T:Microsoft.Extensions.AI.AIFunction"/>. If <see langword="null"/>, the name will be derived from
            the name of <paramref name="method"/>.
            </param>
            <param name="description">
            The description to use for the <see cref="T:Microsoft.Extensions.AI.AIFunction"/>. If <see langword="null"/>, a description will be derived from
            any <see cref="T:System.ComponentModel.DescriptionAttribute"/> on <paramref name="method"/>, if available.
            </param>
            <param name="serializerOptions">The <see cref="T:System.Text.Json.JsonSerializerOptions"/> used to marshal function parameters and return value.</param>
            <returns>The created <see cref="T:Microsoft.Extensions.AI.AIFunction"/> for invoking <paramref name="method"/>.</returns>
            <remarks>
            <para>
            Any parameters to <paramref name="method"/> are sourced from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary
            of key/value pairs and are represented in the JSON schema for the function, as exposed in the returned <see cref="T:Microsoft.Extensions.AI.AIFunction"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunction.JsonSchema"/>. There are a few exceptions to this:
            <list type="bullet">
              <item>
                <description>
                  <see cref="T:System.Threading.CancellationToken"/> parameters are automatically bound to the <see cref="T:System.Threading.CancellationToken"/> passed into
                  the invocation via <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>'s <see cref="T:System.Threading.CancellationToken"/> parameter. The parameter is
                  not included in the generated JSON schema.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:System.IServiceProvider"/> parameters are bound from the <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> property
                  and are not included in the JSON schema. If the parameter is optional, such that a default value is provided,
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> is allowed to be <see langword="null"/>; otherwise, <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/>
                  must be non-<see langword="null"/>, or else the invocation will fail with an exception due to the required nature of the parameter.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters are bound directly to <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> instance
                  passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> and are not included in the JSON schema. If the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>
                  instance passed to <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> is <see langword="null"/>, the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> implementation
                  manufactures an empty instance, such that parameters of type <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> may always be satisfied, whether
                  optional or not.
                </description>
              </item>
            </list>
            All other parameter types are bound from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>
            and are included in the generated JSON schema.
            </para>
            <para>
            The marshaling of parameters from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary permits values to be passed into the <paramref name="method"/>'s
            invocation directly if the object is already of a compatible type. Otherwise, if the argument is a <see cref="T:System.Text.Json.JsonElement"/>, <see cref="T:System.Text.Json.JsonDocument"/>,
            or <see cref="T:System.Text.Json.Nodes.JsonNode"/>, it is deserialized into the parameter type, utilizing <paramref name="serializerOptions"/> if provided, or else
            <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
            and then deserializing it to the expected type.
            </para>
            <para>
            In general, the data supplied via an <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary is supplied from an AI service and should be considered
            unvalidated and untrusted. To provide validated and trusted data to the invocation of <paramref name="method"/>, consider having <paramref name="method"/>
            point to an instance method on an instance configured to hold the appropriate state. An <see cref="T:System.IServiceProvider"/> parameter may also be
            used to resolve services from a dependency injection container.
            </para>
            <para>
            Return values are serialized to <see cref="T:System.Text.Json.JsonElement"/> using <paramref name="serializerOptions"/> if provided,
            or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> represents an instance method but <paramref name="target"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="method"/> represents an open generic method.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="method"/> contains a parameter without a parameter name.</exception>
            <exception cref="T:System.Text.Json.JsonException">A parameter to <paramref name="method"/> or its return type is not serializable.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.Create(System.Reflection.MethodInfo,System.Func{Microsoft.Extensions.AI.AIFunctionArguments,System.Object},Microsoft.Extensions.AI.AIFunctionFactoryOptions)">
            <summary>
            Creates an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instance for a method, specified via a <see cref="T:System.Reflection.MethodInfo"/> for
            an instance method and a <see cref="T:System.Func`2"/> for constructing an instance of
            the receiver object each time the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> is invoked.
            </summary>
            <param name="method">The instance method to be represented via the created <see cref="T:Microsoft.Extensions.AI.AIFunction"/>.</param>
            <param name="createInstanceFunc">
            Callback used on each function invocation to create an instance of the type on which the instance method <paramref name="method"/>
            will be invoked. If the returned instance is <see cref="T:System.IAsyncDisposable"/> or <see cref="T:System.IDisposable"/>, it will be disposed of
            after <paramref name="method"/> completes its invocation.
            </param>
            <param name="options">Metadata to use to override defaults inferred from <paramref name="method"/>.</param>
            <returns>The created <see cref="T:Microsoft.Extensions.AI.AIFunction"/> for invoking <paramref name="method"/>.</returns>
            <remarks>
            <para>
            Return values are serialized to <see cref="T:System.Text.Json.JsonElement"/> using <paramref name="options"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/>. Arguments that are not already of the expected type are
            marshaled to the expected type via JSON and using <paramref name="options"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/>. If the argument is a <see cref="T:System.Text.Json.JsonElement"/>,
            <see cref="T:System.Text.Json.JsonDocument"/>, or <see cref="T:System.Text.Json.Nodes.JsonNode"/>, it is deserialized directly. If the argument is anything else unknown,
            it is round-tripped through JSON, serializing the object as JSON and then deserializing it to the expected type.
            </para>
            <para>
            By default, any parameters to <paramref name="method"/> are sourced from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary
            of key/value pairs and are represented in the JSON schema for the function, as exposed in the returned <see cref="T:Microsoft.Extensions.AI.AIFunction"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunction.JsonSchema"/>. There are a few exceptions to this:
            <list type="bullet">
              <item>
                <description>
                  <see cref="T:System.Threading.CancellationToken"/> parameters are automatically bound to the <see cref="T:System.Threading.CancellationToken"/> passed into
                  the invocation via <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>'s <see cref="T:System.Threading.CancellationToken"/> parameter. The parameter is
                  not included in the generated JSON schema. The behavior of <see cref="T:System.Threading.CancellationToken"/> parameters may not be overridden.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:System.IServiceProvider"/> parameters are bound from the <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> property
                  and are not included in the JSON schema. If the parameter is optional, such that a default value is provided,
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/> is allowed to be <see langword="null"/>; otherwise, <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Services"/>
                  must be non-<see langword="null"/>, or else the invocation will fail with an exception due to the required nature of the parameter.
                  The handling of <see cref="T:System.IServiceProvider"/> parameters may be overridden via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/>.
                </description>
              </item>
              <item>
                <description>
                  By default, <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters are bound directly to <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> instance
                  passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> and are not included in the JSON schema. If the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>
                  instance passed to <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> is <see langword="null"/>, the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> implementation
                  manufactures an empty instance, such that parameters of type <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> may always be satisfied, whether
                  optional or not. The handling of <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> parameters may be overridden via
                  <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/>.
                </description>
              </item>
            </list>
            All other parameter types are, by default, bound from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary passed into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>
            and are included in the generated JSON schema. This may be overridden by the <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> provided
            via the <paramref name="options"/> parameter; for every parameter, the delegate is enabled to choose if the parameter should be included in the
            generated schema and how its value should be bound, including handling of optionality (by default, required parameters that are not included in the
            <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary will result in an exception being thrown). Loosely-typed additional context information may be passed
            into <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> via the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s <see cref="P:Microsoft.Extensions.AI.AIFunctionArguments.Context"/> dictionary; the default
            binding ignores this collection, but a custom binding supplied via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> may choose to
            source arguments from this data.
            </para>
            <para>
            The default marshaling of parameters from the <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/> dictionary permits values to be passed into the <paramref name="method"/>'s
            invocation directly if the object is already of a compatible type. Otherwise, if the argument is a <see cref="T:System.Text.Json.JsonElement"/>, <see cref="T:System.Text.Json.JsonDocument"/>,
            or <see cref="T:System.Text.Json.Nodes.JsonNode"/>, it is deserialized into the parameter type, utilizing <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/> if provided,
            or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>. If the argument is anything else, it is round-tripped through JSON, serializing the object as JSON
            and then deserializing it to the expected type.
            </para>
            <para>
            In general, the data supplied via an <see cref="T:Microsoft.Extensions.AI.AIFunctionArguments"/>'s dictionary is supplied from an AI service and should be considered
            unvalidated and untrusted. To provide validated and trusted data to the invocation of <paramref name="method"/>, the instance constructed
            for each invocation may contain that data in it, such that it's then available to <paramref name="method"/> as instance data.
            An <see cref="T:System.IServiceProvider"/> parameter may also be used to resolve services from a dependency injection container.
            </para>
            <para>
            By default, return values are serialized to <see cref="T:System.Text.Json.JsonElement"/> using <paramref name="options"/>'s
            <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions"/> if provided, or else using <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/>.
            Handling of return values may be overridden via <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.MarshalResult"/>.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="createInstanceFunc"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="method"/> represents a static method.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="method"/> represents an open generic method.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="method"/> contains a parameter without a parameter name.</exception>
            <exception cref="T:System.Text.Json.JsonException">A parameter to <paramref name="method"/> or its return type is not serializable.</exception>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIFunctionFactory.ReflectionAIFunctionDescriptor">
            <summary>
            A descriptor for a .NET method-backed AIFunction that precomputes its marshalling delegates and JSON schema.
            </summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.AIFunctionFactory.ReflectionAIFunctionDescriptor._boxedDefaultCancellationToken">
            <summary>A boxed <see cref="P:System.Threading.CancellationToken.None"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.ReflectionAIFunctionDescriptor.GetOrCreate(System.Reflection.MethodInfo,Microsoft.Extensions.AI.AIFunctionFactoryOptions)">
            <summary>
            Gets or creates a descriptors using the specified method and options.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.ReflectionAIFunctionDescriptor.GetParameterMarshaller(System.Text.Json.JsonSerializerOptions,Microsoft.Extensions.AI.AIFunctionFactoryOptions.ParameterBindingOptions,System.Reflection.ParameterInfo)">
            <summary>
            Gets a delegate for handling the marshaling of a parameter.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.ReflectionAIFunctionDescriptor.GetReturnParameterMarshaller(Microsoft.Extensions.AI.AIFunctionFactory.ReflectionAIFunctionDescriptor.DescriptorKey,System.Text.Json.JsonSerializerOptions,System.Type@)">
            <summary>
            Gets a delegate for handling the result value of a method, converting it into the <see cref="T:System.Threading.Tasks.Task`1"/> to return from the invocation.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.SanitizeMemberName(System.String)">
            <summary>
            Removes characters from a .NET member name that shouldn't be used in an AI function name.
            </summary>
            <param name="memberName">The .NET member name that should be sanitized.</param>
            <returns>
            Replaces non-alphanumeric characters in the identifier with the underscore character.
            Primarily intended to remove characters produced by compiler-generated method name mangling.
            </returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.InvalidNameCharsRegex">
            <summary>Regex that flags any character other than ASCII digits or letters or the underscore.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactory.ReflectionInvoke(System.Reflection.MethodInfo,System.Object,System.Object[])">
            <summary>Invokes the MethodInfo with the specified target object and arguments.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIFunctionFactory.PooledMemoryStream">
            <summary>
            Implements a simple write-only memory stream that uses pooled buffers.
            </summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIFunctionFactoryOptions">
            <summary>
            Represents options that can be provided when creating an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> from a method.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIFunctionFactoryOptions.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AIFunctionFactoryOptions"/> class.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.SerializerOptions">
            <summary>Gets or sets the <see cref="T:System.Text.Json.JsonSerializerOptions"/> used to marshal .NET values being passed to the underlying delegate.</summary>
            <remarks>
            If no value has been specified, the <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/> instance will be used.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.JsonSchemaCreateOptions">
            <summary>
            Gets or sets the <see cref="T:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions"/> governing the generation of JSON schemas for the function.
            </summary>
            <remarks>
            If no value has been specified, the <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.Default"/> instance will be used.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.Name">
            <summary>Gets or sets the name to use for the function.</summary>
            <value>
            The name to use for the function. The default value is a name derived from the method represented by the passed <see cref="T:System.Delegate"/> or <see cref="T:System.Reflection.MethodInfo"/>.
            </value>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.Description">
            <summary>Gets or sets the description to use for the function.</summary>
            <value>
            The description for the function. The default value is a description derived from the passed <see cref="T:System.Delegate"/> or <see cref="T:System.Reflection.MethodInfo"/>, if possible
            (for example, via a <see cref="T:System.ComponentModel.DescriptionAttribute"/> on the method).
            </value>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.AdditionalProperties">
            <summary>
            Gets or sets additional values to store on the resulting <see cref="P:Microsoft.Extensions.AI.AITool.AdditionalProperties" /> property.
            </summary>
            <remarks>
            This property can be used to provide arbitrary information about the function.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding">
            <summary>Gets or sets a delegate used to determine how a particular parameter to the function should be bound.</summary>
            <remarks>
            <para>
            If <see langword="null"/>, the default parameter binding logic will be used. If non-<see langword="null"/> value,
            this delegate will be invoked once for each parameter in the function as part of creating the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instance.
            It is not invoked for parameters of type <see cref="T:System.Threading.CancellationToken"/>, which are invariably bound to the token
            provided to the <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> invocation.
            </para>
            <para>
            Returning a default <see cref="T:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ParameterBindingOptions"/> results in the same behavior as if
            <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> is <see langword="null"/>.
            </para>
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.MarshalResult">
            <summary>Gets or sets a delegate used to determine the <see cref="T:System.Object"/> returned by <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>.</summary>
            <remarks>
            <para>
            By default, the return value of invoking the method wrapped into an <see cref="T:Microsoft.Extensions.AI.AIFunction"/> by <see cref="T:Microsoft.Extensions.AI.AIFunctionFactory"/>
            is then JSON serialized, with the resulting <see cref="T:System.Text.Json.JsonElement"/> returned from the <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> method.
            This default behavior is ideal for the common case where the result will be passed back to an AI service. However, if the caller
            requires more control over the result's marshaling, the <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.MarshalResult"/> property may be set to a delegate that is
            then provided with complete control over the result's marshaling. The delegate is invoked with the value returned by the method,
            and its return value is then returned from the <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/> method.
            </para>
            <para>
            When set, the delegate is invoked even for <see langword="void"/>-returning methods, in which case it is invoked with
            a <see langword="null"/> argument. By default, <see langword="null"/> is returned from the <see cref="M:Microsoft.Extensions.AI.AIFunction.InvokeAsync(Microsoft.Extensions.AI.AIFunctionArguments,System.Threading.CancellationToken)"/>
            method for <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instances produced by <see cref="T:Microsoft.Extensions.AI.AIFunctionFactory"/> to wrap
            <see langword="void"/>-returning methods).
            </para>
            <para>
            Methods strongly-typed to return types of <see cref="T:System.Threading.Tasks.Task"/>, <see cref="T:System.Threading.Tasks.Task`1"/>, <see cref="T:System.Threading.Tasks.ValueTask"/>,
            and <see cref="T:System.Threading.Tasks.ValueTask`1"/> are special-cased. For methods typed to return <see cref="T:System.Threading.Tasks.Task"/> or <see cref="T:System.Threading.Tasks.ValueTask"/>,
            <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.MarshalResult"/> will be invoked with the <see langword="null"/> value after the returned task has successfully completed.
            For methods typed to return <see cref="T:System.Threading.Tasks.Task`1"/> or <see cref="T:System.Threading.Tasks.ValueTask`1"/>, the delegate will be invoked with the
            task's result value after the task has successfully completed.These behaviors keep synchronous and asynchronous methods consistent.
            </para>
            <para>
            In addition to the returned value, which is provided to the delegate as the first argument, the delegate is also provided with
            a <see cref="T:System.Type"/> represented the declared return type of the method. This can be used to determine how to marshal the result.
            This may be different than the actual type of the object (<see cref="M:System.Object.GetType"/>) if the method returns a derived type
            or <see langword="null"/>. If the method is typed to return <see cref="T:System.Threading.Tasks.Task"/>, <see cref="T:System.Threading.Tasks.ValueTask"/>, or <see langword="void"/>,
            the <see cref="T:System.Type"/> argument will be <see langword="null"/>.
            </para>
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ParameterBindingOptions">
            <summary>Provides configuration options produced by the <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ConfigureParameterBinding"/> delegate.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ParameterBindingOptions.BindParameter">
            <summary>Gets a delegate used to determine the value for a bound parameter.</summary>
            <remarks>
            <para>
            The default value is <see langword="null"/>.
            </para>
            <para>
            If <see langword="null"/>, the default binding semantics are used for the parameter.
            If non- <see langword="null"/>, each time the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> is invoked, this delegate will be invoked
            to select the argument value to use for the parameter. The return value of the delegate will be used for the parameter's
            value.
            </para>
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ParameterBindingOptions.ExcludeFromSchema">
            <summary>Gets a value indicating whether the parameter should be excluded from the generated schema.</summary>
            <remarks>
            <para>
            The default value is <see langword="false"/>.
            </para>
            <para>
            Typically, this property is set to <see langword="true"/> if and only if <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ParameterBindingOptions.BindParameter"/> is also set to
            non-<see langword="null"/>. While it's possible to exclude the schema when <see cref="P:Microsoft.Extensions.AI.AIFunctionFactoryOptions.ParameterBindingOptions.BindParameter"/> is <see langword="null"/>,
            doing so means that default marshaling will be used but the AI service won't be aware of the parameter or able to generate
            an argument for it. This is likely to result in invocation errors, as the parameter information is unlikely to be available.
            It, however, is permissible for cases where invocation of the <see cref="T:Microsoft.Extensions.AI.AIFunction"/> is tightly controlled, and the caller
            is expected to augment the argument dictionary with the parameter value.
            </para>
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.HostedCodeInterpreterTool">
            <summary>Represents a hosted tool that can be specified to an AI service to enable it to execute code it generates.</summary>
            <remarks>
            This tool does not itself implement code interpretation. It is a marker that can be used to inform a service
            that the service is allowed to execute its generated code if the service is capable of doing so.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.HostedCodeInterpreterTool.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.HostedCodeInterpreterTool"/> class.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.HostedWebSearchTool">
            <summary>Represents a hosted tool that can be specified to an AI service to enable it to perform web searches.</summary>
            <remarks>
            This tool does not itself implement web searches. It is a marker that can be used to inform a service
            that the service is allowed to perform web searches if the service is capable of doing so.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.HostedWebSearchTool.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.HostedWebSearchTool"/> class.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.DelegatingSpeechToTextClient">
            <summary>
            Provides an optional base class for an <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/> that passes through calls to another instance.
            </summary>
            <remarks>
            This is recommended as a base type when building clients that can be chained in any order around an underlying <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/>.
            The default implementation simply passes each call to the inner client instance.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.#ctor(Microsoft.Extensions.AI.ISpeechToTextClient)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.DelegatingSpeechToTextClient"/> class.
            </summary>
            <param name="innerClient">The wrapped client instance.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.Dispose">
            <inheritdoc />
        </member>
        <member name="P:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.InnerClient">
            <summary>Gets the inner <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient" />.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.GetTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.GetStreamingTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.GetService(System.Type,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.Dispose(System.Boolean)">
            <summary>Provides a mechanism for releasing unmanaged resources.</summary>
            <param name="disposing"><see langword="true"/> if being called from <see cref="M:Microsoft.Extensions.AI.DelegatingSpeechToTextClient.Dispose"/>; otherwise, <see langword="false"/>.</param>
        </member>
        <member name="T:Microsoft.Extensions.AI.ISpeechToTextClient">
            <summary>Represents a speech to text client.</summary>
            <remarks>
            <para>
            Unless otherwise specified, all members of <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/> are thread-safe for concurrent use.
            It is expected that all implementations of <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/> support being used by multiple requests concurrently.
            </para>
            <para>
            However, implementations of <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/> might mutate the arguments supplied to <see cref="M:Microsoft.Extensions.AI.ISpeechToTextClient.GetTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)"/> and
            <see cref="M:Microsoft.Extensions.AI.ISpeechToTextClient.GetStreamingTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)"/>, such as by configuring the options instance. Thus, consumers of the interface either should avoid
            using shared instances of these arguments for concurrent invocations or should otherwise ensure by construction that no
            <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/> instances are used which might employ such mutation. For example, the ConfigureOptions method be
            provided with a callback that could mutate the supplied options argument, and that should be avoided if using a singleton options instance.
            The audio speech stream passed to these methods will not be closed or disposed by the implementation.
            </para>
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.ISpeechToTextClient.GetTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)">
            <summary>Sends audio speech content to the model and returns the generated text.</summary>
            <param name="audioSpeechStream">The audio speech stream to send.</param>
            <param name="options">The speech to text options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The text generated.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.ISpeechToTextClient.GetStreamingTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)">
            <summary>Sends audio speech content to the model and streams back the generated text.</summary>
            <param name="audioSpeechStream">The audio speech stream to send.</param>
            <param name="options">The speech to text options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The text updates representing the streamed output.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.ISpeechToTextClient.GetService(System.Type,System.Object)">
            <summary>Asks the <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/> for an object of the specified type <paramref name="serviceType"/>.</summary>
            <param name="serviceType">The type of object being requested.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object, otherwise <see langword="null"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serviceType"/> is <see langword="null"/>.</exception>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly typed services that might be provided by the <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/>,
            including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextClientExtensions">
            <summary>Extensions for <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextClientExtensions.GetService``1(Microsoft.Extensions.AI.ISpeechToTextClient,System.Object)">
            <summary>Asks the <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/> for an object of type <typeparamref name="TService"/>.</summary>
            <typeparam name="TService">The type of the object to be retrieved.</typeparam>
            <param name="client">The client.</param>
            <param name="serviceKey">An optional key that can be used to help identify the target service.</param>
            <returns>The found object, otherwise <see langword="null"/>.</returns>
            <remarks>
            The purpose of this method is to allow for the retrieval of strongly typed services that may be provided by the <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/>,
            including itself or any services it might be wrapping.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextClientExtensions.GetTextAsync(Microsoft.Extensions.AI.ISpeechToTextClient,Microsoft.Extensions.AI.DataContent,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)">
            <summary>Generates text from speech providing a single audio speech <see cref="T:Microsoft.Extensions.AI.DataContent"/>.</summary>
            <param name="client">The client.</param>
            <param name="audioSpeechContent">The single audio speech content.</param>
            <param name="options">The speech to text options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The text generated by the client.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextClientExtensions.GetStreamingTextAsync(Microsoft.Extensions.AI.ISpeechToTextClient,Microsoft.Extensions.AI.DataContent,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)">
            <summary>Generates text from speech providing a single audio speech <see cref="T:Microsoft.Extensions.AI.DataContent"/>.</summary>
            <param name="client">The client.</param>
            <param name="audioSpeechContent">The single audio speech content.</param>
            <param name="options">The speech to text options to configure the request.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The text generated by the client.</returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextClientMetadata">
            <summary>Provides metadata about an <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/>.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextClientMetadata.#ctor(System.String,System.Uri,System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextClientMetadata"/> class.</summary>
            <param name="providerName">
            The name of the speech to text  provider, if applicable. Where possible, this should map to the
            appropriate name defined in the OpenTelemetry Semantic Conventions for Generative AI systems.
            </param>
            <param name="providerUri">The URL for accessing the speech to text  provider, if applicable.</param>
            <param name="defaultModelId">The ID of the speech to text used by default, if applicable.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextClientMetadata.ProviderName">
            <summary>Gets the name of the speech to text provider.</summary>
            <remarks>
            Where possible, this maps to the appropriate name defined in the
            OpenTelemetry Semantic Conventions for Generative AI systems.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextClientMetadata.ProviderUri">
            <summary>Gets the URL for accessing the speech to text provider.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextClientMetadata.DefaultModelId">
            <summary>Gets the ID of the default model used by this speech to text client.</summary>
            <remarks>
            This value can be null if either the name is unknown or there are multiple possible models associated with this instance.
            An individual request may override this value via <see cref="P:Microsoft.Extensions.AI.SpeechToTextOptions.ModelId"/>.
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextOptions">
            <summary>Represents the options for an speech to text request.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextOptions.ModelId">
            <summary>Gets or sets the model ID for the speech to text.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextOptions.SpeechLanguage">
            <summary>Gets or sets the language of source speech.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextOptions.TextLanguage">
            <summary>Gets or sets the language for the target generated text.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextOptions.SpeechSampleRate">
            <summary>Gets or sets the sample rate of the speech input audio.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextOptions.AdditionalProperties">
            <summary>Gets or sets any additional properties associated with the options.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextOptions.RawRepresentationFactory">
            <summary>
            Gets or sets a callback responsible for creating the raw representation of the embedding generation options from an underlying implementation.
            </summary>
            <remarks>
            The underlying <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient" /> implementation may have its own representation of options.
            When <see cref="M:Microsoft.Extensions.AI.ISpeechToTextClient.GetTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)" /> or <see cref="M:Microsoft.Extensions.AI.ISpeechToTextClient.GetStreamingTextAsync(System.IO.Stream,Microsoft.Extensions.AI.SpeechToTextOptions,System.Threading.CancellationToken)"/>
            is invoked with an <see cref="T:Microsoft.Extensions.AI.SpeechToTextOptions" />, that implementation may convert the provided options into
            its own representation in order to use it while performing the operation. For situations where a consumer knows
            which concrete <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient" /> is being used and how it represents options, a new instance of that
            implementation-specific options type may be returned by this callback, for the <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient" />
            implementation to use instead of creating a new instance. Such implementations may mutate the supplied options
            instance further based on other settings supplied on this <see cref="T:Microsoft.Extensions.AI.SpeechToTextOptions" /> instance or from other inputs,
            therefore, it is <b>strongly recommended</b> to not return shared instances and instead make the callback return a new instance on each call.
            This is typically used to set an implementation-specific setting that isn't otherwise exposed from the strongly-typed
            properties on <see cref="T:Microsoft.Extensions.AI.SpeechToTextOptions" />.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextOptions.Clone">
            <summary>Produces a clone of the current <see cref="T:Microsoft.Extensions.AI.SpeechToTextOptions"/> instance.</summary>
            <returns>A clone of the current <see cref="T:Microsoft.Extensions.AI.SpeechToTextOptions"/> instance.</returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextResponse">
            <summary>Represents the result of an speech to text request.</summary>
        </member>
        <member name="F:Microsoft.Extensions.AI.SpeechToTextResponse._contents">
            <summary>The content items in the generated text response.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponse.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponse.#ctor(System.Collections.Generic.IList{Microsoft.Extensions.AI.AIContent})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/> class.</summary>
            <param name="contents">The contents for this response.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponse.#ctor(System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/> class.</summary>
            <param name="content">Content of the response.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.StartTime">
            <summary>Gets or sets the start time of the text segment in relation to the full audio speech length.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.EndTime">
            <summary>Gets or sets the end time of the text segment in relation to the full audio speech length.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.ResponseId">
            <summary>Gets or sets the ID of the speech to text response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.ModelId">
            <summary>Gets or sets the model ID used in the creation of the speech to text completion.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.RawRepresentation">
            <summary>Gets or sets the raw representation of the speech to text completion from an underlying implementation.</summary>
            <remarks>
            If a <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/> is created to represent some underlying object from another object
            model, this property can be used to store that original object. This can be useful for debugging or
            for enabling a consumer to access the underlying object model if needed.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.AdditionalProperties">
            <summary>Gets or sets any additional properties associated with the speech to text completion.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.Text">
            <summary>Gets the text of this speech to text response.</summary>
            <remarks>
            This property concatenates the text of all <see cref="T:Microsoft.Extensions.AI.TextContent"/> objects in <see cref="P:Microsoft.Extensions.AI.SpeechToTextResponse.Contents"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponse.ToString">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponse.ToSpeechToTextResponseUpdates">
            <summary>Creates an array of <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate" /> instances that represent this <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse" />.</summary>
            <returns>An array of <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate" /> instances that may be used to represent this <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse" />.</returns>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponse.Contents">
            <summary>Gets or sets the generated content items.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate">
            <summary>
            Represents a single streaming response chunk from an <see cref="T:Microsoft.Extensions.AI.ISpeechToTextClient"/>.
            </summary>
            <remarks>
            <para><see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> is so named because it represents streaming updates
            to an speech to text generation. As such, it is considered erroneous for multiple updates that are part
            of the same audio speech to contain competing values. For example, some updates that are part of
            the same audio speech may have a <see langword="null"/> value, and others may have a non-<see langword="null"/> value,
            but all of those with a non-<see langword="null"/> value must have the same value (e.g. <see cref="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.ResponseId"/>).
            </para>
            <para>
            The relationship between <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/> and <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> is
            codified in the <see cref="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateExtensions.ToSpeechToTextResponseAsync(System.Collections.Generic.IAsyncEnumerable{Microsoft.Extensions.AI.SpeechToTextResponseUpdate},System.Threading.CancellationToken)"/> and
            <see cref="M:Microsoft.Extensions.AI.SpeechToTextResponse.ToSpeechToTextResponseUpdates"/>, which enable bidirectional conversions
            between the two. Note, however, that the conversion may be slightly lossy, for example if multiple updates
            all have different <see cref="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.RawRepresentation"/> objects whereas there's
            only one slot for such an object available in <see cref="P:Microsoft.Extensions.AI.SpeechToTextResponse.RawRepresentation"/>.
            </para>
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> class.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.#ctor(System.Collections.Generic.IList{Microsoft.Extensions.AI.AIContent})">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> class.</summary>
            <param name="contents">The contents for this message.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.#ctor(System.String)">
            <summary>Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> class.</summary>
            <param name="content">Content of the message.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.Kind">
            <summary>Gets or sets the kind of the generated text update.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.ResponseId">
            <summary>Gets or sets the ID of the generated text response of which this update is a part.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.StartTime">
            <summary>Gets or sets the start time of the text segment associated with this update in relation to the full audio speech length.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.EndTime">
            <summary>Gets or sets the end time of the text segment associated with this update in relation to the full audio speech length.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.ModelId">
            <summary>Gets or sets the model ID using in the creation of the speech to text of which this update is a part.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.RawRepresentation">
            <summary>Gets or sets the raw representation of the generated text update from an underlying implementation.</summary>
            <remarks>
            If a <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> is created to represent some underlying object from another object
            model, this property can be used to store that original object. This can be useful for debugging or
            for enabling a consumer to access the underlying object model if needed.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.AdditionalProperties">
            <summary>Gets or sets additional properties for the update.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.Text">
            <summary>Gets the text of this speech to text response.</summary>
            <remarks>
            This property concatenates the text of all <see cref="T:Microsoft.Extensions.AI.TextContent"/> objects in <see cref="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.Contents"/>.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.Contents">
            <summary>Gets or sets the generated content items.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdate.ToString">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateExtensions">
            <summary>
            Provides extension methods for working with <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> instances.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateExtensions.ToSpeechToTextResponse(System.Collections.Generic.IEnumerable{Microsoft.Extensions.AI.SpeechToTextResponseUpdate})">
            <summary>Combines <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> instances into a single <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/>.</summary>
            <param name="updates">The updates to be combined.</param>
            <returns>The combined <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateExtensions.ToSpeechToTextResponseAsync(System.Collections.Generic.IAsyncEnumerable{Microsoft.Extensions.AI.SpeechToTextResponseUpdate},System.Threading.CancellationToken)">
            <summary>Combines <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/> instances into a single <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/>.</summary>
            <param name="updates">The updates to be combined.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests. The default is <see cref="P:System.Threading.CancellationToken.None"/>.</param>
            <returns>The combined <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponse"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateExtensions.ProcessUpdate(Microsoft.Extensions.AI.SpeechToTextResponseUpdate,System.Collections.Generic.List{Microsoft.Extensions.AI.AIContent},System.String@,System.String@,Microsoft.Extensions.AI.AdditionalPropertiesDictionary@)">
            <summary>Processes the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdate"/>, incorporating its contents and properties.</summary>
            <param name="update">The update to process.</param>
            <param name="contents">The list of content items being accumulated.</param>
            <param name="responseId">The response ID to update if the update has one.</param>
            <param name="modelId">The model ID to update if the update has one.</param>
            <param name="additionalProperties">The additional properties to update if the update has any.</param>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind">
            <summary>
            Describes the intended purpose of a specific update during streaming of speech to text updates.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.SessionOpen">
            <summary>Gets when the generated text session is opened.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.Error">
            <summary>Gets when a non-blocking error occurs during speech to text updates.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.TextUpdating">
            <summary>Gets when the text update is in progress, without waiting for silence.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.TextUpdated">
            <summary>Gets when the text was generated after small period of silence.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.SessionClose">
            <summary>Gets when the generated text session is closed.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.Value">
            <summary>
            Gets the value associated with this <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/>.
            </summary>
            <remarks>
            The value will be serialized into the "kind" message field of the speech to text update format.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> struct with the provided value.
            </summary>
            <param name="value">The value to associate with this <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/>.</param>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.op_Equality(Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind,Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind)">
            <summary>
            Returns a value indicating whether two <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> instances are equivalent, as determined by a
            case-insensitive comparison of their values.
            </summary>
            <param name="left">The first <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> instance to compare.</param>
            <param name="right">The second <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> instance to compare.</param>
            <returns><see langword="true"/> if left and right are both null or have equivalent values; otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.op_Inequality(Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind,Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind)">
            <summary>
            Returns a value indicating whether two <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> instances are not equivalent, as determined by a
            case-insensitive comparison of their values.
            </summary>
            <param name="left">The first <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> instance to compare. </param>
            <param name="right">The second <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> instance to compare. </param>
            <returns><see langword="true"/> if left and right have different values; <see langword="false"/> if they have equivalent values or are both null.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.Equals(Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.ToString">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.Converter">
            <summary>Provides a <see cref="T:System.Text.Json.Serialization.JsonConverter`1"/> for serializing <see cref="T:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind"/> instances.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.Converter.Read(System.Text.Json.Utf8JsonReader@,System.Type,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc />
        </member>
        <member name="M:Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind.Converter.Write(System.Text.Json.Utf8JsonWriter,Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind,System.Text.Json.JsonSerializerOptions)">
            <inheritdoc />
        </member>
        <member name="T:Microsoft.Extensions.AI.UsageDetails">
            <summary>Provides usage details about a request/response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.UsageDetails.InputTokenCount">
            <summary>Gets or sets the number of tokens in the input.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.UsageDetails.OutputTokenCount">
            <summary>Gets or sets the number of tokens in the output.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.UsageDetails.TotalTokenCount">
            <summary>Gets or sets the total number of tokens used to produce the response.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.UsageDetails.AdditionalCounts">
            <summary>Gets or sets a dictionary of additional usage counts.</summary>
            <remarks>
            All values set here are assumed to be summable. For example, when middleware makes multiple calls to an underlying
            service, it may sum the counts from multiple results to produce an overall <see cref="T:Microsoft.Extensions.AI.UsageDetails"/>.
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.UsageDetails.Add(Microsoft.Extensions.AI.UsageDetails)">
            <summary>Adds usage data from another <see cref="T:Microsoft.Extensions.AI.UsageDetails"/> into this instance.</summary>
            <param name="usage">The source <see cref="T:Microsoft.Extensions.AI.UsageDetails"/> with which to augment this instance.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="usage"/> is <see langword="null"/>.</exception>
        </member>
        <member name="P:Microsoft.Extensions.AI.UsageDetails.DebuggerDisplay">
            <summary>Gets a string representing this instance to display in the debugger.</summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIJsonSchemaCreateContext">
            <summary>
            Defines the context in which a JSON schema within a type graph is being generated.
            </summary>
            <remarks>
            This struct is being passed to the user-provided <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.TransformSchemaNode"/> 
            callback by the <see cref="M:Microsoft.Extensions.AI.AIJsonUtilities.CreateJsonSchema(System.Type,System.String,System.Boolean,System.Object,System.Text.Json.JsonSerializerOptions,Microsoft.Extensions.AI.AIJsonSchemaCreateOptions)"/> method and cannot be instantiated directly.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.Path">
            <summary>
            Gets the path to the schema document currently being generated.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.TypeInfo">
            <summary>
            Gets the <see cref="T:System.Text.Json.Serialization.Metadata.JsonTypeInfo"/> for the type being processed.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.BaseTypeInfo">
            <summary>
            Gets the type info for the polymorphic base type if generated as a derived type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.PropertyInfo">
            <summary>
            Gets the <see cref="T:System.Text.Json.Serialization.Metadata.JsonPropertyInfo"/> if the schema is being generated for a property.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.DeclaringType">
            <summary>
            Gets the declaring type of the property or parameter being processed.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.PropertyAttributeProvider">
            <summary>
            Gets the <see cref="T:System.Reflection.ICustomAttributeProvider"/> corresponding to the property or field being processed.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.ParameterAttributeProvider">
            <summary>
            Gets the <see cref="T:System.Reflection.ICustomAttributeProvider"/> of the
            constructor parameter associated with the accompanying <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.PropertyInfo"/>.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonSchemaCreateContext.GetCustomAttribute``1(System.Boolean)">
            <summary>
            Retrieves a custom attribute of a specified type that is applied to the specified schema node context.
            </summary>
            <typeparam name="TAttribute">The type of attribute to search for.</typeparam>
            <param name="inherit">If <see langword="true"/>, specifies to also search the ancestors of the context members for custom attributes.</param>
            <returns>The first occurrence of <typeparamref name="TAttribute"/> if found, or <see langword="null"/> otherwise.</returns>
            <remarks>
            This helper method resolves attributes from context locations in the following order:
            <list type="number">
            <item>Attributes specified on the property of the context, if specified.</item>
            <item>Attributes specified on the constructor parameter of the context, if specified.</item>
            <item>Attributes specified on the type of the context.</item>
            </list>
            </remarks>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions">
            <summary>
            Provides options for configuring the behavior of <see cref="T:Microsoft.Extensions.AI.AIJsonUtilities"/> JSON schema creation functionality.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.Default">
            <summary>
            Gets the default options instance.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.TransformSchemaNode">
            <summary>
            Gets a callback that is invoked for every schema that is generated within the type graph.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.IncludeParameter">
            <summary>
            Gets a callback that is invoked for every parameter in the <see cref="T:System.Reflection.MethodBase"/> provided to
            <see cref="M:Microsoft.Extensions.AI.AIJsonUtilities.CreateFunctionJsonSchema(System.Reflection.MethodBase,System.String,System.String,System.Text.Json.JsonSerializerOptions,Microsoft.Extensions.AI.AIJsonSchemaCreateOptions)"/> in order to determine whether it should
            be included in the generated schema.
            </summary>
            <remarks>
            By default, when <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.IncludeParameter"/> is <see langword="null"/>, all parameters other
            than those of type <see cref="T:System.Threading.CancellationToken"/> are included in the generated schema.
            The delegate is not invoked for <see cref="T:System.Threading.CancellationToken"/> parameters.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.TransformOptions">
            <summary>
            Gets a <see cref="T:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions"/> governing transformations on the JSON schema after it has been generated.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaCreateOptions.IncludeSchemaKeyword">
            <summary>
            Gets a value indicating whether to include the $schema keyword in created schemas.
            </summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIJsonSchemaTransformCache">
            <summary>
            Defines a cache for JSON schemas transformed according to the specified <see cref="T:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions"/> policy.
            </summary>
            <remarks>
            <para>
            This cache stores weak references from AI abstractions that declare JSON schemas such as <see cref="T:Microsoft.Extensions.AI.AIFunction"/> or <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatJson"/>
            to their corresponding JSON schemas transformed according to the specified <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaTransformCache.TransformOptions"/> policy. It is intended for use by <see cref="T:Microsoft.Extensions.AI.IChatClient"/>
            implementations that enforce vendor-specific restrictions on what constitutes a valid JSON schema for a given function or response format.
            </para>
            <para>
            It is recommended <see cref="T:Microsoft.Extensions.AI.IChatClient"/> implementations with schema transformation requirements should create a single static instance of this cache.
            </para>
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonSchemaTransformCache.#ctor(Microsoft.Extensions.AI.AIJsonSchemaTransformOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.Extensions.AI.AIJsonSchemaTransformCache"/> class with the specified options.
            </summary>
            <param name="transformOptions">The options governing schema transformation.</param>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformCache.TransformOptions">
            <summary>
            Gets the options governing schema transformation.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonSchemaTransformCache.GetOrCreateTransformedSchema(Microsoft.Extensions.AI.AIFunction)">
            <summary>
            Gets or creates a transformed JSON schema for the specified <see cref="T:Microsoft.Extensions.AI.AIFunction"/> instance.
            </summary>
            <param name="function">The function whose JSON schema we want to transform.</param>
            <returns>The transformed JSON schema corresponding to <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaTransformCache.TransformOptions"/>.</returns>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonSchemaTransformCache.GetOrCreateTransformedSchema(Microsoft.Extensions.AI.ChatResponseFormatJson)">
            <summary>
            Gets or creates a transformed JSON schema for the specified <see cref="T:Microsoft.Extensions.AI.ChatResponseFormatJson"/> instance.
            </summary>
            <param name="responseFormat">The response format whose JSON schema we want to transform.</param>
            <returns>The transformed JSON schema corresponding to <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaTransformCache.TransformOptions"/>.</returns>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIJsonSchemaTransformContext">
            <summary>
            Defines the context for transforming a schema node withing a larger schema document.
            </summary>
            <remarks>
            This struct is being passed to the user-provided <see cref="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.TransformSchemaNode"/> 
            callback by the <see cref="M:Microsoft.Extensions.AI.AIJsonUtilities.CreateJsonSchema(System.Type,System.String,System.Boolean,System.Object,System.Text.Json.JsonSerializerOptions,Microsoft.Extensions.AI.AIJsonSchemaCreateOptions)"/> method and cannot be instantiated directly.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformContext.Path">
            <summary>
            Gets the path to the schema document currently being generated.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformContext.PropertyName">
            <summary>
            Gets the containing property name if the current schema is a property of an object.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformContext.IsCollectionElementSchema">
            <summary>
            Gets a value indicating whether the current schema is a collection element.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformContext.IsDictionaryValueSchema">
            <summary>
            Gets a value indicating whether the current schema is a dictionary value.
            </summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions">
            <summary>
            Provides options for configuring the behavior of <see cref="T:Microsoft.Extensions.AI.AIJsonUtilities"/> JSON schema transformation functionality.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.TransformSchemaNode">
            <summary>
            Gets a callback that is invoked for every schema that is generated within the type graph.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.ConvertBooleanSchemas">
            <summary>
            Gets a value indicating whether to convert boolean schemas to equivalent object-based representations.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.DisallowAdditionalProperties">
            <summary>
            Gets a value indicating whether to generate schemas with the additionalProperties set to false for .NET objects.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.RequireAllProperties">
            <summary>
            Gets a value indicating whether to mark all properties as required in the schema.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.UseNullableKeyword">
            <summary>
            Gets a value indicating whether to substitute nullable "type" keywords with OpenAPI 3.0 style "nullable" keywords in the schema.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.MoveDefaultKeywordToDescription">
            <summary>
            Gets a value indicating whether to move the default keyword to the description field in the schema.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonSchemaTransformOptions.Default">
            <summary>
            Gets the default options instance.
            </summary>
        </member>
        <member name="T:Microsoft.Extensions.AI.AIJsonUtilities">
            <summary>Provides a collection of utility methods for marshalling JSON data.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.AddAIContentType``1(System.Text.Json.JsonSerializerOptions,System.String)">
            <summary>
            Adds a custom content type to the polymorphic configuration for <see cref="T:Microsoft.Extensions.AI.AIContent"/>.
            </summary>
            <typeparam name="TContent">The custom content type to configure.</typeparam>
            <param name="options">The options instance to configure.</param>
            <param name="typeDiscriminatorId">The type discriminator id for the content type.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="options"/> or <paramref name="typeDiscriminatorId"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><typeparamref name="TContent"/> is a built-in content type.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="options"/> is a read-only instance.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.AddAIContentType(System.Text.Json.JsonSerializerOptions,System.Type,System.String)">
            <summary>
            Adds a custom content type to the polymorphic configuration for <see cref="T:Microsoft.Extensions.AI.AIContent"/>.
            </summary>
            <param name="options">The options instance to configure.</param>
            <param name="contentType">The custom content type to configure.</param>
            <param name="typeDiscriminatorId">The type discriminator id for the content type.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="options"/>, <paramref name="contentType"/>, or <paramref name="typeDiscriminatorId"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="contentType"/> is a built-in content type or does not derived from <see cref="T:Microsoft.Extensions.AI.AIContent"/>.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="options"/> is a read-only instance.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.HashDataToString(System.ReadOnlySpan{System.Object},System.Text.Json.JsonSerializerOptions)">
            <summary>Serializes the supplied values and computes a string hash of the resulting JSON.</summary>
            <param name="values">The data to serialize and from which a hash should be computed.</param>
            <param name="serializerOptions">
            The <see cref="T:System.Text.Json.JsonSerializerOptions"/> to use for serializing the values.
            If <see langword="null"/>, <see cref="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions"/> will be used.
            </param>
            <returns>A string that will be used as a cache key.</returns>
            <remarks>
            The resulting hash may be used for purposes like caching. However, while the generated
            hash is deterministic for the same inputs, it is not guaranteed to be stable across releases
            of the library, as exactly how the hash is computed may change from version to version.
            </remarks>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultOptions">
            <summary>
            Gets the <see cref="T:System.Text.Json.JsonSerializerOptions"/> singleton used as the default in JSON serialization operations.
            </summary>
            <remarks>
            <para>For Native AOT or applications disabling <see cref="P:System.Text.Json.JsonSerializer.IsReflectionEnabledByDefault"/> this instance includes source generated contracts
            for all common exchange types contained in the Microsoft.Extensions.AI.Abstractions library.
            </para>
            <para>
            It additionally turns on the following settings:
            <list type="number">
            <item>Enables the <see cref="P:System.Text.Json.JsonSerializerOptions.WriteIndented"/> property.</item>
            <item>Enables string based enum serialization as implemented by <see cref="T:System.Text.Json.Serialization.JsonStringEnumConverter"/>.</item>
            <item>Enables <see cref="F:System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull"/> as the default ignore condition for properties.</item>
            <item>
            Enables <see cref="P:System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping"/> when escaping JSON strings.
            Consuming applications must ensure that JSON outputs are adequately escaped before embedding in other document formats, such as HTML and XML.
            </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.CreateDefaultOptions">
            <summary>Creates the default <see cref="T:System.Text.Json.JsonSerializerOptions"/> to use for serialization-related operations.</summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Boolean">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableBoolean">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Char">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Decimal">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Double">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Single">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableSingle">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.AdditionalPropertiesDictionary">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.AdditionalPropertiesDictionaryInt64">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.AIContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.AIFunctionArguments">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.AutoChatToolMode">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.BinaryEmbedding">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatClientMetadata">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatFinishReason">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableChatFinishReason">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatMessage">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatMessageArray">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatOptions">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatResponse">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatResponseFormat">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatResponseFormatJson">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatResponseFormatText">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatResponseUpdate">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatRole">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableChatRole">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ChatToolMode">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.DataContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Embedding">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.EmbeddingByte">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.EmbeddingDouble">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.EmbeddingSingle">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.EmbeddingInt32">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.EmbeddingSByte">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.EmbeddingGenerationOptions">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.EmbeddingGeneratorMetadata">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ErrorContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.FunctionCallContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.FunctionResultContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NoneChatToolMode">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.RequiredChatToolMode">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.SpeechToTextClientMetadata">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.SpeechToTextOptions">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.SpeechToTextResponse">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.SpeechToTextResponseUpdate">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.SpeechToTextResponseUpdateKind">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.TextContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.TextReasoningContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.UriContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.UsageContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.UsageDetails">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.BitArray">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.DictionaryStringObject">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IDictionaryStringObject">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IEnumerableChatMessage">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IEnumerableString">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IListAIContent">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IListChatMessage">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IListString">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IReadOnlyListChatResponseUpdate">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.IReadOnlyListSpeechToTextResponseUpdate">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.DateTime">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.DateTimeOffset">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableDateTimeOffset">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ReadOnlyMemoryByte">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ReadOnlyMemoryDouble">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ReadOnlyMemorySingle">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ReadOnlyMemoryInt32">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.ReadOnlyMemorySByte">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.JsonDocument">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.JsonElement">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableJsonElement">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.JsonArray">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.JsonNode">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.JsonObject">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.JsonValue">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.TimeSpan">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableTimeSpan">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Uri">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Int32">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableInt32">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Int64">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.NullableInt64">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Object">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.SByte">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Int16">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.String">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.UInt32">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.UInt64">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.UInt16">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.JsonContext.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContextNoIndentation.JsonNode">
            <summary>
            Defines the source generated JSON serialization contract metadata for a given type.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContextNoIndentation.Default">
            <summary>
            The default <see cref="T:System.Text.Json.Serialization.JsonSerializerContext"/> associated with a default <see cref="T:System.Text.Json.JsonSerializerOptions"/> instance.
            </summary>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.JsonContextNoIndentation.GeneratedSerializerOptions">
            <summary>
            The source-generated options associated with this context.
            </summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.JsonContextNoIndentation.#ctor">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.JsonContextNoIndentation.#ctor(System.Text.Json.JsonSerializerOptions)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.JsonContextNoIndentation.GetTypeInfo(System.Type)">
            <inheritdoc/>
        </member>
        <member name="F:Microsoft.Extensions.AI.AIJsonUtilities.SchemaKeywordUri">
            <summary>The uri used when populating the $schema keyword in created schemas.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.CreateFunctionJsonSchema(System.Reflection.MethodBase,System.String,System.String,System.Text.Json.JsonSerializerOptions,Microsoft.Extensions.AI.AIJsonSchemaCreateOptions)">
            <summary>
            Determines a JSON schema for the provided method.
            </summary>
            <param name="method">The method from which to extract schema information.</param>
            <param name="title">The title keyword used by the method schema.</param>
            <param name="description">The description keyword used by the method schema.</param>
            <param name="serializerOptions">The options used to extract the schema from the specified type.</param>
            <param name="inferenceOptions">The options controlling schema creation.</param>
            <returns>A JSON schema document encoded as a <see cref="T:System.Text.Json.JsonElement"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="method"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.CreateJsonSchema(System.Type,System.String,System.Boolean,System.Object,System.Text.Json.JsonSerializerOptions,Microsoft.Extensions.AI.AIJsonSchemaCreateOptions)">
            <summary>Creates a JSON schema for the specified type.</summary>
            <param name="type">The type for which to generate the schema.</param>
            <param name="description">The description of the parameter.</param>
            <param name="hasDefaultValue"><see langword="true"/> if the parameter is optional; otherwise, <see langword="false"/>.</param>
            <param name="defaultValue">The default value of the optional parameter, if applicable.</param>
            <param name="serializerOptions">The options used to extract the schema from the specified type.</param>
            <param name="inferenceOptions">The options controlling schema creation.</param>
            <returns>A <see cref="T:System.Text.Json.JsonElement"/> representing the schema.</returns>
        </member>
        <member name="P:Microsoft.Extensions.AI.AIJsonUtilities.DefaultJsonSchema">
            <summary>Gets the default JSON schema to be used by types or functions.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.ValidateSchemaDocument(System.Text.Json.JsonElement,System.String)">
            <summary>Validates the provided JSON schema document.</summary>
        </member>
        <member name="M:Microsoft.Extensions.AI.AIJsonUtilities.TransformSchema(System.Text.Json.JsonElement,Microsoft.Extensions.AI.AIJsonSchemaTransformOptions)">
            <summary>
            Transforms the given JSON schema based on the provided options.
            </summary>
            <param name="schema">The schema document to transform.</param>
            <param name="transformOptions">The options governing schema transformation.</param>
            <returns>A new schema document with transformations applied.</returns>
            <remarks>The schema and any nested schemas are transformed using depth-first traversal.</remarks>
        </member>
    </members>
</doc>