UNPKG

@react-gnome/gjs-esm-types

Version:

TypeScript module declarations for GJS ESM modules.

199 lines (187 loc) 7.28 kB
/* * Type Definitions for Gjs (https://gjs.guide/) * * These type definitions are automatically generated, do not edit them by hand. * If you found a bug fix it in ts-for-gir itself or create a bug report on https://github.com/gjsify/ts-for-gjs */ import type GLib from "gi://GLib?version=2.0"; import type GObject from "gi://GObject?version=2.0"; declare module "gi://GModule?version=2.0" { /** * Errors returned by g_module_open_full(). */ enum ModuleError { /** * there was an error loading or opening a module file */ FAILED, /** * a module returned an error from its `g_module_check_init()` function */ CHECK_FAILED, } /** * Flags passed to g_module_open(). * Note that these flags are not supported on all platforms. * @bitfield */ enum ModuleFlags { /** * specifies that symbols are only resolved when * needed. The default action is to bind all symbols when the module * is loaded. */ LAZY, /** * specifies that symbols in the module should * not be added to the global name space. The default action on most * platforms is to place symbols in the module in the global name space, * which may cause conflicts with existing symbols. */ LOCAL, /** * mask for all flags. */ MASK, } /** * A portable way to build the filename of a module. The platform-specific * prefix and suffix are added to the filename, if needed, and the result * is added to the directory, using the correct separator character. * * The directory should specify the directory where the module can be found. * It can be %NULL or an empty string to indicate that the module is in a * standard platform-specific directory, though this is not recommended * since the wrong module may be found. * * For example, calling g_module_build_path() on a Linux system with a * `directory` of `/lib` and a `module_name` of "mylibrary" will return * `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the * directory it will return `\Windows\mylibrary.dll`. * @param directory the directory where the module is. This can be %NULL or the empty string to indicate that the standard platform-specific directories will be used, though that is not recommended * @param module_name the name of the module * @returns the complete path of the module, including the standard library prefix and suffix. This should be freed when no longer needed */ function module_build_path( directory: string | null, module_name: string | null ): string | null; /** * Gets a string describing the last module error. * @returns a string describing the last module error */ function module_error(): string | null; function module_error_quark(): GLib.Quark; /** * Checks if modules are supported on the current platform. * @returns %TRUE if modules are supported */ function module_supported(): boolean; /** * Specifies the type of the module initialization function. * If a module contains a function named g_module_check_init() it is called * automatically when the module is loaded. It is passed the #GModule structure * and should return %NULL on success or a string describing the initialization * error. * @callback * @param module the #GModule corresponding to the module which has just been loaded * @returns %NULL on success, or a string describing the initialization error */ interface ModuleCheckInit { (module: Module): string | null; } /** * Specifies the type of the module function called when it is unloaded. * If a module contains a function named g_module_unload() it is called * automatically when the module is unloaded. * It is passed the #GModule structure. * @callback * @param module the #GModule about to be unloaded */ interface ModuleUnload { (module: Module): void; } interface Module { // Owm methods of GModule-2.0.GModule.Module /** * Closes a module. * @returns %TRUE on success */ close(): boolean; /** * Ensures that a module will never be unloaded. * Any future g_module_close() calls on the module will be ignored. */ make_resident(): void; /** * Returns the filename that the module was opened with. * * If `module` refers to the application itself, "main" is returned. * @returns the filename of the module */ name(): string | null; /** * Gets a symbol pointer from a module, such as one exported * by %G_MODULE_EXPORT. Note that a valid symbol can be %NULL. * @param symbol_name the name of the symbol to find * @returns %TRUE on success */ symbol( symbol_name: string | null ): [/* returnType */ boolean, /* symbol */ any | null]; } /** * The #GModule struct is an opaque data structure to represent a * [dynamically-loaded module][glib-Dynamic-Loading-of-Modules]. * It should only be accessed via the following functions. * @record */ class Module { // Own properties of GModule-2.0.GModule.Module static name: string; // Constructors of GModule-2.0.GModule.Module /** * A portable way to build the filename of a module. The platform-specific * prefix and suffix are added to the filename, if needed, and the result * is added to the directory, using the correct separator character. * * The directory should specify the directory where the module can be found. * It can be %NULL or an empty string to indicate that the module is in a * standard platform-specific directory, though this is not recommended * since the wrong module may be found. * * For example, calling g_module_build_path() on a Linux system with a * `directory` of `/lib` and a `module_name` of "mylibrary" will return * `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the * directory it will return `\Windows\mylibrary.dll`. * @param directory the directory where the module is. This can be %NULL or the empty string to indicate that the standard platform-specific directories will be used, though that is not recommended * @param module_name the name of the module * @returns the complete path of the module, including the standard library prefix and suffix. This should be freed when no longer needed */ static build_path( directory: string | null, module_name: string | null ): string | null; /** * Gets a string describing the last module error. * @returns a string describing the last module error */ static error(): string | null; static error_quark(): GLib.Quark; /** * Checks if modules are supported on the current platform. * @returns %TRUE if modules are supported */ static supported(): boolean; } /** * Name of the imported GIR library * @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188 */ const __name__: string; /** * Version of the imported GIR library * @see https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189 */ const __version__: string; }