using System.Collections.Generic;
using System.Globalization;
using Avalonia.Media;
using Avalonia.Metadata;
namespace Avalonia.Platform
{
[Unstable]
public interface IFontManagerImpl
{
///
/// Gets the system's default font family's name.
///
string GetDefaultFontFamilyName();
///
/// Get all installed fonts in the system.
/// If true the font collection is updated.
///
IEnumerable GetInstalledFontFamilyNames(bool checkForUpdates = false);
///
/// Tries to match a specified character to a typeface that supports specified font properties.
///
/// The codepoint to match against.
/// The font style.
/// The font weight.
/// The font stretch.
/// The font family. This is optional and used for fallback lookup.
/// The culture.
/// The matching typeface.
///
/// True, if the could match the character to specified parameters, False otherwise.
///
bool TryMatchCharacter(int codepoint, FontStyle fontStyle,
FontWeight fontWeight, FontStretch fontStretch,
FontFamily? fontFamily, CultureInfo? culture, out Typeface typeface);
///
/// Creates a glyph typeface.
///
/// The typeface.
/// 0
/// The created glyph typeface. Can be Null if it was not possible to create a glyph typeface.
///
IGlyphTypeface CreateGlyphTypeface(Typeface typeface);
}
}