+ * @return int the old error_reporting
+ * level or the current level if no level parameter is
+ * given.
+ */
+function error_reporting (?int $error_level): int
+{}
+
+/**
+ * Defines a named constant
+ * @link https://php.net/manual/en/function.define.php
+ * @param string $constant_name
+ * The value of the constant.
+ * In PHP 5, value must be a scalar value (integer, float, string, boolean, or null).
+ * In PHP 7, array values are also accepted.
+ * It is possible to define resource constants,
+ * however it is not recommended and may cause unpredictable behavior.
+ *
+ * @param bool $case_insensitive [optional]
+ * If set to true, the constant will be defined case-insensitive.
+ * The default behavior is case-sensitive; i.e.
+ * CONSTANT and Constant represent
+ * different values.
+ * Defining case-insensitive constants is deprecated as of PHP 7.3.0.
+ *
+ *
+ * Case-insensitive constants are stored as lower-case.
+ *
+ * @return bool true on success or false on failure.
+ */
+function define (string $constant_name, $value, #[Deprecated] bool $case_insensitive = false): bool
+{}
+
+/**
+ * Checks whether a given named constant exists
+ * @link https://php.net/manual/en/function.defined.php
+ * @param string $constant_name
+ * The constant name.
+ *
+ * @return bool true if the named constant given by name
+ * has been defined, false otherwise.
+ */
+#[Pure]
+function defined (string $constant_name): bool
+{}
+
+/**
+ * Returns the name of the class of an object
+ * @link https://php.net/manual/en/function.get-class.php
+ * @param object $object [optional]
+ * The tested object. This parameter may be omitted when inside a class.
+ *
+ * @return string
The name of the class of which object is an
+ * instance.
+ * If object is omitted when inside a class, the
+ * name of that class is returned.
+ */
+#[Pure]
+function get_class (object $object): string
+{}
+
+/**
+ * the "Late Static Binding" class name
+ * @link https://php.net/manual/en/function.get-called-class.php
+ * @return string
+ */
+#[Pure]
+function get_called_class (): string
+{}
+
+/**
+ * Retrieves the parent class name for object or class
+ * @link https://php.net/manual/en/function.get-parent-class.php
+ * @param object|string $object_or_class [optional]
+ * The tested object or class name
+ *
+ * @return string|false
The name of the parent class of the class of which
+ * object is an instance or the name.
+ *
+ *
+ * If the object does not have a parent false will be returned.
+ *
+ *
+ * If called without parameter outside object, this function returns false.
+ */
+#[Pure]
+function get_parent_class (object|string $object_or_class): string|false
+{}
+
+/**
+ * Checks if the class method exists
+ * @link https://php.net/manual/en/function.method-exists.php
+ * @param object|string $object_or_class
+ * An object instance or a class name
+ *
+ * @param string $method
+ * The method name
+ *
+ * @return bool true if the method given by method_name
+ * has been defined for the given object, false
+ * otherwise.
+ */
+#[Pure]
+function method_exists (mixed $object_or_class, string $method): bool
+{}
+
+/**
+ * Checks if the object or class has a property
+ * @link https://php.net/manual/en/function.property-exists.php
+ * @param object|string $object_or_class
+ * The class name or an object of the class to test for
+ *
+ * @param string $property
+ * The name of the property
+ *
+ * @return bool true if the property exists, false if it doesn't exist or
+ * null in case of an error.
+ */
+#[Pure]
+function property_exists (mixed $object_or_class, string $property): bool
+{}
+
+/**
+ * Checks if the trait exists
+ * @param string $trait Name of the trait to check
+ * @param bool $autoload [optional] Whether to autoload if not already loaded.
+ * @return bool Returns TRUE if trait exists, FALSE if not, NULL in case of an error.
+ * @link https://secure.php.net/manual/en/function.trait-exists.php
+ * @since 5.4
+ */
+function trait_exists(string $trait, bool $autoload): bool
+{}
+
+/**
+ * Checks if the class has been defined
+ * @link https://php.net/manual/en/function.class-exists.php
+ * @param string $class
+ * The class name. The name is matched in a case-insensitive manner.
+ *
+ * @param bool $autoload [optional]
+ * Whether or not to call autoload by default.
+ *
+ * @return bool true if class_name is a defined class,
+ * false otherwise.
+ */
+function class_exists (string $class, bool $autoload = true): bool
+{}
+
+/**
+ * Checks if the interface has been defined
+ * @link https://php.net/manual/en/function.interface-exists.php
+ * @param string $interface
+ * The interface name
+ *
+ * @param bool $autoload [optional]
+ * Whether to call autoload or not by default.
+ *
+ * @return bool true if the interface given by
+ * interface_name has been defined, false otherwise.
+ * @since 5.0.2
+ */
+function interface_exists (string $interface, bool $autoload = true): bool
+{}
+
+/**
+ * Return true if the given function has been defined
+ * @link https://php.net/manual/en/function.function-exists.php
+ * @param string $function
+ * The function name, as a string.
+ *
+ * @return bool true if function_name exists and is a
+ * function, false otherwise.
+ *
+ *
+ * This function will return false for constructs, such as
+ * include_once and echo.
+ */
+#[Pure]
+function function_exists (string $function): bool
+{}
+
+/**
+ * Creates an alias for a class
+ * @link https://php.net/manual/en/function.class-alias.php
+ * @param string $class The original class.
+ * @param string $alias The alias name for the class.
+ * @param bool $autoload [optional] Whether to autoload if the original class is not found.
+ * @return bool true on success or false on failure.
+ */
+function class_alias (string $class, string $alias, bool $autoload = true): bool
+{}
+
+/**
+ * Returns an array with the names of included or required files
+ * @link https://php.net/manual/en/function.get-included-files.php
+ * @return string[] an array of the names of all files.
+ *
+ *
+ * The script originally called is considered an "included file," so it will
+ * be listed together with the files referenced by
+ * include and family.
+ *
+ *
+ * Files that are included or required multiple times only show up once in
+ * the returned array.
+ */
+#[Pure]
+function get_included_files (): array
+{}
+
+/**
+ * Alias of get_included_files
+ * @link https://php.net/manual/en/function.get-required-files.php
+ * @return string[]
+ */
+#[Pure]
+function get_required_files (): array
+{}
+
+/**
+ * checks if the object has this class as one of its parents or implements it
+ * @link https://php.net/manual/en/function.is-subclass-of.php
+ * @param object|string $object_or_class
+ * A class name or an object instance
+ *
+ * @param string $class
+ * The class name
+ *
+ * @param bool $allow_string [optional]
+ * If this parameter set to false, string class name as object is not allowed.
+ * This also prevents from calling autoloader if the class doesn't exist.
+ *
+ * @return bool This function returns true if the object object,
+ * belongs to a class which is a subclass of
+ * class_name, false otherwise.
+ */
+#[Pure]
+function is_subclass_of (mixed $object_or_class, string $class, bool $allow_string = true): bool
+{}
+
+/**
+ * Checks if the object is of this class or has this class as one of its parents
+ * @link https://php.net/manual/en/function.is-a.php
+ * @param object|string $object_or_class
+ * The tested object
+ *
+ * @param string $class
+ * The class name
+ *
+ * @param bool $allow_string [optional]
+ * If this parameter set to FALSE, string class name as object
+ * is not allowed. This also prevents from calling autoloader if the class doesn't exist.
+ *
+ * @return bool TRUE if the object is of this class or has this class as one of
+ * its parents, FALSE otherwise.
+ */
+#[Pure]
+function is_a (mixed $object_or_class, string $class, bool $allow_string = false): bool
+{}
+
+/**
+ * Get the default properties of the class
+ * @link https://php.net/manual/en/function.get-class-vars.php
+ * @param string $class
+ * The class name
+ *
+ * @return array an associative array of declared properties visible from the
+ * current scope, with their default value.
+ * The resulting array elements are in the form of
+ * varname => value.
+ */
+#[Pure]
+function get_class_vars (string $class): array
+{}
+
+/**
+ * Gets the properties of the given object
+ * @link https://php.net/manual/en/function.get-object-vars.php
+ * @param object $object
+ * An object instance.
+ *
+ * @return array an associative array of defined object accessible non-static properties
+ * for the specified object in scope. If a property have
+ * not been assigned a value, it will be returned with a null value.
+ */
+#[Pure]
+function get_object_vars (object $object): array
+{}
+
+/**
+ * Gets the class methods' names
+ * @link https://php.net/manual/en/function.get-class-methods.php
+ * @param object|string $object_or_class
+ * The class name or an object instance
+ *
+ * @return string[] an array of method names defined for the class specified by
+ * class_name. In case of an error, it returns null.
+ */
+#[Pure]
+function get_class_methods (object|string $object_or_class): array
+{}
+
+/**
+ * Generates a user-level error/warning/notice message
+ * @link https://php.net/manual/en/function.trigger-error.php
+ * @param string $message
+ * The designated error message for this error. It's limited to 1024
+ * characters in length. Any additional characters beyond 1024 will be
+ * truncated.
+ *
+ * @param int $error_level [optional]
+ * The designated error type for this error. It only works with the E_USER
+ * family of constants, and will default to E_USER_NOTICE.
+ *
+ * @return bool This function returns false if wrong error_type is
+ * specified, true otherwise.
+ */
+function trigger_error (string $message, int $error_level = E_USER_NOTICE): bool
+{}
+
+/**
+ * Alias of trigger_error
+ * @link https://php.net/manual/en/function.user-error.php
+ * @param string $message
+ * @param int $error_level [optional]
+ * @return bool This function returns false if wrong error_type is
+ * specified, true otherwise.
+ */
+function user_error (string $message, int $error_level = E_USER_NOTICE): bool
+{}
+
+/**
+ * Sets a user-defined error handler function
+ * @link https://php.net/manual/en/function.set-error-handler.php
+ * @param callable|null $callback
+ * The user function needs to accept two parameters: the error code, and a
+ * string describing the error. Then there are three optional parameters
+ * that may be supplied: the filename in which the error occurred, the
+ * line number in which the error occurred, and the context in which the
+ * error occurred (an array that points to the active symbol table at the
+ * point the error occurred). The function can be shown as:
+ *
+ *
+ * handler
+ * interrno
+ * stringerrstr
+ * stringerrfile
+ * interrline
+ * arrayerrcontext
+ * errno
+ * The first parameter, errno, contains the
+ * level of the error raised, as an integer.
+ * @param int $error_levels [optional]
+ * Can be used to mask the triggering of the
+ * error_handler function just like the error_reporting ini setting
+ * controls which errors are shown. Without this mask set the
+ * error_handler will be called for every error
+ * regardless to the setting of the error_reporting setting.
+ *
+ * @return callable|null a string containing the previously defined error handler (if any). If
+ * the built-in error handler is used null is returned. null is also returned
+ * in case of an error such as an invalid callback. If the previous error handler
+ * was a class method, this function will return an indexed array with the class
+ * and the method name.
+ */
+function set_error_handler (?callable $callback, int $error_levels = E_ALL | E_STRICT)
+{}
+
+/**
+ * Restores the previous error handler function
+ * @link https://php.net/manual/en/function.restore-error-handler.php
+ * @return bool This function always returns true.
+ */
+function restore_error_handler (): bool
+{}
+
+/**
+ * Sets a user-defined exception handler function
+ * @link https://php.net/manual/en/function.set-exception-handler.php
+ * @param callable|null $callback
+ * Name of the function to be called when an uncaught exception occurs.
+ * This function must be defined before calling
+ * set_exception_handler. This handler function
+ * needs to accept one parameter, which will be the exception object that
+ * was thrown.
+ * NULL may be passed instead, to reset this handler to its default state.
+ *
+ * @return callable|null the name of the previously defined exception handler, or null on error. If
+ * no previous handler was defined, null is also returned.
+ */
+function set_exception_handler (?callable $callback)
+{}
+
+/**
+ * Restores the previously defined exception handler function
+ * @link https://php.net/manual/en/function.restore-exception-handler.php
+ * @return bool This function always returns true.
+ */
+function restore_exception_handler (): bool
+{}
+
+/**
+ * Returns an array with the name of the defined classes
+ * @link https://php.net/manual/en/function.get-declared-classes.php
+ * @return string[] an array of the names of the declared classes in the current script.
+ *
+ * Note that depending on what extensions you have compiled or
+ * loaded into PHP, additional classes could be present. This means that
+ * you will not be able to define your own classes using these
+ * names. There is a list of predefined classes in the Predefined Classes section of
+ * the appendices.
+ *
+ */
+#[Pure]
+function get_declared_classes (): array
+{}
+
+/**
+ * Returns an array of all declared interfaces
+ * @link https://php.net/manual/en/function.get-declared-interfaces.php
+ * @return string[] an array of the names of the declared interfaces in the current
+ * script.
+ */
+#[Pure]
+function get_declared_interfaces (): array
+{}
+
+/**
+ * Returns an array of all declared traits
+ * @return array with names of all declared traits in values. Returns NULL in case of a failure.
+ * @link https://secure.php.net/manual/en/function.get-declared-traits.php
+ * @see class_uses()
+ * @since 5.4
+ */
+#[Pure]
+function get_declared_traits(): array
+{}
+
+/**
+ * Returns an array of all defined functions
+ * @link https://php.net/manual/en/function.get-defined-functions.php
+ * @param bool $exclude_disabled [optional] Whether disabled functions should be excluded from the return value.
+ * @return array an multidimensional array containing a list of all defined
+ * functions, both built-in (internal) and user-defined. The internal
+ * functions will be accessible via $arr["internal"], and
+ * the user defined ones using $arr["user"] (see example
+ * below).
+ */
+#[Pure]
+function get_defined_functions (bool $exclude_disabled = false): array
+{}
+
+/**
+ * Returns an array of all defined variables
+ * @link https://php.net/manual/en/function.get-defined-vars.php
+ * @return array A multidimensional array with all the variables.
+ */
+#[Pure]
+function get_defined_vars (): array
+{}
+
+/**
+ * Create an anonymous (lambda-style) function
+ * @link https://php.net/manual/en/function.create-function.php
+ * @param string $args
+ * The function arguments.
+ *
+ * @param string $code
+ * The function code.
+ *
+ * @return string|false a unique function name as a string, or false on error.
+ * @removed 8.0
+ */
+#[Deprecated(reason: "Use anonymous functions instead", since: "7.2")]
+function create_function (string $args, string $code): bool|string
+{}
+
+/**
+ * Returns the resource type
+ * @link https://php.net/manual/en/function.get-resource-type.php
+ * @param resource $resource
+ * The evaluated resource handle.
+ *
+ * @return string If the given handle is a resource, this function
+ * will return a string representing its type. If the type is not identified
+ * by this function, the return value will be the string
+ * Unknown.
+ */
+function get_resource_type ($resource): string
+{}
+
+/**
+ * Returns an array with the names of all modules compiled and loaded
+ * @link https://php.net/manual/en/function.get-loaded-extensions.php
+ * @param bool $zend_extensions [optional]
+ * Only return Zend extensions, if not then regular extensions, like
+ * mysqli are listed. Defaults to false (return regular extensions).
+ *
+ * @return string[] an indexed array of all the modules names.
+ */
+#[Pure]
+function get_loaded_extensions (bool $zend_extensions = false): array
+{}
+
+/**
+ * Find out whether an extension is loaded
+ * @link https://php.net/manual/en/function.extension-loaded.php
+ * @param string $extension
+ * The extension name.
+ *
+ *
+ * You can see the names of various extensions by using
+ * phpinfo or if you're using the
+ * CGI or CLI version of
+ * PHP you can use the -m switch to
+ * list all available extensions:
+ *
+ *
+ * @return bool true if the extension identified by name
+ * is loaded, false otherwise.
+ */
+#[Pure]
+function extension_loaded (string $extension): bool
+{}
+
+/**
+ * Returns an array with the names of the functions of a module
+ * @link https://php.net/manual/en/function.get-extension-funcs.php
+ * @param string $extension
+ * The module name.
+ *
+ *
+ * This parameter must be in lowercase.
+ *
+ * @return string[]|false an array with all the functions, or false if
+ * module_name is not a valid extension.
+ */
+#[Pure]
+function get_extension_funcs (string $extension): array|false
+{}
+
+/**
+ * Returns an associative array with the names of all the constants and their values
+ * @link https://php.net/manual/en/function.get-defined-constants.php
+ * @param bool $categorize [optional]
+ * Causing this function to return a multi-dimensional
+ * array with categories in the keys of the first dimension and constants
+ * and their values in the second dimension.
+ *
+ * define("MY_CONSTANT", 1);
+ * print_r(get_defined_constants(true));
+ *
+ * The above example will output something similar to:
+ *
+ * As of 5.3.6, this parameter is a bitmask for the following options:
+ *
+ * debug_backtrace options
+ *
+ *
DEBUG_BACKTRACE_PROVIDE_OBJECT
+ *
+ * Whether or not to populate the "object" index.
+ *
+ *
+ *
+ *
DEBUG_BACKTRACE_IGNORE_ARGS
+ *
+ * Whether or not to omit the "args" index, and thus all the function/method arguments,
+ * to save memory.
+ *
+ *
+ *
+ * Before 5.3.6, the only values recognized are true or false, which are the same as
+ * setting or not setting the DEBUG_BACKTRACE_PROVIDE_OBJECT option respectively.
+ *
+ * @param int $limit [optional]
+ * As of 5.4.0, this parameter can be used to limit the number of stack frames returned.
+ * By default (limit=0) it returns all stack frames.
+ *
+ * @return array an array of associative arrays. The possible returned elements
+ * are as follows:
+ *
+ *
+ *
+ * Possible returned elements from debug_backtrace
+ *
+ *
&Name;
+ *
&Type;
+ *
Description
+ *
+ *
+ *
function
+ *
string
+ *
+ * The current function name. See also
+ * __FUNCTION__.
+ *
+ *
+ *
+ *
line
+ *
integer
+ *
+ * The current line number. See also
+ * __LINE__.
+ *
+ *
+ *
+ *
file
+ *
string
+ *
+ * The current file name. See also
+ * __FILE__.
+ *
+ *
+ *
+ *
class
+ *
string
+ *
+ * The current class name. See also
+ * __CLASS__
+ *
+ *
+ *
+ *
object
+ *
object
+ *
+ * The current object.
+ *
+ *
+ *
+ *
type
+ *
string
+ *
+ * The current call type. If a method call, "->" is returned. If a static
+ * method call, "::" is returned. If a function call, nothing is returned.
+ *
+ *
+ *
+ *
args
+ *
array
+ *
+ * If inside a function, this lists the functions arguments. If
+ * inside an included file, this lists the included file name(s).
+ *
+ *
+ *
+ */
+function debug_backtrace (int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array
+{}
+
+/**
+ * Prints a backtrace
+ * @link https://php.net/manual/en/function.debug-print-backtrace.php
+ * @param int $options [optional]
+ * As of 5.3.6, this parameter is a bitmask for the following options:
+ *
+ * debug_print_backtrace options
+ *
+ *
DEBUG_BACKTRACE_IGNORE_ARGS
+ *
+ * Whether or not to omit the "args" index, and thus all the function/method arguments,
+ * to save memory.
+ *
+ *
+ *
+ *
+ * @param int $limit [optional]
+ * As of 5.4.0, this parameter can be used to limit the number of stack frames printed.
+ * By default (limit=0) it prints all stack frames.
+ *
+ * @return void
+ */
+function debug_print_backtrace (int $options = 0, int $limit = 0): void {}
+
+/**
+ * Forces collection of any existing garbage cycles
+ * @link https://php.net/manual/en/function.gc-collect-cycles.php
+ * @return int number of collected cycles.
+ */
+function gc_collect_cycles (): int
+{}
+
+/**
+ * Returns status of the circular reference collector
+ * @link https://php.net/manual/en/function.gc-enabled.php
+ * @return bool true if the garbage collector is enabled, false otherwise.
+ */
+#[Pure]
+function gc_enabled (): bool
+{}
+
+/**
+ * Activates the circular reference collector
+ * @link https://php.net/manual/en/function.gc-enable.php
+ * @return void
+ */
+function gc_enable (): void {}
+
+/**
+ * Deactivates the circular reference collector
+ * @link https://php.net/manual/en/function.gc-disable.php
+ * @return void
+ */
+function gc_disable (): void {}
+
+/**
+ * Gets information about the garbage collector
+ * @link https://php.net/manual/en/function.gc-status.php
+ * @return int[] associative array with the following elements:
+ *
+ *
"runs"
+ *
"collected"
+ *
"threshold"
+ *
"roots"
+ *
+ * @since 7.3
+ */
+#[ArrayShape(["runs" => "int", "collected" => "int", "threshold" => "int", "roots" => "int"])]
+#[Pure]
+function gc_status (): array
+{}
+
+/**
+ * Reclaims memory used by the Zend Engine memory manager
+ * @link https://php.net/manual/en/function.gc-mem-caches.php
+ * @return int Returns the number of bytes freed.
+ * @since 7.0
+ */
+function gc_mem_caches (): int
+{}
+
+/**
+ * Returns active resources
+ * @link https://php.net/manual/en/function.get-resources.php
+ * @param string|null $type [optional]
+ *
+ * If defined, this will cause get_resources() to only return resources of the given type. A list of resource types is available.
+ *
+ * If the string Unknown is provided as the type, then only resources that are of an unknown type will be returned.
+ *
+ * If omitted, all resources will be returned.
+ *
+ * @return resource[] Returns an array of currently active resources, indexed by resource number.
+ * @since 7.0
+ */
+#[Pure]
+function get_resources (?string $type): array
+{}
diff --git a/vendor/jetbrains/phpstorm-stubs/Core/Core_c.php b/vendor/jetbrains/phpstorm-stubs/Core/Core_c.php
new file mode 100644
index 0000000000..a02a48e4b8
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/Core/Core_c.php
@@ -0,0 +1,926 @@
+Iterator or
+ * Traversable
+ * @throws Exception on failure.
+ */
+ public function getIterator();
+}
+
+/**
+ * Interface for external iterators or objects that can be iterated
+ * themselves internally.
+ * @link https://php.net/manual/en/class.iterator.php
+ */
+interface Iterator extends Traversable {
+
+ /**
+ * Return the current element
+ * @link https://php.net/manual/en/iterator.current.php
+ * @return mixed Can return any type.
+ */
+ public function current();
+
+ /**
+ * Move forward to next element
+ * @link https://php.net/manual/en/iterator.next.php
+ * @return void Any returned value is ignored.
+ */
+ public function next();
+
+ /**
+ * Return the key of the current element
+ * @link https://php.net/manual/en/iterator.key.php
+ * @return string|float|int|bool|null scalar on success, or null on failure.
+ */
+ public function key();
+
+ /**
+ * Checks if current position is valid
+ * @link https://php.net/manual/en/iterator.valid.php
+ * @return bool The return value will be casted to boolean and then evaluated.
+ * Returns true on success or false on failure.
+ */
+ public function valid();
+
+ /**
+ * Rewind the Iterator to the first element
+ * @link https://php.net/manual/en/iterator.rewind.php
+ * @return void Any returned value is ignored.
+ */
+ public function rewind();
+}
+
+/**
+ * Interface to provide accessing objects as arrays.
+ * @link https://php.net/manual/en/class.arrayaccess.php
+ */
+interface ArrayAccess {
+
+ /**
+ * Whether a offset exists
+ * @link https://php.net/manual/en/arrayaccess.offsetexists.php
+ * @param mixed $offset
+ * An offset to check for.
+ *
+ * @return bool true on success or false on failure.
+ *
+ *
+ * The return value will be casted to boolean if non-boolean was returned.
+ */
+ public function offsetExists($offset);
+
+ /**
+ * Offset to retrieve
+ * @link https://php.net/manual/en/arrayaccess.offsetget.php
+ * @param mixed $offset
+ * The offset to retrieve.
+ *
+ * @return mixed Can return all value types.
+ */
+ public function offsetGet($offset);
+
+ /**
+ * Offset to set
+ * @link https://php.net/manual/en/arrayaccess.offsetset.php
+ * @param mixed $offset
+ * The offset to assign the value to.
+ *
+ * @param mixed $value
+ * The value to set.
+ *
+ * @return void
+ */
+ public function offsetSet($offset, $value);
+
+ /**
+ * Offset to unset
+ * @link https://php.net/manual/en/arrayaccess.offsetunset.php
+ * @param mixed $offset
+ * The offset to unset.
+ *
+ * @return void
+ */
+ public function offsetUnset($offset);
+}
+
+/**
+ * Interface for customized serializing.
+ * @link https://php.net/manual/en/class.serializable.php
+ */
+interface Serializable {
+
+ /**
+ * String representation of object.
+ * @link https://php.net/manual/en/serializable.serialize.php
+ * @return string|null The string representation of the object or null
+ * @throws Exception Returning other type than string or null
+ */
+ public function serialize();
+
+ /**
+ * Constructs the object.
+ * @link https://php.net/manual/en/serializable.unserialize.php
+ * @param string $serialized The string representation of the object.
+ * @return void
+ */
+ public function unserialize($serialized);
+}
+
+
+/**
+ * Throwable is the base interface for any object that can be thrown via a throw statement in PHP 7,
+ * including Error and Exception.
+ * @link https://php.net/manual/en/class.throwable.php
+ * @since 7.0
+ */
+interface Throwable extends Stringable
+{
+
+ /**
+ * Gets the message
+ * @link https://php.net/manual/en/throwable.getmessage.php
+ * @return string
+ * @since 7.0
+ */
+ public function getMessage();
+
+ /**
+ * Gets the exception code
+ * @link https://php.net/manual/en/throwable.getcode.php
+ * @return int
+ * Returns the exception code as integer in
+ * {@see Exception} but possibly as other type in
+ * {@see Exception} descendants (for example as
+ * string in {@see PDOException}).
+ *
+ * @since 7.0
+ */
+ public function getCode();
+
+ /**
+ * Gets the file in which the exception occurred
+ * @link https://php.net/manual/en/throwable.getfile.php
+ * @return string Returns the name of the file from which the object was thrown.
+ * @since 7.0
+ */
+ public function getFile();
+
+ /**
+ * Gets the line on which the object was instantiated
+ * @link https://php.net/manual/en/throwable.getline.php
+ * @return int Returns the line number where the thrown object was instantiated.
+ * @since 7.0
+ */
+ public function getLine();
+
+ /**
+ * Gets the stack trace
+ * @link https://php.net/manual/en/throwable.gettrace.php
+ * @return array
+ * Returns the stack trace as an array in the same format as
+ * {@see debug_backtrace()}.
+ *
+ * @since 7.0
+ */
+ public function getTrace();
+
+ /**
+ * Gets the stack trace as a string
+ * @link https://php.net/manual/en/throwable.gettraceasstring.php
+ * @return string Returns the stack trace as a string.
+ * @since 7.0
+ */
+ public function getTraceAsString();
+
+ /**
+ * Returns the previous Throwable
+ * @link https://php.net/manual/en/throwable.getprevious.php
+ * @return Throwable Returns the previous {@see Throwable} if available, or NULL otherwise.
+ * @since 7.0
+ */
+ public function getPrevious();
+
+ /**
+ * Gets a string representation of the thrown object
+ * @link https://php.net/manual/en/throwable.tostring.php
+ * @return string
Returns the string representation of the thrown object.
+ * @since 7.0
+ */
+ public function __toString();
+}
+/**
+ * Exception is the base class for
+ * all Exceptions.
+ * @link https://php.net/manual/en/class.exception.php
+ */
+class Exception implements Throwable {
+ /** The error message */
+ protected $message;
+ /** The error code */
+ protected $code;
+ /** The filename where the error happened */
+ protected $file;
+ /** The line where the error happened */
+ protected $line;
+
+
+ /**
+ * Clone the exception
+ * Tries to clone the Exception, which results in Fatal error.
+ * @link https://php.net/manual/en/exception.clone.php
+ * @return void
+ */
+ final private function __clone() { }
+
+ /**
+ * Construct the exception. Note: The message is NOT binary safe.
+ * @link https://php.net/manual/en/exception.construct.php
+ * @param string $message [optional] The Exception message to throw.
+ * @param int $code [optional] The Exception code.
+ * @param Throwable $previous [optional] The previous throwable used for the exception chaining.
+ */
+ #[Pure]
+ public function __construct($message = "", $code = 0, Throwable $previous = null) { }
+
+ /**
+ * Gets the Exception message
+ * @link https://php.net/manual/en/exception.getmessage.php
+ * @return string the Exception message as a string.
+ */
+ #[Pure]
+ final public function getMessage() { }
+
+ /**
+ * Gets the Exception code
+ * @link https://php.net/manual/en/exception.getcode.php
+ * @return mixed|int the exception code as integer in
+ * Exception but possibly as other type in
+ * Exception descendants (for example as
+ * string in PDOException).
+ */
+ #[Pure]
+ final public function getCode() { }
+
+ /**
+ * Gets the file in which the exception occurred
+ * @link https://php.net/manual/en/exception.getfile.php
+ * @return string the filename in which the exception was created.
+ */
+ #[Pure]
+ final public function getFile() { }
+
+ /**
+ * Gets the line in which the exception occurred
+ * @link https://php.net/manual/en/exception.getline.php
+ * @return int the line number where the exception was created.
+ */
+ #[Pure]
+ final public function getLine() { }
+
+ /**
+ * Gets the stack trace
+ * @link https://php.net/manual/en/exception.gettrace.php
+ * @return array the Exception stack trace as an array.
+ */
+ #[Pure]
+ final public function getTrace() { }
+
+ /**
+ * Returns previous Exception
+ * @link https://php.net/manual/en/exception.getprevious.php
+ * @return Exception the previous Exception if available
+ * or null otherwise.
+ */
+ #[Pure]
+ final public function getPrevious() { }
+
+ /**
+ * Gets the stack trace as a string
+ * @link https://php.net/manual/en/exception.gettraceasstring.php
+ * @return string the Exception stack trace as a string.
+ */
+ #[Pure]
+ final public function getTraceAsString() { }
+
+ /**
+ * String representation of the exception
+ * @link https://php.net/manual/en/exception.tostring.php
+ * @return string the string representation of the exception.
+ */
+ public function __toString() { }
+
+ public function __wakeup() { }
+}
+
+/**
+ * Error is the base class for all internal PHP error exceptions.
+ * @link https://php.net/manual/en/class.error.php
+ * @since 7.0
+ */
+class Error implements Throwable {
+
+ /** The error message */
+ protected $message;
+ /** The error code */
+ protected $code;
+ /** The filename where the error happened */
+ protected $file;
+ /** The line where the error happened */
+ protected $line;
+
+ /**
+ * Construct the error object.
+ * @link https://php.net/manual/en/error.construct.php
+ * @param string $message [optional] The Error message to throw.
+ * @param int $code [optional] The Error code.
+ * @param Throwable $previous [optional] The previous throwable used for the exception chaining.
+ */
+ public function __construct($message = "", $code = 0, Throwable $previous = null)
+ {
+ }
+
+ /***
+ * Gets the message
+ * @link https://php.net/manual/en/throwable.getmessage.php
+ * @return string
+ * @since 7.0
+ */
+ public final function getMessage()
+ {
+ }
+
+ /**
+ * Gets the exception code
+ * @link https://php.net/manual/en/throwable.getcode.php
+ * @return int
+ * Returns the exception code as integer in
+ * {@see Exception} but possibly as other type in
+ * {@see Exception} descendants (for example as
+ * string in {@see PDOException}).
+ *
+ * @since 7.0
+ */
+ public final function getCode(){}
+
+
+ /**
+ * Gets the file in which the exception occurred
+ * @link https://php.net/manual/en/throwable.getfile.php
+ * @return string Returns the name of the file from which the object was thrown.
+ * @since 7.0
+ */
+ public final function getFile(){}
+
+
+ /**
+ * Gets the line on which the object was instantiated
+ * @link https://php.net/manual/en/throwable.getline.php
+ * @return int Returns the line number where the thrown object was instantiated.
+ * @since 7.0
+ */
+ public final function getLine(){}
+
+
+ /**
+ * Gets the stack trace
+ * @link https://php.net/manual/en/throwable.gettrace.php
+ * @return array
+ * Returns the stack trace as an array in the same format as
+ * {@see debug_backtrace()}.
+ *
+ * @since 7.0
+ */
+ public final function getTrace(){}
+
+ /**
+ * Gets the stack trace as a string
+ * @link https://php.net/manual/en/throwable.gettraceasstring.php
+ * @return string Returns the stack trace as a string.
+ * @since 7.0
+ */
+ public final function getTraceAsString(){}
+
+ /**
+ * Returns the previous Throwable
+ * @link https://php.net/manual/en/throwable.getprevious.php
+ * @return Throwable Returns the previous {@see Throwable} if available, or NULL otherwise.
+ * @since 7.0
+ */
+ public final function getPrevious(){}
+ /**
+ * Gets a string representation of the thrown object
+ * @link https://php.net/manual/en/throwable.tostring.php
+ * @return string
Returns the string representation of the thrown object.
+ * @since 7.0
+ */
+ public function __toString(){}
+
+ /**
+ * Clone the error
+ * Error can not be clone, so this method results in fatal error.
+ * @return void
+ * @link https://php.net/manual/en/error.clone.php
+ */
+ private final function __clone(){}
+
+ public function __wakeup(){}
+}
+
+class ValueError extends Error {}
+
+/**
+ * There are three scenarios where a TypeError may be thrown.
+ * The first is where the argument type being passed to a function does not match its corresponding declared
+ * parameter type. The second is where a value being returned from a function does not match the declared function return type. The third is where an
+ * invalid number of arguments are passed to a built-in PHP function (strict mode only).
+ * @link https://php.net/manual/en/class.typeerror.php
+ * @since 7.0
+ */
+class TypeError extends Error {
+
+}
+
+/**
+ * ParseError is thrown when an error occurs while parsing PHP code, such as when {@see eval()} is called.
+ * @link https://php.net/manual/en/class.parseerror.php
+ * @since 7.0
+ */
+class ParseError extends CompileError {
+
+}
+
+/**
+ * ArgumentCountError is thrown when too few arguments are passed to a user
+ * defined routine.
+ *
+ * @since 7.1
+ * @see https://php.net/migration71.incompatible#migration71.incompatible.too-few-arguments-exception
+ */
+class ArgumentCountError extends TypeError {}
+
+/**
+ * ArithmeticError is thrown when an error occurs while performing mathematical operations.
+ * In PHP 7.0, these errors include attempting to perform a bitshift by a negative amount,
+ * and any call to {@see intdiv()} that would result in a value outside the possible bounds of an integer.
+ * @link https://php.net/manual/en/class.arithmeticerror.php
+ * @since 7.0
+ */
+class ArithmeticError extends Error {
+
+}
+
+/**
+ * Class CompileError
+ * @link https://secure.php.net/manual/en/class.compileerror.php
+ * @since 7.3
+ */
+class CompileError extends Error {
+
+}
+
+/**
+ * DivisionByZeroError is thrown when an attempt is made to divide a number by zero.
+ * @link https://php.net/manual/en/class.divisionbyzeroerror.php
+ * @since 7.0
+ */
+class DivisionByZeroError extends ArithmeticError {
+
+}
+
+/**
+ * @since 8.0
+ */
+class UnhandledMatchError extends Error {}
+
+/**
+ * An Error Exception.
+ * @link https://php.net/manual/en/class.errorexception.php
+ */
+class ErrorException extends Exception {
+
+ protected $severity;
+
+
+ /**
+ * Constructs the exception
+ * @link https://php.net/manual/en/errorexception.construct.php
+ * @param string $message [optional] The Exception message to throw.
+ * @param int $code [optional] The Exception code.
+ * @param int $severity [optional] The severity level of the exception.
+ * @param string $filename [optional] The filename where the exception is thrown.
+ * @param int $line [optional] The line number where the exception is thrown.
+ * @param Exception $previous [optional] The previous exception used for the exception chaining.
+ */
+ #[\JetBrains\PhpStorm\Pure]
+ public function __construct($message = "", $code = 0, $severity = 1, $filename = __FILE__, $line = __LINE__, $previous = null) { }
+
+ /**
+ * Gets the exception severity
+ * @link https://php.net/manual/en/errorexception.getseverity.php
+ * @return int the severity level of the exception.
+ */
+ final public function getSeverity() { }
+}
+
+/**
+ * Class used to represent anonymous functions.
+ *
Anonymous functions, implemented in PHP 5.3, yield objects of this type.
+ * This fact used to be considered an implementation detail, but it can now be relied upon.
+ * Starting with PHP 5.4, this class has methods that allow further control of the anonymous function after it has been created.
+ *
Besides the methods listed here, this class also has an __invoke method.
+ * This is for consistency with other classes that implement calling magic, as this method is not used for calling the function.
+ * @link https://secure.php.net/manual/en/class.closure.php
+ */
+final class Closure {
+
+ /**
+ * This method exists only to disallow instantiation of the Closure class.
+ * Objects of this class are created in the fashion described on the anonymous functions page.
+ * @link https://secure.php.net/manual/en/closure.construct.php
+ */
+ private function __construct() { }
+
+ /**
+ * This is for consistency with other classes that implement calling magic,
+ * as this method is not used for calling the function.
+ * @param mixed ...$_ [optional]
+ * @return mixed
+ * @link https://secure.php.net/manual/en/class.closure.php
+ */
+ public function __invoke(...$_) { }
+
+ /**
+ * Duplicates the closure with a new bound object and class scope
+ * @link https://secure.php.net/manual/en/closure.bindto.php
+ * @param object|null $newThis The object to which the given anonymous function should be bound, or NULL for the closure to be unbound.
+ * @param mixed $newScope The class scope to which associate the closure is to be associated, or 'static' to keep the current one.
+ * If an object is given, the type of the object will be used instead.
+ * This determines the visibility of protected and private methods of the bound object.
+ * @return Closure|false Returns the newly created Closure object or FALSE on failure
+ */
+ function bindTo($newThis, $newScope = 'static') { }
+
+ /**
+ * This method is a static version of Closure::bindTo().
+ * See the documentation of that method for more information.
+ * @link https://secure.php.net/manual/en/closure.bind.php
+ * @param Closure $closure The anonymous functions to bind.
+ * @param object|null $newThis The object to which the given anonymous function should be bound, or NULL for the closure to be unbound.
+ * @param mixed $newScope The class scope to which associate the closure is to be associated, or 'static' to keep the current one.
+ * If an object is given, the type of the object will be used instead.
+ * This determines the visibility of protected and private methods of the bound object.
+ * @return Closure|false Returns the newly created Closure object or FALSE on failure
+ */
+ static function bind(Closure $closure, $newThis, $newScope = 'static') { }
+
+ /**
+ * Temporarily binds the closure to newthis, and calls it with any given parameters.
+ * @link https://php.net/manual/en/closure.call.php
+ * @param object $newThis The object to bind the closure to for the duration of the call.
+ * @param mixed $args [optional] Zero or more parameters, which will be given as parameters to the closure.
+ * @return mixed
+ * @since 7.0
+ */
+ function call ($newThis, ...$args) {}
+
+ /**
+ * @param callable $callback
+ * @return Closure
+ * @since 7.1
+ */
+ public static function fromCallable (callable $callback) {}
+}
+
+/**
+ * Classes implementing Countable can be used with the
+ * count function.
+ * @link https://php.net/manual/en/class.countable.php
+ */
+interface Countable {
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/countable.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ */
+ public function count();
+}
+
+/**
+ * Weak references allow the programmer to retain a reference to an
+ * object which does not prevent the object from being destroyed.
+ * They are useful for implementing cache like structures.
+ * @link https://www.php.net/manual/en/class.weakreference.php
+ */
+class WeakReference {
+ /**
+ * This method exists only to disallow instantiation of the WeakReference
+ * class. Weak references are to be instantiated with the factory method
+ * WeakReference::create().
+ */
+ public function __construct() {}
+
+ /**
+ * Create a new weak reference.
+ * @link https://www.php.net/manual/en/weakreference.create.php
+ * @param object $referent The object to be weakly referenced.
+ * @return WeakReference the freshly instantiated object.
+ * @since 7.4
+ */
+ public static function create($referent) {}
+
+ /**
+ * Gets a weakly referenced object. If the object has already been
+ * destroyed, NULL is returned.
+ * @link https://www.php.net/manual/en/weakreference.get.php
+ * @return object|null
+ * @since 7.4
+ */
+ public function get() {}
+}
+
+/**
+ * Weak maps allow creating a map from objects to arbitrary values
+ * (similar to SplObjectStorage) without preventing the objects that are used
+ * as keys from being garbage collected. If an object key is garbage collected,
+ * it will simply be removed from the map.
+ *
+ * @since 8.0
+ */
+final class WeakMap implements \ArrayAccess, \Countable, \IteratorAggregate {
+ /**
+ * Returns {@see true} if the value for the object is contained in
+ * the {@see WeakMap} and {@see false} instead.
+ *
+ * @param object $object Any object
+ * @return bool
+ */
+ public function offsetExists($object) {}
+
+ /**
+ * Returns the existsing value by an object.
+ *
+ * @param object $object Any object
+ * @return mixed Value associated with the key object
+ */
+ public function offsetGet($object)
+ {
+ }
+
+ /**
+ * Sets a new value for an object.
+ *
+ * @param object $object Any object
+ * @param mixed $value Any value
+ * @return void
+ */
+ public function offsetSet($object, $value)
+ {
+ }
+
+ /**
+ * Force removes an object value from the {@see WeakMap} instance.
+ *
+ * @param object $object Any object
+ * @return void
+ */
+ public function offsetUnset($object)
+ {
+ }
+
+ /**
+ * Returns an iterator in the "[object => mixed]" format.
+ *
+ * @return Traversable
+ */
+ public function getIterator()
+ {
+ }
+
+ /**
+ * Returns the number of items in the {@see WeakMap} instance.
+ *
+ * @return int
+ */
+ public function count()
+ {
+ }
+}
+
+/**
+ * Stringable interface marks classes as available for serialization
+ * in a string.
+ *
+ * @since 8.0
+ */
+interface Stringable {
+ /**
+ * Magic method {@see https://www.php.net/manual/en/language.oop5.magic.php}
+ * called during serialization to string.
+ *
+ * @return string Returns string representation of the object that
+ * implements this interface (and/or "__toString" magic method).
+ */
+ public function __toString();
+}
+
+/**
+ * @since 8.0
+ */
+#[Attribute(Attribute::TARGET_CLASS)]
+final class Attribute {
+ public int $flags;
+ /**
+ * Marks that attribute declaration is allowed only in classes.
+ */
+ const TARGET_CLASS = 1;
+
+ /**
+ * Marks that attribute declaration is allowed only in functions.
+ */
+ const TARGET_FUNCTION = 1 << 1;
+
+ /**
+ * Marks that attribute declaration is allowed only in class methods.
+ */
+ const TARGET_METHOD = 1 << 2;
+
+ /**
+ * Marks that attribute declaration is allowed only in class properties.
+ */
+ const TARGET_PROPERTY = 1 << 3;
+
+ /**
+ * Marks that attribute declaration is allowed only in class constants.
+ */
+ const TARGET_CLASS_CONSTANT = 1 << 4;
+
+ /**
+ * Marks that attribute declaration is allowed only in function or method parameters.
+ */
+ const TARGET_PARAMETER = 1 << 5;
+
+ /**
+ * Marks that attribute declaration is allowed anywhere.
+ */
+ const TARGET_ALL = (1 << 6) - 1;
+
+ /**
+ * Notes that an attribute declaration in the same place is
+ * allowed multiple times.
+ */
+ const IS_REPEATABLE = 1 << 10;
+
+ /**
+ * @param int $flags A value in the form of a bitmask indicating the places
+ * where attributes can be defined.
+ */
+ public function __construct(#[ExpectedValues(flagsFromClass: Attribute::class)] $flags = self::TARGET_ALL)
+ {
+ }
+}
+
+/**
+ * A class for working with PHP tokens, which is an alternative to
+ * the {@see token_get_all()} function.
+ *
+ * @since 8.0
+ */
+class PhpToken implements Stringable {
+ /**
+ * One of the T_* constants, or an integer < 256 representing a
+ * single-char token.
+ */
+ public int $id;
+
+ /**
+ * The textual content of the token.
+ */
+ public string $text;
+
+ /**
+ * The starting line number (1-based) of the token.
+ */
+ public int $line;
+
+ /**
+ * The starting position (0-based) in the tokenized string.
+ */
+ public int $pos;
+
+ /**
+ * Same as {@see token_get_all()}, but returning array of {@see PhpToken}
+ * or an instance of a child class.
+ *
+ * @param string $code An a PHP source code
+ * @param int $flags
+ * @return static[]
+ */
+ public static function getAll($code, $flags = 0)
+ {
+ }
+
+ /**
+ * @param int $id An integer identifier
+ * @param string $text Textual content
+ * @param int $line Strating line
+ * @param int $pos Straring position (line offset)
+ */
+ final public function __construct($id, $text, $line = -1, $pos = -1)
+ {
+ }
+
+ /**
+ * Get the name of the token.
+ *
+ * @return string|null
+ */
+ public function getTokenName()
+ {
+ }
+
+ /** @return static[] */
+ public static function tokenize(string $code, int $flags = 0): array {}
+
+ /**
+ * Whether the token has the given ID, the given text, or has an ID/text
+ * part of the given array.
+ *
+ * @param int|string|array $kind
+ * @return bool
+ */
+ public function is($kind)
+ {
+ }
+
+ /**
+ * Whether this token would be ignored by the PHP parser.
+ *
+ * @return bool
+ */
+ public function isIgnorable()
+ {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public function __toString()
+ {
+ }
+}
+
+/**
+ * @since 8.0
+ */
+final class InternalIterator implements Iterator{
+ private function __construct(){}
+ public function current(){}
+
+ public function next(){}
+
+ public function key(){}
+
+ public function valid(){}
+
+ public function rewind(){}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/Core/Core_d.php b/vendor/jetbrains/phpstorm-stubs/Core/Core_d.php
new file mode 100644
index 0000000000..06891194d3
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/Core/Core_d.php
@@ -0,0 +1,271 @@
+set_error_handler), the application aborts as it
+ * was an E_ERROR.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_RECOVERABLE_ERROR', 4096);
+
+/**
+ * Run-time warnings (non-fatal errors). Execution of the script is not
+ * halted.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_WARNING', 2);
+
+/**
+ * Compile-time parse errors. Parse errors should only be generated by
+ * the parser.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_PARSE', 4);
+
+/**
+ * Run-time notices. Indicate that the script encountered something that
+ * could indicate an error, but could also happen in the normal course of
+ * running a script.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_NOTICE', 8);
+
+/**
+ * Enable to have PHP suggest changes
+ * to your code which will ensure the best interoperability
+ * and forward compatibility of your code.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_STRICT', 2048);
+
+/**
+ * Run-time notices. Enable this to receive warnings about code
+ * that will not work in future versions.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_DEPRECATED', 8192);
+
+/**
+ * Fatal errors that occur during PHP's initial startup. This is like an
+ * E_ERROR, except it is generated by the core of PHP.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_CORE_ERROR', 16);
+
+/**
+ * Warnings (non-fatal errors) that occur during PHP's initial startup.
+ * This is like an E_WARNING, except it is generated
+ * by the core of PHP.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_CORE_WARNING', 32);
+
+/**
+ * Fatal compile-time errors. This is like an E_ERROR,
+ * except it is generated by the Zend Scripting Engine.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_COMPILE_ERROR', 64);
+
+/**
+ * Compile-time warnings (non-fatal errors). This is like an
+ * E_WARNING, except it is generated by the Zend
+ * Scripting Engine.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_COMPILE_WARNING', 128);
+
+/**
+ * User-generated error message. This is like an
+ * E_ERROR, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_USER_ERROR', 256);
+
+/**
+ * User-generated warning message. This is like an
+ * E_WARNING, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_USER_WARNING', 512);
+
+/**
+ * User-generated notice message. This is like an
+ * E_NOTICE, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_USER_NOTICE', 1024);
+
+/**
+ * User-generated warning message. This is like an
+ * E_DEPRECATED, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_USER_DEPRECATED', 16384);
+
+/**
+ * All errors and warnings, as supported, except of level
+ * E_STRICT prior to PHP 5.4.0.
+ * Value of E_ALL is 32767 since PHP 5.4.x,
+ * 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define ('E_ALL', 32767);
+define ('DEBUG_BACKTRACE_PROVIDE_OBJECT', 1);
+define ('DEBUG_BACKTRACE_IGNORE_ARGS', 2);
+define ('S_MEMORY', 1);
+define ('S_VARS', 4);
+define ('S_FILES', 8);
+define ('S_INCLUDE', 16);
+define ('S_SQL', 32);
+define ('S_EXECUTOR', 64);
+define ('S_MAIL', 128);
+define ('S_SESSION', 256);
+define ('S_MISC', 2);
+define ('S_INTERNAL', 536870912);
+define ('S_ALL', 511);
+
+define ('true', (bool)1, true);
+define ('false', (bool)0, true);
+define ('null', null, true);
+define ('ZEND_THREAD_SAFE', false);
+define ('ZEND_DEBUG_BUILD', false);
+define ('PHP_WINDOWS_VERSION_BUILD', 0);
+define ('PHP_WINDOWS_VERSION_MAJOR', 0);
+define ('PHP_WINDOWS_VERSION_MINOR', 0);
+define ('PHP_WINDOWS_VERSION_PLATFORM', 0);
+define ('PHP_WINDOWS_VERSION_PRODUCTTYPE', 0);
+define ('PHP_WINDOWS_VERSION_SP_MAJOR', 0);
+define ('PHP_WINDOWS_VERSION_SP_MINOR', 0);
+define ('PHP_WINDOWS_VERSION_SUITEMASK', 0);
+define ('PHP_WINDOWS_NT_DOMAIN_CONTROLLER', 2);
+define ('PHP_WINDOWS_NT_SERVER', 3);
+define ('PHP_WINDOWS_NT_WORKSTATION', 1);
+/**
+ * @since 7.4
+ */
+define ('PHP_WINDOWS_EVENT_CTRL_C', 0);
+/**
+ * @since 7.4
+ */
+define ('PHP_WINDOWS_EVENT_CTRL_BREAK', 1);
+define ('PHP_VERSION', "5.3.6-13ubuntu3.2");
+define ('PHP_MAJOR_VERSION', 5);
+define ('PHP_MINOR_VERSION', 3);
+define ('PHP_RELEASE_VERSION', 6);
+define ('PHP_EXTRA_VERSION', "-13ubuntu3.2");
+define ('PHP_VERSION_ID', 50306);
+define ('PHP_ZTS', 0);
+define ('PHP_DEBUG', 0);
+define ('PHP_OS', "Linux");
+/**
+ * The operating system family PHP was built for. Either of 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' or 'Unknown'. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define ('PHP_OS_FAMILY', "Linux");
+define ('PHP_SAPI', "cli");
+/**
+ * @since 7.4
+ */
+define ('PHP_CLI_PROCESS_TITLE', 1);
+define ('DEFAULT_INCLUDE_PATH', ".:/usr/share/php:/usr/share/pear");
+define ('PEAR_INSTALL_DIR', "/usr/share/php");
+define ('PEAR_EXTENSION_DIR', "/usr/lib/php5/20090626");
+define ('PHP_EXTENSION_DIR', "/usr/lib/php5/20090626");
+/**
+ * Specifies where the binaries were installed into.
+ * @link https://php.net/manual/en/reserved.constants.php
+ */
+define ('PHP_BINARY', '/usr/local/php/bin/php');
+define ('PHP_PREFIX', "/usr");
+define ('PHP_BINDIR', "/usr/bin");
+define ('PHP_LIBDIR', "/usr/lib/php5");
+define ('PHP_DATADIR', "/usr/share");
+define ('PHP_SYSCONFDIR', "/etc");
+define ('PHP_LOCALSTATEDIR', "/var");
+define ('PHP_CONFIG_FILE_PATH', "/etc/php5/cli");
+define ('PHP_CONFIG_FILE_SCAN_DIR', "/etc/php5/cli/conf.d");
+define ('PHP_SHLIB_SUFFIX', "so");
+define ('PHP_EOL', "\n");
+define ('SUHOSIN_PATCH', 1);
+define ('SUHOSIN_PATCH_VERSION', "0.9.10");
+define ('PHP_MAXPATHLEN', 4096);
+define ('PHP_INT_MAX', 9223372036854775807);
+define ('PHP_INT_MIN', -9223372036854775808);
+define ('PHP_INT_SIZE', 8);
+/**
+ * Number of decimal digits that can be rounded into a float and back without precision loss. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_DIG', 15);
+/**
+ * Smallest representable positive number x, so that x + 1.0 != 1.0. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_EPSILON', 2.2204460492503e-16);
+
+/**
+ * Largest representable floating point number. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_MAX', 1.7976931348623e+308);
+/**
+ * Smallest representable floating point number. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_MIN', 2.2250738585072e-308);
+define ('ZEND_MULTIBYTE', 0);
+define ('PHP_OUTPUT_HANDLER_START', 1);
+define ('PHP_OUTPUT_HANDLER_CONT', 2);
+define ('PHP_OUTPUT_HANDLER_END', 4);
+define ('UPLOAD_ERR_OK', 0);
+define ('UPLOAD_ERR_INI_SIZE', 1);
+define ('UPLOAD_ERR_FORM_SIZE', 2);
+define ('UPLOAD_ERR_PARTIAL', 3);
+define ('UPLOAD_ERR_NO_FILE', 4);
+define ('UPLOAD_ERR_NO_TMP_DIR', 6);
+define ('UPLOAD_ERR_CANT_WRITE', 7);
+define ('UPLOAD_ERR_EXTENSION', 8);
+define('STDIN', fopen('php://stdin', 'r'));
+define('STDOUT', fopen('php://stdout', 'w'));
+define('STDERR', fopen('php://stderr', 'w'));
+
+define('PHP_FD_SETSIZE', 1024);
+
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_WRITE', 0);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_FLUSH', 4);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_CLEAN', 2);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_FINAL', 8);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_CLEANABLE', 16);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_FLUSHABLE', 32);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_REMOVABLE', 64);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_STDFLAGS', 112);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_STARTED', 4096);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_DISABLED', 8192);
diff --git a/vendor/jetbrains/phpstorm-stubs/Dockerfile b/vendor/jetbrains/phpstorm-stubs/Dockerfile
new file mode 100644
index 0000000000..8345dcfd4c
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/Dockerfile
@@ -0,0 +1,46 @@
+FROM php:8.0.0RC5-alpine
+RUN echo 'memory_limit = 512M' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini
+COPY --from=composer /usr/bin/composer /usr/bin/composer
+
+RUN set -eux; \
+ apk add --no-cache --virtual .build-deps \
+ gcc g++ make autoconf pkgconfig git \
+ bzip2-dev gettext-dev libxml2-dev php7-dev libffi-dev openssl-dev php7-pear php7-pecl-amqp rabbitmq-c rabbitmq-c-dev \
+ librrd rrdtool-dev yaml yaml-dev fann fann-dev openldap-dev librdkafka librdkafka-dev libcurl curl-dev gpgme gpgme-dev
+RUN docker-php-ext-install ldap bz2 mysqli bcmath calendar dba exif gettext opcache pcntl pdo_mysql shmop sysvmsg \
+ sysvsem sysvshm xml soap
+#TODO: Uncomment below after php 8 released
+#xmlrpc
+#RUN pecl install amqp
+#RUN docker-php-ext-enable amqp
+#RUN pecl install Ev
+#RUN docker-php-ext-enable ev
+#RUN pecl install fann
+#RUN docker-php-ext-enable fann
+#RUN pecl install igbinary
+#RUN docker-php-ext-enable igbinary
+#RUN pecl install inotify
+#RUN docker-php-ext-enable inotify
+#RUN pecl install msgpack
+#RUN docker-php-ext-enable msgpack
+#RUN pecl install rrd
+#RUN docker-php-ext-enable rrd
+#RUN pecl install sync
+#RUN docker-php-ext-enable sync
+#RUN pecl install yaml
+#RUN docker-php-ext-enable yaml
+#RUN pecl install pcov
+#RUN docker-php-ext-enable pcov
+#Extensions below require a lot of fixes
+#RUN pecl install mongodb
+#RUN docker-php-ext-enable mongodb
+#RUN pecl install rdkafka
+#RUN docker-php-ext-enable rdkafka
+#RUN pecl install yaf
+#RUN docker-php-ext-enable yaf
+#RUN pecl install yar
+#RUN docker-php-ext-enable yar
+#RUN pecl install gnupg
+#RUN docker-php-ext-enable gnupg
+#RUN pecl install uopz
+#RUN docker-php-ext-enable uopz
diff --git a/vendor/jetbrains/phpstorm-stubs/Ev/Ev.php b/vendor/jetbrains/phpstorm-stubs/Ev/Ev.php
new file mode 100644
index 0000000000..f30baecbe2
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/Ev/Ev.php
@@ -0,0 +1,1530 @@
+ blocking ->
+ * EvCheck , so having a watcher of each kind they will always be called in pairs bracketing the blocking call.
+ *
+ * The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be
+ * used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library
+ * and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.
+ *
+ * It is recommended to give EvCheck watchers highest( Ev::MAXPRI ) priority, to ensure that they are being run before
+ * any other watchers after the poll (this doesn’t matter for EvPrepare watchers).
+ *
+ * Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed
+ * before other EvCheck watchers did their job.
+ */
+final class EvCheck extends EvWatcher
+{
+ /**
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvCheck
+ */
+ final public static function createStopped(callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvChild
+ *
+ * EvChild watchers trigger when the process receives a SIGCHLD in response to some child status changes (most typically
+ * when a child dies or exits). It is permissible to install an EvChild watcher after the child has been forked (which
+ * implies it might have already exited), as long as the event loop isn't entered(or is continued from a watcher), i.e.
+ * forking and then immediately registering a watcher for the child is fine, but forking and registering a watcher a few
+ * event loop iterations later or in the next callback invocation is not.
+ *
+ * It is allowed to register EvChild watchers in the default loop only.
+ */
+final class EvChild extends EvWatcher
+{
+ /**
+ * @var int The process ID this watcher watches out for, or 0, meaning any process ID.
+ */
+ #[Immutable]
+ public $pid;
+
+ /**
+ * @var int The process ID that detected a status change.
+ */
+ #[Immutable]
+ public $rpid;
+
+ /**
+ * @var int The process exit status caused by rpid.
+ */
+ #[Immutable]
+ public $rstatus;
+
+ /**
+ * Constructs the EvChild watcher object.
+ *
+ * Call the callback when a status change for process ID pid (or any PID if pid is 0) has been received (a status
+ * change happens when the process terminates or is killed, or, when trace is TRUE, additionally when it is stopped
+ * or continued). In other words, when the process receives a SIGCHLD, Ev will fetch the outstanding exit/wait
+ * status for all changed/zombie children and call the callback.
+ *
+ * It is valid to install a child watcher after an EvChild has exited but before the event loop has started its next
+ * iteration. For example, first one calls fork , then the new child process might exit, and only then an EvChild
+ * watcher is installed in the parent for the new PID .
+ *
+ * You can access both exit/tracing status and pid by using the rstatus and rpid properties of the watcher object.
+ *
+ * The number of PID watchers per PID is unlimited. All of them will be called.
+ *
+ * The EvChild::createStopped() method doesn't start(activate) the newly created watcher.
+ *
+ * @param int $pid Wait for status changes of process PID(or any process if PID is specified as 0 ).
+ * @param bool $trace If FALSE, only activate the watcher when the process terminates. Otherwise(TRUE) additionally
+ * activate the watcher when the process is stopped or continued.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct($pid, $trace, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Create instance of a stopped EvCheck watcher.
+ *
+ * The same as EvChild::__construct() , but doesn't start the watcher automatically.
+ *
+ * @param int $pid Wait for status changes of process PID(or any process if PID is specified as 0 ).
+ * @param bool $trace If FALSE, only activate the watcher when the process terminates. Otherwise(TRUE) additionally
+ * activate the watcher when the process is stopped or continued.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvChild
+ */
+ final public static function createStopped($pid, $trace, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Configures the watcher
+ *
+ * @param int $pid Wait for status changes of process PID(or any process if PID is specified as 0 ).
+ * @param bool $trace If FALSE, only activate the watcher when the process terminates. Otherwise(TRUE) additionally
+ * activate the watcher when the process is stopped or continued.
+ */
+ public function set($pid, $trace) {}
+}
+
+/**
+ * Class EvEmbed
+ *
+ * Used to embed one event loop into another.
+ */
+final class EvEmbed extends EvWatcher
+{
+ /**
+ * @var EvLoop The embedded loop
+ */
+ #[Immutable]
+ public $embed;
+
+ /**
+ * Constructs the EvEmbed object.
+ *
+ * This is a rather advanced watcher type that lets to embed one event loop into another(currently only IO events
+ * are supported in the embedded loop, other types of watchers might be handled in a delayed or incorrect fashion
+ * and must not be used).
+ *
+ * See the libev documentation for details.
+ *
+ * This watcher is most useful on BSD systems without working kqueue to still be able to handle a large number of
+ * sockets.
+ *
+ * @param EvLoop $embed The loop to embed, this loop must be embeddable(see Ev::embeddableBackends()).
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(EvLoop $embed, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param EvLoop $embed The loop to embed, this loop must be embeddable(see Ev::embeddableBackends()).
+ */
+ public function set(EvLoop $embed) {}
+
+ /**
+ * Make a single, non-blocking sweep over the embedded loop.
+ */
+ public function sweep() {}
+
+ /**
+ * Create stopped EvEmbed watcher object
+ *
+ * The same as EvEmbed::__construct() , but doesn't start the watcher automatically.
+ *
+ * @param EvLoop $embed The loop to embed, this loop must be embeddable(see Ev::embeddableBackends()).
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvEmbed
+ */
+ final public static function createStopped(EvLoop $embed, callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvIo
+ *
+ * EvIo watchers check whether a file descriptor(or socket, or a stream castable to numeric file descriptor) is readable
+ * or writable in each iteration of the event loop, or, more precisely, when reading would not block the process and
+ * writing would at least be able to write some data. This behaviour is called level-triggering because events are kept
+ * receiving as long as the condition persists. To stop receiving events just stop the watcher.
+ *
+ * The number of read and/or write event watchers per fd is unlimited. Setting all file descriptors to non-blocking mode
+ * is also usually a good idea (but not required).
+ *
+ * Another thing to watch out for is that it is quite easy to receive false readiness notifications, i.e. the callback
+ * might be called with Ev::READ but a subsequent read() will actually block because there is no data. It is very easy
+ * to get into this situation. Thus it is best to always use non-blocking I/O: An extra read() returning EAGAIN (or
+ * similar) is far preferable to a program hanging until some data arrives.
+ *
+ * If for some reason it is impossible to run the fd in non-blocking mode, then separately re-test whether a file
+ * descriptor is really ready. Some people additionally use SIGALRM and an interval timer, just to be sure they won't
+ * block infinitely.
+ *
+ * Always consider using non-blocking mode.
+ */
+final class EvIo extends EvWatcher
+{
+ /**
+ * @var resource A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ */
+ #[Immutable]
+ public $fd;
+
+ /**
+ * @var int Ev::READ and/or Ev::WRITE. See the bit masks.
+ */
+ #[Immutable]
+ #[ExpectedValues(flags: [Ev::READ, Ev::WRITE])]
+ public $events;
+
+ /**
+ * Constructs EvIo watcher object.
+ *
+ * Constructs EvIo watcher object and starts the watcher automatically.
+ *
+ * @param resource $fd A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ * @param int $events Ev::READ and/or Ev::WRITE. See the bit masks.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct($fd, $events, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param resource $fd A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ * @param int $events Ev::READ and/or Ev::WRITE. See the bit masks.
+ */
+ public function set($fd, $events) {}
+
+ /**
+ * Create stopped EvIo watcher object.
+ *
+ * The same as EvIo::__construct() , but doesn't start the watcher automatically.
+ *
+ * @param resource $fd A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ * @param int $events Ev::READ and/or Ev::WRITE. See the bit masks.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvIo
+ */
+ final public static function createStopped($fd, $events, callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvPeriodic
+ *
+ * Periodic watchers are also timers of a kind, but they are very versatile.
+ *
+ * Unlike EvTimer, EvPeriodic watchers are not based on real time (or relative time, the physical time that passes) but
+ * on wall clock time (absolute time, calendar or clock). The difference is that wall clock time can run faster or
+ * slower than real time, and time jumps are not uncommon (e.g. when adjusting it).
+ *
+ * EvPeriodic watcher can be configured to trigger after some specific point in time. For example, if an EvPeriodic
+ * watcher is configured to trigger "in 10 seconds" (e.g. EvLoop::now() + 10.0 , i.e. an absolute time, not a delay),
+ * and the system clock is reset to January of the previous year , then it will take a year or more to trigger the event
+ * (unlike an EvTimer , which would still trigger roughly 10 seconds after starting it as it uses a relative timeout).
+ *
+ * As with timers, the callback is guaranteed to be invoked only when the point in time where it is supposed to trigger
+ * has passed. If multiple timers become ready during the same loop iteration then the ones with earlier time-out values
+ * are invoked before ones with later time-out values (but this is no longer true when a callback calls EvLoop::run()
+ * recursively).
+ */
+final class EvPeriodic extends EvWatcher
+{
+ /**
+ * @var float When repeating, this contains the offset value, otherwise this is the absolute point in time (the
+ * offset value passed to EvPeriodic::set(), although libev might modify this value for better numerical
+ * stability).
+ */
+ public $offset;
+
+ /**
+ * @var float The current interval value. Can be modified any time, but changes only take effect when the periodic
+ * timer fires or EvPeriodic::again() is being called.
+ */
+ public $interval;
+
+
+ /**
+ * Constructs EvPeriodic watcher object.
+ *
+ * Constructs EvPeriodic watcher object and starts it automatically. EvPeriodic::createStopped() method creates
+ * stopped periodic watcher.
+ *
+ * @param float $offset When repeating, this contains the offset value, otherwise this is the absolute point in
+ * time (the offset value passed to EvPeriodic::set(), although libev might modify this value for better
+ * numerical stability).
+ * @param float $interval The current interval value. Can be modified any time, but changes only take effect when
+ * the periodic timer fires or EvPeriodic::again() is being called.
+ * @param callable $reschedule_cb If set, tt must return the next time to trigger, based on the passed time value
+ * (that is, the lowest time value larger than or equal to the second argument). It will usually be called just
+ * before the callback will be triggered, but might be called at other times, too.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ $offset, $interval, callable $reschedule_cb = null, callable $callback, $data = null, $priority = 0
+ ) {}
+
+ /**
+ * Simply stops and restarts the periodic watcher again.
+ *
+ * Simply stops and restarts the periodic watcher again. This is only useful when attributes are changed.
+ */
+ public function again() {}
+
+ /**
+ * Returns the absolute time that this watcher is supposed to trigger next.
+ *
+ * When the watcher is active, returns the absolute time that this watcher is supposed to trigger next. This is not
+ * the same as the offset argument to EvPeriodic::set() or EvPeriodic::__construct(), but indeed works even in
+ * interval mode.
+ *
+ * @return float Rhe absolute time this watcher is supposed to trigger next in seconds.
+ */
+ public function at() {}
+
+ /**
+ * Create a stopped EvPeriodic watcher
+ *
+ * Create EvPeriodic object. Unlike EvPeriodic::__construct() this method doesn't start the watcher automatically.
+ *
+ * @param float $offset When repeating, this contains the offset value, otherwise this is the absolute point in
+ * time (the offset value passed to EvPeriodic::set(), although libev might modify this value for better
+ * numerical stability).
+ * @param float $interval The current interval value. Can be modified any time, but changes only take effect when
+ * the periodic timer fires or EvPeriodic::again() is being called.
+ * @param callable $reschedule_cb If set, tt must return the next time to trigger, based on the passed time value
+ * (that is, the lowest time value larger than or equal to the second argument). It will usually be called just
+ * before the callback will be triggered, but might be called at other times, too.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvPeriodic
+ */
+ final public static function createStopped(
+ $offset, $interval, callable $reschedule_cb = null, callable $callback, $data = null, $priority = 0
+ ) {}
+
+ /**
+ * Configures the watcher
+ * @param float $offset The same meaning as for {@see EvPeriodic::__construct}
+ * @param float $interval The same meaning as for {@see EvPeriodic::__construct}
+ * @return void
+ */
+ public function set($offset , $interval ){}
+}
+
+/**
+ * Class EvPrepare
+ *
+ * EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks,
+ * EvCheck afterwards.
+ *
+ * It is not allowed to call EvLoop::run() or similar methods or functions that enter the current event loop from either
+ * EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that
+ * one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking ->
+ * EvCheck, so having a watcher of each kind they will always be called in pairs bracketing the blocking call.
+ *
+ * The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be
+ * used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library
+ * and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.
+ *
+ * It is recommended to give EvCheck watchers highest (Ev::MAXPRI) priority, to ensure that they are being run before
+ * any other watchers after the poll (this doesn’t matter for EvPrepare watchers).
+ *
+ * Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed
+ * before other EvCheck watchers did their job.
+ */
+final class EvPrepare extends EvWatcher
+{
+ /**
+ * Constructs EvPrepare watcher object.
+ *
+ * Constructs EvPrepare watcher object and starts the watcher automatically. If you need a stopped watcher, consider
+ * using EvPrepare::createStopped().
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates a stopped instance of EvPrepare watcher.
+ *
+ * Creates a stopped instance of EvPrepare watcher. Unlike EvPrepare::__construct(), this method doesn't start the
+ * watcher automatically.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvPrepare
+ */
+ final public static function createStopped(callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvSignal
+ *
+ * EvSignal watchers will trigger an event when the process receives a specific signal one or more times. Even though
+ * signals are very asynchronous, libev will try its best to deliver signals synchronously, i.e. as part of the normal
+ * event processing, like any other event.
+ *
+ * There is no limit for the number of watchers for the same signal, but only within the same loop, i.e. one can watch
+ * for SIGINT in the default loop and for SIGIO in another loop, but it is not allowed to watch for SIGINT in both the
+ * default loop and another loop at the same time. At the moment, SIGCHLD is permanently tied to the default loop.
+ *
+ * If possible and supported, libev will install its handlers with SA_RESTART (or equivalent) behaviour enabled, so
+ * system calls should not be unduly interrupted. In case of a problem with system calls getting interrupted by signals,
+ * all the signals can be blocked in an EvCheck watcher and unblocked in a EvPrepare watcher.
+ */
+final class EvSignal extends EvWatcher
+{
+ /**
+ * @var int Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ */
+ #[Immutable]
+ public $signum;
+
+ /**
+ * Constructs EvSignal watcher object
+ *
+ * @param int $signum Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct($signum, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param int $signum Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ */
+ public function set($signum) {}
+
+ /**
+ * Creates a stopped instance of EvSignal watcher.
+ *
+ * Creates a stopped instance of EvSignal watcher. Unlike EvPrepare::__construct(), this method doesn't start the
+ * watcher automatically.
+ *
+ * @param int $signum Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvSignal
+ */
+ final public static function createStopped($signum, callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvStat
+ *
+ * EvStat monitors a file system path for attribute changes. It calls stat() on that path in regular intervals (or when
+ * the OS signals it changed) and sees if it changed compared to the last time, invoking the callback if it did.
+ *
+ * The path does not need to exist: changing from "path exists" to "path does not exist" is a status change like any
+ * other. The condition "path does not exist" is signified by the 'nlink' item being 0 (returned by EvStat::attr()
+ * method).
+ *
+ * The path must not end in a slash or contain special components such as '.' or '..'. The path should be absolute: if
+ * it is relative and the working directory changes, then the behaviour is undefined.
+ *
+ * Since there is no portable change notification interface available, the portable implementation simply calls stat()
+ * regularly on the path to see if it changed somehow. For this case a recommended polling interval can be specified. If
+ * one specifies a polling interval of 0.0 (highly recommended) then a suitable, unspecified default value will be used
+ * (which could be expected to be around 5 seconds, although this might change dynamically). libev will also impose a
+ * minimum interval which is currently around 0.1 , but that’s usually overkill.
+ *
+ * This watcher type is not meant for massive numbers of EvStat watchers, as even with OS-supported change
+ * notifications, this can be resource-intensive.
+ */
+final class EvStat extends EvWatcher
+{
+ /**
+ * @var float Hint on how quickly a change is expected to be detected and should normally be
+ * specified as 0.0 to let libev choose a suitable value.
+ */
+ #[Immutable]
+ public $interval;
+
+ /**
+ * @var string The path to wait for status changes on.
+ */
+ #[Immutable]
+ public $path;
+
+ /**
+ * Constructs EvStat watcher object.
+ *
+ * Constructs EvStat watcher object and starts the watcher automatically.
+ *
+ * @param string $path The path to wait for status changes on.
+ * @param float $interval Hint on how quickly a change is expected to be detected and should normally be specified
+ * as 0.0 to let libev choose a suitable value.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct($path, $interval, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * @return array The values most recently detect by Ev (without actual stat'ing). See stat(2) man page for details.
+ */
+ public function attr() {}
+
+ /**
+ * @return array Just like EvStat::attr() , but returns the previous set of values.
+ */
+ public function prev() {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param string $path The path to wait for status changes on.
+ * @param float $interval Hint on how quickly a change is expected to be detected and should normally be specified
+ * as 0.0 to let libev choose a suitable value.
+ */
+ public function set($path, $interval) {}
+
+ /**
+ * Initiates the stat call.
+ *
+ * Initiates the stat call(updates internal cache). It stats (using lstat) the path specified in the watcher and
+ * sets the internal cache to the values found.
+ *
+ * @return bool TRUE if path exists. Otherwise FALSE.
+ */
+ public function stat() {}
+
+ /**
+ * Create a stopped EvStat watcher object.
+ *
+ * Creates EvStat watcher object, but doesn't start it automatically (unlike EvStat::__construct()).
+ *
+ * @param string $path The path to wait for status changes on.
+ * @param float $interval Hint on how quickly a change is expected to be detected and should normally be specified
+ * as 0.0 to let libev choose a suitable value.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvStat
+ */
+ final public static function createStopped($path, $interval, callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvTimer
+ *
+ * EvTimer watchers are simple relative timers that generate an event after a given time, and optionally repeating in
+ * regular intervals after that.
+ *
+ * The timers are based on real time, that is, if one registers an event that times out after an hour and resets the
+ * system clock to January last year, it will still time out after( roughly) one hour. "Roughly" because detecting time
+ * jumps is hard, and some inaccuracies are unavoidable.
+ *
+ * The callback is guaranteed to be invoked only after its timeout has passed (not at, so on systems with very
+ * low-resolution clocks this might introduce a small delay). If multiple timers become ready during the same loop
+ * iteration then the ones with earlier time-out values are invoked before ones of the same priority with later time-out
+ * values (but this is no longer true when a callback calls EvLoop::run() recursively).
+ *
+ * The timer itself will do a best-effort at avoiding drift, that is, if a timer is configured to trigger every 10
+ * seconds, then it will normally trigger at exactly 10 second intervals. If, however, the script cannot keep up with
+ * the timer (because it takes longer than those 10 seconds to do) the timer will not fire more than once per event loop
+ * iteration.
+ */
+final class EvTimer extends EvWatcher
+{
+ /**
+ * @var float If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it is
+ * positive, then the timer will automatically be configured to trigger again every repeat seconds later, until
+ * stopped manually.
+ */
+ public $repeat;
+
+ /**
+ * @var float The remaining time until a timer fires. If the timer is active, then this time is relative to the
+ * current event loop time, otherwise it's the timeout value currently configured.
+ *
+ * That is, after instantiating an EvTimer with an after value of 5.0 and repeat value of 7.0, remaining
+ * returns 5.0. When the timer is started and one second passes, remaining will return 4.0 . When the timer
+ * expires and is restarted, it will return roughly 7.0 (likely slightly less as callback invocation takes some
+ * time too), and so on.
+ */
+ public $remaining;
+
+ /**
+ * Constructs an EvTimer watcher object.
+ *
+ * @param float $after Configures the timer to trigger after $after seconds.
+ * @param float $repeat If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it
+ * is positive, then the timer will automatically be configured to trigger again every repeat seconds later,
+ * until stopped manually.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct($after, $repeat, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Restarts the timer watcher.
+ *
+ * This will act as if the timer timed out and restart it again if it is repeating. The exact semantics are:
+ *
+ * - if the timer is pending, its pending status is cleared.
+ * - if the timer is started but non-repeating, stop it (as if it timed out).
+ * - if the timer is repeating, either start it if necessary (with the repeat value), or reset the running timer to
+ * the repeat value.
+ */
+ public function again() {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param float $after Configures the timer to trigger after $after seconds.
+ * @param float $repeat If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it
+ * is positive, then the timer will automatically be configured to trigger again every repeat seconds later,
+ * until stopped manually.
+ */
+ public function set($after, $repeat) {}
+
+ /**
+ * Creates a stopped EvTimer watcher object.
+ *
+ * @param float $after Configures the timer to trigger after $after seconds.
+ * @param float $repeat If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it
+ * is positive, then the timer will automatically be configured to trigger again every repeat seconds later,
+ * until stopped manually.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvTimer
+ */
+ final public static function createStopped($after, $repeat, callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvIdle
+ *
+ * EvIdle watchers trigger events when no other events of the same or higher priority are pending (EvPrepare, EvCheck
+ * and other EvIdle watchers do not count as receiving events).
+ *
+ * Thus, as long as the process is busy handling sockets or timeouts (or even signals) of the same or higher priority it
+ * will not be triggered. But when the process is idle (or only lower-priority watchers are pending), the EvIdle
+ * watchers are being called once per event loop iteration - until stopped, that is, or the process receives more events
+ * and becomes busy again with higher priority stuff.
+ *
+ * Apart from keeping the process non-blocking (which is a useful on its own sometimes), EvIdle watchers are a good
+ * place to do "pseudo-background processing", or delay processing stuff to after the event loop has handled all
+ * outstanding events.
+ *
+ * The most noticeable effect is that as long as any idle watchers are active, the process will not block when waiting
+ * for new events.
+ */
+final class EvIdle extends EvWatcher
+{
+ /**
+ * Constructs an EvIdle instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates a stopped EvIdle instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvIdle
+ */
+ final public static function createStopped(callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvFork
+ *
+ * Fork watchers are called when a fork() was detected (usually because whoever signalled libev about it by calling
+ * EvLoop::fork()). The invocation is done before the event loop blocks next and before EvCheck watchers are being
+ * called, and only in the child after the fork. Note that if someone calls EvLoop::fork() in the wrong process, the
+ * fork handlers will be invoked, too.
+ *
+ *
+ */
+final class EvFork extends EvWatcher
+{
+ /**
+ * Constructs an EvFork instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates a stopped EvFork instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvFork
+ */
+ final public static function createStopped(callable $callback, $data = null, $priority = 0) {}
+}
+
+/**
+ * Class EvLoop
+ *
+ * Represents an event loop that is always distinct from the default loop. Unlike the default loop, it cannot handle
+ * EvChild watchers.
+ *
+ * Having threads we have to create a loop per thread, and use the the default loop in the parent thread.
+ *
+ * The default event loop is initialized automatically by Ev. It is accessible via methods of the Ev class, or via
+ * EvLoop::defaultLoop() method.
+ */
+final class EvLoop
+{
+ /**
+ * @var int The Ev::BACKEND_* flag indicating the event backend in use.
+ */
+ #[Immutable]
+ #[ExpectedValues(flags: [Ev::BACKEND_ALL, Ev::BACKEND_DEVPOLL, Ev::BACKEND_EPOLL, Ev::BACKEND_KQUEUE, Ev::BACKEND_MASK, Ev::BACKEND_POLL, Ev::BACKEND_PORT, Ev::BACKEND_SELECT])]
+ public $backend;
+
+ /**
+ * @var bool TRUE if it is the default event loop.
+ */
+ #[Immutable]
+ public $is_default_loop;
+
+ /**
+ * @var mixed Custom data attached to the loop.
+ */
+ public $data;
+
+ /**
+ * @var int The current iteration count of the loop. See Ev::iteration().
+ */
+ public $iteration;
+
+ /**
+ * @var int The number of pending watchers. 0 indicates that there are no watchers pending.
+ */
+ public $pending;
+
+ /**
+ * @var float Higher io_interval allows libev to spend more time collecting EvIo events, so more events can be
+ * handled per iteration, at the cost of increasing latency. Timeouts (both EvPeriodic and EvTimer) will not be
+ * affected. Setting this to a non-zero value will introduce an additional sleep() call into most loop
+ * iterations. The sleep time ensures that libev will not poll for EvIo events more often than once per this
+ * interval, on average. Many programs can usually benefit by setting the io_interval to a value near 0.1,
+ * which is often enough for interactive servers (not for games). It usually doesn't make much sense to set it
+ * to a lower value than 0.01, as this approaches the timing granularity of most systems.
+ */
+ public $io_interval;
+
+ /**
+ * @var float Higher timeout_interval allows libev to spend more time collecting timeouts, at the expense of
+ * increased latency/jitter/inexactness (the watcher callback will be called later). EvIo watchers will not be
+ * affected. Setting this to a non-null value will not introduce any overhead in libev.
+ */
+ public $timeout_interval;
+
+ /**
+ * @var int The recursion depth.
+ */
+ public $depth;
+
+ /**
+ * @param int $flags
+ * @param mixed $data
+ * @param float $io_interval
+ * @param float $timeout_interval
+ */
+ public function __construct($flags = Ev::FLAG_AUTO, $data = null, $io_interval = 0.0, $timeout_interval = 0.0) {}
+
+ /**
+ * Returns an integer describing the backend used by libev.
+ *
+ * @return int An integer describing the backend used by libev. See Ev::backend().
+ */
+ public function backend() {}
+
+ /**
+ * Creates EvCheck object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvCheck
+ */
+ public final function check(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvChild object associated with the current event loop instance;
+ * @link https://www.php.net/manual/en/evloop.child.php
+ * @param int $pid
+ * @param bool $trace
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvChild
+ */
+ public final function child($pid, $trace, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvEmbed object associated with the current event loop instance.
+ *
+ * @param EvLoop $other
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvEmbed
+ */
+ public final function embed(EvLoop $other, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvFork object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvFork
+ */
+ public final function fork(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvIdle object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param null $data
+ * @param int $priority
+ * @return EvIdle
+ */
+ public final function idle(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Invoke all pending watchers while resetting their pending state.
+ */
+ public function invokePending() {}
+
+ /**
+ * Creates EvIo object associated with the current event loop instance.
+ *
+ * @param resource $fd
+ * @param int $events
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ final public function io($fd, $events, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Must be called after a fork.
+ *
+ * Must be called after a fork in the child, before entering or continuing the event loop. An alternative is to use
+ * Ev::FLAG_FORKCHECK which calls this function automatically, at some performance loss (refer to the libev
+ * documentation).
+ */
+ public function loopFork() {}
+
+ /**
+ * Returns the current "event loop time".
+ *
+ * Returns the current "event loop time", which is the time the event loop received events and started processing
+ * them. This timestamp does not change as long as callbacks are being processed, and this is also the base time
+ * used for relative timers. You can treat it as the timestamp of the event occurring (or more correctly, libev
+ * finding out about it).
+ *
+ * @return float Time of the event loop in (fractional) seconds.
+ */
+ public function now() {}
+
+ /**
+ * Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.
+ *
+ * Establishes the current time by querying the kernel, updating the time returned by Ev::now() in the progress.
+ * This is a costly operation and is usually done automatically within Ev::run().
+ *
+ * This method is rarely useful, but when some event callback runs for a very long time without entering the event
+ * loop, updating libev's consideration of the current time is a good idea.
+ */
+ public function nowUpdate() {}
+
+ /**
+ * Creates EvPeriodic object associated with the current event loop instance.
+ *
+ * @param float $offset
+ * @param float $interval
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public final function periodic($offset, $interval, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvPrepare object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public final function prepare(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Resume previously suspended default event loop.
+ *
+ * EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.
+ */
+ public function resume() {}
+
+ /**
+ * Begin checking for events and calling callbacks for the loop.
+ *
+ * Begin checking for events and calling callbacks for the current event loop. Returns when a callback calls
+ * Ev::stop() method, or the flags are nonzero (in which case the return value is true) or when there are no active
+ * watchers which reference the loop (EvWatcher::keepalive() is TRUE), in which case the return value will be FALSE.
+ * The return value can generally be interpreted as if TRUE, there is more work left to do.
+ *
+ * @param int $flags One of the Ev::RUN_* flags.
+ */
+ public function run($flags = Ev::FLAG_AUTO) {}
+
+ /**
+ * Creates EvSignal object associated with the current event loop instance.
+ *
+ * @param int $signal
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvSignal
+ */
+ public final function signal($signal, callable $callback, $data = null, $priority = 0)
+ {
+ }
+
+ /**
+ * Creates EvStats object associated with the current event loop instance.
+ *
+ * @param string $path
+ * @param float $interval
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvStat
+ */
+ public final function stat($path, $interval, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Stops the event loop.
+ *
+ * @param int $how One of the Ev::BREAK_* flags.
+ */
+ public function stop($how = Ev::BREAK_ALL) {}
+
+ /**
+ * Suspend the loop.
+ *
+ * EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.
+ */
+ public function suspend() {}
+
+ /**
+ * Creates EvTimer object associated with the current event loop instance.
+ *
+ * @param float $after
+ * @param float $repeat
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvTimer
+ */
+ public final function timer($after, $repeat, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Performs internal consistency checks (for debugging).
+ *
+ * Performs internal consistency checks (for debugging libev) and abort the program if any data structures were
+ * found to be corrupted.
+ */
+ public function verify() {}
+
+ /**
+ * Returns or creates the default event loop.
+ *
+ * If the default event loop is not created, EvLoop::defaultLoop() creates it with the specified parameters.
+ * Otherwise, it just returns the object representing previously created instance ignoring all the parameters.
+ *
+ * @param int $flags
+ * @param mixed $data
+ * @param float $io_interval
+ * @param float $timeout_interval
+ */
+ public static function defaultLoop(
+ $flags = Ev::FLAG_AUTO, $data = null, $io_interval = 0.0, $timeout_interval = 0.0
+ ) {}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/FFI/FFI.php b/vendor/jetbrains/phpstorm-stubs/FFI/FFI.php
new file mode 100644
index 0000000000..3e9c2888ce
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/FFI/FFI.php
@@ -0,0 +1,278 @@
+Instead of embedding of a long C definition into PHP string,
+ * and creating FFI through FFI::cdef(), it's possible to separate
+ * it into a C header file. Note, that C preprocessor directives
+ * (e.g. #define or #ifdef) are not supported. And only a couple of
+ * special macros may be used especially for FFI.
+ *
+ *
+ * #define FFI_LIB "libc.so.6"
+ *
+ * int printf(const char *format, ...);
+ *
+ *
+ * Here, FFI_LIB specifies, that the given library should be loaded.
+ *
+ *
+ * $ffi = FFI::load(__DIR__ . "/printf.h");
+ * $ffi->printf("Hello world!\n");
+ *
+ *
+ * @param string $filename
+ * @return FFI
+ */
+ public static function load(string $filename): FFI {}
+
+ /**
+ * FFI definition parsing and shared library loading may take
+ * significant time. It's not useful to do it on each HTTP request in
+ * WEB environment. However, it's possible to pre-load FFI definitions
+ * and libraries at php startup, and instantiate FFI objects when
+ * necessary. Header files may be extended with FFI_SCOPE define
+ * (default pre-loading scope is "C"). This name is going to be
+ * used as FFI::scope() argument. It's possible to pre-load few
+ * files into a single scope.
+ *
+ *
+ * #define FFI_LIB "libc.so.6"
+ * #define FFI_SCOPE "libc"
+ *
+ * int printf(const char *format, ...);
+ *
+ *
+ * These files are loaded through the same FFI::load() load function,
+ * executed from file loaded by opcache.preload php.ini directive.
+ *
+ *
+ * ffi.preload=/etc/php/ffi/printf.h
+ *
+ *
+ * Finally, FFI::scope() instantiate an FFI object, that implements
+ * all C definition from the given scope.
+ *
+ *
+ * $ffi = FFI::scope("libc");
+ * $ffi->printf("Hello world!\n");
+ *
+ *
+ * @param string $name
+ * @return FFI
+ */
+ public static function scope(string $name): FFI {}
+
+ /**
+ * Method that creates an arbitrary C structure.
+ *
+ * @param string|CData|mixed $type
+ * @param bool $owned
+ * @param bool $persistent
+ * @return CData
+ * @throws ParserException
+ */
+ public static function new($type, bool $owned = true, bool $persistent = false): CData {}
+
+ /**
+ * Manually removes previously created "not-owned" data structure.
+ *
+ * @param CData $pointer
+ * @return void
+ */
+ public static function free(CData $pointer): void {}
+
+ /**
+ * Casts given $pointer to another C type, specified by C declaration
+ * string or FFI\CType object.
+ *
+ * This function may be called statically and use only predefined
+ * types, or as a method of previously created FFI object. In last
+ * case the first argument may reuse all type and tag names
+ * defined in FFI::cdef().
+ *
+ * @param mixed $type
+ * @param CData $pointer
+ * @return CData
+ */
+ public static function cast($type, CData $pointer): CData {}
+
+ /**
+ * This function creates and returns a FFI\CType object, representng
+ * type of the given C type declaration string.
+ *
+ * FFI::type() may be called statically and use only predefined types,
+ * or as a method of previously created FFI object. In last case the
+ * first argument may reuse all type and tag names defined in
+ * FFI::cdef().
+ *
+ * @param string|CType $type
+ * @return CType
+ */
+ public static function type($type): CType {}
+
+ /**
+ * This function returns a FFI\CType object, representing the type of
+ * the given FFI\CData object.
+ *
+ * @param CData $pointer
+ * @return CType
+ */
+ public static function typeof(CData $pointer): CType {}
+
+ /**
+ * Constructs a new C array type with elements of $type and
+ * dimensions specified by $dimensions.
+ *
+ * @param CType $type
+ * @param array $dimensions
+ * @return CType
+ */
+ public static function arrayType(CType $type, array $dimensions): CType {}
+
+ /**
+ * Returns C pointer to the given C data structure. The pointer is
+ * not "owned" and won't be free. Anyway, this is a potentially
+ * unsafe operation, because the life-time of the returned pointer
+ * may be longer than life-time of the source object, and this may
+ * cause dangling pointer dereference (like in regular C).
+ *
+ * @param CData $pointer
+ * @return CData
+ */
+ public static function addr(CData $pointer): CData {}
+
+ /**
+ * Returns size of C data type of the given FFI\CData or FFI\CType.
+ *
+ * @param CData|CType &$pointer
+ * @return int
+ */
+ public static function sizeof(&$pointer): int {}
+
+ /**
+ * Returns size of C data type of the given FFI\CData or FFI\CType.
+ *
+ * @param CData|CType &$pointer
+ * @return int
+ */
+ public static function alignof(&$pointer): int {}
+
+ /**
+ * Copies $size bytes from memory area $source to memory area $target.
+ * $source may be any native data structure (FFI\CData) or PHP string.
+ *
+ * @param CData $target
+ * @param mixed &$source
+ * @param int $size
+ */
+ public static function memcpy(CData $target, &$source, int $size): void {}
+
+ /**
+ * Compares $size bytes from memory area $a and $b.
+ *
+ * @param CData|string &$a
+ * @param CData|string &$b
+ * @param int $size
+ * @return int
+ */
+ public static function memcmp(&$a, &$b, int $size): int {}
+
+ /**
+ * Fills the $size bytes of the memory area pointed to by $target with
+ * the constant byte $byte.
+ *
+ * @param CData $target
+ * @param int $byte
+ * @param int $size
+ */
+ public static function memset(CData $target, int $byte, int $size): void {}
+
+ /**
+ * Creates a PHP string from $size bytes of memory area pointed by
+ * $source. If size is omitted, $source must be zero terminated
+ * array of C chars.
+ *
+ * @param CData $source
+ * @param int $size [optional]
+ * @return string
+ */
+ public static function string(CData $source, int $size = 0): string {}
+ }
+}
+
+namespace FFI {
+ /**
+ * Class Exception
+ *
+ * @since 7.4
+ */
+ class Exception extends \Error
+ {
+ }
+
+ /**
+ * Class ParserException
+ *
+ * @since 7.4
+ */
+ class ParserException extends Exception
+ {
+ }
+
+ /**
+ * Class CData
+ *
+ * Proxy object that provides access to compiled structures.
+ *
+ * @since 7.4
+ */
+ class CData
+ {
+ }
+
+ /**
+ * Class CType
+ *
+ * Class containing C type information.
+ *
+ * @since 7.4
+ */
+ class CType
+ {
+ }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/LuaSandbox/LuaSandbox.php b/vendor/jetbrains/phpstorm-stubs/LuaSandbox/LuaSandbox.php
new file mode 100644
index 0000000000..a4869b5fd3
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/LuaSandbox/LuaSandbox.php
@@ -0,0 +1,457 @@
+LuaSandbox is an extension for PHP 5, PHP 7, and HHVM to allow safely running
+ * untrusted Lua 5.1 code from within PHP.
+ *
+ * @link https://www.php.net/manual/en/book.luasandbox.php
+ * @package luasandbox
+ * @version 3.0.3
+ */
+
+/**
+ * The LuaSandbox class creates a Lua environment and allows for execution of Lua code.
+ *
+ * @link https://www.php.net/manual/en/class.luasandbox.php
+ * @since luasandbox >= 1.0.0
+ */
+class LuaSandbox {
+ /**
+ * Used with LuaSandbox::getProfilerFunctionReport()
+ * to return timings in samples.
+ */
+ const SAMPLES = 0;
+
+ /**
+ * Used with LuaSandbox::getProfilerFunctionReport()
+ * to return timings in seconds.
+ */
+ const SECONDS = 1;
+
+ /**
+ * Used with LuaSandbox::getProfilerFunctionReport()
+ * to return timings in percentages of the total.
+ */
+ const PERCENT = 2;
+
+ /**
+ * Call a function in a Lua global variable.
+ *
+ *
If the name contains "." characters, the function is located via recursive table accesses,
+ * as if the name were a Lua expression.
+ *
+ *
If the variable does not exist, or is not a function,
+ * false will be returned and a warning issued.
+ *
+ *
For more information about calling Lua functions and the return values,
+ * see LuaSandboxFunction::call().
The profiler periodically samples the Lua environment
+ * to record the running function. Testing indicates that
+ * at least on Linux, setting a period less than 1ms will
+ * lead to a high overrun count but no performance problems.
Returns a boolean indicating whether the profiler is enabled.
+ * @since luasandbox >= 1.1.0
+ * @see LuaSandbox::disableProfiler()
+ * @see LuaSandbox::getProfilerFunctionReport()
+ */
+ public function enableProfiler ($period = 0.02) {}
+
+ /**
+ * Fetch the current CPU time usage of the Lua environment.
+ *
+ *
This includes time spent in PHP callbacks.
+ *
+ *
Note: On Windows, this function always returns zero.
+ * On operating systems that do not support CLOCK_THREAD_CPUTIME_ID,
+ * such as FreeBSD and Mac OS X, this function will return the
+ * elapsed wall-clock time, not CPU time.
For a profiling instance previously started by LuaSandbox::enableProfiler(),
+ * get a report of the cost of each function.
+ *
+ *
The measurement unit used for the cost is determined by the $units parameter:
+ *
LuaSandbox::SAMPLES Measure in number of samples.
+ *
LuaSandbox::SECONDS Measure in seconds of CPU time.
+ *
LuaSandbox::PERCENT Measure percentage of CPU time.
+ *
+ *
Note: On Windows, this function always returns an empty array.
+ * On operating systems that do not support CLOCK_THREAD_CPUTIME_ID,
+ * such as FreeBSD and Mac OS X, this function will report the
+ * elapsed wall-clock time, not CPU time.
+ *
+ * @link https://www.php.net/manual/en/luasandbox.getprofilerfunctionreport.php
+ * @param int $units Measurement unit constant.
+ * @return array
Returns profiler measurements, sorted in descending order, as an associative array.
+ * Keys are the Lua function names (with source file and line defined in angle brackets), values are the
+ * measurements as integer or float.
+ * @since luasandbox >= 1.1.0
+ * @see LuaSandbox::SAMPLES
+ * @see LuaSandbox::SECONDS
+ * @see LuaSandbox::PERCENT
+ */
+ public function getProfilerFunctionReport ($units = LuaSandbox::SECONDS) {}
+
+ /**
+ * Return the versions of LuaSandbox and Lua.
+ *
+ * @link https://www.php.net/manual/en/luasandbox.getversioninfo.php
+ * @return array
Returns an array with two keys:
+ *
LuaSandbox (string), the version of the LuaSandbox extension.
+ *
Lua (string), the library name and version as defined by the LUA_RELEASE macro, for example, "Lua 5.1.5".
+ * @since luasandbox >= 1.6.0
+ */
+ public static function getVersionInfo () {}
+
+ /**
+ * Load a precompiled binary chunk into the Lua environment.
+ *
+ *
Loads data generated by LuaSandboxFunction::dump().
Name for the loaded chunk, for use in error traces.
+ * @return LuaSandboxFunction
Returns a LuaSandboxFunction which, when executed,
+ * will execute the passed $code.
+ * @since luasandbox >= 1.0.0
+ * @see LuaSandbox::registerLibrary()
+ * @see LuaSandbox::wrapPhpFunction()
+ */
+ public function loadString ($code, $chunkName = '') {}
+
+ /**
+ * Pause the CPU usage timer.
+ *
+ *
This only has effect when called from within a callback from Lua.
+ * When execution returns to Lua, the timer will be automatically unpaused.
+ * If a new call into Lua is made, the timer will be unpaused
+ * for the duration of that call.
+ *
+ *
If a PHP callback calls into Lua again with timer not paused,
+ * and then that Lua function calls into PHP again,
+ * the second PHP call will not be able to pause the timer.
+ * The logic is that even though the second PHP call would
+ * avoid counting the CPU usage against the limit,
+ * the first call still counts it.
The name of the library.
+ * In the Lua state, the global variable of this name will be set to the table of functions.
+ * If the table already exists, the new functions will be added to it.
+ * @param array $functions
Returns an array, where each key is a function name,
+ * and each value is a corresponding PHP callable.
+ * @since luasandbox >= 1.0.0
+ * @see LuaSandbox::loadString()
+ * @see LuaSandbox::wrapPhpFunction()
+ */
+ public function registerLibrary ($libname, $functions) {}
+
+ /**
+ * Set the CPU time limit for the Lua environment.
+ *
+ *
If the total user and system time used by the environment after the call
+ * to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.
+ *
+ *
Time used in PHP callbacks is included in the limit.
+ *
+ *
Setting the time limit from a callback while Lua is running causes the timer to be reset,
+ * or started if it was not already running.
+ *
+ *
Note: On Windows, the CPU limit will be ignored. On operating systems
+ * that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and
+ * Mac OS X, wall-clock time rather than CPU time will be limited.
+ * @return LuaSandboxFunction
+ * @since luasandbox >= 1.2.0
+ * @see LuaSandbox::loadString()
+ * @see LuaSandbox::registerLibrary()
+ */
+ public function wrapPhpFunction ($function) {}
+}
+
+/**
+ * Represents a Lua function, allowing it to be called from PHP.
+ *
+ *
A LuaSandboxFunction may be obtained as a return value from Lua,
+ * as a parameter passed to a callback from Lua,
+ * or by using LuaSandbox::wrapPhpFunction(), LuaSandbox::loadString(),
+ * or LuaSandbox::loadBinary().
Errors considered to be the fault of the PHP code will result in the
+ * function returning false and E_WARNING being raised, for example,
+ * a resource type being used as an argument. Lua errors will result
+ * in a LuaSandboxRuntimeError exception being thrown.
+ *
+ *
PHP and Lua types are converted as follows:
+ *
+ *
PHP NULL is Lua nil, and vice versa.
+ *
PHP integers and floats are converted to Lua numbers. Infinity and NAN are supported.
+ *
Lua numbers without a fractional part between approximately -2**53 and 2**53 are
+ * converted to PHP integers, with others being converted to PHP floats.
+ *
PHP booleans are Lua booleans, and vice versa.
+ *
PHP strings are Lua strings, and vice versa.
+ *
Lua functions are PHP LuaSandboxFunction objects, and vice versa.
+ * General PHP callables are not supported.
+ *
PHP arrays are converted to Lua tables, and vice versa.
+ *
+ *
Note that Lua typically indexes arrays from 1, while PHP indexes arrays from 0.
+ * No adjustment is made for these differing conventions.
+ *
Self-referential arrays are not supported in either direction.
+ *
PHP references are dereferenced.
+ *
Lua __pairs and __ipairs are processed. __index is ignored.
+ *
When converting from PHP to Lua, integer keys between -2**53 and 2**53 are represented as Lua numbers.
+ * All other keys are represented as Lua strings.
+ *
When converting from Lua to PHP, keys other than strings and numbers will result in an error,
+ * as will collisions when converting numbers to strings or vice versa
+ * (since PHP considers things like $a[0] and $a["0"] as being equivalent).
+ *
+ *
All other types are unsupported and will raise an error/exception,
+ * including general PHP objects and Lua userdata and thread types.
+ *
+ *
+ *
Lua functions inherently return a list of results. So on success,
+ * this method returns an array containing all of the values returned by Lua,
+ * with integer keys starting from zero.
+ * Lua may return no results, in which case an empty array is returned.
These may not be caught inside Lua using pcall() or xpcall().
+ *
+ * @since luasandbox >= 1.0.0
+ */
+class LuaSandboxFatalError extends LuaSandboxError {}
+
+/**
+ * Exception thrown when Lua encounters an error inside an error handler.
+ *
+ * @since luasandbox >= 1.0.0
+ */
+class LuaSandboxErrorError extends LuaSandboxFatalError {}
+
+/**
+ * Exception thrown when Lua cannot allocate memory.
+ *
+ * @since luasandbox >= 1.0.0
+ * @see LuaSandbox::setMemoryLimit()
+ */
+class LuaSandboxMemoryError extends LuaSandboxFatalError {}
+
+/**
+ * Exception thrown when Lua code cannot be parsed.
+ *
+ * @since luasandbox >= 1.0.0
+ */
+class LuaSandboxSyntaxError extends LuaSandboxFatalError {}
+
+/**
+ * Exception thrown when the configured CPU time limit is exceeded.
+ *
+ * @since luasandbox >= 1.0.0
+ * @see LuaSandbox::setCPULimit()
+ */
+class LuaSandboxTimeoutError extends LuaSandboxFatalError {}
diff --git a/vendor/jetbrains/phpstorm-stubs/PDO/PDO.php b/vendor/jetbrains/phpstorm-stubs/PDO/PDO.php
new file mode 100644
index 0000000000..13ed3ec423
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/PDO/PDO.php
@@ -0,0 +1,1656 @@
+PDOException from your own code.
+ * @see https://php.net/manual/en/language.exceptions.php Exceptions in PHP
+ * @link https://php.net/manual/en/class.pdoexception.php
+ */
+class PDOException extends RuntimeException {
+ public $errorInfo;
+}
+
+/**
+ * Represents a connection between PHP and a database server.
+ * @link https://php.net/manual/en/class.pdo.php
+ */
+class PDO {
+
+ /**
+ * Represents a boolean data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-bool
+ */
+ const PARAM_BOOL = 5;
+
+ /**
+ * Represents the SQL NULL data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-null
+ */
+ const PARAM_NULL = 0;
+
+ /**
+ * Represents the SQL INTEGER data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-int
+ */
+ const PARAM_INT = 1;
+
+ /**
+ * Represents the SQL CHAR, VARCHAR, or other string data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str
+ */
+ const PARAM_STR = 2;
+
+ /**
+ * Flag to denote a string uses the national character set.
+ * @since 7.2
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str-natl
+ */
+ const PARAM_STR_NATL = 1073741824;
+
+ /**
+ * Flag to denote a string uses the regular character set.
+ * @since 7.2
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str-char
+ */
+ const PARAM_STR_CHAR = 536870912;
+
+ /**
+ * Sets the default string parameter type, this can be one of PDO::PARAM_STR_NATL and PDO::PARAM_STR_CHAR.
+ * @since 7.2
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-default-str-param
+ */
+ const ATTR_DEFAULT_STR_PARAM = 21;
+
+ /**
+ * Specifies that a function created with PDO::sqliteCreateFunction() is deterministic, i.e. it always returns the same result given the same inputs within a single SQL statement.
+ * @since 7.1.4
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.sqlite-deterministic
+ */
+ const SQLITE_DETERMINISTIC = 2048;
+
+ /**
+ * @since 7.3
+ */
+ const SQLITE_OPEN_READONLY = 1;
+
+ /**
+ * @since 7.3
+ */
+ const SQLITE_OPEN_READWRITE = 2;
+
+ /**
+ * @since 7.3
+ */
+ const SQLITE_OPEN_CREATE = 4;
+
+ /**
+ * @since 7.3
+ */
+ const SQLITE_ATTR_OPEN_FLAGS = 1000;
+
+ /**
+ * Represents the SQL large object data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-lob
+ */
+ const PARAM_LOB = 3;
+
+ /**
+ * Represents a recordset type. Not currently supported by any drivers.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-stmt
+ */
+ const PARAM_STMT = 4;
+
+ /**
+ * Specifies that the parameter is an INOUT parameter for a stored
+ * procedure. You must bitwise-OR this value with an explicit
+ * PDO::PARAM_* data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-input-output
+ */
+ const PARAM_INPUT_OUTPUT = 2147483648;
+
+ /**
+ * Allocation event
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-alloc
+ */
+ const PARAM_EVT_ALLOC = 0;
+
+ /**
+ * Deallocation event
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-free
+ */
+ const PARAM_EVT_FREE = 1;
+
+ /**
+ * Event triggered prior to execution of a prepared statement.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-exec-pre
+ */
+ const PARAM_EVT_EXEC_PRE = 2;
+
+ /**
+ * Event triggered subsequent to execution of a prepared statement.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-exec-post
+ */
+ const PARAM_EVT_EXEC_POST = 3;
+
+ /**
+ * Event triggered prior to fetching a result from a resultset.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-fetch-pre
+ */
+ const PARAM_EVT_FETCH_PRE = 4;
+
+ /**
+ * Event triggered subsequent to fetching a result from a resultset.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-fetch-post
+ */
+ const PARAM_EVT_FETCH_POST = 5;
+
+ /**
+ * Event triggered during bound parameter registration
+ * allowing the driver to normalize the parameter name.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-normalize
+ */
+ const PARAM_EVT_NORMALIZE = 6;
+
+ /**
+ * Specifies that the fetch method shall return each row as an object with
+ * variable names that correspond to the column names returned in the result
+ * set. PDO::FETCH_LAZY creates the object variable names as they are accessed.
+ * Not valid inside PDOStatement::fetchAll.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-lazy
+ */
+ const FETCH_LAZY = 1;
+
+ /**
+ * Specifies that the fetch method shall return each row as an array indexed
+ * by column name as returned in the corresponding result set. If the result
+ * set contains multiple columns with the same name,
+ * PDO::FETCH_ASSOC returns
+ * only a single value per column name.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-assoc
+ */
+ const FETCH_ASSOC = 2;
+
+ /**
+ * Specifies that the fetch method shall return each row as an array indexed
+ * by column number as returned in the corresponding result set, starting at
+ * column 0.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-num
+ */
+ const FETCH_NUM = 3;
+
+ /**
+ * Specifies that the fetch method shall return each row as an array indexed
+ * by both column name and number as returned in the corresponding result set,
+ * starting at column 0.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-both
+ */
+ const FETCH_BOTH = 4;
+
+ /**
+ * Specifies that the fetch method shall return each row as an object with
+ * property names that correspond to the column names returned in the result
+ * set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-obj
+ */
+ const FETCH_OBJ = 5;
+
+ /**
+ * Specifies that the fetch method shall return TRUE and assign the values of
+ * the columns in the result set to the PHP variables to which they were
+ * bound with the PDOStatement::bindParam or
+ * PDOStatement::bindColumn methods.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-bound
+ */
+ const FETCH_BOUND = 6;
+
+ /**
+ * Specifies that the fetch method shall return only a single requested
+ * column from the next row in the result set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-column
+ */
+ const FETCH_COLUMN = 7;
+
+ /**
+ * Specifies that the fetch method shall return a new instance of the
+ * requested class, mapping the columns to named properties in the class.
+ * The magic
+ * __set
+ * method is called if the property doesn't exist in the requested class
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-class
+ */
+ const FETCH_CLASS = 8;
+
+ /**
+ * Specifies that the fetch method shall update an existing instance of the
+ * requested class, mapping the columns to named properties in the class.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-into
+ */
+ const FETCH_INTO = 9;
+
+ /**
+ * Allows completely customize the way data is treated on the fly (only
+ * valid inside PDOStatement::fetchAll).
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-func
+ */
+ const FETCH_FUNC = 10;
+
+ /**
+ * Group return by values. Usually combined with
+ * PDO::FETCH_COLUMN or
+ * PDO::FETCH_KEY_PAIR.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-group
+ */
+ const FETCH_GROUP = 65536;
+
+ /**
+ * Fetch only the unique values.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-unique
+ */
+ const FETCH_UNIQUE = 196608;
+
+ /**
+ * Fetch a two-column result into an array where the first column is a key and the second column
+ * is the value.
+ * @since 5.2.3
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-key-pair
+ */
+ const FETCH_KEY_PAIR = 12;
+
+ /**
+ * Determine the class name from the value of first column.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-classtype
+ */
+ const FETCH_CLASSTYPE = 262144;
+
+ /**
+ * As PDO::FETCH_INTO but object is provided as a serialized string.
+ * Available since PHP 5.1.0. Since PHP 5.3.0 the class constructor is never called if this
+ * flag is set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-serialize
+ */
+ const FETCH_SERIALIZE = 524288;
+
+ /**
+ * Call the constructor before setting properties.
+ * @since 5.2.0
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-props-late
+ */
+ const FETCH_PROPS_LATE = 1048576;
+
+ /**
+ * Specifies that the fetch method shall return each row as an array indexed
+ * by column name as returned in the corresponding result set. If the result
+ * set contains multiple columns with the same name,
+ * PDO::FETCH_NAMED returns
+ * an array of values per column name.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-named
+ */
+ const FETCH_NAMED = 11;
+
+ /**
+ * If this value is FALSE, PDO attempts to disable autocommit so that the
+ * connection begins a transaction.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-autocommit
+ */
+ const ATTR_AUTOCOMMIT = 0;
+
+ /**
+ * Setting the prefetch size allows you to balance speed against memory
+ * usage for your application. Not all database/driver combinations support
+ * setting of the prefetch size. A larger prefetch size results in
+ * increased performance at the cost of higher memory usage.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-prefetch
+ */
+ const ATTR_PREFETCH = 1;
+
+ /**
+ * Sets the timeout value in seconds for communications with the database.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-timeout
+ */
+ const ATTR_TIMEOUT = 2;
+
+ /**
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and error handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-errmode
+ */
+ const ATTR_ERRMODE = 3;
+
+ /**
+ * This is a read only attribute; it will return information about the
+ * version of the database server to which PDO is connected.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-
+ */
+ const ATTR_SERVER_VERSION = 4;
+
+ /**
+ * This is a read only attribute; it will return information about the
+ * version of the client libraries that the PDO driver is using.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-client-version
+ */
+ const ATTR_CLIENT_VERSION = 5;
+
+ /**
+ * This is a read only attribute; it will return some meta information about the
+ * database server to which PDO is connected.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-server-info
+ */
+ const ATTR_SERVER_INFO = 6;
+ const ATTR_CONNECTION_STATUS = 7;
+
+ /**
+ * Force column names to a specific case specified by the PDO::CASE_*
+ * constants.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-case
+ */
+ const ATTR_CASE = 8;
+
+ /**
+ * Get or set the name to use for a cursor. Most useful when using
+ * scrollable cursors and positioned updates.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-cursor-name
+ */
+ const ATTR_CURSOR_NAME = 9;
+
+ /**
+ * Selects the cursor type. PDO currently supports either
+ * PDO::CURSOR_FWDONLY and
+ * PDO::CURSOR_SCROLL. Stick with
+ * PDO::CURSOR_FWDONLY unless you know that you need a
+ * scrollable cursor.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-cursor
+ */
+ const ATTR_CURSOR = 10;
+
+ /**
+ * Convert empty strings to SQL NULL values on data fetches.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-oracle-nulls
+ */
+ const ATTR_ORACLE_NULLS = 11;
+
+ /**
+ * Request a persistent connection, rather than creating a new connection.
+ * @see https://php.net/manual/en/pdo.connections.php Connections and Connection Management
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-persistent
+ */
+ const ATTR_PERSISTENT = 12;
+
+ /**
+ * Sets the class name of which statements are returned as.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-statement-class
+ */
+ const ATTR_STATEMENT_CLASS = 13;
+
+ /**
+ * Prepend the containing table name to each column name returned in the
+ * result set. The table name and column name are separated by a decimal (.)
+ * character. Support of this attribute is at the driver level; it may not
+ * be supported by your driver.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-fetch-table-names
+ */
+ const ATTR_FETCH_TABLE_NAMES = 14;
+
+ /**
+ * Prepend the containing catalog name to each column name returned in the
+ * result set. The catalog name and column name are separated by a decimal
+ * (.) character. Support of this attribute is at the driver level; it may
+ * not be supported by your driver.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-fetch-catalog-names
+ */
+ const ATTR_FETCH_CATALOG_NAMES = 15;
+
+ /**
+ * Returns the name of the driver.
+ *
+ * using PDO::ATTR_DRIVER_NAME
+ *
+ * if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
+ * echo "Running on mysql; doing something mysql specific here\n";
+ * }
+ *
+ *
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-driver-name
+ */
+ const ATTR_DRIVER_NAME = 16;
+
+ /**
+ * Forces all values fetched to be treated as strings.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-stringify-fetches
+ */
+ const ATTR_STRINGIFY_FETCHES = 17;
+
+ /**
+ * Sets the maximum column name length.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-max-column-len
+ */
+ const ATTR_MAX_COLUMN_LEN = 18;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-emulate-prepares
+ * @since 5.1.3
+ */
+ const ATTR_EMULATE_PREPARES = 20;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-default-fetch-mode
+ * @since 5.2.0
+ */
+ const ATTR_DEFAULT_FETCH_MODE = 19;
+
+ /**
+ * Do not raise an error or exception if an error occurs. The developer is
+ * expected to explicitly check for errors. This is the default mode.
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-silent
+ */
+ const ERRMODE_SILENT = 0;
+
+ /**
+ * Issue a PHP E_WARNING message if an error occurs.
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-warning
+ */
+ const ERRMODE_WARNING = 1;
+
+ /**
+ * Throw a PDOException if an error occurs.
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-exception
+ */
+ const ERRMODE_EXCEPTION = 2;
+
+ /**
+ * Leave column names as returned by the database driver.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-natural
+ */
+ const CASE_NATURAL = 0;
+
+ /**
+ * Force column names to lower case.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-lower
+ */
+ const CASE_LOWER = 2;
+
+ /**
+ * Force column names to upper case.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-upper
+ */
+ const CASE_UPPER = 1;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-natural
+ */
+ const NULL_NATURAL = 0;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-empty-string
+ */
+ const NULL_EMPTY_STRING = 1;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-to-string
+ */
+ const NULL_TO_STRING = 2;
+
+ /**
+ * Corresponds to SQLSTATE '00000', meaning that the SQL statement was
+ * successfully issued with no errors or warnings. This constant is for
+ * your convenience when checking PDO::errorCode or
+ * PDOStatement::errorCode to determine if an error
+ * occurred. You will usually know if this is the case by examining the
+ * return code from the method that raised the error condition anyway.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.err-none
+ */
+ const ERR_NONE = 00000;
+
+ /**
+ * Fetch the next row in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-next
+ */
+ const FETCH_ORI_NEXT = 0;
+
+ /**
+ * Fetch the previous row in the result set. Valid only for scrollable
+ * cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-prior
+ */
+ const FETCH_ORI_PRIOR = 1;
+
+ /**
+ * Fetch the first row in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-first
+ */
+ const FETCH_ORI_FIRST = 2;
+
+ /**
+ * Fetch the last row in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-last
+ */
+ const FETCH_ORI_LAST = 3;
+
+ /**
+ * Fetch the requested row by row number from the result set. Valid only
+ * for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-abs
+ */
+ const FETCH_ORI_ABS = 4;
+
+ /**
+ * Fetch the requested row by relative position from the current position
+ * of the cursor in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-rel
+ */
+ const FETCH_ORI_REL = 5;
+
+ /**
+ * Create a PDOStatement object with a forward-only cursor. This is the
+ * default cursor choice, as it is the fastest and most common data access
+ * pattern in PHP.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.cursor-fwdonly
+ */
+ const CURSOR_FWDONLY = 0;
+
+ /**
+ * Create a PDOStatement object with a scrollable cursor. Pass the
+ * PDO::FETCH_ORI_* constants to control the rows fetched from the result set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.cursor-scroll
+ */
+ const CURSOR_SCROLL = 1;
+
+ /**
+ * If this attribute is set to TRUE on a
+ * PDOStatement, the MySQL driver will use the
+ * buffered versions of the MySQL API. If you're writing portable code, you
+ * should use PDOStatement::fetchAll instead.
+ *
+ * Forcing queries to be buffered in mysql
+ *
+ * if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
+ * $stmt = $db->prepare('select * from foo',
+ * array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
+ * } else {
+ * die("my application only works with mysql; I should use \$stmt->fetchAll() instead");
+ * }
+ *
+ *
+ * Read options from the named option file instead of from
+ * my.cnf. This option is not available if
+ * mysqlnd is used, because mysqlnd does not read the mysql
+ * configuration files.
+ *
+ * Read options from the named group from my.cnf or the
+ * file specified with MYSQL_READ_DEFAULT_FILE. This option
+ * is not available if mysqlnd is used, because mysqlnd does not read the mysql
+ * configuration files.
+ *
+ * A list of one or more permissible ciphers to use for SSL encryption,
+ * in a format understood by OpenSSL.
+ * For example: DHE-RSA-AES256-SHA:AES128-SHA
+ *
+ * This must be a valid SQL statement for the target database server.
+ *
+ * @param array $options [optional]
+ * This array holds one or more key=>value pairs to set
+ * attribute values for the PDOStatement object that this method
+ * returns. You would most commonly use this to set the
+ * PDO::ATTR_CURSOR value to
+ * PDO::CURSOR_SCROLL to request a scrollable cursor.
+ * Some drivers have driver specific options that may be set at
+ * prepare-time.
+ *
+ * @return PDOStatement|false If the database server successfully prepares the statement,
+ * PDO::prepare returns a
+ * PDOStatement object.
+ * If the database server cannot successfully prepare the statement,
+ * PDO::prepare returns FALSE or emits
+ * PDOException (depending on error handling).
+ *
+ *
+ * Emulated prepared statements does not communicate with the database server
+ * so PDO::prepare does not check the statement.
+ */
+ public function prepare ($query, array $options = array()) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Initiates a transaction
+ *
+ * Turns off autocommit mode. While autocommit mode is turned off,
+ * changes made to the database via the PDO object instance are not committed
+ * until you end the transaction by calling {@link PDO::commit()}.
+ * Calling {@link PDO::rollBack()} will roll back all changes to the database and
+ * return the connection to autocommit mode.
+ *
+ *
+ * Some databases, including MySQL, automatically issue an implicit COMMIT
+ * when a database definition language (DDL) statement
+ * such as DROP TABLE or CREATE TABLE is issued within a transaction.
+ * The implicit COMMIT will prevent you from rolling back any other changes
+ * within the transaction boundary.
+ *
+ * @link https://php.net/manual/en/pdo.begintransaction.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @throws PDOException If there is already a transaction started or
+ * the driver does not support transactions
+ * Note: An exception is raised even when the PDO::ATTR_ERRMODE
+ * attribute is not PDO::ERRMODE_EXCEPTION.
+ */
+ public function beginTransaction () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Commits a transaction
+ * @link https://php.net/manual/en/pdo.commit.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @throws PDOException if there is no active transaction.
+ */
+ public function commit () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Rolls back a transaction
+ * @link https://php.net/manual/en/pdo.rollback.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @throws PDOException if there is no active transaction.
+ */
+ public function rollBack () {}
+
+ /**
+ * (PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7)
+ * Checks if inside a transaction
+ * @link https://php.net/manual/en/pdo.intransaction.php
+ * @return bool TRUE if a transaction is currently active, and FALSE if not.
+ */
+ public function inTransaction () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Set an attribute
+ * @link https://php.net/manual/en/pdo.setattribute.php
+ * @param int $attribute
+ * @param mixed $value
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setAttribute ($attribute, $value) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Execute an SQL statement and return the number of affected rows
+ * @link https://php.net/manual/en/pdo.exec.php
+ * @param string $statement
+ * The SQL statement to prepare and execute.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @return int|false PDO::exec returns the number of rows that were modified
+ * or deleted by the SQL statement you issued. If no rows were affected,
+ * PDO::exec returns 0.
+ *
+ * This function may
+ * return Boolean FALSE, but may also return a non-Boolean value which
+ * evaluates to FALSE. Please read the section on Booleans for more
+ * information. Use the ===
+ * operator for testing the return value of this
+ * function.
+ *
+ * The following example incorrectly relies on the return value of
+ * PDO::exec, wherein a statement that affected 0 rows
+ * results in a call to die:
+ *
+ * $db->exec() or die(print_r($db->errorInfo(), true));
+ *
+ */
+ public function exec ($statement) {}
+
+ #[PhpStormStubsElementAvailable(to: '7.4')]
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Executes an SQL statement, returning a result set as a PDOStatement object
+ * @link https://php.net/manual/en/pdo.query.php
+ * @param string $statement
+ * The SQL statement to prepare and execute.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param int $mode
+ * The fetch mode must be one of the PDO::FETCH_* constants.
+ *
+ * @param mixed $arg3
+ * The second and following parameters are the same as the parameters for PDOStatement::setFetchMode.
+ *
+ * @param array $ctorargs [optional]
+ * Arguments of custom class constructor when the mode
+ * parameter is set to PDO::FETCH_CLASS.
+ *
+ * @return PDOStatement|false PDO::query returns a PDOStatement object, or FALSE
+ * on failure.
+ * @see PDOStatement::setFetchMode For a full description of the second and following parameters.
+ */
+ public function query ($statement, $mode = PDO::ATTR_DEFAULT_FETCH_MODE, $arg3 = null, array $ctorargs = array()) {}
+
+ #[PhpStormStubsElementAvailable('8.0')]
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Executes an SQL statement, returning a result set as a PDOStatement object
+ * @link https://php.net/manual/en/pdo.query.php
+ * @param string $statement
+ * The SQL statement to prepare and execute.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param int $mode
+ * The fetch mode must be one of the PDO::FETCH_* constants.
+ *
+ * @param mixed $fetch_mode_args
+ * Arguments of custom class constructor when the mode
+ * parameter is set to PDO::FETCH_CLASS.
+ *
+ * @return PDOStatement|false PDO::query returns a PDOStatement object, or FALSE
+ * on failure.
+ * @see PDOStatement::setFetchMode For a full description of the second and following parameters.
+ */
+ public function query ($statement, $mode = PDO::ATTR_DEFAULT_FETCH_MODE, ...$fetch_mode_args) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Returns the ID of the last inserted row or sequence value
+ * @link https://php.net/manual/en/pdo.lastinsertid.php
+ * @param string $name [optional]
+ * Name of the sequence object from which the ID should be returned.
+ *
+ * @return string If a sequence name was not specified for the name
+ * parameter, PDO::lastInsertId returns a
+ * string representing the row ID of the last row that was inserted into
+ * the database.
+ *
+ *
+ * If a sequence name was specified for the name
+ * parameter, PDO::lastInsertId returns a
+ * string representing the last value retrieved from the specified sequence
+ * object.
+ *
+ *
+ * If the PDO driver does not support this capability,
+ * PDO::lastInsertId triggers an
+ * IM001 SQLSTATE.
+ */
+ public function lastInsertId ($name = null) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetch the SQLSTATE associated with the last operation on the database handle
+ * @link https://php.net/manual/en/pdo.errorcode.php
+ * @return mixed an SQLSTATE, a five characters alphanumeric identifier defined in
+ * the ANSI SQL-92 standard. Briefly, an SQLSTATE consists of a
+ * two characters class value followed by a three characters subclass value. A
+ * class value of 01 indicates a warning and is accompanied by a return code
+ * of SQL_SUCCESS_WITH_INFO. Class values other than '01', except for the
+ * class 'IM', indicate an error. The class 'IM' is specific to warnings
+ * and errors that derive from the implementation of PDO (or perhaps ODBC,
+ * if you're using the ODBC driver) itself. The subclass value '000' in any
+ * class indicates that there is no subclass for that SQLSTATE.
+ *
+ *
+ * PDO::errorCode only retrieves error codes for operations
+ * performed directly on the database handle. If you create a PDOStatement
+ * object through PDO::prepare or
+ * PDO::query and invoke an error on the statement
+ * handle, PDO::errorCode will not reflect that error.
+ * You must call PDOStatement::errorCode to return the error
+ * code for an operation performed on a particular statement handle.
+ *
+ *
+ * Returns NULL if no operation has been run on the database handle.
+ */
+ public function errorCode () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetch extended error information associated with the last operation on the database handle
+ * @link https://php.net/manual/en/pdo.errorinfo.php
+ * @return array PDO::errorInfo returns an array of error information
+ * about the last operation performed by this database handle. The array
+ * consists of the following fields:
+ *
+ *
Element
+ *
Information
+ *
+ *
+ *
0
+ *
SQLSTATE error code (a five characters alphanumeric identifier defined
+ * in the ANSI SQL standard).
+ *
+ *
+ *
1
+ *
Driver-specific error code.
+ *
+ *
+ *
2
+ *
Driver-specific error message.
+ *
+ *
+ *
+ * If the SQLSTATE error code is not set or there is no driver-specific
+ * error, the elements following element 0 will be set to NULL.
+ *
+ *
+ * PDO::errorInfo only retrieves error information for
+ * operations performed directly on the database handle. If you create a
+ * PDOStatement object through PDO::prepare or
+ * PDO::query and invoke an error on the statement
+ * handle, PDO::errorInfo will not reflect the error
+ * from the statement handle. You must call
+ * PDOStatement::errorInfo to return the error
+ * information for an operation performed on a particular statement handle.
+ */
+ #[ArrayShape([
+ 0 => "string",
+ 1 => "int",
+ 2 => "string",
+ ])]
+ public function errorInfo () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Retrieve a database connection attribute
+ * @link https://php.net/manual/en/pdo.getattribute.php
+ * @param int $attribute
+ * One of the PDO::ATTR_* constants. The constants that
+ * apply to database connections are as follows:
+ * PDO::ATTR_AUTOCOMMIT
+ * PDO::ATTR_CASE
+ * PDO::ATTR_CLIENT_VERSION
+ * PDO::ATTR_CONNECTION_STATUS
+ * PDO::ATTR_DRIVER_NAME
+ * PDO::ATTR_ERRMODE
+ * PDO::ATTR_ORACLE_NULLS
+ * PDO::ATTR_PERSISTENT
+ * PDO::ATTR_PREFETCH
+ * PDO::ATTR_SERVER_INFO
+ * PDO::ATTR_SERVER_VERSION
+ * PDO::ATTR_TIMEOUT
+ *
+ * @return mixed A successful call returns the value of the requested PDO attribute.
+ * An unsuccessful call returns null.
+ */
+ public function getAttribute ($attribute) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.1)
+ * Quotes a string for use in a query.
+ * @link https://php.net/manual/en/pdo.quote.php
+ * @param string $string
+ * The string to be quoted.
+ *
+ * @param int $type [optional]
+ * Provides a data type hint for drivers that have alternate quoting styles.
+ *
+ * @return string|false a quoted string that is theoretically safe to pass into an
+ * SQL statement. Returns FALSE if the driver does not support quoting in
+ * this way.
+ */
+ public function quote ($string, $type = PDO::PARAM_STR) {}
+
+ final public function __wakeup () {}
+
+ final public function __sleep () {}
+
+ /**
+ * (PHP 5 >= 5.1.3, PHP 7, PECL pdo >= 1.0.3)
+ * Return an array of available PDO drivers
+ * @link https://php.net/manual/en/pdo.getavailabledrivers.php
+ * @return array PDO::getAvailableDrivers returns an array of PDO driver names. If
+ * no drivers are available, it returns an empty array.
+ */
+ public static function getAvailableDrivers () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)
+ * Registers a User Defined Function for use in SQL statements
+ * @link https://php.net/manual/en/pdo.sqlitecreatefunction.php
+ * @param string $function_name
+ * The name of the function used in SQL statements.
+ *
+ * @param callable $callback
+ * Callback function to handle the defined SQL function.
+ *
+ * @param int $num_args [optional]
+ * The number of arguments that the SQL function takes. If this parameter is -1,
+ * then the SQL function may take any number of arguments.
+ *
+ * @param int $flags [optional]
+ * A bitwise conjunction of flags. Currently, only PDO::SQLITE_DETERMINISTIC is supported,
+ * which specifies that the function always returns the same result given the same inputs within
+ * a single SQL statement.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function sqliteCreateFunction($function_name, $callback, $num_args = -1, $flags = 0) {}
+}
+
+/**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)
+ * Represents a prepared statement and, after the statement is executed, an
+ * associated result set.
+ * @link https://php.net/manual/en/class.pdostatement.php
+ */
+class PDOStatement implements IteratorAggregate
+{
+ /**
+ * @var string
+ */
+ public $queryString;
+
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Executes a prepared statement
+ * @link https://php.net/manual/en/pdostatement.execute.php
+ * @param array $params [optional]
+ * An array of values with as many elements as there are bound
+ * parameters in the SQL statement being executed.
+ * All values are treated as PDO::PARAM_STR.
+ *
+ *
+ * You cannot bind multiple values to a single parameter; for example,
+ * you cannot bind two values to a single named parameter in an IN()
+ * clause.
+ *
+ *
+ * You cannot bind more values than specified; if more keys exist in
+ * input_parameters than in the SQL specified
+ * in the PDO::prepare, then the statement will
+ * fail and an error is emitted.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @throws \PDOException On error if PDO::ERRMODE_EXCEPTION option is true.
+ */
+ public function execute ($params = null) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetches the next row from a result set
+ * @link https://php.net/manual/en/pdostatement.fetch.php
+ * @param int $mode [optional]
+ * Controls how the next row will be returned to the caller. This value
+ * must be one of the PDO::FETCH_* constants,
+ * defaulting to value of PDO::ATTR_DEFAULT_FETCH_MODE
+ * (which defaults to PDO::FETCH_BOTH).
+ *
+ * PDO::FETCH_ASSOC: returns an array indexed by column
+ * name as returned in your result set
+ *
+ * @param int $cursorOrientation [optional]
+ * For a PDOStatement object representing a scrollable cursor, this
+ * value determines which row will be returned to the caller. This value
+ * must be one of the PDO::FETCH_ORI_* constants,
+ * defaulting to PDO::FETCH_ORI_NEXT. To request a
+ * scrollable cursor for your PDOStatement object, you must set the
+ * PDO::ATTR_CURSOR attribute to
+ * PDO::CURSOR_SCROLL when you prepare the SQL
+ * statement with PDO::prepare.
+ *
+ * @param int $cursorOffset [optional]
+ * @return mixed The return value of this function on success depends on the fetch type. In
+ * all cases, FALSE is returned on failure.
+ */
+ public function fetch ($mode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Binds a parameter to the specified variable name
+ * @link https://php.net/manual/en/pdostatement.bindparam.php
+ * @param mixed $param
+ * Parameter identifier. For a prepared statement using named
+ * placeholders, this will be a parameter name of the form
+ * :name. For a prepared statement using
+ * question mark placeholders, this will be the 1-indexed position of
+ * the parameter.
+ *
+ * @param mixed &$var
+ * Name of the PHP variable to bind to the SQL statement parameter.
+ *
+ * @param int $type [optional]
+ * Explicit data type for the parameter using the PDO::PARAM_*
+ * constants.
+ * To return an INOUT parameter from a stored procedure,
+ * use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bits
+ * for the data_type parameter.
+ *
+ * @param int $maxLength [optional]
+ * Length of the data type. To indicate that a parameter is an OUT
+ * parameter from a stored procedure, you must explicitly set the
+ * length.
+ *
+ * @param mixed $driverOptions [optional]
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function bindParam ($param, &$var, $type = PDO::PARAM_STR, $maxLength = null, $driverOptions = null) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Bind a column to a PHP variable
+ * @link https://php.net/manual/en/pdostatement.bindcolumn.php
+ * @param mixed $column
+ * Number of the column (1-indexed) or name of the column in the result set.
+ * If using the column name, be aware that the name should match the
+ * case of the column, as returned by the driver.
+ *
+ * @param mixed &$var
+ * Name of the PHP variable to which the column will be bound.
+ *
+ * @param int $type [optional]
+ * Data type of the parameter, specified by the PDO::PARAM_* constants.
+ *
+ * @param int $maxLength [optional]
+ * A hint for pre-allocation.
+ *
+ * @param mixed $driverOptions [optional]
+ * Optional parameter(s) for the driver.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function bindColumn ($column, &$var, $type = null, $maxLength = null, $driverOptions = null) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)
+ * Binds a value to a parameter
+ * @link https://php.net/manual/en/pdostatement.bindvalue.php
+ * @param mixed $param
+ * Parameter identifier. For a prepared statement using named
+ * placeholders, this will be a parameter name of the form
+ * :name. For a prepared statement using
+ * question mark placeholders, this will be the 1-indexed position of
+ * the parameter.
+ *
+ * @param mixed $value
+ * The value to bind to the parameter.
+ *
+ * @param int $type [optional]
+ * Explicit data type for the parameter using the PDO::PARAM_*
+ * constants.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function bindValue ($param, $value, $type = PDO::PARAM_STR) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Returns the number of rows affected by the last SQL statement
+ * @link https://php.net/manual/en/pdostatement.rowcount.php
+ * @return int the number of rows.
+ */
+ public function rowCount () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
+ * Returns a single column from the next row of a result set
+ * @link https://php.net/manual/en/pdostatement.fetchcolumn.php
+ * @param int $column [optional]
+ * 0-indexed number of the column you wish to retrieve from the row. If
+ * no value is supplied, PDOStatement::fetchColumn
+ * fetches the first column.
+ *
+ * @return mixed Returns a single column from the next row of a result
+ * set or FALSE if there are no more rows.
+ *
+ *
+ * There is no way to return another column from the same row if you
+ * use PDOStatement::fetchColumn to retrieve data.
+ */
+ public function fetchColumn ($column = 0) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Returns an array containing all of the result set rows
+ * @link https://php.net/manual/en/pdostatement.fetchall.php
+ * @param int $mode [optional]
+ * Controls the contents of the returned array as documented in
+ * PDOStatement::fetch.
+ * Defaults to value of PDO::ATTR_DEFAULT_FETCH_MODE
+ * (which defaults to PDO::FETCH_BOTH)
+ *
+ *
+ * To return an array consisting of all values of a single column from
+ * the result set, specify PDO::FETCH_COLUMN. You
+ * can specify which column you want with the
+ * column-index parameter.
+ *
+ *
+ * To fetch only the unique values of a single column from the result set,
+ * bitwise-OR PDO::FETCH_COLUMN with
+ * PDO::FETCH_UNIQUE.
+ *
+ *
+ * To return an associative array grouped by the values of a specified
+ * column, bitwise-OR PDO::FETCH_COLUMN with
+ * PDO::FETCH_GROUP.
+ *
+ * @param mixed ...$args
+ * Arguments of custom class constructor when the fetch_style
+ * parameter is PDO::FETCH_CLASS.
+ *
+ * @return array PDOStatement::fetchAll returns an array containing
+ * all of the remaining rows in the result set. The array represents each
+ * row as either an array of column values or an object with properties
+ * corresponding to each column name.
+ *
+ *
+ * Using this method to fetch large result sets will result in a heavy
+ * demand on system and possibly network resources. Rather than retrieving
+ * all of the data and manipulating it in PHP, consider using the database
+ * server to manipulate the result sets. For example, use the WHERE and
+ * ORDER BY clauses in SQL to restrict results before retrieving and
+ * processing them with PHP.
+ */
+ public function fetchAll ($mode = PDO::FETCH_BOTH, ...$args) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.4)
+ * Fetches the next row and returns it as an object.
+ * @link https://php.net/manual/en/pdostatement.fetchobject.php
+ * @param string $class [optional]
+ * Name of the created class.
+ *
+ * @param array $ctorArgs [optional]
+ * Elements of this array are passed to the constructor.
+ *
+ * @return mixed an instance of the required class with property names that
+ * correspond to the column names or FALSE on failure.
+ */
+ public function fetchObject ($class = "stdClass", array $ctorArgs = array()) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetch the SQLSTATE associated with the last operation on the statement handle
+ * @link https://php.net/manual/en/pdostatement.errorcode.php
+ * @return string Identical to PDO::errorCode, except that
+ * PDOStatement::errorCode only retrieves error codes
+ * for operations performed with PDOStatement objects.
+ */
+ public function errorCode () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetch extended error information associated with the last operation on the statement handle
+ * @link https://php.net/manual/en/pdostatement.errorinfo.php
+ * @return array PDOStatement::errorInfo returns an array of
+ * error information about the last operation performed by this
+ * statement handle. The array consists of the following fields:
+ *
+ *
Element
+ *
Information
+ *
+ *
+ *
0
+ *
SQLSTATE error code (a five characters alphanumeric identifier defined
+ * in the ANSI SQL standard).
+ *
+ *
+ *
1
+ *
Driver specific error code.
+ *
+ *
+ *
2
+ *
Driver specific error message.
+ *
+ */
+ #[ArrayShape([
+ 0 => "string",
+ 1 => "int",
+ 2 => "string",
+ ])]
+ public function errorInfo () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Set a statement attribute
+ * @link https://php.net/manual/en/pdostatement.setattribute.php
+ * @param int $attribute
+ * @param mixed $value
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setAttribute ($attribute, $value) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Retrieve a statement attribute
+ * @link https://php.net/manual/en/pdostatement.getattribute.php
+ * @param int $name
+ * @return mixed the attribute value.
+ */
+ public function getAttribute ($name) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Returns the number of columns in the result set
+ * @link https://php.net/manual/en/pdostatement.columncount.php
+ * @return int the number of columns in the result set represented by the
+ * PDOStatement object. If there is no result set,
+ * PDOStatement::columnCount returns 0.
+ */
+ public function columnCount () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Returns metadata for a column in a result set
+ * @link https://php.net/manual/en/pdostatement.getcolumnmeta.php
+ * @param int $column
+ * The 0-indexed column in the result set.
+ *
+ * @return array|false an associative array containing the following values representing
+ * the metadata for a single column:
+ *
+ *
+ * Column metadata
+ *
+ *
Name
+ *
Value
+ *
+ *
+ *
native_type
+ *
The PHP native type used to represent the column value.
+ *
+ *
+ *
driver:decl_type
+ *
The SQL type used to represent the column value in the database.
+ * If the column in the result set is the result of a function, this value
+ * is not returned by PDOStatement::getColumnMeta.
+ *
+ *
+ *
+ *
flags
+ *
Any flags set for this column.
+ *
+ *
+ *
name
+ *
The name of this column as returned by the database.
+ *
+ *
+ *
table
+ *
The name of this column's table as returned by the database.
+ *
+ *
+ *
len
+ *
The length of this column. Normally -1 for
+ * types other than floating point decimals.
+ *
+ *
+ *
precision
+ *
The numeric precision of this column. Normally
+ * 0 for types other than floating point
+ * decimals.
+ *
+ *
+ *
pdo_type
+ *
The type of this column as represented by the
+ * PDO::PARAM_* constants.
+ *
+ *
+ *
+ * Returns FALSE if the requested column does not exist in the result set,
+ * or if no result set exists.
+ */
+ public function getColumnMeta ($column) {}
+
+ #[PhpStormStubsElementAvailable(to: '7.4')]
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Set the default fetch mode for this statement
+ * @link https://php.net/manual/en/pdostatement.setfetchmode.php
+ * @param int $mode
+ * The fetch mode must be one of the PDO::FETCH_* constants.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setFetchMode ($mode, $className = null, ...$params) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Advances to the next rowset in a multi-rowset statement handle
+ * @link https://php.net/manual/en/pdostatement.nextrowset.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function nextRowset () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
+ * Closes the cursor, enabling the statement to be executed again.
+ * @link https://php.net/manual/en/pdostatement.closecursor.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function closeCursor () {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
+ * Dump an SQL prepared command
+ * @link https://php.net/manual/en/pdostatement.debugdumpparams.php
+ * @return bool No value is returned.
+ */
+ public function debugDumpParams () {}
+
+ final public function __wakeup () {}
+
+ final public function __sleep () {}
+
+ /**
+ * @since 8.0
+ */
+ public function getIterator(){}
+}
+
+final class PDORow {
+}
+
+/**
+ * (PHP 5 >= 5.1.3, PHP 7, PECL pdo >= 1.0.3)
+ * Return an array of available PDO drivers
+ * @link https://php.net/manual/en/pdo.getavailabledrivers.php
+ * @return array PDO::getAvailableDrivers returns an array of PDO driver names. If
+ * no drivers are available, it returns an empty array.
+ */
+#[Pure]
+function pdo_drivers (): array
+{}
+
+// End of PDO v.1.0.4dev
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/Parle/ErrorInfo.php b/vendor/jetbrains/phpstorm-stubs/Parle/ErrorInfo.php
new file mode 100644
index 0000000000..5298dc96a5
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/Parle/ErrorInfo.php
@@ -0,0 +1,18 @@
+' before the name means push. Use the signature without id for either continuation or to
+ * start matching, when a continuation or recursion is required.
+ * If '<' is specified as exit state, it means pop. In that case, the signature containing the id can be used to
+ * identify the match. Note that even in the case an id is specified, the rule will finish first when all the
+ * previous pushes popped.
+ * @return void
+ * @link https://php.net/manual/en/parle-rlexer.push.php
+ */
+ public function push(string $state, string $regex, int $id, string $newState) : void {}
+
+ /**
+ * Add a lexer rule
+ *
+ * Push a pattern for lexeme recognition.
+ * A 'start state' and 'exit state' can be specified by using a suitable signature.
+ *
+ * @param string $state State name. If '*' is used as start state, then the rule is applied to all lexer states.
+ * @param string $regex Regular expression used for token matching.
+ * @param string $newState
+ * New state name, after the rule was applied.
+ * If '.' is specified as the exit state, then the lexer state is unchanged when that rule matches.
+ * An exit state with '>' before the name means push. Use the signature without id for either continuation or to
+ * start matching, when a continuation or recursion is required.
+ * If '<' is specified as exit state, it means pop. In that case, the signature containing the id can be used to
+ * identify the match. Note that even in the case an id is specified, the rule will finish first when all the
+ * previous pushes popped.
+ * @return void
+ * @link https://php.net/manual/en/parle-rlexer.push.php
+ */
+ public function push(string $state, string $regex, string $newState) : void {}
+
+ /**
+ * Push a new start state
+ * This lexer type can have more than one state machine.
+ * This allows you to lex different tokens depending on context, thus allowing simple parsing to take place.
+ * Once a state pushed, it can be used with a suitable Parle\RLexer::push() signature variant.
+ *
+ * @see RLexer::push()
+ * @link https://php.net/manual/en/parle-rlexer.pushstate.php
+ * @param string $state Name of the state.
+ * @return int
+ */
+ public function pushState(string $state) : int {}
+
+ /**
+ * Reset lexer
+ *
+ * Reset lexing optionally supplying the desired offset.
+ *
+ * @param int $pos Reset position.
+ */
+ public function reset(int $pos) : void {}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/Parle/RParser.php b/vendor/jetbrains/phpstorm-stubs/Parle/RParser.php
new file mode 100644
index 0000000000..d6269b6e68
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/Parle/RParser.php
@@ -0,0 +1,201 @@
+
+ * Construct a Phar archive object
+ * @link https://php.net/manual/en/phar.construct.php
+ * @param string $filename
+ * Path to an existing Phar archive or to-be-created archive. The file name's
+ * extension must contain .phar.
+ *
+ * @param int $flags [optional]
+ * Flags to pass to parent class RecursiveDirectoryIterator.
+ *
+ * @param string $alias [optional]
+ * Alias with which this Phar archive should be referred to in calls to stream
+ * functionality.
+ *
+ * @throws BadMethodCallException If called twice.
+ * @throws UnexpectedValueException If the phar archive can't be opened.
+ */
+ public function __construct ($filename, $flags = null, $alias = null) {}
+
+ public function __destruct () {}
+
+ /**
+ * (Unknown)
+ * Add an empty directory to the phar archive
+ * @link https://php.net/manual/en/phar.addemptydir.php
+ * @param string $directory
+ * The name of the empty directory to create in the phar archive
+ *
+ * @return void no return value, exception is thrown on failure.
+ */
+ public function addEmptyDir ($directory) {}
+
+ /**
+ * (Unknown)
+ * Add a file from the filesystem to the phar archive
+ * @link https://php.net/manual/en/phar.addfile.php
+ * @param string $filename
+ * Full or relative path to a file on disk to be added
+ * to the phar archive.
+ *
+ * @param string $localName [optional]
+ * Path that the file will be stored in the archive.
+ *
+ * @return void no return value, exception is thrown on failure.
+ */
+ public function addFile ($filename, $localName = null) {}
+
+ /**
+ * (Unknown)
+ * Add a file from the filesystem to the phar archive
+ * @link https://php.net/manual/en/phar.addfromstring.php
+ * @param string $localName
+ * Path that the file will be stored in the archive.
+ *
+ * @param string $contents
+ * The file contents to store
+ *
+ * @return void no return value, exception is thrown on failure.
+ */
+ public function addFromString ($localName, $contents) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Construct a phar archive from the files within a directory.
+ * @link https://php.net/manual/en/phar.buildfromdirectory.php
+ * @param string $directory
+ * The full or relative path to the directory that contains all files
+ * to add to the archive.
+ *
+ * @param $pattern $regex [optional]
+ * An optional pcre regular expression that is used to filter the
+ * list of files. Only file paths matching the regular expression
+ * will be included in the archive.
+ *
+ * @return array Phar::buildFromDirectory returns an associative array
+ * mapping internal path of file to the full path of the file on the
+ * filesystem.
+ */
+ public function buildFromDirectory ($directory, $pattern = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Construct a phar archive from an iterator.
+ * @link https://php.net/manual/en/phar.buildfromiterator.php
+ * @param Iterator $iterator
+ * Any iterator that either associatively maps phar file to location or
+ * returns SplFileInfo objects
+ *
+ * @param string $baseDirectory [optional]
+ * For iterators that return SplFileInfo objects, the portion of each
+ * file's full path to remove when adding to the phar archive
+ *
+ * @return array Phar::buildFromIterator returns an associative array
+ * mapping internal path of file to the full path of the file on the
+ * filesystem.
+ */
+ public function buildFromIterator (Iterator $iterator, $baseDirectory = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Compresses all files in the current Phar archive
+ * @link https://php.net/manual/en/phar.compressfiles.php
+ * @param int $compression
+ * Compression must be one of Phar::GZ,
+ * Phar::BZ2 to add compression, or Phar::NONE
+ * to remove compression.
+ *
+ * @return void No value is returned.
+ */
+ public function compressFiles ($compression) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Decompresses all files in the current Phar archive
+ * @link https://php.net/manual/en/phar.decompressfiles.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function decompressFiles () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Compresses the entire Phar archive using Gzip or Bzip2 compression
+ * @link https://php.net/manual/en/phar.compress.php
+ * @param int $compression
+ * Compression must be one of Phar::GZ,
+ * Phar::BZ2 to add compression, or Phar::NONE
+ * to remove compression.
+ *
+ * @param string $extension [optional]
+ * By default, the extension is .phar.gz
+ * or .phar.bz2 for compressing phar archives, and
+ * .phar.tar.gz or .phar.tar.bz2 for
+ * compressing tar archives. For decompressing, the default file extensions
+ * are .phar and .phar.tar.
+ *
+ * For decompressing, the default file extensions
+ * are .phar and .phar.tar.
+ * Use this parameter to specify another file extension. Be aware
+ * that all executable phar archives must contain .phar
+ * in their filename.
+ *
+ * @return static A Phar object is returned.
+ */
+ public function decompress ($extension = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Convert a phar archive to another executable phar archive file format
+ * @link https://php.net/manual/en/phar.converttoexecutable.php
+ * @param int $format [optional]
+ * This should be one of Phar::PHAR, Phar::TAR,
+ * or Phar::ZIP. If set to NULL, the existing file format
+ * will be preserved.
+ *
+ * @param int $compression [optional]
+ * This should be one of Phar::NONE for no whole-archive
+ * compression, Phar::GZ for zlib-based compression, and
+ * Phar::BZ2 for bzip-based compression.
+ *
+ * @param string $extension [optional]
+ * This parameter is used to override the default file extension for a
+ * converted archive. Note that all zip- and tar-based phar archives must contain
+ * .phar in their file extension in order to be processed as a
+ * phar archive.
+ *
+ *
+ * If converting to a phar-based archive, the default extensions are
+ * .phar, .phar.gz, or .phar.bz2
+ * depending on the specified compression. For tar-based phar archives, the
+ * default extensions are .phar.tar, .phar.tar.gz,
+ * and .phar.tar.bz2. For zip-based phar archives, the
+ * default extension is .phar.zip.
+ *
+ * @return Phar The method returns a Phar object on success and throws an
+ * exception on failure.
+ */
+ public function convertToExecutable ($format = 9021976, $compression = 9021976, $extension = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Convert a phar archive to a non-executable tar or zip file
+ * @link https://php.net/manual/en/phar.converttodata.php
+ * @param int $format [optional]
+ * This should be one of Phar::TAR
+ * or Phar::ZIP. If set to NULL, the existing file format
+ * will be preserved.
+ *
+ * @param int $compression [optional]
+ * This should be one of Phar::NONE for no whole-archive
+ * compression, Phar::GZ for zlib-based compression, and
+ * Phar::BZ2 for bzip-based compression.
+ *
+ * @param string $extension [optional]
+ * This parameter is used to override the default file extension for a
+ * converted archive. Note that .phar cannot be used
+ * anywhere in the filename for a non-executable tar or zip archive.
+ *
+ *
+ * If converting to a tar-based phar archive, the
+ * default extensions are .tar, .tar.gz,
+ * and .tar.bz2 depending on specified compression.
+ * For zip-based archives, the
+ * default extension is .zip.
+ *
+ * @return PharData The method returns a PharData object on success and throws an
+ * exception on failure.
+ */
+ public function convertToData ($format = 9021976, $compression = 9021976, $extension = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Copy a file internal to the phar archive to another new file within the phar
+ * @link https://php.net/manual/en/phar.copy.php
+ * @param string $to
+ * @param string $from
+ * @return bool returns TRUE on success, but it is safer to encase method call in a
+ * try/catch block and assume success if no exception is thrown.
+ */
+ public function copy ($to, $from) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns the number of entries (files) in the Phar archive
+ * @link https://php.net/manual/en/phar.count.php
+ * @param int $mode [optional]
+ * @return int The number of files contained within this phar, or 0 (the number zero)
+ * if none.
+ */
+ public function count ($mode = COUNT_NORMAL) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Delete a file within a phar archive
+ * @link https://php.net/manual/en/phar.delete.php
+ * @param string $localName
+ * Path within an archive to the file to delete.
+ *
+ * @return bool returns TRUE on success, but it is better to check for thrown exception,
+ * and assume success if none is thrown.
+ */
+ public function delete ($localName) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.2.0)
+ * Deletes the global metadata of the phar
+ * @link https://php.net/manual/en/phar.delmetadata.php
+ * @return bool returns TRUE on success, but it is better to check for thrown exception,
+ * and assume success if none is thrown.
+ */
+ public function delMetadata () {}
+
+ /**
+ * (Unknown)
+ * Extract the contents of a phar archive to a directory
+ * @link https://php.net/manual/en/phar.extractto.php
+ * @param string $directory
+ * Path within an archive to the file to delete.
+ *
+ * @param string|array|null $files [optional]
+ * The name of a file or directory to extract, or an array of files/directories to extract
+ *
+ * @param bool $overwrite [optional]
+ * Set to TRUE to enable overwriting existing files
+ *
+ * @return bool returns TRUE on success, but it is better to check for thrown exception,
+ * and assume success if none is thrown.
+ */
+ public function extractTo ($directory, $files = null, $overwrite = false) {}
+
+ /**
+ * @see setAlias
+ * @return string
+ */
+ public function getAlias () {}
+
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns phar archive meta-data
+ * @link https://php.net/manual/en/phar.getmetadata.php
+ * @param array $unserializeOptions [optional] if is set to anything other than the default,
+ * the resulting metadata won't be cached and this won't return the value from the cache
+ * @return mixed any PHP variable that can be serialized and is stored as meta-data for the Phar archive,
+ * or NULL if no meta-data is stored.
+ */
+ public function getMetadata (array $unserializeOptions = []) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Return whether phar was modified
+ * @link https://php.net/manual/en/phar.getmodified.php
+ * @return bool TRUE if the phar has been modified since opened, FALSE if not.
+ */
+ public function getModified () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
+ * @link https://php.net/manual/en/phar.getsignature.php
+ * @return array Array with the opened archive's signature in hash key and MD5,
+ * SHA-1,
+ * SHA-256, SHA-512, or OpenSSL
+ * in hash_type. This signature is a hash calculated on the
+ * entire phar's contents, and may be used to verify the integrity of the archive.
+ * A valid signature is absolutely required of all executable phar archives if the
+ * phar.require_hash INI variable
+ * is set to true.
+ */
+ public function getSignature () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Return the PHP loader or bootstrap stub of a Phar archive
+ * @link https://php.net/manual/en/phar.getstub.php
+ * @return string a string containing the contents of the bootstrap loader (stub) of
+ * the current Phar archive.
+ */
+ public function getStub () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Return version info of Phar archive
+ * @link https://php.net/manual/en/phar.getversion.php
+ * @return string The opened archive's API version. This is not to be confused with
+ * the API version that the loaded phar extension will use to create
+ * new phars. Each Phar archive has the API version hard-coded into
+ * its manifest. See Phar file format
+ * documentation for more information.
+ */
+ public function getVersion () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.2.0)
+ * Returns whether phar has global meta-data
+ * @link https://php.net/manual/en/phar.hasmetadata.php
+ * @return bool TRUE if meta-data has been set, and FALSE if not.
+ */
+ public function hasMetadata () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
+ * @link https://php.net/manual/en/phar.isbuffering.php
+ * @return bool TRUE if the write operations are being buffer, FALSE otherwise.
+ */
+ public function isBuffering () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
+ * @link https://php.net/manual/en/phar.iscompressed.php
+ * @return mixed Phar::GZ, Phar::BZ2 or FALSE
+ */
+ public function isCompressed () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
+ * @link https://php.net/manual/en/phar.isfileformat.php
+ * @param int $format
+ * Either Phar::PHAR, Phar::TAR, or
+ * Phar::ZIP to test for the format of the archive.
+ *
+ * @return bool TRUE if the phar archive matches the file format requested by the parameter
+ */
+ public function isFileFormat ($format) {}
+
+ /**
+ * (Unknown)
+ * Returns true if the phar archive can be modified
+ * @link https://php.net/manual/en/phar.iswritable.php
+ * @return bool TRUE if the phar archive can be modified
+ */
+ public function isWritable () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * determines whether a file exists in the phar
+ * @link https://php.net/manual/en/phar.offsetexists.php
+ * @param string $localName
+ * The filename (relative path) to look for in a Phar.
+ *
+ * @return bool TRUE if the file exists within the phar, or FALSE if not.
+ */
+ public function offsetExists ($localName) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Gets a PharFileInfo object for a specific file
+ * @link https://php.net/manual/en/phar.offsetget.php
+ * @param string $localName
+ * The filename (relative path) to look for in a Phar.
+ *
+ * @return PharFileInfo A PharFileInfo object is returned that can be used to
+ * iterate over a file's contents or to retrieve information about the current file.
+ */
+ public function offsetGet ($localName) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * set the contents of an internal file to those of an external file
+ * @link https://php.net/manual/en/phar.offsetset.php
+ * @param string $localName
+ * The filename (relative path) to modify in a Phar.
+ *
+ * @param string $value
+ * Content of the file.
+ *
+ * @return void No return values.
+ */
+ public function offsetSet ($localName, $value) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * remove a file from a phar
+ * @link https://php.net/manual/en/phar.offsetunset.php
+ * @param string $localName
+ * The filename (relative path) to modify in a Phar.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function offsetUnset ($localName) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.2.1)
+ * Set the alias for the Phar archive
+ * @link https://php.net/manual/en/phar.setalias.php
+ * @param string $alias
+ * A shorthand string that this archive can be referred to in phar
+ * stream wrapper access.
+ *
+ * @return bool
+ */
+ public function setAlias ($alias) {}
+
+ /**
+ * (Unknown)
+ * Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
+ * @link https://php.net/manual/en/phar.setdefaultstub.php
+ * @param string $index [optional]
+ * Relative path within the phar archive to run if accessed on the command-line
+ *
+ * @param string $webIndex [optional]
+ * Relative path within the phar archive to run if accessed through a web browser
+ *
+ * Any PHP variable containing information to store that describes the phar archive
+ *
+ * @return void No value is returned.
+ */
+ public function setMetadata ($metadata) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.1.0)
+ * set the signature algorithm for a phar and apply it.
+ * @link https://php.net/manual/en/phar.setsignaturealgorithm.php
+ * @param int $algo
+ * One of Phar::MD5,
+ * Phar::SHA1, Phar::SHA256,
+ * Phar::SHA512, or Phar::OPENSSL
+ *
+ * @param string $privateKey [optional]
+ * The contents of an OpenSSL private key, as extracted from a certificate or
+ * OpenSSL key file:
+ *
+ * $private = openssl_get_privatekey(file_get_contents('private.pem'));
+ * $pkey = '';
+ * openssl_pkey_export($private, $pkey);
+ * $p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
+ *
+ * See phar introduction for instructions on
+ * naming and placement of the public key file.
+ *
+ * @return void No value is returned.
+ */
+ public function setSignatureAlgorithm ($algo, $privateKey = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Used to set the PHP loader or bootstrap stub of a Phar archive
+ * @link https://php.net/manual/en/phar.setstub.php
+ * @param string $stub
+ * A string or an open stream handle to use as the executable stub for this
+ * phar archive.
+ *
+ * @param int $length [optional]
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setStub ($stub, $length = -1) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Start buffering Phar write operations, do not modify the Phar object on disk
+ * @link https://php.net/manual/en/phar.startbuffering.php
+ * @return void No value is returned.
+ */
+ public function startBuffering () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Stop buffering write requests to the Phar archive, and save changes to disk
+ * @link https://php.net/manual/en/phar.stopbuffering.php
+ * @return void No value is returned.
+ */
+ public function stopBuffering () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns the api version
+ * @link https://php.net/manual/en/phar.apiversion.php
+ * @return string The API version string as in "1.0.0".
+ */
+ final public static function apiVersion () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns whether phar extension supports compression using either zlib or bzip2
+ * @link https://php.net/manual/en/phar.cancompress.php
+ * @param int $compression [optional]
+ * Either Phar::GZ or Phar::BZ2 can be
+ * used to test whether compression is possible with a specific compression
+ * algorithm (zlib or bzip2).
+ *
+ * @return bool TRUE if compression/decompression is available, FALSE if not.
+ */
+ final public static function canCompress ($compression = 0) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns whether phar extension supports writing and creating phars
+ * @link https://php.net/manual/en/phar.canwrite.php
+ * @return bool TRUE if write access is enabled, FALSE if it is disabled.
+ */
+ final public static function canWrite () {}
+
+ /**
+ * (Unknown)
+ * Create a phar-file format specific stub
+ * @link https://php.net/manual/en/phar.createdefaultstub.php
+ * @param string $index [optional]
+ * @param string $webIndex [optional]
+ * @return string a string containing the contents of a customized bootstrap loader (stub)
+ * that allows the created Phar archive to work with or without the Phar extension
+ * enabled.
+ */
+ final public static function createDefaultStub ($index = null, $webIndex = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.2.0)
+ * Return array of supported compression algorithms
+ * @link https://php.net/manual/en/phar.getsupportedcompression.php
+ * @return array an array containing any of Phar::GZ or
+ * Phar::BZ2, depending on the availability of
+ * the zlib extension or the
+ * bz2 extension.
+ */
+ final public static function getSupportedCompression () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.1.0)
+ * Return array of supported signature types
+ * @link https://php.net/manual/en/phar.getsupportedsignatures.php
+ * @return array an array containing any of MD5, SHA-1,
+ * SHA-256, SHA-512, or OpenSSL.
+ */
+ final public static function getSupportedSignatures () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
+ * @link https://php.net/manual/en/phar.interceptfilefuncs.php
+ * @return void
+ */
+ final public static function interceptFileFuncs () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.2.0)
+ * Returns whether the given filename is a valid phar filename
+ * @link https://php.net/manual/en/phar.isvalidpharfilename.php
+ * @param string $filename
+ * The name or full path to a phar archive not yet created
+ *
+ * @param bool $executable [optional]
+ * This parameter determines whether the filename should be treated as
+ * a phar executable archive, or a data non-executable archive
+ *
+ * @return bool TRUE if the filename is valid, FALSE if not.
+ */
+ final public static function isValidPharFilename ($filename, $executable = true) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Loads any phar archive with an alias
+ * @link https://php.net/manual/en/phar.loadphar.php
+ * @param string $filename
+ * the full or relative path to the phar archive to open
+ *
+ * @param string $alias [optional]
+ * The alias that may be used to refer to the phar archive. Note
+ * that many phar archives specify an explicit alias inside the
+ * phar archive, and a PharException will be thrown if
+ * a new alias is specified in this case.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ final public static function loadPhar ($filename, $alias = null) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Reads the currently executed file (a phar) and registers its manifest
+ * @link https://php.net/manual/en/phar.mapphar.php
+ * @param string $alias [optional]
+ * The alias that can be used in phar:// URLs to
+ * refer to this archive, rather than its full path.
+ *
+ * @param int $offset [optional]
+ * Unused variable, here for compatibility with PEAR's PHP_Archive.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ final public static function mapPhar ($alias = null, $offset = 0) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Returns the full path on disk or full phar URL to the currently executing Phar archive
+ * @link https://php.net/manual/en/phar.running.php
+ * @param bool $returnPhar [optional]
+ * If FALSE, the full path on disk to the phar
+ * archive is returned. If TRUE, a full phar URL is returned.
+ *
+ * @return string the filename if valid, empty string otherwise.
+ */
+ final public static function running ($returnPhar = true) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Mount an external path or file to a virtual location within the phar archive
+ * @link https://php.net/manual/en/phar.mount.php
+ * @param string $pharPath
+ * The internal path within the phar archive to use as the mounted path location.
+ * This must be a relative path within the phar archive, and must not already exist.
+ *
+ * @param string $externalPath
+ * A path or URL to an external file or directory to mount within the phar archive
+ *
+ * @return void No return. PharException is thrown on failure.
+ */
+ final public static function mount ($pharPath, $externalPath) {}
+
+ /**
+ * (Unknown)
+ * Defines a list of up to 4 $_SERVER variables that should be modified for execution
+ * @link https://php.net/manual/en/phar.mungserver.php
+ * @param array $variables
+ * an array containing as string indices any of
+ * REQUEST_URI, PHP_SELF,
+ * SCRIPT_NAME and SCRIPT_FILENAME.
+ * Other values trigger an exception, and Phar::mungServer
+ * is case-sensitive.
+ *
+ * @return void No return.
+ */
+ final public static function mungServer (array $variables) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Completely remove a phar archive from disk and from memory
+ * @link https://php.net/manual/en/phar.unlinkarchive.php
+ * @param string $filename
+ * The path on disk to the phar archive.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ final public static function unlinkArchive ($filename) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * mapPhar for web-based phars. front controller for web applications
+ * @link https://php.net/manual/en/phar.webphar.php
+ * @param string $alias [optional]
+ * The alias that can be used in phar:// URLs to
+ * refer to this archive, rather than its full path.
+ *
+ * @param string $index [optional]
+ * The location within the phar of the directory index.
+ *
+ * @param string $fileNotFoundScript [optional]
+ * The location of the script to run when a file is not found. This
+ * script should output the proper HTTP 404 headers.
+ *
+ * The rewrites function is passed a string as its only parameter and must return a string or FALSE.
+ *
+ *
+ * If you are using fast-cgi or cgi then the parameter passed to the function is the value of the
+ * $_SERVER['PATH_INFO'] variable. Otherwise, the parameter passed to the function is the value
+ * of the $_SERVER['REQUEST_URI'] variable.
+ *
+ *
+ * If a string is returned it is used as the internal file path. If FALSE is returned then webPhar() will
+ * send a HTTP 403 Denied Code.
+ *
+ * @return void No value is returned.
+ */
+ final public static function webPhar ($alias = null, $index = "index.php", $fileNotFoundScript = null, array $mimeTypes = null, callable $rewrite = null) {}
+
+ /**
+ * Returns whether current entry is a directory and not '.' or '..'
+ * @link https://php.net/manual/en/recursivedirectoryiterator.haschildren.php
+ * @param bool $allow_links [optional]
+ *
+ * @return bool whether the current entry is a directory, but not '.' or '..'
+ */
+ public function hasChildren ($allow_links = false) {}
+
+ /**
+ * Returns an iterator for the current entry if it is a directory
+ * @link https://php.net/manual/en/recursivedirectoryiterator.getchildren.php
+ * @return mixed The filename, file information, or $this depending on the set flags.
+ * See the FilesystemIterator
+ * constants.
+ */
+ public function getChildren () {}
+
+ /**
+ * Rewinds back to the beginning
+ * @link https://php.net/manual/en/filesystemiterator.rewind.php
+ * @return void No value is returned.
+ */
+ public function rewind () {}
+
+ /**
+ * Move to the next file
+ * @link https://php.net/manual/en/filesystemiterator.next.php
+ * @return void No value is returned.
+ */
+ public function next () {}
+
+ /**
+ * Retrieve the key for the current file
+ * @link https://php.net/manual/en/filesystemiterator.key.php
+ * @return string the pathname or filename depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function key () {}
+
+ /**
+ * The current file
+ * @link https://php.net/manual/en/filesystemiterator.current.php
+ * @return mixed The filename, file information, or $this depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function current () {}
+
+ /**
+ * Check whether current DirectoryIterator position is a valid file
+ * @link https://php.net/manual/en/directoryiterator.valid.php
+ * @return bool TRUE if the position is valid, otherwise FALSE
+ */
+ public function valid () {}
+
+ /**
+ * Seek to a DirectoryIterator item
+ * @link https://php.net/manual/en/directoryiterator.seek.php
+ * @param int $position
+ * The zero-based numeric position to seek to.
+ *
+ * @return void No value is returned.
+ */
+ public function seek ($position) {}
+
+ public function _bad_state_ex (){}
+
+}
+
+/**
+ * The PharData class provides a high-level interface to accessing and creating
+ * non-executable tar and zip archives. Because these archives do not contain
+ * a stub and cannot be executed by the phar extension, it is possible to create
+ * and manipulate regular zip and tar files using the PharData class even if
+ * phar.readonly php.ini setting is 1.
+ * @link https://php.net/manual/en/class.phardata.php
+ */
+class PharData extends Phar {
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Construct a non-executable tar or zip archive object
+ * @link https://php.net/manual/en/phardata.construct.php
+ * @param string $filename
+ * Path to an existing tar/zip archive or to-be-created archive
+ *
+ * @param int $flags [optional]
+ * Flags to pass to Phar parent class
+ * RecursiveDirectoryIterator.
+ *
+ * @param string $alias [optional]
+ * Alias with which this Phar archive should be referred to in calls to stream
+ * functionality.
+ *
+ * @param int $format [optional]
+ * One of the
+ * file format constants
+ * available within the Phar class.
+ *
+ */
+ public function __construct ($filename, $flags = null, $alias = null, $format = Phar::TAR) {}
+
+ public function offsetExists ($localName) {}
+
+ public function offsetGet ($localName) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * set the contents of a file within the tar/zip to those of an external file or string
+ * @link https://php.net/manual/en/phardata.offsetset.php
+ * @param string $localName
+ * The filename (relative path) to modify in a tar or zip archive.
+ *
+ * @param string $value
+ * Content of the file.
+ *
+ * @return void No return values.
+ */
+ public function offsetSet ($localName, $value) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * remove a file from a tar/zip archive
+ * @link https://php.net/manual/en/phardata.offsetunset.php
+ * @param string $localName
+ * The filename (relative path) to modify in the tar/zip archive.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function offsetUnset ($localName) {}
+
+
+ /**
+ * Returns whether current entry is a directory and not '.' or '..'
+ * @link https://php.net/manual/en/recursivedirectoryiterator.haschildren.php
+ * @param bool $allow_links [optional]
+ *
+ * @return bool whether the current entry is a directory, but not '.' or '..'
+ */
+ public function hasChildren ($allow_links = false) {}
+
+ /**
+ * Returns an iterator for the current entry if it is a directory
+ * @link https://php.net/manual/en/recursivedirectoryiterator.getchildren.php
+ * @return mixed The filename, file information, or $this depending on the set flags.
+ * See the FilesystemIterator
+ * constants.
+ */
+ public function getChildren () {}
+
+
+ /**
+ * Rewinds back to the beginning
+ * @link https://php.net/manual/en/filesystemiterator.rewind.php
+ * @return void No value is returned.
+ */
+ public function rewind () {}
+
+ /**
+ * Move to the next file
+ * @link https://php.net/manual/en/filesystemiterator.next.php
+ * @return void No value is returned.
+ */
+ public function next () {}
+
+ /**
+ * Retrieve the key for the current file
+ * @link https://php.net/manual/en/filesystemiterator.key.php
+ * @return string the pathname or filename depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function key () {}
+
+ /**
+ * The current file
+ * @link https://php.net/manual/en/filesystemiterator.current.php
+ * @return mixed The filename, file information, or $this depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function current () {}
+
+
+
+ /**
+ * Check whether current DirectoryIterator position is a valid file
+ * @link https://php.net/manual/en/directoryiterator.valid.php
+ * @return bool TRUE if the position is valid, otherwise FALSE
+ */
+ public function valid () {}
+
+ /**
+ * Seek to a DirectoryIterator item
+ * @link https://php.net/manual/en/directoryiterator.seek.php
+ * @param int $position
+ * The zero-based numeric position to seek to.
+ *
+ * @return void No value is returned.
+ */
+ public function seek ($position) {}
+
+
+}
+
+/**
+ * The PharFileInfo class provides a high-level interface to the contents
+ * and attributes of a single file within a phar archive.
+ * @link https://php.net/manual/en/class.pharfileinfo.php
+ */
+class PharFileInfo extends SplFileInfo {
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Construct a Phar entry object
+ * @link https://php.net/manual/en/pharfileinfo.construct.php
+ * @param string $filename
+ * The full url to retrieve a file. If you wish to retrieve the information
+ * for the file my/file.php from the phar boo.phar,
+ * the entry should be phar://boo.phar/my/file.php.
+ *
+ */
+ public function __construct ($filename) {}
+
+ public function __destruct () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Sets file-specific permission bits
+ * @link https://php.net/manual/en/pharfileinfo.chmod.php
+ * @param int $perms
+ * permissions (see chmod)
+ *
+ * @return void No value is returned.
+ */
+ public function chmod ($perms) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Compresses the current Phar entry with either zlib or bzip2 compression
+ * @link https://php.net/manual/en/pharfileinfo.compress.php
+ * @param int $compression
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function compress ($compression) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 2.0.0)
+ * Decompresses the current Phar entry within the phar
+ * @link https://php.net/manual/en/pharfileinfo.decompress.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function decompress () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.2.0)
+ * Deletes the metadata of the entry
+ * @link https://php.net/manual/en/pharfileinfo.delmetadata.php
+ * @return bool TRUE if successful, FALSE if the entry had no metadata.
+ * As with all functionality that modifies the contents of
+ * a phar, the phar.readonly INI variable
+ * must be off in order to succeed if the file is within a Phar
+ * archive. Files within PharData archives do not have
+ * this restriction.
+ */
+ public function delMetadata () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns the actual size of the file (with compression) inside the Phar archive
+ * @link https://php.net/manual/en/pharfileinfo.getcompressedsize.php
+ * @return int The size in bytes of the file within the Phar archive on disk.
+ */
+ public function getCompressedSize () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns CRC32 code or throws an exception if CRC has not been verified
+ * @link https://php.net/manual/en/pharfileinfo.getcrc32.php
+ * @return int The crc32 checksum of the file within the Phar archive.
+ */
+ public function getCRC32 () {}
+
+ public function getContent () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns file-specific meta-data saved with a file
+ * @link https://php.net/manual/en/pharfileinfo.getmetadata.php
+ * @param array $unserializeOptions [optional] if is set to anything other than the default,
+ * the resulting metadata won't be cached and this won't return the value from the cache
+ * @return mixed any PHP variable that can be serialized and is stored as meta-data for the file,
+ * or NULL if no meta-data is stored.
+ */
+ public function getMetadata (array $unserializeOptions = []) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns the Phar file entry flags
+ * @link https://php.net/manual/en/pharfileinfo.getpharflags.php
+ * @return int The Phar flags (always 0 in the current implementation)
+ */
+ public function getPharFlags () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.2.0)
+ * Returns the metadata of the entry
+ * @link https://php.net/manual/en/pharfileinfo.hasmetadata.php
+ * @return bool FALSE if no metadata is set or is NULL, TRUE if metadata is not NULL
+ */
+ public function hasMetadata () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns whether the entry is compressed
+ * @link https://php.net/manual/en/pharfileinfo.iscompressed.php
+ * @param int $compression [optional]
+ * One of Phar::GZ or Phar::BZ2,
+ * defaults to any compression.
+ *
+ * @return bool TRUE if the file is compressed within the Phar archive, FALSE if not.
+ */
+ public function isCompressed ($compression = 9021976) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Returns whether file entry has had its CRC verified
+ * @link https://php.net/manual/en/pharfileinfo.iscrcchecked.php
+ * @return bool TRUE if the file has had its CRC verified, FALSE if not.
+ */
+ public function isCRCChecked () {}
+
+ /**
+ * (PHP >= 5.3.0, PECL phar >= 1.0.0)
+ * Sets file-specific meta-data saved with a file
+ * @link https://php.net/manual/en/pharfileinfo.setmetadata.php
+ * @param mixed $metadata
+ * Any PHP variable containing information to store alongside a file
+ *
+ * The maximum allowed depth. Default -1 is used
+ * for any depth.
+ *
+ * @return void
+ */
+ public function setMaxDepth($maxDepth) { }
+
+ /**
+ * Get max depth
+ * @link https://php.net/manual/en/recursiveiteratoriterator.getmaxdepth.php
+ * @return int|false The maximum accepted depth, or false if any depth is allowed.
+ */
+ public function getMaxDepth() { }
+}
+
+/**
+ * Classes implementing OuterIterator can be used to iterate
+ * over iterators.
+ * @link https://php.net/manual/en/class.outeriterator.php
+ */
+interface OuterIterator extends Iterator {
+
+ /**
+ * Returns the inner iterator for the current entry.
+ * @link https://php.net/manual/en/outeriterator.getinneriterator.php
+ * @return Iterator The inner iterator for the current entry.
+ */
+ public function getInnerIterator();
+}
+
+
+/**
+ * This iterator wrapper allows the conversion of anything that is
+ * Traversable into an Iterator.
+ * It is important to understand that most classes that do not implement
+ * Iterators have reasons as most likely they do not allow the full
+ * Iterator feature set. If so, techniques should be provided to prevent
+ * misuse, otherwise expect exceptions or fatal errors.
+ * @link https://php.net/manual/en/class.iteratoriterator.php
+ */
+class IteratorIterator implements OuterIterator {
+
+ /**
+ * Create an iterator from anything that is traversable
+ * @link https://php.net/manual/en/iteratoriterator.construct.php
+ * @param Traversable $iterator
+ * @param string $class [optional]
+ */
+ public function __construct(Traversable $iterator, $class = '') { }
+
+ /**
+ * Get the inner iterator
+ * @link https://php.net/manual/en/iteratoriterator.getinneriterator.php
+ * @return Iterator The inner iterator as passed to IteratorIterator::__construct.
+ */
+ public function getInnerIterator() { }
+
+ /**
+ * Rewind to the first element
+ * @link https://php.net/manual/en/iteratoriterator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Checks if the iterator is valid
+ * @link https://php.net/manual/en/iteratoriterator.valid.php
+ * @return bool true if the iterator is valid, otherwise false
+ */
+ public function valid() { }
+
+ /**
+ * Get the key of the current element
+ * @link https://php.net/manual/en/iteratoriterator.key.php
+ * @return string|float|int|bool|null The key of the current element.
+ */
+ public function key() { }
+
+ /**
+ * Get the current value
+ * @link https://php.net/manual/en/iteratoriterator.current.php
+ * @return mixed The value of the current element.
+ */
+ public function current() { }
+
+ /**
+ * Forward to the next element
+ * @link https://php.net/manual/en/iteratoriterator.next.php
+ * @return void
+ */
+ public function next() { }
+}
+
+/**
+ * This abstract iterator filters out unwanted values. This class should be extended to
+ * implement custom iterator filters. The FilterIterator::accept
+ * must be implemented in the subclass.
+ * @link https://php.net/manual/en/class.filteriterator.php
+ */
+abstract class FilterIterator extends IteratorIterator {
+
+ /**
+ * Check whether the current element of the iterator is acceptable
+ * @link https://php.net/manual/en/filteriterator.accept.php
+ * @return bool true if the current element is acceptable, otherwise false.
+ */
+ abstract public function accept();
+
+ /**
+ * Construct a filterIterator
+ * @link https://php.net/manual/en/filteriterator.construct.php
+ * @param Iterator $iterator
+ */
+ public function __construct(Iterator $iterator) { }
+
+ /**
+ * Rewind the iterator
+ * @link https://php.net/manual/en/filteriterator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Check whether the current element is valid
+ * @link https://php.net/manual/en/filteriterator.valid.php
+ * @return bool true if the current element is valid, otherwise false
+ */
+ public function valid() { }
+
+ /**
+ * Get the current key
+ * @link https://php.net/manual/en/filteriterator.key.php
+ * @return string|float|int|bool|null The current key.
+ */
+ public function key() { }
+
+ /**
+ * Get the current element value
+ * @link https://php.net/manual/en/filteriterator.current.php
+ * @return mixed The current element value.
+ */
+ public function current() { }
+
+ /**
+ * Move the iterator forward
+ * @link https://php.net/manual/en/filteriterator.next.php
+ * @return void
+ */
+ public function next() { }
+
+ /**
+ * Get the inner iterator
+ * @link https://php.net/manual/en/filteriterator.getinneriterator.php
+ * @return Iterator The inner iterator.
+ */
+ public function getInnerIterator() { }
+}
+
+/**
+ * This abstract iterator filters out unwanted values for a RecursiveIterator.
+ * This class should be extended to implement custom filters.
+ * The RecursiveFilterIterator::accept must be implemented in the subclass.
+ * @link https://php.net/manual/en/class.recursivefilteriterator.php
+ */
+abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator {
+
+ /**
+ * Create a RecursiveFilterIterator from a RecursiveIterator
+ * @link https://php.net/manual/en/recursivefilteriterator.construct.php
+ * @param RecursiveIterator $iterator
+ */
+ public function __construct(RecursiveIterator $iterator) { }
+
+ /**
+ * Check whether the inner iterator's current element has children
+ * @link https://php.net/manual/en/recursivefilteriterator.haschildren.php
+ * @return bool true if the inner iterator has children, otherwise false
+ */
+ public function hasChildren() { }
+
+ /**
+ * Return the inner iterator's children contained in a RecursiveFilterIterator
+ * @link https://php.net/manual/en/recursivefilteriterator.getchildren.php
+ * @return RecursiveFilterIterator containing the inner iterator's children.
+ */
+ public function getChildren() { }
+}
+
+/**
+ * This extended FilterIterator allows a recursive iteration using RecursiveIteratorIterator that only shows those elements which have children.
+ * @link https://php.net/manual/en/class.parentiterator.php
+ */
+class ParentIterator extends RecursiveFilterIterator {
+
+ /**
+ * Determines acceptability
+ * @link https://php.net/manual/en/parentiterator.accept.php
+ * @return bool true if the current element is acceptable, otherwise false.
+ */
+ public function accept() { }
+
+ /**
+ * Constructs a ParentIterator
+ * @link https://php.net/manual/en/parentiterator.construct.php
+ * @param RecursiveIterator $iterator
+ */
+ public function __construct(RecursiveIterator $iterator) { }
+
+ /**
+ * Check whether the inner iterator's current element has children
+ * @link https://php.net/manual/en/recursivefilteriterator.haschildren.php
+ * @return bool true if the inner iterator has children, otherwise false
+ */
+ public function hasChildren() { }
+
+ /**
+ * Return the inner iterator's children contained in a RecursiveFilterIterator
+ * @link https://php.net/manual/en/recursivefilteriterator.getchildren.php
+ * @return ParentIterator containing the inner iterator's children.
+ */
+ public function getChildren() { }
+}
+
+/**
+ * The Seekable iterator.
+ * @link https://php.net/manual/en/class.seekableiterator.php
+ */
+interface SeekableIterator extends Iterator {
+
+ /**
+ * Seeks to a position
+ * @link https://php.net/manual/en/seekableiterator.seek.php
+ * @param int $position
+ * The position to seek to.
+ *
+ * @return void
+ */
+ public function seek($position);
+}
+
+/**
+ * The LimitIterator class allows iteration over
+ * a limited subset of items in an Iterator.
+ * @link https://php.net/manual/en/class.limititerator.php
+ */
+class LimitIterator extends IteratorIterator {
+
+ /**
+ * Construct a LimitIterator
+ * @link https://php.net/manual/en/limititerator.construct.php
+ * @param Iterator $iterator The iterator to limit.
+ * @param int $offset [optional] The offset to start at. Must be zero or greater.
+ * @param int $limit [optional] The number of items to iterate. Must be -1 or greater. -1, the default, means no limit.
+ */
+ public function __construct(Iterator $iterator, $offset = 0, $limit = -1) { }
+
+ /**
+ * Rewind the iterator to the specified starting offset
+ * @link https://php.net/manual/en/limititerator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Check whether the current element is valid
+ * @link https://php.net/manual/en/limititerator.valid.php
+ * @return bool true on success or false on failure.
+ */
+ public function valid() { }
+
+ /**
+ * Get current key
+ * @link https://php.net/manual/en/limititerator.key.php
+ * @return string|float|int|bool|null the key for the current item.
+ */
+ public function key() { }
+
+ /**
+ * Get current element
+ * @link https://php.net/manual/en/limititerator.current.php
+ * @return mixed the current element or null if there is none.
+ */
+ public function current() { }
+
+ /**
+ * Move the iterator forward
+ * @link https://php.net/manual/en/limititerator.next.php
+ * @return void
+ */
+ public function next() { }
+
+ /**
+ * Seek to the given position
+ * @link https://php.net/manual/en/limititerator.seek.php
+ * @param int $offset
+ * The position to seek to.
+ *
+ * @return int the offset position after seeking.
+ */
+ public function seek($offset) { }
+
+ /**
+ * Return the current position
+ * @link https://php.net/manual/en/limititerator.getposition.php
+ * @return int The current position.
+ */
+ public function getPosition() { }
+
+ /**
+ * Get inner iterator
+ * @link https://php.net/manual/en/limititerator.getinneriterator.php
+ * @return Iterator The inner iterator passed to LimitIterator::__construct.
+ */
+ public function getInnerIterator() { }
+}
+
+/**
+ * This object supports cached iteration over another iterator.
+ * @link https://php.net/manual/en/class.cachingiterator.php
+ */
+class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable {
+
+ /**
+ * String conversion flag (mutually exclusive): Uses the current element for the iterator's string conversion.
+ * This converts the current element to a string only once, regardless of whether it is needed or not.
+ */
+ const CALL_TOSTRING = 1;
+
+ /**
+ * String conversion flag (mutually exclusive). Uses the current key for the iterator's string conversion.
+ */
+ const TOSTRING_USE_KEY = 2;
+
+ /**
+ * String conversion flag (mutually exclusive). Uses the current element for the iterator's string conversion.
+ * This converts the current element to a string only when (and every time) it is needed.
+ */
+ const TOSTRING_USE_CURRENT = 4;
+
+ /**
+ * String conversion flag (mutually exclusive). Forwards the string conversion to the inner iterator.
+ * This converts the inner iterator to a string only once, regardless of whether it is needed or not.
+ */
+ const TOSTRING_USE_INNER = 8;
+
+ /**
+ * Ignore exceptions thrown in accessing children. Only used with {@see RecursiveCachingIterator}.
+ */
+ const CATCH_GET_CHILD = 16;
+
+ /**
+ * Cache all read data. This is needed to use {@see CachingIterator::getCache}, and ArrayAccess and Countable methods.
+ */
+ const FULL_CACHE = 256;
+
+ /**
+ * Constructs a new CachingIterator.
+ * @link https://php.net/manual/en/cachingiterator.construct.php
+ * @param Iterator $iterator The iterator to cache.
+ * @param int $flags [optional] A bitmask of flags. See CachingIterator class constants for details.
+ */
+ public function __construct(Iterator $iterator, $flags = self::CALL_TOSTRING) { }
+
+ /**
+ * Rewind the iterator
+ * @link https://php.net/manual/en/cachingiterator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Check whether the current element is valid
+ * @link https://php.net/manual/en/cachingiterator.valid.php
+ * @return bool true on success or false on failure.
+ */
+ public function valid() { }
+
+ /**
+ * Return the key for the current element
+ * @link https://php.net/manual/en/cachingiterator.key.php
+ * @return string|float|int|bool|null
+ */
+ public function key() { }
+
+ /**
+ * Return the current element
+ * @link https://php.net/manual/en/cachingiterator.current.php
+ * @return mixed
+ */
+ public function current() { }
+
+ /**
+ * Move the iterator forward
+ * @link https://php.net/manual/en/cachingiterator.next.php
+ * @return void
+ */
+ public function next() { }
+
+ /**
+ * Check whether the inner iterator has a valid next element
+ * @link https://php.net/manual/en/cachingiterator.hasnext.php
+ * @return bool true on success or false on failure.
+ */
+ public function hasNext() { }
+
+ /**
+ * Return the string representation of the current iteration based on the flag being used.
+ * @link https://php.net/manual/en/cachingiterator.tostring.php
+ * @return string The string representation of the current iteration based on the flag being used.
+ */
+ public function __toString() { }
+
+ /**
+ * Returns the inner iterator
+ * @link https://php.net/manual/en/cachingiterator.getinneriterator.php
+ * @return Iterator an object implementing the Iterator interface.
+ */
+ public function getInnerIterator() { }
+
+ /**
+ * Get flags used
+ * @link https://php.net/manual/en/cachingiterator.getflags.php
+ * @return int Bitmask of the flags
+ */
+ public function getFlags() { }
+
+ /**
+ * The setFlags purpose
+ * @link https://php.net/manual/en/cachingiterator.setflags.php
+ * @param int $flags Bitmask of the flags to set.
+ * @return void
+ */
+ public function setFlags($flags) { }
+
+ /**
+ * Internal cache array index to retrieve.
+ * @link https://php.net/manual/en/cachingiterator.offsetget.php
+ * @param string $key The index of the element to retrieve.
+ * @return mixed
+ * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used.
+ */
+ public function offsetGet($key) { }
+
+ /**
+ * Set an element on the internal cache array.
+ * @link https://php.net/manual/en/cachingiterator.offsetset.php
+ * @param string $key The index of the element to be set.
+ * @param string $value The new value for the index.
+ * @return void
+ * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used.
+ */
+ public function offsetSet($key, $value) { }
+
+ /**
+ * Remove an element from the internal cache array.
+ * @link https://php.net/manual/en/cachingiterator.offsetunset.php
+ * @param string $key The index of the element to be unset.
+ * @return void
+ * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used.
+ */
+ public function offsetUnset($key) { }
+
+ /**
+ * Return whether an element at the index exists on the internal cache array.
+ * @link https://php.net/manual/en/cachingiterator.offsetexists.php
+ * @param string $key The index being checked.
+ * @return bool true if an entry referenced by the offset exists, false otherwise.
+ * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used.
+ */
+ public function offsetExists($key) { }
+
+ /**
+ * Retrieve the contents of the cache
+ * @link https://php.net/manual/en/cachingiterator.getcache.php
+ * @return array An array containing the cache items.
+ * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used.
+ */
+ public function getCache() { }
+
+ /**
+ * The number of elements in the iterator
+ * @link https://php.net/manual/en/cachingiterator.count.php
+ * @return int The count of the elements iterated over.
+ * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used.
+ * @since 5.2.2
+ */
+ public function count() { }
+}
+
+/**
+ * ...
+ * @link https://php.net/manual/en/class.recursivecachingiterator.php
+ */
+class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator {
+
+ /**
+ * Constructs a new RecursiveCachingIterator.
+ * @link https://php.net/manual/en/recursivecachingiterator.construct.php
+ * @param Iterator $iterator The iterator to cache.
+ * @param int $flags [optional] A bitmask of flags. See CachingIterator class constants for details.
+ */
+ public function __construct(Iterator $iterator, $flags = self::CALL_TOSTRING) { }
+
+ /**
+ * Check whether the current element of the inner iterator has children
+ * @link https://php.net/manual/en/recursivecachingiterator.haschildren.php
+ * @return bool true if the inner iterator has children, otherwise false
+ */
+ public function hasChildren() { }
+
+ /**
+ * Return the inner iterator's children as a RecursiveCachingIterator
+ * @link https://php.net/manual/en/recursivecachingiterator.getchildren.php
+ * @return RecursiveCachingIterator The inner iterator's children, as a RecursiveCachingIterator.
+ */
+ public function getChildren() { }
+}
+
+
+/**
+ * This iterator cannot be rewinded.
+ * @link https://php.net/manual/en/class.norewinditerator.php
+ */
+class NoRewindIterator extends IteratorIterator {
+
+ /**
+ * Construct a NoRewindIterator
+ * @link https://php.net/manual/en/norewinditerator.construct.php
+ * @param Iterator $iterator
+ */
+ public function __construct(Iterator $iterator) { }
+
+ /**
+ * Prevents the rewind operation on the inner iterator.
+ * @link https://php.net/manual/en/norewinditerator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Validates the iterator
+ * @link https://php.net/manual/en/norewinditerator.valid.php
+ * @return bool true on success or false on failure.
+ */
+ public function valid() { }
+
+ /**
+ * Get the current key
+ * @link https://php.net/manual/en/norewinditerator.key.php
+ * @return string|float|int|bool|null The current key.
+ */
+ public function key() { }
+
+ /**
+ * Get the current value
+ * @link https://php.net/manual/en/norewinditerator.current.php
+ * @return mixed The current value.
+ */
+ public function current() { }
+
+ /**
+ * Forward to the next element
+ * @link https://php.net/manual/en/norewinditerator.next.php
+ * @return void
+ */
+ public function next() { }
+
+ /**
+ * Get the inner iterator
+ * @link https://php.net/manual/en/norewinditerator.getinneriterator.php
+ * @return Iterator The inner iterator, as passed to NoRewindIterator::__construct.
+ */
+ public function getInnerIterator() { }
+}
+
+/**
+ * An Iterator that iterates over several iterators one after the other.
+ * @link https://php.net/manual/en/class.appenditerator.php
+ */
+class AppendIterator extends IteratorIterator {
+
+ /**
+ * Constructs an AppendIterator
+ * @link https://php.net/manual/en/appenditerator.construct.php
+ */
+ public function __construct() { }
+
+ /**
+ * Appends an iterator
+ * @link https://php.net/manual/en/appenditerator.append.php
+ * @param Iterator $iterator
+ * The iterator to append.
+ *
+ * @return void
+ */
+ public function append(Iterator $iterator) { }
+
+ /**
+ * Rewinds the Iterator
+ * @link https://php.net/manual/en/appenditerator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Checks validity of the current element
+ * @link https://php.net/manual/en/appenditerator.valid.php
+ * @return bool true on success or false on failure.
+ */
+ public function valid() { }
+
+ /**
+ * Gets the current key
+ * @link https://php.net/manual/en/appenditerator.key.php
+ * @return string|float|int|bool|null The current key if it is valid or null otherwise.
+ */
+ public function key() { }
+
+ /**
+ * Gets the current value
+ * @link https://php.net/manual/en/appenditerator.current.php
+ * @return mixed The current value if it is valid or null otherwise.
+ */
+ public function current() { }
+
+ /**
+ * Moves to the next element
+ * @link https://php.net/manual/en/appenditerator.next.php
+ * @return void
+ */
+ public function next() { }
+
+ /**
+ * Gets an inner iterator
+ * @link https://php.net/manual/en/appenditerator.getinneriterator.php
+ * @return Iterator the current inner Iterator.
+ */
+ public function getInnerIterator() { }
+
+ /**
+ * Gets an index of iterators
+ * @link https://php.net/manual/en/appenditerator.getiteratorindex.php
+ * @return int The index of iterators.
+ */
+ public function getIteratorIndex() { }
+
+ /**
+ * The getArrayIterator method
+ * @link https://php.net/manual/en/appenditerator.getarrayiterator.php
+ * @return ArrayIterator containing the appended iterators.
+ */
+ public function getArrayIterator() { }
+}
+
+/**
+ * The InfiniteIterator allows one to
+ * infinitely iterate over an iterator without having to manually
+ * rewind the iterator upon reaching its end.
+ * @link https://php.net/manual/en/class.infiniteiterator.php
+ */
+class InfiniteIterator extends IteratorIterator {
+
+ /**
+ * Constructs an InfiniteIterator
+ * @link https://php.net/manual/en/infiniteiterator.construct.php
+ * @param Iterator $iterator
+ */
+ public function __construct(Iterator $iterator) { }
+
+ /**
+ * Moves the inner Iterator forward or rewinds it
+ * @link https://php.net/manual/en/infiniteiterator.next.php
+ * @return void
+ */
+ public function next() { }
+}
+
+/**
+ * This iterator can be used to filter another iterator based on a regular expression.
+ * @link https://php.net/manual/en/class.regexiterator.php
+ */
+class RegexIterator extends FilterIterator {
+
+ /**
+ * Return all matches for the current entry @see preg_match_all
+ */
+ const ALL_MATCHES = 2;
+
+ /**
+ * Return the first match for the current entry @see preg_match
+ */
+ const GET_MATCH = 1;
+
+ /**
+ * Only execute match (filter) for the current entry @see preg_match
+ */
+ const MATCH = 0;
+
+ /**
+ * Replace the current entry (Not fully implemented yet) @see preg_replace
+ */
+ const REPLACE = 4;
+
+ /**
+ * Returns the split values for the current entry @see preg_split
+ */
+ const SPLIT = 3;
+
+ /**
+ * Special flag: Match the entry key instead of the entry value.
+ */
+ const USE_KEY = 1;
+
+ const INVERT_MATCH = 2;
+
+ public $replacement;
+
+
+ /**
+ * Create a new RegexIterator
+ * @link https://php.net/manual/en/regexiterator.construct.php
+ * @param Iterator $iterator The iterator to apply this regex filter to.
+ * @param string $regex The regular expression to match.
+ * @param int $pattern [optional] Operation mode, see RegexIterator::setMode() for a list of modes.
+ * @param int $flags [optional] Special flags, see RegexIterator::setFlags() for a list of available flags.
+ * @param int $pregFlags [optional] The regular expression flags. These flags depend on the operation mode parameter
+ */
+ public function __construct(Iterator $iterator, $pattern, $mode = self::MATCH, $flags = 0, $pregFlags = 0) { }
+
+ /**
+ * Get accept status
+ * @link https://php.net/manual/en/regexiterator.accept.php
+ * @return bool true if a match, false otherwise.
+ */
+ public function accept() { }
+
+ /**
+ * Returns operation mode.
+ * @link https://php.net/manual/en/regexiterator.getmode.php
+ * @return int the operation mode.
+ */
+ public function getMode() { }
+
+ /**
+ * Sets the operation mode.
+ * @link https://php.net/manual/en/regexiterator.setmode.php
+ * @param int $mode
+ * The operation mode.
+ *
+ *
+ * The available modes are listed below. The actual
+ * meanings of these modes are described in the
+ * predefined constants.
+ *
+ * RegexIterator modes
+ *
+ *
value
+ *
constant
+ *
+ *
+ *
0
+ *
+ * RegexIterator::MATCH
+ *
+ *
+ *
+ *
1
+ *
+ * RegexIterator::GET_MATCH
+ *
+ *
+ *
+ *
2
+ *
+ * RegexIterator::ALL_MATCHES
+ *
+ *
+ *
+ *
3
+ *
+ * RegexIterator::SPLIT
+ *
+ *
+ *
+ *
4
+ *
+ * RegexIterator::REPLACE
+ *
+ *
+ *
+ *
+ * @return void
+ */
+ public function setMode($mode) { }
+
+ /**
+ * Get flags
+ * @link https://php.net/manual/en/regexiterator.getflags.php
+ * @return int the set flags.
+ */
+ public function getFlags() { }
+
+ /**
+ * Sets the flags.
+ * @link https://php.net/manual/en/regexiterator.setflags.php
+ * @param int $flags
+ * The flags to set, a bitmask of class constants.
+ *
+ *
+ * The available flags are listed below. The actual
+ * meanings of these flags are described in the
+ * predefined constants.
+ *
+ * RegexIterator flags
+ *
+ *
value
+ *
constant
+ *
+ *
+ *
1
+ *
+ * RegexIterator::USE_KEY
+ *
+ *
+ *
+ *
+ * @return void
+ */
+ public function setFlags($flags) { }
+
+ /**
+ * Returns current regular expression
+ * @link https://secure.php.net/manual/en/regexiterator.getregex.php
+ * @return string
+ * @since 5.4
+ */
+ public function getRegex() {}
+
+ /**
+ * Returns the regular expression flags.
+ * @link https://php.net/manual/en/regexiterator.getpregflags.php
+ * @return int a bitmask of the regular expression flags.
+ */
+ public function getPregFlags() { }
+
+ /**
+ * Sets the regular expression flags.
+ * @link https://php.net/manual/en/regexiterator.setpregflags.php
+ * @param int $pregFlags
+ * The regular expression flags. See RegexIterator::__construct
+ * for an overview of available flags.
+ *
+ * @return void
+ */
+ public function setPregFlags($pregFlags) { }
+}
+
+/**
+ * This recursive iterator can filter another recursive iterator via a regular expression.
+ * @link https://php.net/manual/en/class.recursiveregexiterator.php
+ */
+class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
+ /**
+ * Creates a new RecursiveRegexIterator.
+ * @link https://php.net/manual/en/recursiveregexiterator.construct.php
+ * @param RecursiveIterator $iterator The iterator to apply this regex filter to.
+ * @param string $pattern The regular expression to match.
+ * @param int $mode [optional] Operation mode, see RegexIterator::setMode() for a list of modes.
+ * @param int $flags [optional] Special flags, see RegexIterator::setFlags() for a list of available flags.
+ * @param int $pregFlags [optional] The regular expression flags. These flags depend on the operation mode parameter
+ */
+ public function __construct(RecursiveIterator $iterator, $pattern, $mode = self::MATCH, $flags = 0, $pregFlags = 0) { }
+
+ /**
+ * Returns whether an iterator can be obtained for the current entry.
+ * @link https://php.net/manual/en/recursiveregexiterator.haschildren.php
+ * @return bool true if an iterator can be obtained for the current entry, otherwise returns false.
+ */
+ public function hasChildren() { }
+
+ /**
+ * Returns an iterator for the current entry.
+ * @link https://php.net/manual/en/recursiveregexiterator.getchildren.php
+ * @return RecursiveRegexIterator An iterator for the current entry, if it can be iterated over by the inner iterator.
+ */
+ public function getChildren() { }
+}
+
+/**
+ * Allows iterating over a RecursiveIterator to generate an ASCII graphic tree.
+ * @link https://php.net/manual/en/class.recursivetreeiterator.php
+ */
+class RecursiveTreeIterator extends RecursiveIteratorIterator {
+
+ const BYPASS_CURRENT = 4;
+ const BYPASS_KEY = 8;
+
+ const PREFIX_LEFT = 0;
+ const PREFIX_MID_HAS_NEXT = 1;
+ const PREFIX_MID_LAST = 2;
+ const PREFIX_END_HAS_NEXT = 3;
+ const PREFIX_END_LAST = 4;
+ const PREFIX_RIGHT = 5;
+
+
+ /**
+ * Construct a RecursiveTreeIterator
+ * @link https://php.net/manual/en/recursivetreeiterator.construct.php
+ * @param RecursiveIterator|IteratorAggregate $iterator
+ * @param int $flags [optional] Flags to control the behavior of the RecursiveTreeIterator object.
+ * @param int $cachingIteratorFlags [optional] Flags to affect the behavior of the {@see RecursiveCachingIterator} used internally.
+ * @param int $mode [optional] Flags to affect the behavior of the {@see RecursiveIteratorIterator} used internally.
+ */
+ public function __construct($iterator, $flags = self::BYPASS_KEY, $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD,
+ $mode = self::SELF_FIRST) { }
+
+ /**
+ * Rewind iterator
+ * @link https://php.net/manual/en/recursivetreeiterator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Check validity
+ * @link https://php.net/manual/en/recursivetreeiterator.valid.php
+ * @return bool true if the current position is valid, otherwise false
+ */
+ public function valid() { }
+
+ /**
+ * Get the key of the current element
+ * @link https://php.net/manual/en/recursivetreeiterator.key.php
+ * @return string the current key prefixed and postfixed.
+ */
+ public function key() { }
+
+ /**
+ * Get current element
+ * @link https://php.net/manual/en/recursivetreeiterator.current.php
+ * @return string the current element prefixed and postfixed.
+ */
+ public function current() { }
+
+ /**
+ * Move to next element
+ * @link https://php.net/manual/en/recursivetreeiterator.next.php
+ * @return void
+ */
+ public function next() { }
+
+ /**
+ * Begin iteration
+ * @link https://php.net/manual/en/recursivetreeiterator.beginiteration.php
+ * @return RecursiveIterator A RecursiveIterator.
+ */
+ public function beginIteration() { }
+
+ /**
+ * End iteration
+ * @link https://php.net/manual/en/recursivetreeiterator.enditeration.php
+ * @return void
+ */
+ public function endIteration() { }
+
+ /**
+ * Has children
+ * @link https://php.net/manual/en/recursivetreeiterator.callhaschildren.php
+ * @return bool true if there are children, otherwise false
+ */
+ public function callHasChildren() { }
+
+ /**
+ * Get children
+ * @link https://php.net/manual/en/recursivetreeiterator.callgetchildren.php
+ * @return RecursiveIterator A RecursiveIterator.
+ */
+ public function callGetChildren() { }
+
+ /**
+ * Begin children
+ * @link https://php.net/manual/en/recursivetreeiterator.beginchildren.php
+ * @return void
+ */
+ public function beginChildren() { }
+
+ /**
+ * End children
+ * @link https://php.net/manual/en/recursivetreeiterator.endchildren.php
+ * @return void
+ */
+ public function endChildren() { }
+
+ /**
+ * Next element
+ * @link https://php.net/manual/en/recursivetreeiterator.nextelement.php
+ * @return void
+ */
+ public function nextElement() { }
+
+ /**
+ * Get the prefix
+ * @link https://php.net/manual/en/recursivetreeiterator.getprefix.php
+ * @return string the string to place in front of current element
+ */
+ public function getPrefix() { }
+
+ /**
+ * @param string $postfix
+ */
+ public function setPostfix($postfix) {}
+
+ /**
+ * Set a part of the prefix
+ * @link https://php.net/manual/en/recursivetreeiterator.setprefixpart.php
+ * @param int $part
+ * One of the RecursiveTreeIterator::PREFIX_* constants.
+ *
+ * @param string $value
+ * The value to assign to the part of the prefix specified in part.
+ *
+ * @return void
+ */
+ public function setPrefixPart($part, $value) { }
+
+ /**
+ * Get current entry
+ * @link https://php.net/manual/en/recursivetreeiterator.getentry.php
+ * @return string the part of the tree built for the current element.
+ */
+ public function getEntry() { }
+
+ /**
+ * Get the postfix
+ * @link https://php.net/manual/en/recursivetreeiterator.getpostfix.php
+ * @return string to place after the current element.
+ */
+ public function getPostfix() { }
+}
+
+/**
+ * This class allows objects to work as arrays.
+ * @link https://php.net/manual/en/class.arrayobject.php
+ */
+class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable {
+ /**
+ * Properties of the object have their normal functionality when accessed as list (var_dump, foreach, etc.).
+ */
+ const STD_PROP_LIST = 1;
+
+ /**
+ * Entries can be accessed as properties (read and write).
+ */
+ const ARRAY_AS_PROPS = 2;
+
+
+ /**
+ * Construct a new array object
+ * @link https://php.net/manual/en/arrayobject.construct.php
+ * @param array|object $array The input parameter accepts an array or an Object.
+ * @param int $flags Flags to control the behaviour of the ArrayObject object.
+ * @param string $iteratorClass Specify the class that will be used for iteration of the ArrayObject object. ArrayIterator is the default class used.
+ *
+ */
+ public function __construct($array = array(), $flags = 0, $iteratorClass = "ArrayIterator") { }
+
+ /**
+ * Returns whether the requested index exists
+ * @link https://php.net/manual/en/arrayobject.offsetexists.php
+ * @param mixed $key
+ * The index being checked.
+ *
+ * @return bool true if the requested index exists, otherwise false
+ */
+ public function offsetExists($key) { }
+
+ /**
+ * Returns the value at the specified index
+ * @link https://php.net/manual/en/arrayobject.offsetget.php
+ * @param mixed $key
+ * The index with the value.
+ *
+ * @return mixed|false The value at the specified index or false.
+ */
+ public function offsetGet($key) { }
+
+ /**
+ * Sets the value at the specified index to newval
+ * @link https://php.net/manual/en/arrayobject.offsetset.php
+ * @param mixed $key
+ * The index being set.
+ *
+ * @param mixed $value
+ * The new value for the index.
+ *
+ * @return void
+ */
+ public function offsetSet($key, $value) { }
+
+ /**
+ * Unsets the value at the specified index
+ * @link https://php.net/manual/en/arrayobject.offsetunset.php
+ * @param mixed $key
+ * The index being unset.
+ *
+ * @return void
+ */
+ public function offsetUnset($key) { }
+
+ /**
+ * Appends the value
+ * @link https://php.net/manual/en/arrayobject.append.php
+ * @param mixed $value
+ * The value being appended.
+ *
+ * @return void
+ */
+ public function append($value) { }
+
+ /**
+ * Creates a copy of the ArrayObject.
+ * @link https://php.net/manual/en/arrayobject.getarraycopy.php
+ * @return array a copy of the array. When the ArrayObject refers to an object
+ * an array of the public properties of that object will be returned.
+ */
+ public function getArrayCopy() { }
+
+ /**
+ * Get the number of public properties in the ArrayObject
+ * When the ArrayObject is constructed from an array all properties are public.
+ * @link https://php.net/manual/en/arrayobject.count.php
+ * @return int The number of public properties in the ArrayObject.
+ */
+ public function count() { }
+
+ /**
+ * Gets the behavior flags.
+ * @link https://php.net/manual/en/arrayobject.getflags.php
+ * @return int the behavior flags of the ArrayObject.
+ */
+ public function getFlags() { }
+
+ /**
+ * Sets the behavior flags.
+ * @link https://php.net/manual/en/arrayobject.setflags.php
+ * @param int $flags
+ * The new ArrayObject behavior.
+ * It takes on either a bitmask, or named constants. Using named
+ * constants is strongly encouraged to ensure compatibility for future
+ * versions.
+ *
+ *
+ * The available behavior flags are listed below. The actual
+ * meanings of these flags are described in the
+ * predefined constants.
+ *
+ * ArrayObject behavior flags
+ *
+ *
value
+ *
constant
+ *
+ *
+ *
1
+ *
+ * ArrayObject::STD_PROP_LIST
+ *
+ *
+ *
+ *
2
+ *
+ * ArrayObject::ARRAY_AS_PROPS
+ *
+ *
+ *
+ *
+ * @return void
+ */
+ public function setFlags($flags) { }
+
+ /**
+ * Sort the entries by value
+ * @link https://php.net/manual/en/arrayobject.asort.php
+ * @param int $flags [optional]
+ * @return void
+ */
+ public function asort($flags = SORT_REGULAR) { }
+
+ /**
+ * Sort the entries by key
+ * @link https://php.net/manual/en/arrayobject.ksort.php
+ * @param int $flags [optional]
+ * @return void
+ */
+ public function ksort($flags = SORT_REGULAR) { }
+
+ /**
+ * Sort the entries with a user-defined comparison function and maintain key association
+ * @link https://php.net/manual/en/arrayobject.uasort.php
+ * @param callback $callback
+ * Function cmp_function should accept two
+ * parameters which will be filled by pairs of entries.
+ * The comparison function must return an integer less than, equal
+ * to, or greater than zero if the first argument is considered to
+ * be respectively less than, equal to, or greater than the
+ * second.
+ *
+ * @return void
+ */
+ public function uasort($callback) { }
+
+ /**
+ * Sort the entries by keys using a user-defined comparison function
+ * @link https://php.net/manual/en/arrayobject.uksort.php
+ * @param callback $callback
+ * The callback comparison function.
+ *
+ *
+ * Function cmp_function should accept two
+ * parameters which will be filled by pairs of entry keys.
+ * The comparison function must return an integer less than, equal
+ * to, or greater than zero if the first argument is considered to
+ * be respectively less than, equal to, or greater than the
+ * second.
+ *
+ * @return void
+ */
+ public function uksort($callback) { }
+
+ /**
+ * Sort entries using a "natural order" algorithm
+ * @link https://php.net/manual/en/arrayobject.natsort.php
+ * @return void
+ */
+ public function natsort() { }
+
+ /**
+ * Sort an array using a case insensitive "natural order" algorithm
+ * @link https://php.net/manual/en/arrayobject.natcasesort.php
+ * @return void
+ */
+ public function natcasesort() { }
+
+ /**
+ * Unserialize an ArrayObject
+ * @link https://php.net/manual/en/arrayobject.unserialize.php
+ * @param string $data
+ * The serialized ArrayObject.
+ *
+ * @return void The unserialized ArrayObject.
+ */
+ public function unserialize($data) { }
+
+ /**
+ * Serialize an ArrayObject
+ * @link https://php.net/manual/en/arrayobject.serialize.php
+ * @return string The serialized representation of the ArrayObject.
+ */
+ public function serialize() { }
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __serialize(): array {}
+
+ /**
+ * @param array $data
+ * @since 7.4
+ */
+ public function __unserialize(array $data): void {}
+
+ /**
+ * Create a new iterator from an ArrayObject instance
+ * @link https://php.net/manual/en/arrayobject.getiterator.php
+ * @return ArrayIterator An iterator from an ArrayObject.
+ */
+ public function getIterator() { }
+
+ /**
+ * Exchange the array for another one.
+ * @link https://php.net/manual/en/arrayobject.exchangearray.php
+ * @param mixed $array
+ * The new array or object to exchange with the current array.
+ *
+ * @return array the old array.
+ */
+ public function exchangeArray($array) { }
+
+ /**
+ * Sets the iterator classname for the ArrayObject.
+ * @link https://php.net/manual/en/arrayobject.setiteratorclass.php
+ * @param string $iteratorClass
+ * The classname of the array iterator to use when iterating over this object.
+ *
+ * @return void
+ */
+ public function setIteratorClass($iteratorClass) { }
+
+ /**
+ * Gets the iterator classname for the ArrayObject.
+ * @link https://php.net/manual/en/arrayobject.getiteratorclass.php
+ * @return string the iterator class name that is used to iterate over this object.
+ */
+ public function getIteratorClass() { }
+}
+
+/**
+ * This iterator allows to unset and modify values and keys while iterating
+ * over Arrays and Objects.
+ * @link https://php.net/manual/en/class.arrayiterator.php
+ */
+class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable {
+ const STD_PROP_LIST = 1;
+ const ARRAY_AS_PROPS = 2;
+
+
+ /**
+ * Construct an ArrayIterator
+ * @link https://php.net/manual/en/arrayiterator.construct.php
+ * @param array $array The array or object to be iterated on.
+ * @param int $flags Flags to control the behaviour of the ArrayObject object.
+ * @see ArrayObject::setFlags()
+ */
+ public function __construct($array = array(), $flags = 0) { }
+
+ /**
+ * Check if offset exists
+ * @link https://php.net/manual/en/arrayiterator.offsetexists.php
+ * @param string $key
+ * The offset being checked.
+ *
+ * @return bool true if the offset exists, otherwise false
+ */
+ public function offsetExists($key) { }
+
+ /**
+ * Get value for an offset
+ * @link https://php.net/manual/en/arrayiterator.offsetget.php
+ * @param string $key
+ * The offset to get the value from.
+ *
+ * @return mixed The value at offset index.
+ */
+ public function offsetGet($key) { }
+
+ /**
+ * Set value for an offset
+ * @link https://php.net/manual/en/arrayiterator.offsetset.php
+ * @param string $key
+ * The index to set for.
+ *
+ * @param string $value
+ * The new value to store at the index.
+ *
+ * @return void
+ */
+ public function offsetSet($key, $value) { }
+
+ /**
+ * Unset value for an offset
+ * @link https://php.net/manual/en/arrayiterator.offsetunset.php
+ * @param string $key
+ * The offset to unset.
+ *
+ * @return void
+ */
+ public function offsetUnset($key) { }
+
+ /**
+ * Append an element
+ * @link https://php.net/manual/en/arrayiterator.append.php
+ * @param mixed $value
+ * The value to append.
+ *
+ * @return void
+ */
+ public function append($value) { }
+
+ /**
+ * Get array copy
+ * @link https://php.net/manual/en/arrayiterator.getarraycopy.php
+ * @return array A copy of the array, or array of public properties
+ * if ArrayIterator refers to an object.
+ */
+ public function getArrayCopy() { }
+
+ /**
+ * Count elements
+ * @link https://php.net/manual/en/arrayiterator.count.php
+ * @return int The number of elements or public properties in the associated
+ * array or object, respectively.
+ */
+ public function count() { }
+
+ /**
+ * Get flags
+ * @link https://php.net/manual/en/arrayiterator.getflags.php
+ * @return string The current flags.
+ */
+ public function getFlags() { }
+
+ /**
+ * Set behaviour flags
+ * @link https://php.net/manual/en/arrayiterator.setflags.php
+ * @param string $flags
+ * A bitmask as follows:
+ * 0 = Properties of the object have their normal functionality
+ * when accessed as list (var_dump, foreach, etc.).
+ * 1 = Array indices can be accessed as properties in read/write.
+ *
+ * @return void
+ */
+ public function setFlags($flags) { }
+
+ /**
+ * Sort array by values
+ * @link https://php.net/manual/en/arrayiterator.asort.php
+ * @param int $flags [optional]
+ * @return void
+ */
+ public function asort($flags = SORT_REGULAR) { }
+
+ /**
+ * Sort array by keys
+ * @link https://php.net/manual/en/arrayiterator.ksort.php
+ * @param int $flags [optional]
+ * @return void
+ */
+ public function ksort($flags = SORT_REGULAR) { }
+
+ /**
+ * User defined sort
+ * @link https://php.net/manual/en/arrayiterator.uasort.php
+ * @param callable $callback
+ * The compare function used for the sort.
+ *
+ * @return void
+ */
+ public function uasort($callback) { }
+
+ /**
+ * User defined sort
+ * @link https://php.net/manual/en/arrayiterator.uksort.php
+ * @param callable $callback
+ * The compare function used for the sort.
+ *
+ * @return void
+ */
+ public function uksort($callback) { }
+
+ /**
+ * Sort an array naturally
+ * @link https://php.net/manual/en/arrayiterator.natsort.php
+ * @return void
+ */
+ public function natsort() { }
+
+ /**
+ * Sort an array naturally, case insensitive
+ * @link https://php.net/manual/en/arrayiterator.natcasesort.php
+ * @return void
+ */
+ public function natcasesort() { }
+
+ /**
+ * Unserialize
+ * @link https://php.net/manual/en/arrayiterator.unserialize.php
+ * @param string $data
+ * The serialized ArrayIterator object to be unserialized.
+ *
+ * @return string The ArrayIterator.
+ */
+ public function unserialize($data) { }
+
+ /**
+ * Serialize
+ * @link https://php.net/manual/en/arrayiterator.serialize.php
+ * @return string The serialized ArrayIterator.
+ */
+ public function serialize() { }
+
+ /**
+ * Rewind array back to the start
+ * @link https://php.net/manual/en/arrayiterator.rewind.php
+ * @return void
+ */
+ public function rewind() { }
+
+ /**
+ * Return current array entry
+ * @link https://php.net/manual/en/arrayiterator.current.php
+ * @return mixed The current array entry.
+ */
+ public function current() { }
+
+ /**
+ * Return current array key
+ * @link https://php.net/manual/en/arrayiterator.key.php
+ * @return string|float|int|bool|null The current array key.
+ */
+ public function key() { }
+
+ /**
+ * Move to next entry
+ * @link https://php.net/manual/en/arrayiterator.next.php
+ * @return void
+ */
+ public function next() { }
+
+ /**
+ * Check whether array contains more entries
+ * @link https://php.net/manual/en/arrayiterator.valid.php
+ * @return bool
+ */
+ public function valid() { }
+
+ /**
+ * Seek to position
+ * @link https://php.net/manual/en/arrayiterator.seek.php
+ * @param int $offset
+ * The position to seek to.
+ *
+ * @return void
+ */
+ public function seek($offset) { }
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __serialize(): array {}
+
+ /**
+ * @param array $data
+ * @since 7.4
+ */
+ public function __unserialize(array $data): void {}
+
+}
+
+/**
+ * This iterator allows to unset and modify values and keys while iterating over Arrays and Objects
+ * in the same way as the ArrayIterator. Additionally it is possible to iterate
+ * over the current iterator entry.
+ * @link https://php.net/manual/en/class.recursivearrayiterator.php
+ */
+class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
+ const CHILD_ARRAYS_ONLY = 4;
+
+
+ /**
+ * Returns whether current entry is an array or an object.
+ * @link https://php.net/manual/en/recursivearrayiterator.haschildren.php
+ * @return bool true if the current entry is an array or an object,
+ * otherwise false is returned.
+ */
+ public function hasChildren() { }
+
+ /**
+ * Returns an iterator for the current entry if it is an array or an object.
+ * @link https://php.net/manual/en/recursivearrayiterator.getchildren.php
+ * @return RecursiveArrayIterator An iterator for the current entry, if it is an array or object.
+ */
+ public function getChildren() { }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/SPL/SPL_c1.php b/vendor/jetbrains/phpstorm-stubs/SPL/SPL_c1.php
new file mode 100644
index 0000000000..6a1afea020
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/SPL/SPL_c1.php
@@ -0,0 +1,2146 @@
+
+ * Optional suffix to omit from the base name returned.
+ *
+ * @return string the base name without path information.
+ * @since 5.2.2
+ */
+ public function getBasename ($suffix = null) {}
+
+ /**
+ * Gets the path to the file
+ * @link https://php.net/manual/en/splfileinfo.getpathname.php
+ * @return string The path to the file.
+ * @since 5.1.2
+ */
+ public function getPathname () {}
+
+ /**
+ * Gets file permissions
+ * @link https://php.net/manual/en/splfileinfo.getperms.php
+ * @return int the file permissions.
+ * @since 5.1.2
+ */
+ public function getPerms () {}
+
+ /**
+ * Gets the inode for the file
+ * @link https://php.net/manual/en/splfileinfo.getinode.php
+ * @return int the inode number for the filesystem object.
+ * @since 5.1.2
+ */
+ public function getInode () {}
+
+ /**
+ * Gets file size
+ * @link https://php.net/manual/en/splfileinfo.getsize.php
+ * @return int The filesize in bytes.
+ * @since 5.1.2
+ */
+ public function getSize () {}
+
+ /**
+ * Gets the owner of the file
+ * @link https://php.net/manual/en/splfileinfo.getowner.php
+ * @return int The owner id in numerical format.
+ * @since 5.1.2
+ */
+ public function getOwner () {}
+
+ /**
+ * Gets the file group
+ * @link https://php.net/manual/en/splfileinfo.getgroup.php
+ * @return int The group id in numerical format.
+ * @since 5.1.2
+ */
+ public function getGroup () {}
+
+ /**
+ * Gets last access time of the file
+ * @link https://php.net/manual/en/splfileinfo.getatime.php
+ * @return int the time the file was last accessed.
+ * @since 5.1.2
+ */
+ public function getATime () {}
+
+ /**
+ * Gets the last modified time
+ * @link https://php.net/manual/en/splfileinfo.getmtime.php
+ * @return int the last modified time for the file, in a Unix timestamp.
+ * @since 5.1.2
+ */
+ public function getMTime () {}
+
+ /**
+ * Gets the inode change time
+ * @link https://php.net/manual/en/splfileinfo.getctime.php
+ * @return int The last change time, in a Unix timestamp.
+ * @since 5.1.2
+ */
+ public function getCTime () {}
+
+ /**
+ * Gets file type
+ * @link https://php.net/manual/en/splfileinfo.gettype.php
+ * @return string A string representing the type of the entry.
+ * May be one of file, link,
+ * or dir
+ * @since 5.1.2
+ */
+ public function getType () {}
+
+ /**
+ * Tells if the entry is writable
+ * @link https://php.net/manual/en/splfileinfo.iswritable.php
+ * @return bool true if writable, false otherwise;
+ * @since 5.1.2
+ */
+ public function isWritable () {}
+
+ /**
+ * Tells if file is readable
+ * @link https://php.net/manual/en/splfileinfo.isreadable.php
+ * @return bool true if readable, false otherwise.
+ * @since 5.1.2
+ */
+ public function isReadable () {}
+
+ /**
+ * Tells if the file is executable
+ * @link https://php.net/manual/en/splfileinfo.isexecutable.php
+ * @return bool true if executable, false otherwise.
+ * @since 5.1.2
+ */
+ public function isExecutable () {}
+
+ /**
+ * Tells if the object references a regular file
+ * @link https://php.net/manual/en/splfileinfo.isfile.php
+ * @return bool true if the file exists and is a regular file (not a link), false otherwise.
+ * @since 5.1.2
+ */
+ public function isFile () {}
+
+ /**
+ * Tells if the file is a directory
+ * @link https://php.net/manual/en/splfileinfo.isdir.php
+ * @return bool true if a directory, false otherwise.
+ * @since 5.1.2
+ */
+ public function isDir () {}
+
+ /**
+ * Tells if the file is a link
+ * @link https://php.net/manual/en/splfileinfo.islink.php
+ * @return bool true if the file is a link, false otherwise.
+ * @since 5.1.2
+ */
+ public function isLink () {}
+
+ /**
+ * Gets the target of a link
+ * @link https://php.net/manual/en/splfileinfo.getlinktarget.php
+ * @return string the target of the filesystem link.
+ * @since 5.2.2
+ */
+ public function getLinkTarget () {}
+
+ /**
+ * Gets absolute path to file
+ * @link https://php.net/manual/en/splfileinfo.getrealpath.php
+ * @return string|false the path to the file, or FALSE if the file does not exist.
+ * @since 5.2.2
+ */
+ public function getRealPath () {}
+
+ /**
+ * Gets an SplFileInfo object for the file
+ * @link https://php.net/manual/en/splfileinfo.getfileinfo.php
+ * @param string $class [optional]
+ * Name of an SplFileInfo derived class to use.
+ *
+ * @return SplFileInfo An SplFileInfo object created for the file.
+ * @since 5.1.2
+ */
+ public function getFileInfo ($class = null) {}
+
+ /**
+ * Gets an SplFileInfo object for the path
+ * @link https://php.net/manual/en/splfileinfo.getpathinfo.php
+ * @param string $class [optional]
+ * Name of an SplFileInfo derived class to use.
+ *
+ * @return SplFileInfo an SplFileInfo object for the parent path of the file.
+ * @since 5.1.2
+ */
+ public function getPathInfo ($class = null) {}
+
+ /**
+ * Gets an SplFileObject object for the file
+ * @link https://php.net/manual/en/splfileinfo.openfile.php
+ * @param string $mode [optional]
+ * The mode for opening the file. See the fopen
+ * documentation for descriptions of possible modes. The default
+ * is read only.
+ *
+ * @param bool $useIncludePath [optional]
+ * ¶meter.use_include_path;
+ *
+ * @param resource $context [optional]
+ * ¶meter.context;
+ *
+ * @return SplFileObject The opened file as an SplFileObject object.
+ * @since 5.1.2
+ */
+ public function openFile ($mode = 'r', $useIncludePath = false, $context = null) {}
+
+ /**
+ * Sets the class name used with SplFileInfo::openFile
+ * @link https://php.net/manual/en/splfileinfo.setfileclass.php
+ * @param string $class [optional]
+ * The class name to use when openFile() is called.
+ *
+ * @return void
+ * @since 5.1.2
+ */
+ public function setFileClass ($class = null) {}
+
+ /**
+ * Sets the class used with getFileInfo and getPathInfo
+ * @link https://php.net/manual/en/splfileinfo.setinfoclass.php
+ * @param string $class [optional]
+ * The class name to use.
+ *
+ * @return void
+ * @since 5.1.2
+ */
+ public function setInfoClass ($class = null) {}
+
+ /**
+ * Returns the path to the file as a string
+ * @link https://php.net/manual/en/splfileinfo.tostring.php
+ * @return string the path to the file.
+ * @since 5.1.2
+ */
+ public function __toString () {}
+
+ public final function _bad_state_ex (){}
+
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+}
+
+/**
+ * The DirectoryIterator class provides a simple interface for viewing
+ * the contents of filesystem directories.
+ * @link https://php.net/manual/en/class.directoryiterator.php
+ */
+class DirectoryIterator extends SplFileInfo implements SeekableIterator {
+
+ /**
+ * Constructs a new directory iterator from a path
+ * @link https://php.net/manual/en/directoryiterator.construct.php
+ * @param string $directory
+ * @throws UnexpectedValueException if the path cannot be opened.
+ * @throws RuntimeException if the path is an empty string.
+ */
+ public function __construct ($directory) {}
+
+
+ /**
+ * Determine if current DirectoryIterator item is '.' or '..'
+ * @link https://php.net/manual/en/directoryiterator.isdot.php
+ * @return bool true if the entry is . or ..,
+ * otherwise false
+ */
+ public function isDot () {}
+
+ /**
+ * Rewind the DirectoryIterator back to the start
+ * @link https://php.net/manual/en/directoryiterator.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Check whether current DirectoryIterator position is a valid file
+ * @link https://php.net/manual/en/directoryiterator.valid.php
+ * @return bool true if the position is valid, otherwise false
+ */
+ public function valid () {}
+
+ /**
+ * Return the key for the current DirectoryIterator item
+ * @link https://php.net/manual/en/directoryiterator.key.php
+ * @return string The key for the current DirectoryIterator item.
+ */
+ public function key () {}
+
+ /**
+ * Return the current DirectoryIterator item.
+ * @link https://php.net/manual/en/directoryiterator.current.php
+ * @return DirectoryIterator The current DirectoryIterator item.
+ */
+ public function current () {}
+
+ /**
+ * Move forward to next DirectoryIterator item
+ * @link https://php.net/manual/en/directoryiterator.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Seek to a DirectoryIterator item
+ * @link https://php.net/manual/en/directoryiterator.seek.php
+ * @param int $offset
+ * The zero-based numeric position to seek to.
+ *
+ * @return void
+ */
+ public function seek ($offset) {}
+}
+
+/**
+ * The Filesystem iterator
+ * @link https://php.net/manual/en/class.filesystemiterator.php
+ */
+class FilesystemIterator extends DirectoryIterator {
+ const CURRENT_MODE_MASK = 240;
+ const CURRENT_AS_PATHNAME = 32;
+ const CURRENT_AS_FILEINFO = 0;
+ const CURRENT_AS_SELF = 16;
+ const KEY_MODE_MASK = 3840;
+ const KEY_AS_PATHNAME = 0;
+ const FOLLOW_SYMLINKS = 512;
+ const KEY_AS_FILENAME = 256;
+ const NEW_CURRENT_AND_KEY = 256;
+ const SKIP_DOTS = 4096;
+ const UNIX_PATHS = 8192;
+ const OTHER_MODE_MASK = 12288;
+
+ /**
+ * Constructs a new filesystem iterator
+ * @link https://php.net/manual/en/filesystemiterator.construct.php
+ * @param string $directory
+ * @param int $flags [optional]
+ * @throws UnexpectedValueException if the path cannot be found.
+ */
+ public function __construct ($directory, $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS) {}
+
+ /**
+ * Rewinds back to the beginning
+ * @link https://php.net/manual/en/filesystemiterator.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Move to the next file
+ * @link https://php.net/manual/en/filesystemiterator.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Retrieve the key for the current file
+ * @link https://php.net/manual/en/filesystemiterator.key.php
+ * @return string the pathname or filename depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function key () {}
+
+ /**
+ * The current file
+ * @link https://php.net/manual/en/filesystemiterator.current.php
+ * @return string|SplFileInfo|self The filename, file information, or $this depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function current () {}
+
+ /**
+ * Get the handling flags
+ * @link https://php.net/manual/en/filesystemiterator.getflags.php
+ * @return int The integer value of the set flags.
+ */
+ public function getFlags () {}
+
+ /**
+ * Sets handling flags
+ * @link https://php.net/manual/en/filesystemiterator.setflags.php
+ * @param int $flags [optional]
+ * The handling flags to set.
+ * See the FilesystemIterator constants.
+ *
+ * @return void
+ */
+ public function setFlags ($flags = null) {}
+}
+
+/**
+ * The RecursiveDirectoryIterator provides
+ * an interface for iterating recursively over filesystem directories.
+ * @link https://php.net/manual/en/class.recursivedirectoryiterator.php
+ */
+class RecursiveDirectoryIterator extends FilesystemIterator implements RecursiveIterator {
+
+
+ /**
+ * Constructs a RecursiveDirectoryIterator
+ * @link https://php.net/manual/en/recursivedirectoryiterator.construct.php
+ * @param string $directory
+ * @param int $flags [optional]
+ * @throws UnexpectedValueException if the path cannot be found or is not a directory.
+ * @since 5.1.2
+ */
+ public function __construct ($directory, $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO) {}
+
+ /**
+ * Returns whether current entry is a directory and not '.' or '..'
+ * @link https://php.net/manual/en/recursivedirectoryiterator.haschildren.php
+ * @param bool $allowLinks [optional]
+ *
+ * @return bool whether the current entry is a directory, but not '.' or '..'
+ */
+ public function hasChildren ($allowLinks = null) {}
+
+ /**
+ * Returns an iterator for the current entry if it is a directory
+ * @link https://php.net/manual/en/recursivedirectoryiterator.getchildren.php
+ * @return object An iterator for the current entry, if it is a directory.
+ */
+ public function getChildren () {}
+
+ /**
+ * Get sub path
+ * @link https://php.net/manual/en/recursivedirectoryiterator.getsubpath.php
+ * @return string The sub path (sub directory).
+ */
+ public function getSubPath () {}
+
+ /**
+ * Get sub path and name
+ * @link https://php.net/manual/en/recursivedirectoryiterator.getsubpathname.php
+ * @return string The sub path (sub directory) and filename.
+ */
+ public function getSubPathname () {}
+
+ /**
+ * Rewinds back to the beginning
+ * @link https://php.net/manual/en/filesystemiterator.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Move to the next file
+ * @link https://php.net/manual/en/filesystemiterator.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Retrieve the key for the current file
+ * @link https://php.net/manual/en/filesystemiterator.key.php
+ * @return string the pathname or filename depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function key () {}
+
+ /**
+ * The current file
+ * @link https://php.net/manual/en/filesystemiterator.current.php
+ * @return string|SplFileInfo|self The filename, file information, or $this depending on the set flags.
+ * See the FilesystemIterator constants.
+ */
+ public function current () {}
+
+}
+
+/**
+ * Iterates through a file system in a similar fashion to
+ * glob.
+ * @link https://php.net/manual/en/class.globiterator.php
+ */
+class GlobIterator extends FilesystemIterator implements Countable {
+
+ /**
+ * Construct a directory using glob
+ * @link https://php.net/manual/en/globiterator.construct.php
+ * @param $pattern
+ * @param int $flags [optional]
+ */
+ public function __construct ($pattern, $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO) {}
+
+ /**
+ * Get the number of directories and files
+ * @link https://php.net/manual/en/globiterator.count.php
+ * @return int The number of returned directories and files, as an
+ * integer.
+ */
+ public function count () {}
+}
+
+/**
+ * The SplFileObject class offers an object oriented interface for a file.
+ * @link https://php.net/manual/en/class.splfileobject.php
+ */
+class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator {
+ /**
+ * Drop newlines at the end of a line.
+ */
+ const DROP_NEW_LINE = 1;
+ /**
+ * Read on rewind/next.
+ */
+ const READ_AHEAD = 2;
+ /**
+ * Skip empty lines in the file. This requires the {@see READ_AHEAD} flag to work as expected.
+ */
+ const SKIP_EMPTY = 4;
+ /**
+ * Read lines as CSV rows.
+ */
+ const READ_CSV = 8;
+
+
+ /**
+ * Construct a new file object.
+ *
+ * @link https://php.net/manual/en/splfileobject.construct.php
+ *
+ * @param string $filename The file to open
+ * @param string $mode [optional] The mode in which to open the file. See {@see fopen} for a list of allowed modes.
+ * @param bool $useIncludePath [optional] Whether to search in the include_path for filename
+ * @param resource $context [optional] A valid context resource created with {@see stream_context_create}
+ *
+ * @throws RuntimeException When the filename cannot be opened
+ * @throws LogicException When the filename is a directory
+ *
+ */
+ public function __construct ($filename, $mode = 'r', $useIncludePath = false, $context = null) {}
+
+ /**
+ * Rewind the file to the first line
+ * @link https://php.net/manual/en/splfileobject.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Reached end of file
+ * @link https://php.net/manual/en/splfileobject.eof.php
+ * @return bool true if file is at EOF, false otherwise.
+ */
+ public function eof () {}
+
+ /**
+ * Not at EOF
+ * @link https://php.net/manual/en/splfileobject.valid.php
+ * @return bool true if not reached EOF, false otherwise.
+ */
+ public function valid () {}
+
+ /**
+ * Gets line from file
+ * @link https://php.net/manual/en/splfileobject.fgets.php
+ * @return string|false a string containing the next line from the file, or false on error.
+ */
+ public function fgets () {}
+
+ /**
+ * Read from file
+ * @link https://php.net/manual/en/splfileobject.fread.php
+ * @param int $length
+ * The number of bytes to read.
+ *
+ * @return string|false returns the string read from the file or FALSE on failure.
+ * @since 5.5.11
+ */
+ public function fread ($length) {}
+
+ /**
+ * Gets line from file and parse as CSV fields
+ * @link https://php.net/manual/en/splfileobject.fgetcsv.php
+ * @param string $separator [optional]
+ * The field delimiter (one character only). Defaults as a comma or the value set using SplFileObject::setCsvControl.
+ *
+ * @param string $enclosure [optional]
+ * The field enclosure character (one character only). Defaults as a double quotation mark or the value set using SplFileObject::setCsvControl.
+ *
+ * @param string $escape [optional]
+ * The escape character (one character only). Defaults as a backslash (\) or the value set using SplFileObject::setCsvControl.
+ *
+ * @return array|false an indexed array containing the fields read, or false on error.
+ *
+ *
+ * A blank line in a CSV file will be returned as an array
+ * comprising a single null field unless using SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE,
+ * in which case empty lines are skipped.
+ */
+ public function fgetcsv ($separator = ",", $enclosure = "\"", $escape = "\\") {}
+
+ /**
+ * Write a field array as a CSV line
+ * @link https://php.net/manual/en/splfileobject.fputcsv.php
+ * @param array $fields An array of values
+ * @param string $separator [optional]
+ * The field delimiter (one character only). Defaults as a comma or the value set using SplFileObject::setCsvControl.
+ *
+ * @param string $enclosure [optional]
+ * The field enclosure character (one character only). Defaults as a double quotation mark or the value set using SplFileObject::setCsvControl.
+ *
+ * @param string $escape The optional escape parameter sets the escape character (one character only).
+ * @return int|false Returns the length of the written string or FALSE on failure.
+ * @since 5.4
+ */
+ public function fputcsv (array $fields, $separator = ',' , $enclosure = '"', $escape = "\\") {}
+
+ /**
+ * Set the delimiter and enclosure character for CSV
+ * @link https://php.net/manual/en/splfileobject.setcsvcontrol.php
+ * @param string $separator [optional]
+ * The field delimiter (one character only).
+ *
+ * @param string $enclosure [optional]
+ * The field enclosure character (one character only).
+ *
+ * @param string $escape [optional]
+ * The field escape character (one character only).
+ *
+ * @return void
+ */
+ public function setCsvControl ($separator = ",", $enclosure = "\"", $escape = "\\") {}
+
+ /**
+ * Get the delimiter and enclosure character for CSV
+ * @link https://php.net/manual/en/splfileobject.getcsvcontrol.php
+ * @return array an indexed array containing the delimiter and enclosure character.
+ */
+ public function getCsvControl () {}
+
+ /**
+ * Portable file locking
+ * @link https://php.net/manual/en/splfileobject.flock.php
+ * @param int $operation
+ * operation is one of the following:
+ * LOCK_SH to acquire a shared lock (reader).
+ * @param int &$wouldBlock [optional]
+ * Set to true if the lock would block (EWOULDBLOCK errno condition).
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function flock ($operation, &$wouldBlock = null) {}
+
+ /**
+ * Flushes the output to the file
+ * @link https://php.net/manual/en/splfileobject.fflush.php
+ * @return bool true on success or false on failure.
+ */
+ public function fflush () {}
+
+ /**
+ * Return current file position
+ * @link https://php.net/manual/en/splfileobject.ftell.php
+ * @return int|false the position of the file pointer as an integer, or false on error.
+ */
+ public function ftell () {}
+
+ /**
+ * Seek to a position
+ * @link https://php.net/manual/en/splfileobject.fseek.php
+ * @param int $offset
+ * The offset. A negative value can be used to move backwards through the file which
+ * is useful when SEEK_END is used as the whence value.
+ *
+ * @param int $whence [optional]
+ * whence values are:
+ * SEEK_SET - Set position equal to offset bytes.
+ * SEEK_CUR - Set position to current location plus offset.
+ * SEEK_END - Set position to end-of-file plus offset.
+ *
+ *
+ * If whence is not specified, it is assumed to be SEEK_SET.
+ *
+ * @return int 0 if the seek was successful, -1 otherwise. Note that seeking
+ * past EOF is not considered an error.
+ */
+ public function fseek ($offset, $whence = SEEK_SET) {}
+
+ /**
+ * Gets character from file
+ * @link https://php.net/manual/en/splfileobject.fgetc.php
+ * @return string|false a string containing a single character read from the file or false on EOF.
+ */
+ public function fgetc () {}
+
+ /**
+ * Output all remaining data on a file pointer
+ * @link https://php.net/manual/en/splfileobject.fpassthru.php
+ * @return int|false the number of characters read from handle
+ * and passed through to the output.
+ */
+ public function fpassthru () {}
+
+ /**
+ * Gets line from file and strip HTML tags
+ * @link https://php.net/manual/en/splfileobject.fgetss.php
+ * @param string $allowable_tags [optional]
+ * You can use the optional third parameter to specify tags which should
+ * not be stripped.
+ *
+ * @return string|false a string containing the next line of the file with HTML and PHP
+ * code stripped, or false on error.
+ * @removed 8.0
+ */
+ #[Deprecated(since: '7.3')]
+ public function fgetss ($allowable_tags = null) {}
+
+ /**
+ * Parses input from file according to a format
+ * @link https://php.net/manual/en/splfileobject.fscanf.php
+ * @param string $format
+ * The specified format as described in the sprintf documentation.
+ *
+ * @param mixed &$_ [optional]
+ * The optional assigned values.
+ *
+ * @return array|int If only one parameter is passed to this method, the values parsed will be
+ * returned as an array. Otherwise, if optional parameters are passed, the
+ * function will return the number of assigned values. The optional
+ * parameters must be passed by reference.
+ */
+ public function fscanf ($format, & ...$vars) {}
+
+ /**
+ * Write to file
+ * @link https://php.net/manual/en/splfileobject.fwrite.php
+ * @param string $data
+ * The string to be written to the file.
+ *
+ * @param int $length [optional]
+ * If the length argument is given, writing will
+ * stop after length bytes have been written or
+ * the end of string is reached, whichever comes
+ * first.
+ *
+ * @return int the number of bytes written, or 0 on error.
+ */
+ public function fwrite ($data, $length = null) {}
+
+ /**
+ * Gets information about the file
+ * @link https://php.net/manual/en/splfileobject.fstat.php
+ * @return array an array with the statistics of the file; the format of the array
+ * is described in detail on the stat manual page.
+ */
+ public function fstat () {}
+
+ /**
+ * Truncates the file to a given length
+ * @link https://php.net/manual/en/splfileobject.ftruncate.php
+ * @param int $size
+ * The size to truncate to.
+ *
+ *
+ * If size is larger than the file it is extended with null bytes.
+ *
+ *
+ * If size is smaller than the file, the extra data will be lost.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function ftruncate ($size) {}
+
+ /**
+ * Retrieve current line of file
+ * @link https://php.net/manual/en/splfileobject.current.php
+ * @return string|array|false Retrieves the current line of the file. If the SplFileObject::READ_CSV flag is set, this method returns an array containing the current line parsed as CSV data.
+ */
+ public function current () {}
+
+ /**
+ * Get line number
+ * @link https://php.net/manual/en/splfileobject.key.php
+ * @return int the current line number.
+ */
+ public function key () {}
+
+ /**
+ * Read next line
+ * @link https://php.net/manual/en/splfileobject.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Sets flags for the SplFileObject
+ * @link https://php.net/manual/en/splfileobject.setflags.php
+ * @param int $flags
+ * Bit mask of the flags to set. See
+ * SplFileObject constants
+ * for the available flags.
+ *
+ * @return void
+ */
+ public function setFlags ($flags) {}
+
+ /**
+ * Gets flags for the SplFileObject
+ * @link https://php.net/manual/en/splfileobject.getflags.php
+ * @return int an integer representing the flags.
+ */
+ public function getFlags () {}
+
+ /**
+ * Set maximum line length
+ * @link https://php.net/manual/en/splfileobject.setmaxlinelen.php
+ * @param int $maxLength
+ * The maximum length of a line.
+ *
+ * @return void
+ */
+ public function setMaxLineLen ($maxLength) {}
+
+ /**
+ * Get maximum line length
+ * @link https://php.net/manual/en/splfileobject.getmaxlinelen.php
+ * @return int the maximum line length if one has been set with
+ * SplFileObject::setMaxLineLen, default is 0.
+ */
+ public function getMaxLineLen () {}
+
+ /**
+ * SplFileObject does not have children
+ * @link https://php.net/manual/en/splfileobject.haschildren.php
+ * @return bool false
+ * @since 5.1.2
+ */
+ public function hasChildren () {}
+
+ /**
+ * No purpose
+ * @link https://php.net/manual/en/splfileobject.getchildren.php
+ * @return null An SplFileObject does not have children so this method returns NULL.
+ */
+ public function getChildren () {}
+
+ /**
+ * Seek to specified line
+ * @link https://php.net/manual/en/splfileobject.seek.php
+ * @param int $line
+ * The zero-based line number to seek to.
+ *
+ * @return void
+ */
+ public function seek ($line) {}
+
+ /**
+ * Alias of SplFileObject::fgets
+ * @link https://php.net/manual/en/splfileobject.getcurrentline.php
+ * @return string|false Returns a string containing the next line from the file, or FALSE on error.
+ * @since 5.1.2
+ */
+ public function getCurrentLine () {}
+
+ /**
+ * Alias of SplFileObject::current
+ * @link https://php.net/manual/en/splfileobject.tostring.php
+ */
+ public function __toString () {}
+
+}
+
+/**
+ * The SplTempFileObject class offers an object oriented interface for a temporary file.
+ * @link https://php.net/manual/en/class.spltempfileobject.php
+ */
+class SplTempFileObject extends SplFileObject {
+
+
+ /**
+ * Construct a new temporary file object
+ * @link https://php.net/manual/en/spltempfileobject.construct.php
+ * @param int $maxMemory [optional]
+ * @throws RuntimeException if an error occurs.
+ * @since 5.1.2
+ */
+ public function __construct ($maxMemory) {}
+}
+
+/**
+ * The SplDoublyLinkedList class provides the main functionalities of a doubly linked list.
+ * @link https://php.net/manual/en/class.spldoublylinkedlist.php
+ */
+class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializable
+{
+ const IT_MODE_LIFO = 2;
+ const IT_MODE_FIFO = 0;
+ const IT_MODE_DELETE = 1;
+ const IT_MODE_KEEP = 0;
+
+
+ /**
+ * Add/insert a new value at the specified index
+ * @param mixed $index The index where the new value is to be inserted.
+ * @param mixed $value The new value for the index.
+ * @link https://php.net/spldoublylinkedlist.add
+ * @return void
+ * @since 5.5
+ */
+ public function add($index, $value) {}
+
+ /**
+ * Pops a node from the end of the doubly linked list
+ * @link https://php.net/manual/en/spldoublylinkedlist.pop.php
+ * @return mixed The value of the popped node.
+ */
+ public function pop () {}
+
+ /**
+ * Shifts a node from the beginning of the doubly linked list
+ * @link https://php.net/manual/en/spldoublylinkedlist.shift.php
+ * @return mixed The value of the shifted node.
+ */
+ public function shift () {}
+
+ /**
+ * Pushes an element at the end of the doubly linked list
+ * @link https://php.net/manual/en/spldoublylinkedlist.push.php
+ * @param mixed $value
+ * The value to push.
+ *
+ * @return void
+ */
+ public function push ($value) {}
+
+ /**
+ * Prepends the doubly linked list with an element
+ * @link https://php.net/manual/en/spldoublylinkedlist.unshift.php
+ * @param mixed $value
+ * The value to unshift.
+ *
+ * @return void
+ */
+ public function unshift ($value) {}
+
+ /**
+ * Peeks at the node from the end of the doubly linked list
+ * @link https://php.net/manual/en/spldoublylinkedlist.top.php
+ * @return mixed The value of the last node.
+ */
+ public function top () {}
+
+ /**
+ * Peeks at the node from the beginning of the doubly linked list
+ * @link https://php.net/manual/en/spldoublylinkedlist.bottom.php
+ * @return mixed The value of the first node.
+ */
+ public function bottom () {}
+
+ /**
+ * Counts the number of elements in the doubly linked list.
+ * @link https://php.net/manual/en/spldoublylinkedlist.count.php
+ * @return int the number of elements in the doubly linked list.
+ */
+ public function count () {}
+
+ /**
+ * Checks whether the doubly linked list is empty.
+ * @link https://php.net/manual/en/spldoublylinkedlist.isempty.php
+ * @return bool whether the doubly linked list is empty.
+ */
+ public function isEmpty () {}
+
+ /**
+ * Sets the mode of iteration
+ * @link https://php.net/manual/en/spldoublylinkedlist.setiteratormode.php
+ * @param int $mode
+ * There are two orthogonal sets of modes that can be set:
+ *
+ * The direction of the iteration (either one or the other):
+ * SplDoublyLinkedList::IT_MODE_LIFO (Stack style)
+ * @return void
+ */
+ public function setIteratorMode ($mode) {}
+
+ /**
+ * Returns the mode of iteration
+ * @link https://php.net/manual/en/spldoublylinkedlist.getiteratormode.php
+ * @return int the different modes and flags that affect the iteration.
+ */
+ public function getIteratorMode () {}
+
+ /**
+ * Returns whether the requested $index exists
+ * @link https://php.net/manual/en/spldoublylinkedlist.offsetexists.php
+ * @param mixed $index
+ * The index being checked.
+ *
+ * @return bool true if the requested index exists, otherwise false
+ */
+ public function offsetExists ($index) {}
+
+ /**
+ * Returns the value at the specified $index
+ * @link https://php.net/manual/en/spldoublylinkedlist.offsetget.php
+ * @param mixed $index
+ * The index with the value.
+ *
+ * @return mixed The value at the specified index.
+ */
+ public function offsetGet ($index) {}
+
+ /**
+ * Sets the value at the specified $index to $newval
+ * @link https://php.net/manual/en/spldoublylinkedlist.offsetset.php
+ * @param mixed $index
+ * The index being set.
+ *
+ * @param mixed $value
+ * The new value for the index.
+ *
+ * @return void
+ */
+ public function offsetSet ($index, $value) {}
+
+ /**
+ * Unsets the value at the specified $index
+ * @link https://php.net/manual/en/spldoublylinkedlist.offsetunset.php
+ * @param mixed $index
+ * The index being unset.
+ *
+ * @return void
+ */
+ public function offsetUnset ($index) {}
+
+ /**
+ * Rewind iterator back to the start
+ * @link https://php.net/manual/en/spldoublylinkedlist.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Return current array entry
+ * @link https://php.net/manual/en/spldoublylinkedlist.current.php
+ * @return mixed The current node value.
+ */
+ public function current () {}
+
+ /**
+ * Return current node index
+ * @link https://php.net/manual/en/spldoublylinkedlist.key.php
+ * @return string|float|int|bool|null The current node index.
+ */
+ public function key () {}
+
+ /**
+ * Move to next entry
+ * @link https://php.net/manual/en/spldoublylinkedlist.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Move to previous entry
+ * @link https://php.net/manual/en/spldoublylinkedlist.prev.php
+ * @return void
+ */
+ public function prev () {}
+
+ /**
+ * Check whether the doubly linked list contains more nodes
+ * @link https://php.net/manual/en/spldoublylinkedlist.valid.php
+ * @return bool true if the doubly linked list contains any more nodes, false otherwise.
+ */
+ public function valid () {}
+
+ /**
+ * Unserializes the storage
+ * @link https://php.net/manual/en/spldoublylinkedlist.serialize.php
+ * @param string $data The serialized string.
+ * @return void
+ * @since 5.4
+ */
+ public function unserialize($data) {}
+
+ /**
+ * Serializes the storage
+ * @link https://php.net/manual/en/spldoublylinkedlist.unserialize.php
+ * @return string The serialized string.
+ * @since 5.4
+ */
+ public function serialize () {}
+
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __serialize(): array {}
+
+ /**
+ * @param array $data
+ * @since 7.4
+ */
+ public function __unserialize(array $data): void {}
+
+}
+
+/**
+ * The SplQueue class provides the main functionalities of a queue implemented using a doubly linked list.
+ * @link https://php.net/manual/en/class.splqueue.php
+ */
+class SplQueue extends SplDoublyLinkedList {
+
+
+ /**
+ * Adds an element to the queue.
+ * @link https://php.net/manual/en/splqueue.enqueue.php
+ * @param mixed $value
+ * The value to enqueue.
+ *
+ * @return void
+ */
+ public function enqueue ($value) {}
+
+ /**
+ * Dequeues a node from the queue
+ * @link https://php.net/manual/en/splqueue.dequeue.php
+ * @return mixed The value of the dequeued node.
+ */
+ public function dequeue () {}
+
+ /**
+ * Sets the mode of iteration
+ * @link https://php.net/manual/en/spldoublylinkedlist.setiteratormode.php
+ * @param int $mode
+ * There are two orthogonal sets of modes that can be set:
+ *
+ * The direction of the iteration (either one or the other):
+ * SplDoublyLinkedList::IT_MODE_LIFO (Stack style)
+ * @return void
+ */
+ public function setIteratorMode ($mode) {}
+
+}
+/**
+ * The SplStack class provides the main functionalities of a stack implemented using a doubly linked list.
+ * @link https://php.net/manual/en/class.splstack.php
+ */
+class SplStack extends SplDoublyLinkedList {
+
+ /**
+ * Sets the mode of iteration
+ * @link https://php.net/manual/en/spldoublylinkedlist.setiteratormode.php
+ * @param int $mode
+ * There are two orthogonal sets of modes that can be set:
+ *
+ * The direction of the iteration (either one or the other):
+ * SplDoublyLinkedList::IT_MODE_LIFO (Stack style)
+ * @return void
+ */
+ public function setIteratorMode ($mode) {}
+}
+
+/**
+ * The SplHeap class provides the main functionalities of an Heap.
+ * @link https://php.net/manual/en/class.splheap.php
+ */
+abstract class SplHeap implements Iterator, Countable {
+
+ /**
+ * Extracts a node from top of the heap and sift up.
+ * @link https://php.net/manual/en/splheap.extract.php
+ * @return mixed The value of the extracted node.
+ */
+ public function extract () {}
+
+ /**
+ * Inserts an element in the heap by sifting it up.
+ * @link https://php.net/manual/en/splheap.insert.php
+ * @param mixed $value
+ * The value to insert.
+ *
+ * @return void
+ */
+ public function insert ($value) {}
+
+ /**
+ * Peeks at the node from the top of the heap
+ * @link https://php.net/manual/en/splheap.top.php
+ * @return mixed The value of the node on the top.
+ */
+ public function top () {}
+
+ /**
+ * Counts the number of elements in the heap.
+ * @link https://php.net/manual/en/splheap.count.php
+ * @return int the number of elements in the heap.
+ */
+ public function count () {}
+
+ /**
+ * Checks whether the heap is empty.
+ * @link https://php.net/manual/en/splheap.isempty.php
+ * @return bool whether the heap is empty.
+ */
+ public function isEmpty () {}
+
+ /**
+ * Rewind iterator back to the start (no-op)
+ * @link https://php.net/manual/en/splheap.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Return current node pointed by the iterator
+ * @link https://php.net/manual/en/splheap.current.php
+ * @return mixed The current node value.
+ */
+ public function current () {}
+
+ /**
+ * Return current node index
+ * @link https://php.net/manual/en/splheap.key.php
+ * @return int The current node index.
+ */
+ public function key () {}
+
+ /**
+ * Move to the next node
+ * @link https://php.net/manual/en/splheap.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Check whether the heap contains more nodes
+ * @link https://php.net/manual/en/splheap.valid.php
+ * @return bool true if the heap contains any more nodes, false otherwise.
+ */
+ public function valid () {}
+
+ /**
+ * Recover from the corrupted state and allow further actions on the heap.
+ * @link https://php.net/manual/en/splheap.recoverfromcorruption.php
+ * @return void
+ */
+ public function recoverFromCorruption () {}
+
+ /**
+ * Compare elements in order to place them correctly in the heap while sifting up.
+ * @link https://php.net/manual/en/splheap.compare.php
+ * @param mixed $value1
+ * The value of the first node being compared.
+ *
+ * @param mixed $value2
+ * The value of the second node being compared.
+ *
+ * @return int Result of the comparison, positive integer if value1 is greater than value2, 0 if they are equal, negative integer otherwise.
+ *
+ *
+ * Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.
+ */
+ abstract protected function compare ($value1, $value2);
+
+ /**
+ * @return bool
+ */
+ public function isCorrupted(){}
+
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+
+}
+
+/**
+ * The SplMinHeap class provides the main functionalities of a heap, keeping the minimum on the top.
+ * @link https://php.net/manual/en/class.splminheap.php
+ */
+class SplMinHeap extends SplHeap {
+
+ /**
+ * Compare elements in order to place them correctly in the heap while sifting up.
+ * @link https://php.net/manual/en/splminheap.compare.php
+ * @param mixed $value1
+ * The value of the first node being compared.
+ *
+ * @param mixed $value2
+ * The value of the second node being compared.
+ *
+ * @return void Result of the comparison, positive integer if value1 is lower than value2, 0 if they are equal, negative integer otherwise.
+ *
+ *
+ * Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.
+ */
+ protected function compare ($value1, $value2) {}
+
+ /**
+ * Extracts a node from top of the heap and sift up.
+ * @link https://php.net/manual/en/splheap.extract.php
+ * @return mixed The value of the extracted node.
+ */
+ public function extract () {}
+
+ /**
+ * Inserts an element in the heap by sifting it up.
+ * @link https://php.net/manual/en/splheap.insert.php
+ * @param mixed $value
+ * The value to insert.
+ *
+ * @return void
+ */
+ public function insert ($value) {}
+
+ /**
+ * Peeks at the node from the top of the heap
+ * @link https://php.net/manual/en/splheap.top.php
+ * @return mixed The value of the node on the top.
+ */
+ public function top () {}
+
+ /**
+ * Counts the number of elements in the heap.
+ * @link https://php.net/manual/en/splheap.count.php
+ * @return int the number of elements in the heap.
+ */
+ public function count () {}
+
+ /**
+ * Checks whether the heap is empty.
+ * @link https://php.net/manual/en/splheap.isempty.php
+ * @return bool whether the heap is empty.
+ */
+ public function isEmpty () {}
+
+ /**
+ * Rewind iterator back to the start (no-op)
+ * @link https://php.net/manual/en/splheap.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Return current node pointed by the iterator
+ * @link https://php.net/manual/en/splheap.current.php
+ * @return mixed The current node value.
+ */
+ public function current () {}
+
+ /**
+ * Return current node index
+ * @link https://php.net/manual/en/splheap.key.php
+ * @return int The current node index.
+ */
+ public function key () {}
+
+ /**
+ * Move to the next node
+ * @link https://php.net/manual/en/splheap.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Check whether the heap contains more nodes
+ * @link https://php.net/manual/en/splheap.valid.php
+ * @return bool true if the heap contains any more nodes, false otherwise.
+ */
+ public function valid () {}
+
+ /**
+ * Recover from the corrupted state and allow further actions on the heap.
+ * @link https://php.net/manual/en/splheap.recoverfromcorruption.php
+ * @return void
+ */
+ public function recoverFromCorruption () {}
+
+}
+
+/**
+ * The SplMaxHeap class provides the main functionalities of a heap, keeping the maximum on the top.
+ * @link https://php.net/manual/en/class.splmaxheap.php
+ */
+class SplMaxHeap extends SplHeap {
+
+ /**
+ * Compare elements in order to place them correctly in the heap while sifting up.
+ * @link https://php.net/manual/en/splmaxheap.compare.php
+ * @param mixed $value1
+ * The value of the first node being compared.
+ *
+ * @param mixed $value2
+ * The value of the second node being compared.
+ *
+ * @return void Result of the comparison, positive integer if value1 is greater than value2, 0 if they are equal, negative integer otherwise.
+ *
+ *
+ * Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.
+ */
+ protected function compare ($value1, $value2) {}
+
+}
+/**
+ * The SplPriorityQueue class provides the main functionalities of an
+ * prioritized queue, implemented using a heap.
+ * @link https://php.net/manual/en/class.splpriorityqueue.php
+ */
+class SplPriorityQueue implements Iterator, Countable {
+ const EXTR_BOTH = 3;
+ const EXTR_PRIORITY = 2;
+ const EXTR_DATA = 1;
+
+ /**
+ * Construct a new SplPriorityQueue object
+ * @link https://www.php.net/manual/en/splpriorityqueue.construct.php
+ */
+ public function __construct () {}
+
+ /**
+ * Compare priorities in order to place elements correctly in the heap while sifting up.
+ * @link https://php.net/manual/en/splpriorityqueue.compare.php
+ * @param mixed $priority1
+ * The priority of the first node being compared.
+ *
+ * @param mixed $priority2
+ * The priority of the second node being compared.
+ *
+ * @return int Result of the comparison, positive integer if priority1 is greater than priority2, 0 if they are equal, negative integer otherwise.
+ *
+ *
+ * Multiple elements with the same priority will get dequeued in no particular order.
+ */
+ public function compare ($priority1, $priority2) {}
+
+ /**
+ * Inserts an element in the queue by sifting it up.
+ * @link https://php.net/manual/en/splpriorityqueue.insert.php
+ * @param mixed $value
+ * The value to insert.
+ *
+ * @param mixed $priority
+ * The associated priority.
+ *
+ * @return true
+ */
+ public function insert ($value, $priority) {}
+
+ /**
+ * Sets the mode of extraction
+ * @link https://php.net/manual/en/splpriorityqueue.setextractflags.php
+ * @param int $flags
+ * Defines what is extracted by SplPriorityQueue::current,
+ * SplPriorityQueue::top and
+ * SplPriorityQueue::extract.
+ *
+ * SplPriorityQueue::EXTR_DATA (0x00000001): Extract the data
+ * @return void
+ */
+ public function setExtractFlags ($flags) {}
+
+ /**
+ * Peeks at the node from the top of the queue
+ * @link https://php.net/manual/en/splpriorityqueue.top.php
+ * @return mixed The value or priority (or both) of the top node, depending on the extract flag.
+ */
+ public function top () {}
+
+ /**
+ * Extracts a node from top of the heap and sift up.
+ * @link https://php.net/manual/en/splpriorityqueue.extract.php
+ * @return mixed The value or priority (or both) of the extracted node, depending on the extract flag.
+ */
+ public function extract () {}
+
+ /**
+ * Counts the number of elements in the queue.
+ * @link https://php.net/manual/en/splpriorityqueue.count.php
+ * @return int the number of elements in the queue.
+ */
+ public function count () {}
+
+ /**
+ * Checks whether the queue is empty.
+ * @link https://php.net/manual/en/splpriorityqueue.isempty.php
+ * @return bool whether the queue is empty.
+ */
+ public function isEmpty () {}
+
+ /**
+ * Rewind iterator back to the start (no-op)
+ * @link https://php.net/manual/en/splpriorityqueue.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Return current node pointed by the iterator
+ * @link https://php.net/manual/en/splpriorityqueue.current.php
+ * @return mixed The value or priority (or both) of the current node, depending on the extract flag.
+ */
+ public function current () {}
+
+ /**
+ * Return current node index
+ * @link https://php.net/manual/en/splpriorityqueue.key.php
+ * @return int The current node index.
+ */
+ public function key () {}
+
+ /**
+ * Move to the next node
+ * @link https://php.net/manual/en/splpriorityqueue.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Check whether the queue contains more nodes
+ * @link https://php.net/manual/en/splpriorityqueue.valid.php
+ * @return bool true if the queue contains any more nodes, false otherwise.
+ */
+ public function valid () {}
+
+ /**
+ * Recover from the corrupted state and allow further actions on the queue.
+ * @link https://php.net/manual/en/splpriorityqueue.recoverfromcorruption.php
+ * @return void
+ */
+ public function recoverFromCorruption () {}
+
+ /**
+ * @return bool
+ */
+ public function isCorrupted() {}
+
+ /**
+ * @return int
+ */
+ public function getExtractFlags() {}
+
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+
+}
+
+/**
+ * The SplFixedArray class provides the main functionalities of array. The
+ * main differences between a SplFixedArray and a normal PHP array is that
+ * the SplFixedArray is of fixed length and allows only integers within
+ * the range as indexes. The advantage is that it allows a faster array
+ * implementation.
+ * @link https://php.net/manual/en/class.splfixedarray.php
+ */
+class SplFixedArray implements Iterator, ArrayAccess, Countable, IteratorAggregate {
+
+ /**
+ * Constructs a new fixed array
+ * @link https://php.net/manual/en/splfixedarray.construct.php
+ * @param int $size [optional]
+ */
+ public function __construct ($size = 0) {}
+
+ /**
+ * Returns the size of the array
+ * @link https://php.net/manual/en/splfixedarray.count.php
+ * @return int the size of the array.
+ */
+ public function count () {}
+
+ /**
+ * Returns a PHP array from the fixed array
+ * @link https://php.net/manual/en/splfixedarray.toarray.php
+ * @return array a PHP array, similar to the fixed array.
+ */
+ public function toArray () {}
+
+ /**
+ * Import a PHP array in a SplFixedArray instance
+ * @link https://php.net/manual/en/splfixedarray.fromarray.php
+ * @param array $array
+ * The array to import.
+ *
+ * @param bool $preserveKeys [optional]
+ * Try to save the numeric indexes used in the original array.
+ *
+ * @return SplFixedArray an instance of SplFixedArray
+ * containing the array content.
+ */
+ public static function fromArray ($array, $preserveKeys = true) {}
+
+ /**
+ * Gets the size of the array
+ * @link https://php.net/manual/en/splfixedarray.getsize.php
+ * @return int the size of the array, as an integer.
+ */
+ public function getSize () {}
+
+ /**
+ * Change the size of an array
+ * @link https://php.net/manual/en/splfixedarray.setsize.php
+ * @param int $size
+ * The new array size.
+ *
+ * @return bool
+ */
+ public function setSize ($size) {}
+
+ /**
+ * Returns whether the requested index exists
+ * @link https://php.net/manual/en/splfixedarray.offsetexists.php
+ * @param int $index
+ * The index being checked.
+ *
+ * @return bool true if the requested index exists, otherwise false
+ */
+ public function offsetExists ($index) {}
+
+ /**
+ * Returns the value at the specified index
+ * @link https://php.net/manual/en/splfixedarray.offsetget.php
+ * @param int $index
+ * The index with the value.
+ *
+ * @return mixed The value at the specified index.
+ */
+ public function offsetGet ($index) {}
+
+ /**
+ * Sets a new value at a specified index
+ * @link https://php.net/manual/en/splfixedarray.offsetset.php
+ * @param int $index
+ * The index being set.
+ *
+ * @param mixed $value
+ * The new value for the index.
+ *
+ * @return void
+ */
+ public function offsetSet ($index, $value) {}
+
+ /**
+ * Unsets the value at the specified $index
+ * @link https://php.net/manual/en/splfixedarray.offsetunset.php
+ * @param int $index
+ * The index being unset.
+ *
+ * @return void
+ */
+ public function offsetUnset ($index) {}
+
+ /**
+ * Rewind iterator back to the start
+ * @link https://php.net/manual/en/splfixedarray.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Return current array entry
+ * @link https://php.net/manual/en/splfixedarray.current.php
+ * @return mixed The current element value.
+ */
+ public function current () {}
+
+ /**
+ * Return current array index
+ * @link https://php.net/manual/en/splfixedarray.key.php
+ * @return int The current array index.
+ */
+ public function key () {}
+
+ /**
+ * Move to next entry
+ * @link https://php.net/manual/en/splfixedarray.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Check whether the array contains more elements
+ * @link https://php.net/manual/en/splfixedarray.valid.php
+ * @return bool true if the array contains any more elements, false otherwise.
+ */
+ public function valid () {}
+
+ public function __wakeup()
+ {
+ }
+
+ public function getIterator() {}
+}
+
+/**
+ * The SplObserver interface is used alongside
+ * SplSubject to implement the Observer Design Pattern.
+ * @link https://php.net/manual/en/class.splobserver.php
+ */
+interface SplObserver {
+
+ /**
+ * Receive update from subject
+ * @link https://php.net/manual/en/splobserver.update.php
+ * @param SplSubject $subject
+ * The SplSubject notifying the observer of an update.
+ *
+ * @return void
+ */
+ public function update (SplSubject $subject);
+
+}
+
+/**
+ * The SplSubject interface is used alongside
+ * SplObserver to implement the Observer Design Pattern.
+ * @link https://php.net/manual/en/class.splsubject.php
+ */
+interface SplSubject {
+
+ /**
+ * Attach an SplObserver
+ * @link https://php.net/manual/en/splsubject.attach.php
+ * @param SplObserver $observer
+ * The SplObserver to attach.
+ *
+ * @return void
+ */
+ public function attach (SplObserver $observer);
+
+ /**
+ * Detach an observer
+ * @link https://php.net/manual/en/splsubject.detach.php
+ * @param SplObserver $observer
+ * The SplObserver to detach.
+ *
+ * @return void
+ */
+ public function detach (SplObserver $observer);
+
+ /**
+ * Notify an observer
+ * @link https://php.net/manual/en/splsubject.notify.php
+ * @return void
+ */
+ public function notify ();
+
+}
+
+/**
+ * The SplObjectStorage class provides a map from objects to data or, by
+ * ignoring data, an object set. This dual purpose can be useful in many
+ * cases involving the need to uniquely identify objects.
+ * @link https://php.net/manual/en/class.splobjectstorage.php
+ */
+class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess {
+
+ /**
+ * Adds an object in the storage
+ * @link https://php.net/manual/en/splobjectstorage.attach.php
+ * @param object $object
+ * The object to add.
+ *
+ * @param mixed $info [optional]
+ * The data to associate with the object.
+ *
+ * @return void
+ */
+ public function attach ($object, $info = null) {}
+
+ /**
+ * Removes an object from the storage
+ * @link https://php.net/manual/en/splobjectstorage.detach.php
+ * @param object $object
+ * The object to remove.
+ *
+ * @return void
+ */
+ public function detach ($object) {}
+
+ /**
+ * Checks if the storage contains a specific object
+ * @link https://php.net/manual/en/splobjectstorage.contains.php
+ * @param object $object
+ * The object to look for.
+ *
+ * @return bool true if the object is in the storage, false otherwise.
+ */
+ public function contains ($object) {}
+
+ /**
+ * Adds all objects from another storage
+ * @link https://php.net/manual/en/splobjectstorage.addall.php
+ * @param SplObjectStorage $storage
+ * The storage you want to import.
+ *
+ * @return void
+ */
+ public function addAll ($storage) {}
+
+ /**
+ * Removes objects contained in another storage from the current storage
+ * @link https://php.net/manual/en/splobjectstorage.removeall.php
+ * @param SplObjectStorage $storage
+ * The storage containing the elements to remove.
+ *
+ * @return void
+ */
+ public function removeAll ($storage) {}
+
+ /**
+ * Removes all objects except for those contained in another storage from the current storage
+ * @link https://php.net/manual/en/splobjectstorage.removeallexcept.php
+ * @param SplObjectStorage $storage
+ * The storage containing the elements to retain in the current storage.
+ *
+ * @return void
+ * @since 5.3.6
+ */
+ public function removeAllExcept ($storage) {}
+
+ /**
+ * Returns the data associated with the current iterator entry
+ * @link https://php.net/manual/en/splobjectstorage.getinfo.php
+ * @return mixed The data associated with the current iterator position.
+ */
+ public function getInfo () {}
+
+ /**
+ * Sets the data associated with the current iterator entry
+ * @link https://php.net/manual/en/splobjectstorage.setinfo.php
+ * @param mixed $info
+ * The data to associate with the current iterator entry.
+ *
+ * @return void
+ */
+ public function setInfo ($info) {}
+
+ /**
+ * Returns the number of objects in the storage
+ * @link https://php.net/manual/en/splobjectstorage.count.php
+ * @param int $mode [optional]
+ * @return int The number of objects in the storage.
+ */
+ public function count ($mode = COUNT_NORMAL) {}
+
+ /**
+ * Rewind the iterator to the first storage element
+ * @link https://php.net/manual/en/splobjectstorage.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Returns if the current iterator entry is valid
+ * @link https://php.net/manual/en/splobjectstorage.valid.php
+ * @return bool true if the iterator entry is valid, false otherwise.
+ */
+ public function valid () {}
+
+ /**
+ * Returns the index at which the iterator currently is
+ * @link https://php.net/manual/en/splobjectstorage.key.php
+ * @return int The index corresponding to the position of the iterator.
+ */
+ public function key () {}
+
+ /**
+ * Returns the current storage entry
+ * @link https://php.net/manual/en/splobjectstorage.current.php
+ * @return object The object at the current iterator position.
+ */
+ public function current () {}
+
+ /**
+ * Move to the next entry
+ * @link https://php.net/manual/en/splobjectstorage.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * Unserializes a storage from its string representation
+ * @link https://php.net/manual/en/splobjectstorage.unserialize.php
+ * @param string $data
+ * The serialized representation of a storage.
+ *
+ * @return void
+ * @since 5.2.2
+ */
+ public function unserialize ($data) {}
+
+ /**
+ * Serializes the storage
+ * @link https://php.net/manual/en/splobjectstorage.serialize.php
+ * @return string A string representing the storage.
+ * @since 5.2.2
+ */
+ public function serialize () {}
+
+ /**
+ * Checks whether an object exists in the storage
+ * @link https://php.net/manual/en/splobjectstorage.offsetexists.php
+ * @param object $object
+ * The object to look for.
+ *
+ * @return bool true if the object exists in the storage,
+ * and false otherwise.
+ */
+ public function offsetExists ($object) {}
+
+ /**
+ * Associates data to an object in the storage
+ * @link https://php.net/manual/en/splobjectstorage.offsetset.php
+ * @param object $object
+ * The object to associate data with.
+ *
+ * @param mixed $info [optional]
+ * The data to associate with the object.
+ *
+ * @return void
+ */
+ public function offsetSet ($object, $info = null) {}
+
+ /**
+ * Removes an object from the storage
+ * @link https://php.net/manual/en/splobjectstorage.offsetunset.php
+ * @param object $object
+ * The object to remove.
+ *
+ * @return void
+ */
+ public function offsetUnset ($object) {}
+
+ /**
+ * Returns the data associated with an object
+ * @link https://php.net/manual/en/splobjectstorage.offsetget.php
+ * @param object $object
+ * The object to look for.
+ *
+ * @return mixed The data previously associated with the object in the storage.
+ */
+ public function offsetGet ($object) {}
+
+ /**
+ * Calculate a unique identifier for the contained objects
+ * @link https://php.net/manual/en/splobjectstorage.gethash.php
+ * @param object $object
+ * object whose identifier is to be calculated.
+ * @return string A string with the calculated identifier.
+ * @since 5.4
+ */
+ public function getHash($object) {}
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __serialize(): array {}
+
+ /**
+ * @param array $data
+ * @since 7.4
+ */
+ public function __unserialize(array $data): void {}
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+
+}
+
+/**
+ * An Iterator that sequentially iterates over all attached iterators
+ * @link https://php.net/manual/en/class.multipleiterator.php
+ */
+class MultipleIterator implements Iterator {
+ const MIT_NEED_ANY = 0;
+ const MIT_NEED_ALL = 1;
+ const MIT_KEYS_NUMERIC = 0;
+ const MIT_KEYS_ASSOC = 2;
+
+
+ /**
+ * Constructs a new MultipleIterator
+ * @link https://php.net/manual/en/multipleiterator.construct.php
+ * @param int $flags [optional] Defaults to MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_NUMERIC
+ */
+ public function __construct ($flags = MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_NUMERIC) {}
+
+ /**
+ * Gets the flag information
+ * @link https://php.net/manual/en/multipleiterator.getflags.php
+ * @return int Information about the flags, as an integer.
+ */
+ public function getFlags () {}
+
+ /**
+ * Sets flags
+ * @link https://php.net/manual/en/multipleiterator.setflags.php
+ * @param int $flags
+ * The flags to set, according to the
+ * Flag Constants
+ *
+ * @return void
+ */
+ public function setFlags ($flags) {}
+
+ /**
+ * Attaches iterator information
+ * @link https://php.net/manual/en/multipleiterator.attachiterator.php
+ * @param Iterator $iterator
+ * The new iterator to attach.
+ *
+ * @param int|string|null $info [optional]
+ * The associative information for the Iterator, which must be an
+ * integer, a string, or null.
+ *
+ * @return void
+ */
+ public function detachIterator (Iterator $iterator) {}
+
+ /**
+ * Checks if an iterator is attached
+ * @link https://php.net/manual/en/multipleiterator.containsiterator.php
+ * @param Iterator $iterator
+ * The iterator to check.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function containsIterator (Iterator $iterator) {}
+
+ /**
+ * Gets the number of attached iterator instances
+ * @link https://php.net/manual/en/multipleiterator.countiterators.php
+ * @return int The number of attached iterator instances (as an integer).
+ */
+ public function countIterators () {}
+
+ /**
+ * Rewinds all attached iterator instances
+ * @link https://php.net/manual/en/multipleiterator.rewind.php
+ * @return void
+ */
+ public function rewind () {}
+
+ /**
+ * Checks the validity of sub iterators
+ * @link https://php.net/manual/en/multipleiterator.valid.php
+ * @return bool true if one or all sub iterators are valid depending on flags,
+ * otherwise false
+ */
+ public function valid () {}
+
+ /**
+ * Gets the registered iterator instances
+ * @link https://php.net/manual/en/multipleiterator.key.php
+ * @return array An array of all registered iterator instances,
+ * or false if no sub iterator is attached.
+ */
+ public function key () {}
+
+ /**
+ * Gets the registered iterator instances
+ * @link https://php.net/manual/en/multipleiterator.current.php
+ * @return array|false An array containing the current values of each attached iterator,
+ * or false if no iterators are attached.
+ * @throws \RuntimeException if mode MIT_NEED_ALL is set and at least one attached iterator is not valid.
+ * @throws \InvalidArgumentException if a key is NULL and MIT_KEYS_ASSOC is set.
+ */
+ public function current () {}
+
+ /**
+ * Moves all attached iterator instances forward
+ * @link https://php.net/manual/en/multipleiterator.next.php
+ * @return void
+ */
+ public function next () {}
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ public function __debugInfo(){}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/SPL/SPL_f.php b/vendor/jetbrains/phpstorm-stubs/SPL/SPL_f.php
new file mode 100644
index 0000000000..6300675fd2
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/SPL/SPL_f.php
@@ -0,0 +1,217 @@
+
+ *
+ * @param string|null $file_extensions [optional]
+ * By default it checks all include paths to
+ * contain filenames built up by the lowercase class name appended by the
+ * filename extensions .inc and .php.
+ *
+ * When calling without an argument, it simply returns the current list
+ * of extensions each separated by comma. To modify the list of file
+ * extensions, simply invoke the functions with the new list of file
+ * extensions to use in a single string with each extensions separated
+ * by comma.
+ *
+ * @return string A comma delimited list of default file extensions for
+ * spl_autoload.
+ * @since 5.1.2
+ */
+function spl_autoload_extensions (?string $file_extensions): string
+{}
+
+/**
+ * Register given function as __autoload() implementation
+ * @link https://php.net/manual/en/function.spl-autoload-register.php
+ * @param callback|null $callback [optional]
+ * The autoload function being registered.
+ * If no parameter is provided, then the default implementation of
+ * spl_autoload will be registered.
+ *
+ * @param bool $throw This parameter specifies whether spl_autoload_register() should throw exceptions when the
+ * autoload_function cannot be registered. Ignored since since 8.0.
+ * @param bool $prepend If true, spl_autoload_register() will prepend the autoloader on the autoload stack instead of
+ * appending it.
+ * @return bool true on success or false on failure.
+ * @throws TypeError Since 8.0.
+ * @since 5.1.2
+ */
+function spl_autoload_register (?callable $callback, bool $throw = true, bool $prepend = false): bool
+{}
+
+/**
+ * Unregister given function as __autoload() implementation
+ * @link https://php.net/manual/en/function.spl-autoload-unregister.php
+ * @param callable $callback
+ * The autoload function being unregistered.
+ *
+ * @return bool true on success or false on failure.
+ * @since 5.1.2
+ */
+function spl_autoload_unregister (callable $callback): bool
+{}
+
+/**
+ * Return all registered __autoload() functions
+ * @link https://php.net/manual/en/function.spl-autoload-functions.php
+ * @return array An array of all registered __autoload functions.
+ * If the autoload stack is not activated then the return value is false.
+ * If no function is registered the return value will be an empty array.
+ * @since 5.1.2
+ */
+function spl_autoload_functions (): array
+{}
+
+/**
+ * Try all registered __autoload() functions to load the requested class
+ * @link https://php.net/manual/en/function.spl-autoload-call.php
+ * @param string $class
+ * The class name being searched.
+ *
+ * @return void
+ * @since 5.1.2
+ */
+function spl_autoload_call (string $class): void {}
+
+/**
+ * Return the parent classes of the given class
+ * @link https://php.net/manual/en/function.class-parents.php
+ * @param object|string $object_or_class
+ * An object (class instance) or a string (class name).
+ *
+ * @param bool $autoload [optional]
+ * Whether to allow this function to load the class automatically through
+ * the __autoload magic
+ * method.
+ *
+ * @return string[]|false An array on success, or false on error.
+ */
+#[Pure]
+function class_parents ($object_or_class, bool $autoload): array|false
+{}
+
+/**
+ * Return the interfaces which are implemented by the given class
+ * @link https://php.net/manual/en/function.class-implements.php
+ * @param object|string $object_or_class
+ * An object (class instance) or a string (class name).
+ *
+ * @param bool $autoload [optional]
+ * Whether to allow this function to load the class automatically through
+ * the __autoload magic
+ * method.
+ *
+ * @return string[]|false An array on success, or false on error.
+ */
+#[Pure]
+function class_implements ($object_or_class, bool $autoload): array|false
+{}
+
+/**
+ * Return hash id for given object
+ * @link https://php.net/manual/en/function.spl-object-hash.php
+ * @param object $object
+ * @return string A string that is unique for each object and is always the same for
+ * the same object.
+ */
+#[Pure]
+function spl_object_hash (object $object): string
+{}
+
+/**
+ * Copy the iterator into an array
+ * @link https://php.net/manual/en/function.iterator-to-array.php
+ * @param Traversable $iterator
+ * The iterator being copied.
+ *
+ * @param bool $preserve_keys [optional]
+ * Whether to use the iterator element keys as index.
+ *
+ * @return array An array containing the elements of the iterator.
+ */
+#[Pure]
+function iterator_to_array (Traversable $iterator, bool $preserve_keys = true): array
+{}
+
+/**
+ * Count the elements in an iterator
+ * @link https://php.net/manual/en/function.iterator-count.php
+ * @param Traversable $iterator
+ * The iterator being counted.
+ *
+ * @return int The number of elements in iterator.
+ */
+#[Pure]
+function iterator_count (Traversable $iterator): int
+{}
+
+/**
+ * Call a function for every element in an iterator
+ * @link https://php.net/manual/en/function.iterator-apply.php
+ * @param Traversable $iterator
+ * The class to iterate over.
+ *
+ * @param callback $callback
+ * The callback function to call on every element.
+ * The function must return true in order to
+ * continue iterating over the iterator.
+ *
+ * @param array|null $args [optional]
+ * Arguments to pass to the callback function.
+ *
+ * @return int the iteration count.
+ */
+function iterator_apply (Traversable $iterator, callable $callback, ?array $args): int
+{}
+
+// End of SPL v.0.2
+
+/**
+ * Return the traits used by the given class
+ * @param object|string $object_or_class An object (class instance) or a string (class name).
+ * @param bool $autoload Whether to allow this function to load the class automatically through the __autoload() magic method.
+ * @return string[]|false An array on success, or false on error.
+ * @link https://php.net/manual/en/function.class-uses.php
+ * @see class_parents()
+ * @see get_declared_traits()
+ * @since 5.4
+ */
+function class_uses($object_or_class, bool $autoload = true): array|false
+{}
+
+/**
+ * return the integer object handle for given object
+ * @param object $object
+ * @return int
+ * @since 7.2
+ */
+function spl_object_id(object $object): int
+{}
+
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/SQLite/SQLite.php b/vendor/jetbrains/phpstorm-stubs/SQLite/SQLite.php
new file mode 100644
index 0000000000..86af0a641a
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/SQLite/SQLite.php
@@ -0,0 +1,1407 @@
+The filename of the SQLite database. If the file does not exist, SQLite will attempt to create it. PHP must have write permissions to the file if data is inserted, the database schema is modified or to create the database if it does not exist.
+ * @param int $mode [optional]
The mode of the file. Intended to be used to open the database in read-only mode. Presently, this parameter is ignored by the sqlite library. The default value for mode is the octal value 0666 and this is the recommended value.
+ * @param string &$error_message [optional]
Passed by reference and is set to hold a descriptive error message explaining why the database could not be opened if there was an error.
+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}.
+ *
+ * @param int $result_type [optional]
+ *
The optional result_type parameter accepts a constant and determines how the returned array will be indexed. Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). SQLITE_BOTH will return both associative and numerical indices. SQLITE_BOTH is the default for this function.
+ * @param string &$error_message [optional]
The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the {@see sqlite_last_error()} function.
+ * @return resource|false
+ * This function will return a result handle or FALSE on failure.
+ * For queries that return rows, the result handle can then be used with
+ * functions such as {@see sqlite_fetch_array()} and
+ * {@see sqlite_seek()}.
+ *
+ *
+ * Regardless of the query type, this function will return FALSE if the
+ * query failed.
+ *
+ *
+ * {@see sqlite_query()} returns a buffered, seekable result
+ * handle. This is useful for reasonably small queries where you need to
+ * be able to randomly access the rows. Buffered result handles will
+ * allocate memory to hold the entire result and will not return until it
+ * has been fetched. If you only need sequential access to the data, it is
+ * recommended that you use the much higher performance
+ * {@see sqlite_unbuffered_query()} instead.
+ *
+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}.
+ *
+ * @param string &$error_message [optional]
The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the
+ * {@see sqlite_last_error()} function.
+ * @return bool
+ * This function will return a boolean result; TRUE for success or FALSE for failure.
+ * If you need to run a query that returns rows, see {@see sqlite_query()}.
+ *
+ *
The column names returned by
+ * SQLITE_ASSOC and SQLITE_BOTH will be
+ * case-folded according to the value of the
+ * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration
+ * option.
+ */
+ public function queryExec ($query, &$error_message) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Execute a query against a given database and returns an array
+ * @link https://php.net/manual/en/function.sqlite-array-query.php
+ * @param string $query
+ * The query to be executed.
+ *
+ *
+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}.
+ *
+ * @param int $result_type [optional]
The optional result_type
+ * parameter accepts a constant and determines how the returned array will be
+ * indexed. Using SQLITE_ASSOC will return only associative
+ * indices (named fields) while SQLITE_NUM will return
+ * only numerical indices (ordinal field numbers). SQLITE_BOTH
+ * will return both associative and numerical indices.
+ * SQLITE_BOTH is the default for this function.
+ * @param bool $decode_binary [optional]
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ * {@see sqlite_escape_string()}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
+ *
+ * @return array|false
+ * Returns an array of the entire result set; FALSE otherwise.
+ *
+ *
The column names returned by
+ * SQLITE_ASSOC and SQLITE_BOTH will be
+ * case-folded according to the value of the
+ * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration
+ * option.
+ */
+ public function arrayQuery ($query, $result_type, $decode_binary) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)
+ * Executes a query and returns either an array for one single column or the value of the first row
+ * @link https://php.net/manual/en/function.sqlite-single-query.php
+ * @param string $query
+ * @param bool $first_row_only [optional]
+ * @param bool $decode_binary [optional]
+ * @return array
+ */
+ public function singleQuery ($query, $first_row_only, $decode_binary) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Execute a query that does not prefetch and buffer all data
+ * @link https://php.net/manual/en/function.sqlite-unbuffered-query.php
+ * @param string $query
+ * The query to be executed.
+ *
+ *
+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}.
+ *
+ * @param int $result_type [optional]
The optional result_type parameter accepts a constant and determines how the returned array will be indexed.
+ * Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers).
+ * SQLITE_BOTH will return both associative and numerical indices. SQLITE_BOTH is the default for this function.
+ * @param string &$error_message [optional]
+ * @return resource Returns a result handle or FALSE on failure.
+ * {@see sqlite_unbuffered_query()} returns a sequential forward-only result set that can only be used to read each row, one after the other.
+ */
+ public function unbufferedQuery ($query, $result_type = SQLITE_BOTH, &$error_message = null) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Returns the rowid of the most recently inserted row
+ * @link https://php.net/manual/en/function.sqlite-last-insert-rowid.php
+ * @return int Returns the row id, as an integer.
+ */
+ public function lastInsertRowid () {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Returns the number of rows that were changed by the most recent SQL statement
+ * @link https://php.net/manual/en/function.sqlite-changes.php
+ * @return int Returns the number of changed rows.
+ */
+ public function changes () {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Register an aggregating UDF for use in SQL statements
+ * @link https://php.net/manual/en/function.sqlite-create-aggregate.php
+ * @param string $function_name
The name of the function used in SQL statements.
+ * @param callable $step_func
Callback function called for each row of the result set. Function parameters are &$context, $value, ....
+ * @param callable $finalize_func
Callback function to aggregate the "stepped" data from each row. Function parameter is &$context and the function should return the final result of aggregation.
+ * @param int $num_args [optional]
Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.
+ */
+ public function createAggregate ($function_name, $step_func, $finalize_func, $num_args = -1) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Registers a "regular" User Defined Function for use in SQL statements
+ * @link https://php.net/manual/en/function.sqlite-create-function.php
+ * @param string $function_name
The name of the function used in SQL statements.
+ * @param callable $callback
+ * Callback function to handle the defined SQL function.
+ *
+ *
Note:
+ * Callback functions should return a type understood by SQLite (i.e.
+ * {@link https://php.net/manual/en/language.types.intro.php scalar type}).
+ *
+ * @param int $num_args [optional]
Note: Two alternative syntaxes are
+ * supported for compatibility with other database extensions (such as MySQL).
+ * The preferred form is the first, where the dbhandle
+ * parameter is the first parameter to the function.
+ */
+ public function createFunction ($function_name, $callback, $num_args = -1) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Set busy timeout duration, or disable busy handlers
+ * @link https://php.net/manual/en/function.sqlite-busy-timeout.php
+ * @param int $milliseconds
The number of milliseconds. When set to 0, busy handlers will be disabled and SQLite will return immediately with a SQLITE_BUSY status code if another process/thread has the database locked for an update.
+ * PHP sets the default busy timeout to be 60 seconds when the database is opened.
+ * @return int
Returns an error code, or 0 if no error occurred.
+ */
+ public function busyTimeout ($milliseconds) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Returns the error code of the last error for a database
+ * @link https://php.net/manual/en/function.sqlite-last-error.php
+ * @return int Returns an error code, or 0 if no error occurred.
+ */
+ public function lastError () {}
+
+ /**
+ * (PHP 5 < 5.4.0)
+ * Return an array of column types from a particular table
+ * @link https://php.net/manual/en/function.sqlite-fetch-column-types.php
+ * @param string $table_name
The table name to query.
+ * @param int $result_type [optional]
+ * The optional result_type parameter accepts a
+ * constant and determines how the returned array will be indexed. Using
+ * SQLITE_ASSOC will return only associative indices
+ * (named fields) while SQLITE_NUM will return only
+ * numerical indices (ordinal field numbers).
+ * SQLITE_ASSOC is the default for
+ * this function.
+ *
+ * @return array
+ * Returns an array of column data types; FALSE on error.
+ *
+ *
The column names returned by
+ * SQLITE_ASSOC and SQLITE_BOTH will be
+ * case-folded according to the value of the
+ * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration
+ * option.
+ */
+ public function fetchColumnTypes ($table_name, $result_type = SQLITE_ASSOC) {}
+
+}
+
+/**
+ * @link https://php.net/manual/en/ref.sqlite.php
+ */
+final class SQLiteResult implements Iterator, Countable {
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Fetches the next row from a result set as an array
+ * @link https://php.net/manual/en/function.sqlite-fetch-array.php
+ * @param int $result_type [optional]
+ *
+ * The optional result_type
+ * parameter accepts a constant and determines how the returned array will be
+ * indexed. Using SQLITE_ASSOC will return only associative
+ * indices (named fields) while SQLITE_NUM will return
+ * only numerical indices (ordinal field numbers). SQLITE_BOTH
+ * will return both associative and numerical indices.
+ * SQLITE_BOTH is the default for this function.
+ * @param bool $decode_binary [optional]
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ *{@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
+ * @return array
+ * Returns an array of the next row from a result set; FALSE if the
+ * next position is beyond the final row.
+ *
+ *
The column names returned by
+ * SQLITE_ASSOC and SQLITE_BOTH will be
+ * case-folded according to the value of the
+ * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration
+ * option.
+ */
+ public function fetch ($result_type = SQLITE_BOTH, $decode_binary = true) {}
+
+ /**
+ * (PHP 5 < 5.4.0)
+ * Fetches the next row from a result set as an object
+ * @link https://php.net/manual/en/function.sqlite-fetch-object.php
+ * @param string $class_name [optional]
+ * @param array $ctor_params [optional]
+ * @param bool $decode_binary [optional]
+ * @return object
+ */
+ public function fetchObject ($class_name, $ctor_params, $decode_binary = true) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)
+ * Fetches the first column of a result set as a string
+ * @link https://php.net/manual/en/function.sqlite-fetch-single.php
+ * @param bool $decode_binary [optional]
+ * @return string
Returns the first column value, as a string.
+ */
+ public function fetchSingle ($decode_binary = true) {}
+
+ /**
+ * (PHP 5 < 5.4.0)
+ * Fetches the next row from a result set as an object
+ * @link https://www.php.net/manual/en/function.sqlite-fetch-all.php
+ * @param int $result_type [optional]
+ * The optional result_type parameter accepts a constant and determines how the returned array will be indexed.
+ * Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers).
+ * {@see SQLITE_BOTH} will return both associative and numerical indices. {@see SQLITE_BOTH} is the default for this function.
+ * @param bool $decode_binary [optional]
When the decode_binary parameter is set to TRUE (the default),
+ * PHP will decode the binary encoding it applied to the data if it was encoded using the {@see sqlite_escape_string()}.
+ * You should normally leave this value at its default, unless you are interoperating with databases created by other sqlite capable applications.
+ * @return object
+ */
+ public function fetchAll ($result_type, $decode_binary = true) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Fetches a column from the current row of a result set
+ * @link https://php.net/manual/en/function.sqlite-column.php
+ * @param $index_or_name
+ * @param $decode_binary [optional]
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ * {@see sqlite_escape_string()}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
+ * @return mixed
Returns the column value
+ */
+ public function column ($index_or_name, $decode_binary = true) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Returns the number of fields in a result set
+ * @link https://php.net/manual/en/function.sqlite-num-fields.php
+ * @return int
Returns the number of fields, as an integer.
+ */
+ public function numFields () {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Returns the name of a particular field
+ * @link https://php.net/manual/en/function.sqlite-field-name.php
+ * @param int $field_index
The ordinal column number in the result set.
+ * @return string
+ * Returns the name of a field in an SQLite result set, given the ordinal
+ * column number; FALSE on error.
+ *
+ *
The column names returned by
+ * SQLITE_ASSOC and SQLITE_BOTH will be
+ * case-folded according to the value of the
+ * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case}configuration
+ * option.
+ *
+ */
+ public function fieldName ($field_index) {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Fetches the current row from a result set as an array
+ * @link https://php.net/manual/en/function.sqlite-current.php
+ * @param int $result_type [optional]
The optional result_type
+ * parameter accepts a constant and determines how the returned array will be
+ * indexed. Using {@see SQLITE_ASSOC} will return only associative
+ * indices (named fields) while {@see SQLITE_NUM} will return
+ * only numerical indices (ordinal field numbers). SQLITE_BOTH
+ * will return both associative and numerical indices.
+ * {@see SQLITE_BOTH} is the default for this function.
+ * @param bool $decode_binary [optional]
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ * {@see sqlite_escape_string()}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
+ * @return array
+ * Returns an array of the current row from a result set; FALSE if the
+ * current position is beyond the final row.
+ *
+ *
The column names returned by
+ * SQLITE_ASSOC and SQLITE_BOTH will be
+ * case-folded according to the value of the
+ * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration
+ * option.
+ */
+ public function current ($result_type = SQLITE_BOTH , $decode_binary = true) {}
+ /**
+ * Return the key of the current element
+ * @link https://php.net/manual/en/iterator.key.php
+ * @return mixed scalar on success, or null on failure.
+ * @since 5.0.0
+ */
+ public function key () {}
+ /**
+ * Seek to the next row number
+ * @link https://php.net/manual/en/function.sqlite-next.php
+ * @return bool Returns TRUE on success, or FALSE if there are no more rows.
+ * @since 5.0.0
+ */
+ public function next () {}
+ /**
+ * Checks if current position is valid
+ * @link https://php.net/manual/en/iterator.valid.php
+ * @return bool
+ * Returns TRUE if there are more rows available from the
+ * result handle, or FALSE otherwise.
+ *
+ * @since 5.0.0
+ */
+ public function valid () {}
+ /**
+ * Rewind the Iterator to the first element
+ * @link https://php.net/manual/en/iterator.rewind.php
+ * @return void Any returned value is ignored.
+ * @since 5.0.0
+ */
+ public function rewind () {}
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/countable.count.php
+ * @return int
The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ *
+ * @since 5.1.0
+ */
+ public function count () {}
+
+ /**
+ * Seek to the previous row number of a result set
+ * @link https://php.net/manual/en/function.sqlite-prev.php
+ * @return bool
Returns TRUE on success, or FALSE if there are no more previous rows.
+ *
+ * @since 5.4.0
+ */
+ public function prev () {}
+
+ /**
+ *@since 5.4.0
+ * Returns whether or not a previous row is available
+ * @link https://php.net/manual/en/function.sqlite-has-prev.php
+ * @return bool
+ * Returns TRUE if there are more previous rows available from the
+ * result handle, or FALSE otherwise.
+ *
+ */
+ public function hasPrev () {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Returns the number of rows in a buffered result set
+ * @link https://php.net/manual/en/function.sqlite-num-rows.php
+ * @return int Returns the number of rows, as an integer.
+ */
+ public function numRows () {}
+
+ /**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Seek to a particular row number of a buffered result set
+ * @link https://php.net/manual/en/function.sqlite-seek.php
+ * @param $row
+ *
+ * The ordinal row number to seek to. The row number is zero-based (0 is
+ * the first row).
+ *
+ *
Note:
This function cannot be used with
+ * unbuffered result handles.
+ */
+ public function seek ($row) {}
+
+}
+
+/**
+ * Represents an unbuffered SQLite result set. Unbuffered results sets are sequential, forward-seeking only.
+ * @link https://php.net/manual/en/ref.sqlite.php
+ */
+final class SQLiteUnbuffered {
+
+ /**
+ * @param int $result_type [optional]
+ * @param bool $decode_binary [optional]
+ */
+ public function fetch ($result_type, $decode_binary) {}
+
+ /**
+ * @link https://www.php.net/manual/en/function.sqlite-fetch-object.php
+ * @param string $class_name [optional]
+ * @param array $ctor_params [optional]
+ * @param bool $decode_binary [optional]
+ */
+ public function fetchObject ($class_name, $ctor_params, $decode_binary) {}
+
+ /**
+ * @param bool $decode_binary [optional]
+ */
+ public function fetchSingle ($decode_binary) {}
+
+ /**
+ * @param int $result_type [optional]
+ * @param bool $decode_binary [optional]
+ */
+ public function fetchAll ($result_type, $decode_binary) {}
+
+ /**
+ * @param $index_or_name
+ * @param $decode_binary [optional]
+ */
+ public function column ($index_or_name, $decode_binary) {}
+
+ public function numFields () {}
+
+ /**
+ * @param int $field_index
+ */
+ public function fieldName ($field_index) {}
+
+ /**
+ * @param int $result_type [optional]
+ * @param bool $decode_binary [optional]
+ */
+ public function current ($result_type, $decode_binary) {}
+
+ public function next () {}
+
+ public function valid () {}
+
+}
+
+final class SQLiteException extends RuntimeException {
+ protected $message;
+ protected $code;
+ protected $file;
+ protected $line;
+
+
+ /**
+ * Clone the exception
+ * @link https://php.net/manual/en/exception.clone.php
+ * @return void
+ * @since 5.1.0
+ */
+ final private function __clone () {}
+
+ /**
+ * Construct the exception
+ * @link https://php.net/manual/en/exception.construct.php
+ * @param $message [optional]
+ * @param $code [optional]
+ * @param $previous [optional]
+ * @since 5.1.0
+ */
+ #[Pure]
+ public function __construct ($message, $code, $previous) {}
+
+ /**
+ * String representation of the exception
+ * @link https://php.net/manual/en/exception.tostring.php
+ * @return string the string representation of the exception.
+ * @since 5.1.0
+ */
+ public function __toString () {}
+
+}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Opens a SQLite database and create the database if it does not exist
+ * @link https://php.net/manual/en/function.sqlite-open.php
+ * @param string $filename
+ * The filename of the SQLite database. If the file does not exist, SQLite
+ * will attempt to create it. PHP must have write permissions to the file
+ * if data is inserted, the database schema is modified or to create the
+ * database if it does not exist.
+ *
+ * @param int $mode [optional]
+ * The mode of the file. Intended to be used to open the database in
+ * read-only mode. Presently, this parameter is ignored by the sqlite
+ * library. The default value for mode is the octal value
+ * 0666 and this is the recommended value.
+ *
+ * @param string &$error_message [optional]
+ * Passed by reference and is set to hold a descriptive error message
+ * explaining why the database could not be opened if there was an error.
+ *
+ * @return resource|false a resource (database handle) on success, false on error.
+ */
+function sqlite_open ($filename, $mode = null, &$error_message = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Opens a persistent handle to an SQLite database and create the database if it does not exist
+ * @link https://php.net/manual/en/function.sqlite-popen.php
+ * @param string $filename
+ * The filename of the SQLite database. If the file does not exist, SQLite
+ * will attempt to create it. PHP must have write permissions to the file
+ * if data is inserted, the database schema is modified or to create the
+ * database if it does not exist.
+ *
+ * @param int $mode [optional]
+ * The mode of the file. Intended to be used to open the database in
+ * read-only mode. Presently, this parameter is ignored by the sqlite
+ * library. The default value for mode is the octal value
+ * 0666 and this is the recommended value.
+ *
+ * @param string &$error_message [optional]
+ * Passed by reference and is set to hold a descriptive error message
+ * explaining why the database could not be opened if there was an error.
+ *
+ * @return resource|false
a resource (database handle) on success, false on error.
+ * The SQLite Database resource; returned from sqlite_open
+ * when used procedurally.
+ *
+ * @return void
+ */
+function sqlite_close ($dbhandle) {}
+
+/**
+ * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
+ * Executes a query against a given database and returns a result handle
+ * there are two signatures with $query first and with $dbhandle first.
+ * @link https://php.net/manual/en/function.sqlite-query.php
+ * @param string|resource $query
+ * The query to be executed.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param resource|string $dbhandle The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method.
+ * @param int $result_type [optional] &sqlite.result-type;
The optional result_type
+ * parameter accepts a constant and determines how the returned array will be
+ * indexed. Using SQLITE_ASSOC will return only associative
+ * indices (named fields) while SQLITE_NUM will return
+ * only numerical indices (ordinal field numbers). SQLITE_BOTH
+ * will return both associative and numerical indices.
+ * SQLITE_BOTH is the default for this function.
+ * @param string &$error_msg [optional]
+ * The specified variable will be filled if an error occurs. This is
+ * specially important because SQL syntax errors can't be fetched using
+ * the
+ * {@see sqlite_last_error} function.
+ *
+ * @return resource|false This function will return a result handle or FALSE on failure.
+ * For queries that return rows, the result handle can then be used with
+ * functions such as
+ * {@see sqlite_fetch_array} and
+ * {@see sqlite_seek}.
+ *
+ *
+ * Regardless of the query type, this function will return false if the
+ * query failed.
+ *
+ *
+ * {@see sqlite_query} returns a buffered, seekable result
+ * handle. This is useful for reasonably small queries where you need to
+ * be able to randomly access the rows. Buffered result handles will
+ * allocate memory to hold the entire result and will not return until it
+ * has been fetched. If you only need sequential access to the data, it is
+ * recommended that you use the much higher performance
+ * {@see sqlite_unbuffered_query} instead.
+ */
+function sqlite_query ($query, $dbhandle, $result_type = SQLITE_BOTH, &$error_msg = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.3)
+ * Executes a result-less query against a given database
+ * @link https://php.net/manual/en/function.sqlite-exec.php
+ * @param string $query
+ * The query to be executed.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param resource $dbhandle
+ * The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally. This parameter
+ * is not required when using the object-oriented method.
+ *
+ * @param string &$error_msg [optional]
+ * The specified variable will be filled if an error occurs. This is
+ * specially important because SQL syntax errors can't be fetched using
+ * the
+ * {@see sqlite_last_error} function.
+ *
+ * @return bool
This function will return a boolean result; true for success or false for failure.
+ * If you need to run a query that returns rows, see sqlite_query.
+ */
+function sqlite_exec ($dbhandle, $query, &$error_msg = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Execute a query against a given database and returns an array
+ * @link https://php.net/manual/en/function.sqlite-array-query.php
+ * @param string $query
+ * The query to be executed.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param resource $dbhandle
+ * The SQLite Database resource; returned from
+ * {@see sqlite_open()}
+ * when used procedurally. This parameter is not required
+ * when using the object-oriented method.
+ *
+ * @param int $result_type [optional] &sqlite.result-type;
The optional result_type
+ * parameter accepts a constant and determines how the returned array will be
+ * indexed. Using SQLITE_ASSOC will return only associative
+ * indices (named fields) while SQLITE_NUM will return
+ * only numerical indices (ordinal field numbers). SQLITE_BOTH
+ * will return both associative and numerical indices.
+ * SQLITE_BOTH is the default for this function.
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ * {@link sqlite_escape_string()}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
+ * @return array|false an array of the entire result set; false otherwise.
+ *
The column names returned by
+ * SQLITE_ASSOC and SQLITE_BOTH will be
+ * case-folded according to the value of the
+ * {@link php.net/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration
+ * option.
+ */
+function sqlite_array_query ($dbhandle, $query, $result_type = null, $decode_binary = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.1)
+ * Executes a query and returns either an array for one single column or the value of the first row
+ * @link https://php.net/manual/en/function.sqlite-single-query.php
+ * @param resource $db
+ * @param string $query
+ * @param bool $first_row_only [optional]
+ * @param bool $decode_binary [optional]
+ * @return array
+ */
+function sqlite_single_query ($db, $query, $first_row_only = null, $decode_binary = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Fetches the next row from a result set as an array
+ * @link https://php.net/manual/en/function.sqlite-fetch-array.php
+ * @param resource $result
The SQLite result resource. This parameter is not required when using the object-oriented method.
an array of the next row from a result set; false if the
+ * next position is beyond the final row.
+ */
+function sqlite_fetch_array ($result, $result_type = SQLITE_BOTH, $decode_binary = null) {}
+
+/**
+ * Fetches the next row from a result set as an object
+ * @link https://php.net/manual/en/function.sqlite-fetch-object.php
+ * @param resource $result
+ * @param string $class_name [optional]
+ * @param array $ctor_params [optional]
+ * @param bool $decode_binary [optional]
+ * @return object
+ */
+function sqlite_fetch_object ($result, $class_name = null, array $ctor_params = null, $decode_binary = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.1)
+ * Fetches the first column of a result set as a string
+ * @link https://php.net/manual/en/function.sqlite-fetch-single.php
+ * @param resource $result
The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param bool $decode_binary [optional]
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ * {@see sqlite_escape_string()}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param bool $decode_binary [optional]
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ * {@see sqlite_escape_string()}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
+ * @return string
the first column value, as a string.
+ */
+function sqlite_fetch_string ($result, $decode_binary) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Fetches all rows from a result set as an array of arrays
+ * @link https://php.net/manual/en/function.sqlite-fetch-all.php
+ * @param int $result_type [optional] &sqlite.result-type;
+ * @param bool $decode_binary [optional] &sqlite.decode-bin;
+ * @return array
an array of the remaining rows in a result set. If called right
+ * after
+ * {@see sqlite_query}, it returns all rows. If called
+ * after
+ * {@see sqlite_fetch_array}, it returns the rest. If
+ * there are no rows in a result set, it returns an empty array.
+ *
The column names returned by SQLITE_ASSOC and SQLITE_BOTH will be case-folded according to the value of the
+ * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration option.
+ */
+function sqlite_fetch_all ($result_type = null, $decode_binary = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Fetches the current row from a result set as an array
+ * @link https://php.net/manual/en/function.sqlite-current.php
+ * @param resource $result
The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param int $result_type [optional]
The optional result_type parameter accepts a constant and determines how the returned array will be indexed. Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). SQLITE_BOTH will return both associative and numerical indices. SQLITE_BOTH is the default for this function.
+ * @param bool $decode_binary [optional]
When the decode_binary parameter is set to TRUE (the default), PHP will decode the binary encoding it applied to the data if it was encoded using the sqlite_escape_string(). You should normally leave this value at its default, unless you are interoperating with databases created by other sqlite capable applications.
+ * @return array|false an array of the current row from a result set; false if the
+ * current position is beyond the final row.
+ */
+function sqlite_current ($result, $result_type = null, $decode_binary = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Fetches a column from the current row of a result set
+ * @link https://php.net/manual/en/function.sqlite-column.php
+ * @param resource $result
The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param mixed $index_or_name
+ * The column index or name to fetch.
+ *
+ * @param bool $decode_binary [optional]
When the decode_binary
+ * parameter is set to TRUE (the default), PHP will decode the binary encoding
+ * it applied to the data if it was encoded using the
+ * {@see sqlite_escape_string()}. You should normally leave this
+ * value at its default, unless you are interoperating with databases created by
+ * other sqlite capable applications.
+ * @return mixed the column value.
+ */
+function sqlite_column ($result, $index_or_name, $decode_binary = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the version of the linked SQLite library
+ * @link https://php.net/manual/en/function.sqlite-libversion.php
+ * @return string the library version, as a string.
+ */
+function sqlite_libversion () {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the encoding of the linked SQLite library
+ * @link https://php.net/manual/en/function.sqlite-libencoding.php
+ * @return string the library encoding.
+ */
+function sqlite_libencoding () {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the number of rows that were changed by the most
+ * recent SQL statement
+ * @link https://php.net/manual/en/function.sqlite-changes.php
+ * @param $db
+ * @return int the number of changed rows.
+ */
+function sqlite_changes ($db) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the rowid of the most recently inserted row
+ * @link https://php.net/manual/en/function.sqlite-last-insert-rowid.php
+ * @param resource $dbhandle
The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally. This parameter is not required when using the object-oriented method.
+ * @return int the row id, as an integer.
+ */
+function sqlite_last_insert_rowid ($dbhandle) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the number of rows in a buffered result set
+ * @link https://php.net/manual/en/function.sqlite-num-rows.php
+ * @param resource $result
+ * The SQLite result resource. This parameter is not required when using
+ * the object-oriented method.
+ *
+ *
Note:
This function cannot be used with
+ * unbuffered result handles.
+ * @return int the number of rows, as an integer.
+ */
+function sqlite_num_rows ($result) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the number of fields in a result set
+ * @link https://php.net/manual/en/function.sqlite-num-fields.php
+ * @param resource $result
The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @return int the number of fields, as an integer.
+ */
+function sqlite_num_fields ($result) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the name of a particular field
+ * @link https://php.net/manual/en/function.sqlite-field-name.php
+ * @param resource $result
The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param int $field_index
+ * The ordinal column number in the result set.
+ *
+ * @return string the name of a field in an SQLite result set, given the ordinal
+ * column number; false on error.
+ */
+function sqlite_field_name ($result, $field_index) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Seek to a particular row number of a buffered result set
+ * @link https://php.net/manual/en/function.sqlite-seek.php
+ * @param resource $result
+ * The SQLite result resource. This parameter is not required when using
+ * the object-oriented method.
+ *
+ *
Note:
This function cannot be used with
+ * unbuffered result handles.
+ * @param int $rownum
+ * The ordinal row number to seek to. The row number is zero-based (0 is
+ * the first row).
+ *
+ * @return bool false if the row does not exist, true otherwise.
+ */
+function sqlite_seek ($result, $rownum) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Seek to the first row number
+ * @link https://php.net/manual/en/function.sqlite-rewind.php
+ * @param resource $result
+ * The SQLite result resource. This parameter is not required when using
+ * the object-oriented method.
+ *
+ *
Note:
This function cannot be used with
+ * unbuffered result handles.
+ * @return bool false if there are no rows in the result set, true otherwise.
+ */
+function sqlite_rewind ($result) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Seek to the next row number
+ * @link https://php.net/manual/en/function.sqlite-next.php
+ * @param resource $result
+ * The SQLite result resource. This parameter is not required when using
+ * the object-oriented method.
+ *
+ *
Note:
This function cannot be used with
+ * unbuffered result handles.
+ * @return bool TRUE on success, or FALSE if there are no more rows.
+ */
+function sqlite_next ($result) {}
+
+/**
+ * Seek to the previous row number of a result set
+ * @link https://php.net/manual/en/function.sqlite-prev.php
+ * @param resource $result
+ * The SQLite result resource. This parameter is not required when using
+ * the object-oriented method.
+ *
+ *
Note:
This function cannot be used with
+ * unbuffered result handles.
+ * @return bool true on success, or false if there are no more previous rows.
+ */
+function sqlite_prev ($result) {}
+
+/**
+ * Returns whether more rows are available
+ * @link https://php.net/manual/en/function.sqlite-valid.php
+ * @param resource $result
+ * The SQLite result resource. This parameter is not required when using
+ * the object-oriented method.
+ *
+ *
Note:
This function cannot be used with
+ * unbuffered result handles.
+ * @return bool TRUE if there are more rows available from the
+ * result handle, or FALSE otherwise.
+ */
+function sqlite_valid ($result) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Finds whether or not more rows are available
+ * @link https://php.net/manual/en/function.sqlite-has-more.php
+ * @param resource $result
+ * The SQLite result resource.
+ *
+ * @return bool TRUE if there are more rows available from the
+ * result handle, or FALSE otherwise.
+ */
+function sqlite_has_more ($result) {}
+
+/**
+ * Returns whether or not a previous row is available
+ * @link https://php.net/manual/en/function.sqlite-has-prev.php
+ * @param resource $result
+ * The SQLite result resource. This parameter is not required when using
+ * the object-oriented method.
+ *
+ * @return bool TRUE if there are more previous rows available from the
+ * result handle, or FALSE otherwise.
+ */
+function sqlite_has_prev ($result) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Escapes a string for use as a query parameter
+ * @link https://php.net/manual/en/function.sqlite-escape-string.php
+ * @param string $item
+ * The string being quoted.
+ *
+ *
+ * If the item contains a NUL
+ * character, or if it begins with a character whose ordinal value is
+ * 0x01, PHP will apply a binary encoding scheme so that
+ * you can safely store and retrieve binary data.
+ *
+ * @return string an escaped string for use in an SQLite SQL statement.
+ */
+function sqlite_escape_string ($item) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Set busy timeout duration, or disable busy handlers
+ * @link https://php.net/manual/en/function.sqlite-busy-timeout.php
+ * @param resource $dbhandle
The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally.
+ * This parameter is not required when using the object-oriented method.
+ * @param int $milliseconds
+ * The number of milliseconds. When set to
+ * 0, busy handlers will be disabled and SQLite will
+ * return immediately with a SQLITE_BUSY status code
+ * if another process/thread has the database locked for an update.
+ *
+ *
+ * PHP sets the default busy timeout to be 60 seconds when the database is
+ * opened.
+ *
+ *
+ * There are one thousand (1000) milliseconds in one second.
+ *
+ * @return void
+ */
+function sqlite_busy_timeout ($dbhandle, $milliseconds) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the error code of the last error for a database
+ * @link https://php.net/manual/en/function.sqlite-last-error.php
+ * @param resource $dbhandle
The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally.
+ * This parameter is not required when using the object-oriented method.
+ * @return int an error code, or 0 if no error occurred.
+ */
+function sqlite_last_error ($dbhandle) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Returns the textual description of an error code
+ * @link https://php.net/manual/en/function.sqlite-error-string.php
+ * @param int $error_code
+ * The error code being used, which might be passed in from
+ * {@see sqlite_last_error}.
+ *
+ * @return string a human readable description of the error_code,
+ * as a string.
+ */
+function sqlite_error_string ($error_code) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Execute a query that does not prefetch and buffer all data
+ * @link https://php.net/manual/en/function.sqlite-unbuffered-query.php
+ * @param resource $dbhandle
The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally.
+ * This parameter is not required when using the object-oriented method.
+ * @param string $query
+ * The query to be executed.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * The specified variable will be filled if an error occurs. This is
+ * specially important because SQL syntax errors can't be fetched using
+ * the sqlite_last_error function.
+ *
+ * @return SQLiteUnbuffered|false a result handle or false on failure.
+ *
+ *
+ * sqlite_unbuffered_query returns a sequential
+ * forward-only result set that can only be used to read each row, one after
+ * the other.
+ */
+function sqlite_unbuffered_query ($dbhandle, $query, $result_type = SQLITE_BOTH, &$error_msg = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Register an aggregating UDF for use in SQL statements
+ * @link https://php.net/manual/en/function.sqlite-create-aggregate.php
+ * @param resource $dbhandle
The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally.
+ * This parameter is not required when using the object-oriented method.
+ * @param string $function_name
+ * The name of the function used in SQL statements.
+ *
+ * @param callback $step_func
+ * Callback function called for each row of the result set.
+ *
+ * @param callback $finalize_func
+ * Callback function to aggregate the "stepped" data from each row.
+ *
+ * @param int $num_args [optional]
+ * Hint to the SQLite parser if the callback function accepts a
+ * predetermined number of arguments.
+ *
+ * @return void
+ */
+function sqlite_create_aggregate ($dbhandle, $function_name, $step_func, $finalize_func, $num_args = null) {}
+
+/**
+ * (PHP 5, sqlite >= 1.0.0)
+ * Registers a "regular" User Defined Function for use in SQL statements
+ * @link https://php.net/manual/en/function.sqlite-create-function.php
+ * @param resource $dbhandle
The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally.
+ * This parameter is not required when using the object-oriented method.
+ * @param string $function_name
+ * The name of the function used in SQL statements.
+ *
+ * @param callback $callback
+ * Callback function to handle the defined SQL function.
+ *
+ * Callback functions should return a type understood by SQLite (i.e.
+ * scalar type).
+ * @param int $num_args [optional]
+ * Hint to the SQLite parser if the callback function accepts a
+ * predetermined number of arguments.
+ *
+ * The mode of the file. Intended to be used to open the database in
+ * read-only mode. Presently, this parameter is ignored by the sqlite
+ * library. The default value for mode is the octal value
+ * 0666 and this is the recommended value.
+ *
+ * @param string &$error_message [optional]
+ * Passed by reference and is set to hold a descriptive error message
+ * explaining why the database could not be opened if there was an error.
+ *
+ * @return SQLiteDatabase|null a SQLiteDatabase object on success, null on error.
+ */
+function sqlite_factory ($filename, $mode = null, &$error_message = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Encode binary data before returning it from an UDF
+ * @link https://php.net/manual/en/function.sqlite-udf-encode-binary.php
+ * @param string $data
+ * The string being encoded.
+ *
+ * @return string The encoded string.
+ */
+function sqlite_udf_encode_binary ($data) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.0)
+ * Decode binary data passed as parameters to an UDF
+ * @link https://php.net/manual/en/function.sqlite-udf-decode-binary.php
+ * @param string $data
+ * The encoded data that will be decoded, data that was applied by either
+ * sqlite_udf_encode_binary or
+ * sqlite_escape_string.
+ *
+ * @return string The decoded string.
+ */
+function sqlite_udf_decode_binary ($data) {}
+
+/**
+ * Return an array of column types from a particular table
+ * @link https://php.net/manual/en/function.sqlite-fetch-column-types.php
+ * @param string $table_name
+ * The table name to query.
+ *
+ * @param resource $dbhandle
The SQLite Database resource; returned from
+ * {@see sqlite_open()} when used procedurally.
+ * This parameter is not required when using the object-oriented method.
+ * @param int $result_type [optional]
+ * The optional result_type parameter accepts a
+ * constant and determines how the returned array will be indexed. Using
+ * SQLITE_ASSOC will return only associative indices
+ * (named fields) while SQLITE_NUM will return only
+ * numerical indices (ordinal field numbers).
+ * SQLITE_BOTH will return both associative and
+ * numerical indices. SQLITE_ASSOC is the default for
+ * this function.
+ *
+ * @return array|false an array of column data types; false on error.
+ */
+function sqlite_fetch_column_types ($dbhandle, $table_name, $result_type = null) {}
+
+
+/**
+ * Columns are returned into the array having both a numerical index
+ * and the field name as the array index.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_BOTH', 3);
+
+/**
+ * Columns are returned into the array having a numerical index to the
+ * fields. This index starts with 0, the first field in the result.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_NUM', 2);
+
+/**
+ * Columns are returned into the array having the field name as the array
+ * index.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_ASSOC', 1);
+
+/**
+ * Successful result.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_OK', 0);
+
+/**
+ * SQL error or missing database.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_ERROR', 1);
+
+/**
+ * An internal logic error in SQLite.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_INTERNAL', 2);
+
+/**
+ * Access permission denied.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_PERM', 3);
+
+/**
+ * Callback routine requested an abort.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_ABORT', 4);
+
+/**
+ * The database file is locked.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_BUSY', 5);
+
+/**
+ * A table in the database is locked.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_LOCKED', 6);
+
+/**
+ * Memory allocation failed.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_NOMEM', 7);
+
+/**
+ * Attempt to write a readonly database.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_READONLY', 8);
+
+/**
+ * Operation terminated internally.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_INTERRUPT', 9);
+
+/**
+ * Disk I/O error occurred.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_IOERR', 10);
+
+/**
+ * The database disk image is malformed.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_CORRUPT', 11);
+
+/**
+ * (Internal) Table or record not found.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_NOTFOUND', 12);
+
+/**
+ * Insertion failed because database is full.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_FULL', 13);
+
+/**
+ * Unable to open the database file.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_CANTOPEN', 14);
+
+/**
+ * Database lock protocol error.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_PROTOCOL', 15);
+
+/**
+ * (Internal) Database table is empty.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_EMPTY', 16);
+
+/**
+ * The database schema changed.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_SCHEMA', 17);
+
+/**
+ * Too much data for one row of a table.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_TOOBIG', 18);
+
+/**
+ * Abort due to constraint violation.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_CONSTRAINT', 19);
+
+/**
+ * Data type mismatch.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_MISMATCH', 20);
+
+/**
+ * Library used incorrectly.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_MISUSE', 21);
+
+/**
+ * Uses of OS features not supported on host.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_NOLFS', 22);
+
+/**
+ * Authorized failed.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_AUTH', 23);
+
+/**
+ * File opened that is not a database file.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_NOTADB', 26);
+
+/**
+ * Auxiliary database format error.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_FORMAT', 24);
+
+/**
+ * Internal process has another row ready.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_ROW', 100);
+
+/**
+ * Internal process has finished executing.
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define ('SQLITE_DONE', 101);
+
+/**
+ * Specifies that a function created with {@see SQLite3::createFunction()} is deterministic,
+ * i.e. it always returns the same result given the same inputs within a single SQL statement.
+ * @since 7.1.4
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define('SQLITE3_DETERMINISTIC', 2048);
diff --git a/vendor/jetbrains/phpstorm-stubs/SaxonC/SaxonC.php b/vendor/jetbrains/phpstorm-stubs/SaxonC/SaxonC.php
new file mode 100644
index 0000000000..46dd202a27
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/SaxonC/SaxonC.php
@@ -0,0 +1,1201 @@
+setProperty('report', 'true').
+ *
+ * @return XdmNode
+ */
+ public function getValidationReport() {}
+
+ /**
+ * Set the parameters required for XQuery Processor
+ *
+ * @param string $name
+ * @param XdmValue $value
+ * @return void
+ */
+ public function setParameter($name, $value) {}
+
+ /**
+ * Set properties for Schema Validator.
+ *
+ * @param string $name
+ * @param string $value
+ * @return void
+ */
+ public function setProperty($name, $value) {}
+
+ /**
+ * Clear parameter values set
+ *
+ * @return void
+ */
+ public function clearParameters() {}
+
+ /**
+ * Clear property values set
+ *
+ * @return void
+ */
+ public function clearProperties() {}
+
+ /**
+ * Clear any exception thrown
+ *
+ * @return void
+ */
+ public function exceptionClear() {}
+
+ /**
+ * Get the $i'th error code if there are any errors
+ *
+ * @param int $i
+ * @return string
+ */
+ public function getErrorCode($i) {}
+
+ /**
+ * Get the $i'th error message if there are any errors
+ *
+ * @param int $i
+ * @return string
+ */
+ public function getErrorMessage($i) {}
+
+ /**
+ * Get number of error during execution of the validator
+ *
+ * @return int
+ */
+ public function getExceptionCount() {}
+}
+
+/**
+ * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmvalue
+ */
+class XdmValue {
+
+ /**
+ * Get the first item in the sequence
+ *
+ * @return XdmItem
+ */
+ public function getHead() {}
+
+ /**
+ * Get the n'th item in the value, counting from zero
+ *
+ * @param int $index
+ * @return XdmItem
+ */
+ public function itemAt($index) {}
+
+ /**
+ * Get the number of items in the sequence
+ *
+ * @return int
+ */
+ public function size() {}
+
+ /**
+ * Add item to the sequence at the end.
+ *
+ * @param XdmItem $item
+ */
+ public function addXdmItem($item) {}
+}
+
+/**
+ * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmitem
+ */
+class XdmItem extends XdmValue {
+
+ /**
+ * Get the string value of the item. For a node, this gets the string value of the node. For an atomic value, it has the same effect as casting the value to a string. In all cases the result is the same as applying the XPath string() function.
+ *
+ * @return string
+ */
+ public function getStringValue() {}
+
+ /**
+ * Determine whether the item is a node value or not.
+ *
+ * @return bool
+ */
+ public function isNode() {}
+
+ /**
+ * Determine whether the item is an atomic value or not.
+ *
+ * @return bool
+ */
+ public function isAtomic() {}
+
+ /**
+ * Provided the item is an atomic value we return the {@link XdmAtomicValue} otherwise return null
+ *
+ * @return XdmAtomicValue|null
+ */
+ public function getAtomicValue() {}
+
+ /**
+ * Provided the item is a node value we return the {@link XdmNode} otherwise return null
+ *
+ * @return XdmNode|null
+ */
+ public function getNodeValue() {}
+}
+
+/**
+ * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmnode
+ */
+class XdmNode extends XdmItem {
+
+ /**
+ * Get the string value of the item. For a node, this gets the string value of the node.
+ *
+ * @return string
+ */
+ public function getStringValue() {}
+
+ /**
+ * Get the kind of node
+ *
+ * @return int
+ */
+ public function getNodeKind() {}
+
+ /**
+ * Get the name of the node, as a EQName
+ *
+ * @return string
+ */
+ public function getNodeName() {}
+
+ /**
+ * Determine whether the item is an atomic value or a node. This method will return FALSE as the item is not atomic
+ *
+ * @return false
+ */
+ public function isAtomic() {}
+
+ /**
+ * Get the count of child node at this current node
+ *
+ * @return int
+ */
+ public function getChildCount() {}
+
+ /**
+ * Get the count of attribute nodes at this node
+ *
+ * @return int
+ */
+ public function getAttributeCount() {}
+
+ /**
+ * Get the n'th child node at this node. If the child node selected does not exist then return null
+ *
+ * @param int $index
+ * @return XdmNode|null
+ */
+ public function getChildNode($index) {}
+
+ /**
+ * Get the parent of this node. If parent node does not exist then return null
+ *
+ * @return XdmNode|null
+ */
+ public function getParent() {}
+
+ /**
+ * Get the n'th attribute node at this node. If the attribute node selected does not exist then return null
+ *
+ * @param int $index
+ * @return XdmNode|null
+ */
+ public function getAttributeNode($index) {}
+
+ /**
+ * Get the n'th attribute node value at this node. If the attribute node selected does not exist then return null
+ *
+ * @param int $index
+ * @return string|null
+ */
+ public function getAttributeValue($index) {}
+}
+
+/**
+ * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmatomicvalue
+ */
+class XdmAtomicValue extends XdmItem {
+
+ /**
+ * Get the string value of the item. For an atomic value, it has the same effect as casting the value to a string. In all cases the result is the same as applying the XPath string() function.
+ *
+ * @return string
+ */
+ public function getStringValue() {}
+
+ /**
+ * Get the value converted to a boolean using the XPath casting rules
+ *
+ * @return bool
+ */
+ public function getBooleanValue() {}
+
+ /**
+ * Get the value converted to a float using the XPath casting rules. If the value is a string, the XSD 1.1 rules are used, which means that the string "+INF" is recognised
+ *
+ * @return float
+ */
+ public function getDoubleValue() {}
+
+ /**
+ * Get the value converted to an integer using the XPath casting rules
+ *
+ * @return int
+ */
+ public function getLongValue() {}
+
+ /**
+ * Determine whether the item is an atomic value or a node. Return TRUE if the item is an atomic value
+ *
+ * @return true
+ */
+ public function isAtomic() {}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/SimpleXML/SimpleXML.php b/vendor/jetbrains/phpstorm-stubs/SimpleXML/SimpleXML.php
new file mode 100644
index 0000000000..02e9bf11ee
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/SimpleXML/SimpleXML.php
@@ -0,0 +1,466 @@
+
+ * If specified, the function writes the data to the file rather than
+ * returning it.
+ *
+ * @return mixed If the filename isn't specified, this function
+ * returns a string on success and FALSE on error. If the
+ * parameter is specified, it returns TRUE if the file was written
+ * successfully and FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function asXML ($filename = null) {}
+
+ /**
+ * Alias of SimpleXMLElement::asXML
+ * Return a well-formed XML string based on SimpleXML element
+ * @link https://php.net/manual/en/simplexmlelement.savexml.php
+ * @param string $filename [optional]
+ * If specified, the function writes the data to the file rather than
+ * returning it.
+ *
+ * @return mixed If the filename isn't specified, this function
+ * returns a string on success and false on error. If the
+ * parameter is specified, it returns true if the file was written
+ * successfully and false otherwise.
+ */
+ public function saveXML ($filename = null) {}
+
+ /**
+ * Runs XPath query on XML data
+ * @link https://php.net/manual/en/simplexmlelement.xpath.php
+ * @param string $expression
+ * An XPath path
+ *
+ * @return SimpleXMLElement[] an array of SimpleXMLElement objects or FALSE in
+ * case of an error.
+ */
+ public function xpath ($expression) {}
+
+ /**
+ * Creates a prefix/ns context for the next XPath query
+ * @link https://php.net/manual/en/simplexmlelement.registerxpathnamespace.php
+ * @param string $prefix
+ * The namespace prefix to use in the XPath query for the namespace given in
+ * ns.
+ *
+ * @param string $namespace
+ * The namespace to use for the XPath query. This must match a namespace in
+ * use by the XML document or the XPath query using
+ * prefix will not return any results.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function registerXPathNamespace ($prefix, $namespace) {}
+
+ /**
+ * Identifies an element's attributes
+ * @link https://php.net/manual/en/simplexmlelement.attributes.php
+ * @param string $namespaceOrPrefix [optional]
+ * An optional namespace for the retrieved attributes
+ *
+ * @param bool $isPrefix [optional]
+ * Default to FALSE
+ *
+ * @return SimpleXMLElement a SimpleXMLElement object that can be
+ * iterated over to loop through the attributes on the tag.
+ *
+ *
+ * Returns NULL if called on a SimpleXMLElement
+ * object that already represents an attribute and not a tag.
+ * @since 5.0.1
+ */
+ public function attributes ($namespaceOrPrefix = null, $isPrefix = false) {}
+
+ /**
+ * Finds children of given node
+ * @link https://php.net/manual/en/simplexmlelement.children.php
+ * @param string $namespaceOrPrefix [optional]
+ * An XML namespace.
+ *
+ * @param bool $isPrefix [optional]
+ * If is_prefix is TRUE,
+ * ns will be regarded as a prefix. If FALSE,
+ * ns will be regarded as a namespace
+ * URL.
+ *
+ * @return SimpleXMLElement a SimpleXMLElement element, whether the node
+ * has children or not.
+ * @since 5.0.1
+ */
+ #[Pure]
+ public function children ($namespaceOrPrefix = null, $isPrefix = false) {}
+
+ /**
+ * Returns namespaces used in document
+ * @link https://php.net/manual/en/simplexmlelement.getnamespaces.php
+ * @param bool $recursive [optional]
+ * If specified, returns all namespaces used in parent and child nodes.
+ * Otherwise, returns only namespaces used in root node.
+ *
+ * @return array The getNamespaces method returns an array of
+ * namespace names with their associated URIs.
+ * @since 5.1.2
+ */
+ #[Pure]
+ public function getNamespaces ($recursive = false) {}
+
+ /**
+ * Returns namespaces declared in document
+ * @link https://php.net/manual/en/simplexmlelement.getdocnamespaces.php
+ * @param bool $recursive [optional]
+ * If specified, returns all namespaces declared in parent and child nodes.
+ * Otherwise, returns only namespaces declared in root node.
+ *
+ * @param bool $fromRoot [optional]
+ * Allows you to recursively check namespaces under a child node instead of
+ * from the root of the XML doc.
+ *
+ * @return array The getDocNamespaces method returns an array
+ * of namespace names with their associated URIs.
+ * @since 5.1.2
+ */
+ #[Pure]
+ public function getDocNamespaces ($recursive = false, $fromRoot = true) {}
+
+ /**
+ * Gets the name of the XML element
+ * @link https://php.net/manual/en/simplexmlelement.getname.php
+ * @return string The getName method returns as a string the
+ * name of the XML tag referenced by the SimpleXMLElement object.
+ * @since 5.1.3
+ */
+ #[Pure]
+ public function getName () {}
+
+ /**
+ * Adds a child element to the XML node
+ * @link https://php.net/manual/en/simplexmlelement.addchild.php
+ * @param string $qualifiedName
+ * The name of the child element to add.
+ *
+ * @param string $value [optional]
+ * If specified, the value of the child element.
+ *
+ * @param string $namespace [optional]
+ * If specified, the namespace to which the child element belongs.
+ *
+ * @return SimpleXMLElement The addChild method returns a SimpleXMLElement
+ * object representing the child added to the XML node.
+ * @since 5.1.3
+ */
+ public function addChild ($qualifiedName, $value = null, $namespace = null) {}
+
+ /**
+ * Adds an attribute to the SimpleXML element
+ * @link https://php.net/manual/en/simplexmlelement.addattribute.php
+ * @param string $qualifiedName
+ * The name of the attribute to add.
+ *
+ * @param string $value [optional]
+ * The value of the attribute.
+ *
+ * @param string $namespace [optional]
+ * If specified, the namespace to which the attribute belongs.
+ *
+ * @return void No value is returned.
+ * @since 5.1.3
+ */
+ public function addAttribute ($qualifiedName, $value = null, $namespace = null) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Returns the string content
+ * @link https://php.net/manual/en/simplexmlelement.tostring.php
+ * @return string the string content on success or an empty string on failure.
+ */
+ public function __toString () {}
+
+ /**
+ * Counts the children of an element
+ * @link https://php.net/manual/en/simplexmlelement.count.php
+ * @return int the number of elements of an element.
+ */
+ #[Pure]
+ public function count () {}
+
+ /**
+ * Class provides access to children by position, and attributes by name
+ * private Method not callable directly, stub exists for typehint only
+ * @param string|int $offset
+ * @return bool true on success or false on failure.
+ */
+ #[Pure]
+ public function offsetExists ($offset) {}
+
+ /**
+ * Class provides access to children by position, and attributes by name
+ * private Method not callable directly, stub exists for typehint only
+ * @param string|int $offset
+ * @return static Either a named attribute or an element from a list of children
+ */
+ #[Pure]
+ public function offsetGet ($offset) {}
+
+ /**
+ * Class provides access to children by position, and attributes by name
+ * private Method not callable directly, stub exists for typehint only
+ * @param string|int $offset
+ * @param mixed $value
+ * @return void
+ */
+ public function offsetSet ($offset, $value) {}
+
+ /**
+ * Class provides access to children by position, and attributes by name
+ * private Method not callable directly, stub exists for typehint only
+ * @param string|int $offset
+ * @return void
+ */
+ public function offsetUnset ($offset) {}
+
+ /**
+ * Rewind to the first element
+ * @link https://php.net/manual/en/simplexmliterator.rewind.php
+ * @return void No value is returned.
+ */
+ public function rewind () {}
+
+ /**
+ * Check whether the current element is valid
+ * @link https://php.net/manual/en/simplexmliterator.valid.php
+ * @return bool TRUE if the current element is valid, otherwise FALSE
+ */
+ #[Pure]
+ public function valid () {}
+
+ /**
+ * Returns the current element
+ * @link https://php.net/manual/en/simplexmliterator.current.php
+ * @return static|null the current element as a SimpleXMLElement object or NULL on failure.
+ */
+ #[Pure]
+ public function current () {}
+
+ /**
+ * Return current key
+ * @link https://php.net/manual/en/simplexmliterator.key.php
+ * @return string|false the XML tag name of the element referenced by the current SimpleXMLIterator object or FALSE
+ */
+ public function key () {}
+
+ /**
+ * Move to next element
+ * @link https://php.net/manual/en/simplexmliterator.next.php
+ * @return void No value is returned.
+ */
+ public function next () {}
+
+ /**
+ * @return bool
+ * @since 8.0
+ */
+ #[Pure]
+ public function hasChildren(){}
+
+ /**
+ * @since 8.0
+ */
+ #[Pure]
+ public function getChildren(){}
+}
+
+/**
+ * The SimpleXMLIterator provides recursive iteration over all nodes of a SimpleXMLElement object.
+ * @link https://php.net/manual/en/class.simplexmliterator.php
+ */
+class SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator, Countable, Stringable {
+
+ /**
+ * Rewind to the first element
+ * @link https://php.net/manual/en/simplexmliterator.rewind.php
+ * @return void No value is returned.
+ */
+ public function rewind () {}
+
+ /**
+ * Check whether the current element is valid
+ * @link https://php.net/manual/en/simplexmliterator.valid.php
+ * @return bool TRUE if the current element is valid, otherwise FALSE
+ */
+ #[Pure]
+ public function valid () {}
+
+ /**
+ * Returns the current element
+ * @link https://php.net/manual/en/simplexmliterator.current.php
+ * @return static|null the current element as a SimpleXMLIterator object or NULL on failure.
+ */
+ #[Pure]
+ public function current () {}
+
+ /**
+ * Return current key
+ * @link https://php.net/manual/en/simplexmliterator.key.php
+ * @return string|false the XML tag name of the element referenced by the current SimpleXMLIterator object or FALSE
+ */
+ public function key () {}
+
+ /**
+ * Move to next element
+ * @link https://php.net/manual/en/simplexmliterator.next.php
+ * @return void No value is returned.
+ */
+ public function next () {}
+
+ /**
+ * Checks whether the current element has sub elements.
+ * @link https://php.net/manual/en/simplexmliterator.haschildren.php
+ * @return bool TRUE if the current element has sub-elements, otherwise FALSE
+ */
+ #[Pure]
+ public function hasChildren () {}
+
+ /**
+ * Returns the sub-elements of the current element
+ * @link https://php.net/manual/en/simplexmliterator.getchildren.php
+ * @return SimpleXMLIterator a SimpleXMLIterator object containing
+ * the sub-elements of the current element.
+ */
+ #[Pure]
+ public function getChildren () {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Returns the string content
+ * @link https://php.net/manual/en/simplexmlelement.tostring.php
+ * @return string the string content on success or an empty string on failure.
+ */
+ public function __toString () {}
+
+ /**
+ * Counts the children of an element
+ * @link https://php.net/manual/en/simplexmlelement.count.php
+ * @return int the number of elements of an element.
+ */
+ #[Pure]
+ public function count () {}
+
+}
+
+/**
+ * Interprets an XML file into an object
+ * @link https://php.net/manual/en/function.simplexml-load-file.php
+ * @param string $filename
+ * Path to the XML file
+ *
+ *
+ * Libxml 2 unescapes the URI, so if you want to pass e.g.
+ * b&c as the URI parameter a,
+ * you have to call
+ * simplexml_load_file(rawurlencode('https://example.com/?a=' .
+ * urlencode('b&c'))). Since PHP 5.1.0 you don't need to do
+ * this because PHP will do it for you.
+ *
+ * @param string|null $class_name [optional]
+ * You may use this optional parameter so that
+ * simplexml_load_file will return an object of
+ * the specified class. That class should extend the
+ * SimpleXMLElement class.
+ *
+ * @param int $options [optional]
+ * Since PHP 5.1.0 and Libxml 2.6.0, you may also use the
+ * options parameter to specify additional Libxml parameters.
+ *
+ * @param string $namespace_or_prefix [optional]
+ * Namespace prefix or URI.
+ *
+ * @param bool $is_prefix [optional]
+ * TRUE if ns is a prefix, FALSE if it's a URI;
+ * defaults to FALSE.
+ *
+ * @return SimpleXMLElement|false an object of class SimpleXMLElement with
+ * properties containing the data held within the XML document, or FALSE on failure.
+ */
+function simplexml_load_file (string $filename, ?string $class_name = "SimpleXMLElement", int $options = 0, string $namespace_or_prefix = "", bool $is_prefix = false): SimpleXMLElement|false {}
+
+/**
+ * Interprets a string of XML into an object
+ * @link https://php.net/manual/en/function.simplexml-load-string.php
+ * @param string $data
+ * A well-formed XML string
+ *
+ * @param string|null $class_name [optional]
+ * You may use this optional parameter so that
+ * simplexml_load_string will return an object of
+ * the specified class. That class should extend the
+ * SimpleXMLElement class.
+ *
+ * @param int $options [optional]
+ * Since PHP 5.1.0 and Libxml 2.6.0, you may also use the
+ * options parameter to specify additional Libxml parameters.
+ *
+ * @param string $namespace_or_prefix [optional]
+ * Namespace prefix or URI.
+ *
+ * @param bool $is_prefix [optional]
+ * TRUE if ns is a prefix, FALSE if it's a URI;
+ * defaults to FALSE.
+ *
+ * @return SimpleXMLElement|false an object of class SimpleXMLElement with
+ * properties containing the data held within the xml document, or FALSE on failure.
+ */
+function simplexml_load_string (string $data, ?string $class_name = "SimpleXMLElement", int $options = 0, string $namespace_or_prefix = "", bool $is_prefix = false): SimpleXMLElement|false {}
+
+/**
+ * Get a SimpleXMLElement object from a DOM node.
+ * @link https://php.net/manual/en/function.simplexml-import-dom.php
+ * @param DOMNode $node
+ * A DOM Element node
+ *
+ * @param string|null $class_name [optional]
+ * You may use this optional parameter so that
+ * simplexml_import_dom will return an object of
+ * the specified class. That class should extend the
+ * SimpleXMLElement class.
+ *
+ * @return SimpleXMLElement|null a SimpleXMLElement or FALSE on failure.
+ */
+function simplexml_import_dom (DOMNode $node, ?string $class_name = "SimpleXMLElement"): ?SimpleXMLElement {}
+
+// End of SimpleXML v.0.1
diff --git a/vendor/jetbrains/phpstorm-stubs/SplType/SplType.php b/vendor/jetbrains/phpstorm-stubs/SplType/SplType.php
new file mode 100644
index 0000000000..e804749744
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/SplType/SplType.php
@@ -0,0 +1,99 @@
+
+ * Compiles and caches a PHP script without executing it
+ * @link https://secure.php.net/manual/en/function.opcache-compile-file.php
+ * @param string $filename The path to the PHP script to be compiled.
+ * @return bool
+ * Returns TRUE if the opcode cache for script was
+ * invalidated or if there was nothing to invalidate, or FALSE if the opcode
+ * cache is disabled.
+ * @since 5.5
+ */
+function opcache_compile_file(string $filename): bool
+{ }
+
+/**
+ * (PHP 5 >= 5.5.0, PECL ZendOpcache >= 7.0.0 )
+ * Invalidates a cached script
+ * @link https://secure.php.net/manual/en/function.opcache-invalidate.php
+ * @param string $filename
The path to the script being invalidated.
+ * @param bool $force [optional]
If set to TRUE, the script will be invalidated regardless of whether invalidation is necessary.
+ * @return bool
+ * Returns TRUE if the opcode cache for script was
+ * invalidated or if there was nothing to invalidate, or FALSE if the opcode
+ * cache is disabled.
+ * @since 5.5
+ */
+function opcache_invalidate(string $filename, bool $force = false): bool
+{ }
+
+/**
+ * (PHP 5 >= 5.5.0, PECL ZendOpcache >= 7.0.0 )
+ * Resets the contents of the opcode cache
+ * @link https://secure.php.net/manual/en/function.opcache-reset.php
+ * @return bool Returns TRUE if the opcode cache was reset, or FALSE if the opcode cache is disabled.
+ * @since 5.5
+ */
+function opcache_reset(): bool
+{ }
+
+/**
+ * (PHP 5 >= 5.5.5, PECL ZendOpcache >= 7.0.2 )
+ * Get status information about the cache
+ * @link https://php.net/manual/en/function.opcache-get-status.php
+ * @param bool $include_scripts
Include script specific state information
+ * @return array|false
Returns an array of information, optionally containing script specific state information
Returns an array of information, including ini, blacklist and version
+ * @since 5.5
+ */
+function opcache_get_configuration(): array|false
+{}
+
+/**
+ * (PHP 5 >= 5.6, PECL ZendOpcache >= 7.0.4 )
+ * This function checks if a PHP script has been cached in OPCache.
+ * This can be used to more easily detect the "warming" of the cache for a particular script.
+ * @link https://secure.php.net/manual/en/function.opcache-is-script-cached.php
+ * @param string $filename The path to the PHP script to be checked.
+ * @return bool Returns TRUE if file is cached in OPCache, FALSE otherwise.
+ * @since 5.6
+ */
+function opcache_is_script_cached(string $filename): bool
+{}
diff --git a/vendor/jetbrains/phpstorm-stubs/ZendCache/ZendCache.php b/vendor/jetbrains/phpstorm-stubs/ZendCache/ZendCache.php
new file mode 100644
index 0000000000..a1cf4a0b70
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/ZendCache/ZendCache.php
@@ -0,0 +1,82 @@
+
diff --git a/vendor/jetbrains/phpstorm-stubs/ZendUtils/ZendUtils.php b/vendor/jetbrains/phpstorm-stubs/ZendUtils/ZendUtils.php
new file mode 100644
index 0000000000..c857b54694
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/ZendUtils/ZendUtils.php
@@ -0,0 +1,18 @@
+
diff --git a/vendor/jetbrains/phpstorm-stubs/aerospike/Bytes.php b/vendor/jetbrains/phpstorm-stubs/aerospike/Bytes.php
new file mode 100644
index 0000000000..aa51886426
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/aerospike/Bytes.php
@@ -0,0 +1,95 @@
+
+ * @copyright Copyright 2013-2016 Aerospike, Inc.
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2
+ * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#handling-unsupported-types
+ * @filesource
+ */
+
+namespace Aerospike;
+
+/**
+ * \Aerospike\Bytes is a utility for wrapping PHP strings containing
+ * potentially harmful bytes such as \0. By wrapping the binary-string, the
+ * Aerospike client will serialize the data into an as_bytes rather than an
+ * as_string.
+ * This ensures that the string will not get truncated or otherwise lose data.
+ * The main difference is that strings in the Aerospike cluster can have a
+ * secondary index built over them, and queries executed against the index,
+ * while bytes data cannot.
+ *
+ * @package Aerospike
+ * @author Ronen Botzer
+ */
+class Bytes implements \Serializable
+{
+ /**
+ * The container for the binary-string
+ * @var string
+ */
+ public $s;
+
+ /**
+ * Constructor for \Aerospike\Bytes class.
+ *
+ * @param string $bin_str a PHP binary-string such as gzdeflate() produces.
+ */
+ public function __construct($bin_str) {
+ $this->s = $bin_str;
+ }
+
+ /**
+ * Returns a serialized representation of the binary-string.
+ * Called by serialize()
+ *
+ * @return string
+ */
+ public function serialize() {
+ return $this->s;
+ }
+
+ /**
+ * Re-wraps the binary-string when called by unserialize().
+ *
+ * @param string $bin_str a PHP binary-string. Called by unserialize().
+ */
+ public function unserialize($bin_str) {
+ return $this->s = $bin_str;
+ }
+
+ /**
+ * Returns the binary-string held in the \Aerospike\Bytes object.
+ *
+ * @return string
+ */
+ public function __toString() {
+ return $this->s;
+ }
+
+ /**
+ * Unwraps an \Aerospike\Bytes object, returning the binary-string inside.
+ *
+ * @param \Aerospike\Bytes $bytes_wrap
+ * @return string
+ */
+ public static function unwrap(\Aerospike\Bytes $bytes_wrap) {
+ return $bytes_wrap->s;
+ }
+
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/aerospike/aerospike.php b/vendor/jetbrains/phpstorm-stubs/aerospike/aerospike.php
new file mode 100644
index 0000000000..0cf450b3ca
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/aerospike/aerospike.php
@@ -0,0 +1,5153 @@
+
+ * @copyright Copyright 2013-2018 Aerospike, Inc.
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2
+ * @link https://www.aerospike.com/docs/client/php/
+ * @filesource
+ */
+
+use JetBrains\PhpStorm\Deprecated;
+
+/**
+ * The Aerospike client class
+ *
+ * The Aerospike config options for `php.ini`:
+ * ```php
+ * // The connection timeout in milliseconds.
+ * aerospike.connect_timeout = 1000;
+ * // The read operation timeout in milliseconds.
+ * aerospike.read_timeout = 1000;
+ * // The write operation timeout in milliseconds.
+ * aerospike.write_timeout = 1000;
+ * // Whether to send and store the record's (ns,set,key) data along with
+ * // its (unique identifier) digest. 0: digest, 1: send
+ * aerospike.key_policy = 0; // only digest
+ * // The unsupported type handler. 0: none, 1: PHP, 2: user-defined
+ * aerospike.serializer = 1; // php serializer
+
+ * // Path to the user-defined Lua function modules.
+ * aerospike.udf.lua_user_path = /usr/local/aerospike/usr-lua;
+ * // Indicates if shared memory should be used for cluster tending.
+ * // Recommended for multi-process cases such as FPM. { true, false }
+ * aerospike.shm.use = false;
+ * // Explicitly sets the shm key for this client to store shared-memory
+ * // cluster tending results in.
+ * aerospike.shm.key = 0xA8000000; // integer value
+ * // Shared memory maximum number of server nodes allowed. Leave a cushion so
+ * // new nodes can be added without needing a client restart.
+ * aerospike.shm.max_nodes = 16;
+ * // Shared memory maximum number of namespaces allowed. Leave a cushion for
+ * // new namespaces.
+ * aerospike.shm.max_namespaces = 8;
+ * // Take over shared memory cluster tending if the cluster hasn't been tended
+ * // by this threshold in seconds.
+ * aerospike.shm.takeover_threshold_sec = 30;
+ * // Control the batch protocol. 0: batch-index, 1: batch-direct
+ * aerospike.use_batch_direct = 0;
+ * // The client will compress records larger than this value in bytes for transport.
+ * aerospike.compression_threshold = 0;
+ * // Max size of the synchronous connection pool for each server node
+ * aerospike.max_threads = 300;
+ * // Number of threads stored in underlying thread pool that is used in
+ * // batch/scan/query commands. In ZTS builds, this is always 0.
+ * aerospike.thread_pool_size = 16;
+ * // When turning on the optional logging in the client, this is the path to the log file.
+ * aerospike.log_path = NULL;
+ * aerospike.log_level = NULL;
+ * aerospike.nesting_depth = 3;
+ *
+ * // session handler
+ * session.save_handler = aerospike; // to use the Aerospike session handler
+ * session.gc_maxlifetime = 1440; // the TTL of the record used to store the session in seconds
+ * session.save_path = NULL; // should follow the format ns|set|addr:port[,addr:port[,...]]. Ex: "test|sess|127.0.0.1:3000". The host info of just one cluster node is necessary
+ * ```
+ * @author Robert Marks
+ */
+class Aerospike {
+
+ // Lifecycle and Connection Methods
+
+ /**
+ * Construct an Aerospike client object, and connect to the cluster defined
+ * in $config.
+ *
+ * Aerospike::isConnected() can be used to test whether the connection has
+ * succeeded. If a config or connection error has occured, Aerospike::error()
+ * and Aerospike::errorno() can be used to inspect it.
+ *
+ * ```php
+ * $config = [
+ * "hosts" => [
+ * ["addr" => "localhost", "port" => 3000]
+ * ],
+ * "shm" => []
+ * ];
+ * // Set a default policy for write and read operations
+ * $writeOpts = [Aerospike::OPT_POLICY_KEY => Aerospike::POLICY_KEY_SEND];
+ * $readOpts = [Aerospike::OPT_TOTAL_TIMEOUT => 150];
+ * $opts = [Aerospike::OPT_WRITE_DEFAULT_POL => $writeOpts, Aerospike::OPT_READ_DEFAULT_POL => $readOpts];
+ * $client = new Aerospike($config, true, $opts);
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ * ```
+ * @see Aerospike php.ini config parameters
+ * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#configuration-in-a-web-server-context Configuration in a Web Server Context
+ * @param array $config holds cluster connection and client config information
+ * * _hosts_ a **required** array of host pairs. One node or more (for failover)
+ * may be defined. Once a connection is established to the
+ * "seed" node, the client will retrieve the full list of nodes in
+ * the cluster, and manage its connections to them.
+ * * _addr_ hostname or IP of the node
+ * * _port_ the port of the node
+ * * _user_ **required** for the Enterprise Edition
+ * * _pass_ **required** for the Enterprise Edition
+ * * _shm_ optional. Shared-memory cluster tending is enabled if an array
+ * (even an empty one) is provided. Disabled by default.
+ * * _shm\_key_ explicitly sets the shm key for the cluster. It is
+ * otherwise implicitly evaluated per unique hostname, and can be
+ * inspected with shmKey(). (default: 0xA8000000)
+ * * _shm\_max\_nodes_ maximum number of nodes allowed. Pad so new nodes
+ * can be added without configuration changes (default: 16)
+ * * _shm\_max\_namespaces_ maximum number of namespaces allowed (default: 8)
+ * * _shm\_takeover\_threshold\_sec_ take over tending if the cluster
+ * hasn't been checked for this many seconds (default: 30)
+ * * _max\_threads_ (default: 300)
+ * * _thread\_pool\_size_ should be at least the number of nodes in the cluster (default: 16) In ZTS builds this is set to 0
+ * * _compression\_threshold_ client will compress records larger than this value for transport (default: 0)
+ * * _tender\_interval_ polling interval in milliseconds for cluster tender (default: 1000)
+ * * _cluster\_name_ if specified, only server nodes matching this name will be used when determining the cluster
+ * * _rack\_aware_ Boolean: Track server rack data. This field is useful when directing read commands to
+ * the server node that contains the key and exists on the same rack as the client.
+ * This serves to lower cloud provider costs when nodes are distributed across different
+ * racks/data centers.
+ * POLICY_REPLICA_PREFER_RACK must be set as the replica policy for reads and _rack\_id_ must be set toenable this functionality.
+ * (Default: false)
+ * * _rack\_id_ Integer. Rack where this client instance resides.
+ *
+ * _rack\_aware_, POLICY_REPLICA_PREFER_RACK and server rack configuration must also be
+ * set to enable this functionality.
+ *
+ * Default: 0
+ * * Aerospike::OPT_TLS_CONFIG an array of TLS setup parameters whose keys include
+ * * * Aerospike::OPT_TLS_ENABLE boolean Whether or not to enable TLS.
+ * * * Aerospike::OPT_OPT_TLS_CAFILE
+ * * * Aerospike::OPT_TLS_CAPATH
+ * * * Aerospike::OPT_TLS_PROTOCOLS
+ * * * Aerospike::OPT_TLS_CIPHER_SUITE
+ * * * Aerospike::OPT_TLS_CRL_CHECK
+ * * * Aerospike::OPT_TLS_CRL_CHECK_ALL
+ * * * Aerospike::OPT_TLS_CERT_BLACKLIST
+ * * * Aerospike::OPT_TLS_LOG_SESSION_INFO
+ * * * Aerospike::OPT_TLS_KEYFILE
+ * * * Aerospike::OPT_TLS_CERTFILE
+ * @param bool $persistent_connection In a multiprocess context, such as a
+ * web server, the client should be configured to use
+ * persistent connections. This allows for reduced overhead,
+ * saving on discovery of the cluster topology, fetching its partition
+ * map, and on opening connections to the nodes.
+ * @param array $options An optional client config array whose keys include
+ * * Aerospike::OPT_CONNECT_TIMEOUT
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_EXISTS
+ * * Aerospike::OPT_SERIALIZER
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * * Aerospike::OPT_READ_DEFAULT_POL An array of default policies for read operations.
+ * * Aerospike::OPT_WRITE_DEFAULT_POL An array of default policies for write operations.
+ * * AEROSPIKE::OPT_REMOVE_DEFAULT_POL An array of default policies for remove operations.
+ * * Aerospike::OPT_BATCH_DEFAULT_POL An array of default policies for batch operations.
+ * * Aerospike::OPT_OPERATE_DEFAULT_POL An array of default policies for operate operations.
+ * * Aerospike::OPT_QUERY_DEFAULT_POL An array of default policies for query operations.
+ * * Aerospike::OPT_SCAN_DEFAULT_POL An array of default policies for scan operations.
+ * * Aerospike::OPT_APPLY_DEFAULT_POL An array of default policies for apply operations.
+ * @see Aerospike::OPT_CONNECT_TIMEOUT Aerospike::OPT_CONNECT_TIMEOUT options
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT options
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_EXISTS Aerospike::OPT_POLICY_EXISTS options
+ * @see Aerospike::OPT_SERIALIZER Aerospike::OPT_SERIALIZER options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::isConnected() isConnected()
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ */
+ public function __construct(array $config, bool $persistent_connection = true, array $options = []) {}
+
+ /**
+ * Disconnect from the Aerospike cluster and clean up resources.
+ *
+ * No need to ever call this method explicilty.
+ * @return void
+ */
+ public function __destruct() {}
+
+ /**
+ * Test whether the client is connected to the cluster.
+ *
+ * If a connection error has occured, Aerospike::error() and Aerospike::errorno()
+ * can be used to inspect it.
+ * ```php
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ * ```
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return bool
+ */
+ public function isConnected() {}
+
+ /**
+ * Disconnect the client from all the cluster nodes.
+ *
+ * This method should be explicitly called when using non-persistent connections.
+ * @see Aerospike::isConnected()
+ * @see Aerospike::reconnect()
+ * @return void
+ */
+ public function close() {}
+
+ /**
+ * Reconnect the client to the cluster nodes.
+ *
+ * Aerospike::isConnected() can be used to test whether the re-connection
+ * succeded. If a connection error occured Aerospike::error() and
+ * Aerospike::errorno() can be used to inspect it.
+ * ```php
+ * $client = new Aerospike($config, false);
+ * $client->close();
+ * $client->reconnect();
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ * ```
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return void
+ */
+ public function reconnect() {}
+
+ /**
+ * Expose the shared memory key used by shared-memory cluster tending
+ *
+ * If shm cluster tending is enabled, Aerospike::shmKey will return the
+ * value of the shm key being used by the client. If it was set explicitly
+ * under the client's shm config parameter, or through the global
+ * `aerospike.shm.key` we expect to see that value. Otherwise the implicit
+ * value generated by the client will be returned
+ * @return int|null null if not enabled
+ */
+ public function shmKey() {}
+
+ /**
+ * Return the error message associated with the last operation.
+ *
+ * If the operation was successful the return value should be an empty string.
+ * ```php
+ * $client = new Aerospike($config, false);
+ * if (!$client->isConnected()) {
+ * echo "{$client->error()} [{$client->errorno()}]";
+ * exit(1);
+ * }
+ * ```
+ * On connection error would show:
+ * ```
+ * Unable to connect to server [-1]
+ * ```
+ * @see Aerospike::OK Error Codes
+ * @return string
+ */
+ public function error() {}
+
+ /**
+ * Return the error code associated with the last operation.
+ * If the operation was successful the return value should be 0 (Aerospike::OK)
+ * @see Aerospike::OK Error Codes
+ * @return int
+ */
+ public function errorno() {}
+
+ // Key-Value Methods.
+
+ /**
+ * Return an array that represents the record's key.
+ *
+ * This value can be passed as the $key arguement required by other
+ * key-value methods.
+ *
+ * In Aerospike, a record is identified by the tuple (namespace, set,
+ * primary key), or by the digest which results from hashing this tuple
+ * through RIPEMD-160.
+ *
+ * ** Initializing a key **
+ *
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * var_dump($key);
+ * ```
+ *
+ * ```bash
+ *array(3) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1234)
+ *}
+ * ```
+ *
+ * ** Setting a digest **
+ *
+ * ```php
+ * $base64_encoded_digest = '7EV9CpdMSNVoWn76A9E33Iu95+M=';
+ * $digest = base64_decode($base64_encoded_digest);
+ * $key = $client->initKey("test", "users", $digest, true);
+ * var_dump($key);
+ * ```
+ *
+ * ```bash
+ *array(3) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["digest"]=>
+ * string(20) "?E}
+ *?LH?hZ~??7Ü‹???"
+ *}
+ * ```
+ *
+ * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#configuration-in-a-web-server-context Configuration in a Web Server Context
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param int|string $pk The primary key in the application, or the RIPEMD-160 digest of the (namespce, set, primary-key) tuple
+ * @param bool $is_digest True if the *$pk* argument is a digest
+ * @return array
+ * @see Aerospike::getKeyDigest() getKeyDigest()
+ */
+ public function initKey (string $ns, string $set, $pk, bool $is_digest = false) {}
+
+ /**
+ * Return the digest of hashing the (namespace, set, primary-key) tuple
+ * with RIPEMD-160.
+ *
+ * The digest uniquely identifies the record in the cluster, and is used to
+ * calculate a partition ID. Using the partition ID, the client can identify
+ * the node holding the record's master partition or replica partition(s) by
+ * looking it up against the cluster's partition map.
+ *
+ * ```php
+ * $digest = $client->getKeyDigest("test", "users", 1);
+ * $key = $client->initKey("test", "users", $digest, true);
+ * var_dump($digest, $key);
+ * ```
+ *
+ * ```bash
+ * string(20) "9!?@%??;???Wp?'??Ag"
+ * array(3) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["digest"]=>
+ * string(20) "9!?@%??;???Wp?'??Ag"
+ * }
+ * ```
+ *
+ * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#configuration-in-a-web-server-context Configuration in a Web Server Context
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param int|string $pk The primary key in the application
+ * @return string
+ * @see Aerospike::initKey() initKey()
+ */
+ public function getKeyDigest (string $ns, string $set, $pk ) {}
+
+ /**
+ * Write a record identified by the $key with $bins, an array of bin-name => bin-value pairs.
+ *
+ * By default Aerospike::put() behaves in a set-and-replace mode, similar to
+ * how new keys are added to an array, or the value of existing ones is overwritten.
+ * This behavior can be modified using the *$options* parameter.
+ *
+ * **Note:** a binary-string which includes a null-byte will get truncated
+ * at the position of the **\0** character if it is not wrapped. For more
+ * information and the workaround see 'Handling Unsupported Types'.
+ *
+ * **Example #1 Aerospike::put() default behavior example**
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $bins = ["email" => "hey@example.com", "name" => "Hey There"];
+ * // will ensure a record exists at the given key with the specified bins
+ * $status = $client->put($key, $bins);
+ * if ($status == Aerospike::OK) {
+ * echo "Record written.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ *
+ * // Updating the record
+ * $bins = ["name" => "You There", "age" => 33];
+ * // will update the name bin, and create a new 'age' bin
+ * $status = $client->put($key, $bins);
+ * if ($status == Aerospike::OK) {
+ * echo "Record updated.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * Record written.
+ * Record updated.
+ * ```
+ *
+ * **Example #2 Fail unless the put explicitly creates a new record**
+ * ```php
+ *
+ * // This time we expect an error, due to the record already existing (assuming we
+ * // ran Example #1)
+ * $status = $client->put($key, $bins, 0, [Aerospike::OPT_POLICY_EXISTS => Aerospike::POLICY_EXISTS_CREATE]);
+ *
+ * if ($status == Aerospike::OK) {
+ * echo "Record written.\n";
+ * } elseif ($status == Aerospike::ERR_RECORD_EXISTS) {
+ * echo "The Aerospike server already has a record with the given key.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * The Aerospike cluster already has a record with the given key.
+ * ```
+ *
+ * **Example #3 Fail if the record has been written since it was last read
+ * (CAS)**
+ * ```php
+ * // Get the record metadata and note its generation
+ * $client->exists($key, $metadata);
+ * $gen = $metadata['generation'];
+ * $gen_policy = [Aerospike::POLICY_GEN_EQ, $gen];
+ * $res = $client->put($key, $bins, 0, [Aerospike::OPT_POLICY_GEN => $gen_policy]);
+ *
+ * if ($res == Aerospike::OK) {
+ * echo "Record written.\n";
+ * } elseif ($res == Aerospike::ERR_RECORD_GENERATION) {
+ * echo "The record has been written since we last read it.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ?>
+ * ```
+ * ```
+ * The record has been written since we last read it.
+ * ```
+ *
+ * **Example #4 Handling binary strings**
+ * ```php
+ * $str = 'Glagnar\'s Human Rinds, "It\'s a bunch\'a munch\'a crunch\'a human!';
+ * $deflated = new \Aerospike\Bytes(gzdeflate($str));
+ * $wrapped = new \Aerospike\Bytes("trunc\0ated");
+ *
+ * $key = $client->initKey('test', 'demo', 'wrapped-bytes');
+ * $status = $client->put($key, ['unwrapped'=>"trunc\0ated", 'wrapped'=> $wrapped, 'deflated' => $deflated]);
+ * if ($status !== Aerospike::OK) {
+ * die($client->error());
+ * }
+ * $client->get($key, $record);
+ * $wrapped = \Aerospike\Bytes::unwrap($record['bins']['wrapped']);
+ * $deflated = $record['bins']['deflated'];
+ * $inflated = gzinflate($deflated->s);
+ * echo "$inflated\n";
+ * echo "wrapped binary-string: ";
+ * var_dump($wrapped);
+ * $unwrapped = $record['bins']['unwrapped'];
+ * echo "The binary-string that was given to put() without a wrapper: $unwrapped\n";
+ * ```
+ * ```
+ * Glagnar's Human Rinds, "It's a bunch'a munch'a crunch'a human!
+ * wrapped binary-string: string(10) "truncated"
+ * The binary-string that was given to put() without a wrapper: trunc
+ * ```
+ * @link https://www.aerospike.com/docs/architecture/data-model.html Aerospike Data Model
+ * @link https://www.aerospike.com/docs/guide/kvs.html Key-Value Store
+ * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#handling-unsupported-types Handling Unsupported Types
+ * @link https://www.aerospike.com/docs/client/c/usage/kvs/write.html#change-record-time-to-live-ttl Time-to-live
+ * @link https://www.aerospike.com/docs/guide/glossary.html Glossary
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array $bins The array of bin names and values to write. **Bin names cannot be longer than 14 characters.** Binary data containing the null byte (**\0**) may get truncated. See 'Handling Unsupported Types' for more details and a workaround
+ * @param int $ttl The record's time-to-live in seconds
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_SERIALIZER
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_EXISTS
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::COMPRESSION_THRESHOLD
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_SERIALIZER Aerospike::OPT_SERIALIZER options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_EXISTS Aerospike::OPT_POLICY_EXISTS options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::COMPRESSION_THRESHOLD
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function put(array $key, array $bins, int $ttl = 0, array $options = []) {}
+
+ /**
+ * Read a record with a given key, and store it in $record
+ *
+ * The bins returned in *$record* can be filtered by passing a *$select*
+ * array of bin names. Non-existent bins will appear in the *$record* with a `NULL` value.
+ *
+ * **Example #1 Aerospike::get() default behavior example**
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $status = $client->get($key, $record);
+ * if ($status == Aerospike::OK) {
+ * var_dump($record);
+ * } elseif ($status == Aerospike::ERR_RECORD_NOT_FOUND) {
+ * echo "A user with key ". $key['key']. " does not exist in the database\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["digest"]=>
+ * string(40) "436a3b9fcafb96d12844ab1377c0ff0d7a0b70cc"
+ * ["namespace"]=>
+ * NULL
+ * ["set"]=>
+ * NULL
+ * ["key"]=>
+ * NULL
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["generation"]=>
+ * int(3)
+ * ["ttl"]=>
+ * int(12345)
+ * }
+ * ["bins"]=>
+ * array(3) {
+ * ["email"]=>
+ * string(9) "hey@example.com"
+ * ["name"]=>
+ * string(9) "You There"
+ * ["age"]=>
+ * int(33)
+ * }
+ * }
+ * ```
+ * **Example #2 get the record with filtered bins**
+ * ```php
+ * // assuming this follows Example #1, getting a filtered record
+ * $filter = ["email", "manager"];
+ * unset($record);
+ * $status = $client->get($key, $record, $filter);
+ * if ($status == Aerospike::OK) {
+ * var_dump($record);
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["digest"]=>
+ * string(40) "436a3b9fcafb96d12844ab1377c0ff0d7a0b70cc"
+ * ["namespace"]=>
+ * NULL
+ * ["set"]=>
+ * NULL
+ * ["key"]=>
+ * NULL
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["generation"]=>
+ * int(3)
+ * ["ttl"]=>
+ * int(12344)
+ * }
+ * ["bins"]=>
+ * array(2) {
+ * ["email"]=>
+ * string(15) "hey@example.com"
+ * ["manager"]=>
+ * NULL
+ * }
+ * }
+ * ```
+ * @link https://www.aerospike.com/docs/architecture/data-model.html Aerospike Data Model
+ * @link https://www.aerospike.com/docs/guide/kvs.html Key-Value Store
+ * @link https://www.aerospike.com/docs/guide/glossary.html Glossary
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array &$record a reference to a variable which will contain the retrieved record of `['key', metadata', 'bins]` with the structure:
+ * ```
+ * Array:
+ * key => Array
+ * ns => namespace
+ * set => set name
+ * key => primary-key, present if written with POLICY_KEY_SEND
+ * digest => the record's RIPEMD-160 digest, always present
+ * metadata => Array
+ * ttl => time in seconds until the record expires
+ * generation => the number of times the record has been written
+ * bins => Array of bin-name => bin-value pairs
+ * ```
+ * @param array $select only these bins out of the record (optional)
+ * @param array $options an optional array of read policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_DESERIALIZE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_DESERIALIZE Aerospike::OPT_DESERIALIZE option
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function get(array $key, &$record, array $select = null, array $options = []) {}
+
+ /**
+ * Get the metadata of a record with a given key, and store it in $metadata
+ *
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $status = $client->exists($key, $metadata);
+ * if ($status == Aerospike::OK) {
+ * var_dump($metadata);
+ * } elseif ($status == Aerospike::ERR_RECORD_NOT_FOUND) {
+ * echo "A user with key ". $key['key']. " does not exist in the database\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(2) {
+ * ["generation"]=>
+ * int(4)
+ * ["ttl"]=>
+ * int(1337)
+ * }
+ * ```
+ * **or**
+ * ```
+ * A user with key 1234 does not exist in the database.
+ * ```
+ * @link https://www.aerospike.com/docs/guide/glossary.html Glossary
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array &$metadata a reference to a variable which will be filled with an array of `['ttl', 'generation']` values
+ * @param array $options an optional array of read policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_DESERIALIZE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT options
+ * @see Aerospike::OPT_DESERIALIZE Aerospike::OPT_DESERIALIZE option
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function exists(array $key, &$metadata, array $options = []) {}
+
+ /**
+ * Touch the record identified by the $key, resetting its time-to-live.
+ *
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $status = $client->touch($key, 120);
+ * if ($status == Aerospike::OK) {
+ * echo "Added 120 seconds to the record's expiration.\n"
+ * } elseif ($status == Aerospike::ERR_RECORD_NOT_FOUND) {
+ * echo "A user with key ". $key['key']. " does not exist in the database\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * Added 120 seconds to the record's expiration.
+ * ```
+ * **or**
+ * ```
+ * A user with key 1234 does not exist in the database.
+ * ```
+ * @link https://www.aerospike.com/docs/client/c/usage/kvs/write.html#change-record-time-to-live-ttl Time-to-live
+ * @link https://www.aerospike.com/docs/guide/FAQ.html FAQ
+ * @link https://discuss.aerospike.com/t/records-ttl-and-evictions/737 Record TTL and Evictions
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param int $ttl The record's time-to-live in seconds
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_DESERIALIZE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_DESERIALIZE Aerospike::OPT_DESERIALIZE option
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function touch(array $key, int $ttl = 0, array $options =[]) {}
+
+ /**
+ * Remove the record identified by the $key.
+ *
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $status = $client->remove($key);
+ * if ($status == Aerospike::OK) {
+ * echo "Record removed.\n";
+ * } elseif ($status == Aerospike::ERR_RECORD_NOT_FOUND) {
+ * echo "A user with key ". $key['key']. " does not exist in the database\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * Record removed.
+ * ```
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function remove(array $key, array $options = []) {}
+
+ /**
+ * Remove $bins from the record identified by the $key.
+ *
+ * ```php
+ * $key = ["ns" => "test", "set" => "users", "key" => 1234];
+ * $options = array(Aerospike::OPT_TTL => 3600);
+ * $status = $client->removeBin($key, ["age"], $options);
+ * if ($status == Aerospike::OK) {
+ * echo "Removed bin 'age' from the record.\n";
+ * } elseif ($status == Aerospike::ERR_RECORD_NOT_FOUND) {
+ * echo "The database has no record with the given key.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array $bins A list of bin names to remove
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::COMPRESSION_THRESHOLD
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::COMPRESSION_THRESHOLD
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function removeBin(array $key, array $bins , array $options = []) {}
+
+ /**
+ * Remove all the records from a namespace or set
+ *
+ * Remove records in a specified namespace/set efficiently. This method is
+ * many orders of magnitude faster than deleting records one at a time.
+ * **Note:** works with Aerospike Server versions >= 3.12
+ * See {@link https://www.aerospike.com/docs/reference/info#truncate Truncate command information}
+ *
+ * This asynchronous server call may return before the truncation is complete.
+ * The user can still write new records after the server returns because new
+ * records will have last update times greater than the truncate cutoff
+ * (set at the time of truncate call).
+ *
+ * The truncate command does not durably delete records in the Community Edition.
+ * The Enterprise Edition provides durability through the truncate command.
+ *
+ * ```php
+ * $secondsInDay = 24 * 60 * 60;
+ *
+ * // Multiply by 10 ^ 9 to get nanoseconds
+ * $yesterday = 1000000000 * (time() - $secondsInDay);
+ *
+ * // Remove all records in test/truncateSet updated before 24 hours ago
+ * $status = $client->truncate("test", "demoSet", $yesterday);
+ *
+ * // Truncate all records in test, regardless of update time
+ * $status = $client->truncate("test", null, 0);
+ * ```
+ * @version 3.12 Requires server >= 3.12
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param int $nanos cutoff threshold indicating that records
+ * last updated before the threshold will be removed. Units are in
+ * nanoseconds since unix epoch (1970-01-01 00:00:00). A value of 0
+ * indicates that all records in the set should be truncated
+ * regardless of update time. The value must not be in the future.
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function truncate(string $ns, string $set, int $nanos, array $options = []) {}
+
+ /**
+ * Increment the value of $bin in the record identified by the $key by an
+ * $offset.
+ *
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $options = [Aerospike::OPT_TTL => 7200];
+ * $status = $client->increment($key, 'pto', -4, $options);
+ * if ($status == Aerospike::OK) {
+ * echo "Decremented four vacation days from the user's PTO balance.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin The name of the bin to increment
+ * @param int|float $offset The value by which to increment the bin
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function increment(array $key, string $bin, $offset, array $options = []) {}
+
+ /**
+ * Append a string $value to the one already in $bin, in the record identified by the $key.
+ *
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $options = [Aerospike::OPT_TTL => 3600];
+ * $status = $client->append($key, 'name', ' Ph.D.', $options);
+ * if ($status == Aerospike::OK) {
+ * echo "Added the Ph.D. suffix to the user.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin The name of the bin
+ * @param string $value The string value to append to the bin
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_DESERIALIZE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_DESERIALIZE Aerospike::OPT_DESERIALIZE option
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function append(array $key, string $bin, string $value, array $options = []) {}
+
+ /**
+ * Prepend a string $value to the one already in $bin, in the record identified by the $key.
+ *
+ * ```php
+ * $key = $client->initKey("test", "users", 1234);
+ * $options = [Aerospike::OPT_TTL => 3600];
+ * $status = $client->prepend($key, 'name', '*', $options);
+ * if ($status == Aerospike::OK) {
+ * echo "Starred the user.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin The name of the bin
+ * @param string $value The string value to prepend to the bin
+ * @param array $options an optional array of write policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_DESERIALIZE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_DESERIALIZE Aerospike::OPT_DESERIALIZE option
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function prepend(array $key, string $bin, string $value, array $options = []) {}
+
+ /**
+ * Perform multiple bin operations on a record with a given key, with write operations happening before read ones.
+ *
+ * Non-existent bins being read will have a `NULL` value.
+ *
+ * Currently a call to operate() can include only one write operation per-bin.
+ * For example, you cannot both append and prepend to the same bin, in the same call.
+ *
+ * Like other bin operations, operate() only works on existing records (i.e. ones that were previously created with a put()).
+ *
+ * **Example #1 Combining several write operations into one multi-op call**
+ *
+ * ```
+ * [
+ * ["op" => Aerospike::OPERATOR_APPEND, "bin" => "name", "val" => " Ph.D."],
+ * ["op" => Aerospike::OPERATOR_INCR, "bin" => "age", "val" => 1],
+ * ["op" => Aerospike::OPERATOR_READ, "bin" => "age"]
+ * ]
+ * ```
+ *
+ * ```php
+ * $config = ["hosts" => [["addr"=>"localhost", "port"=>3000]], "shm"=>[]];
+ * $client = new Aerospike($config, true);
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ *
+ * $key = $client->initKey("test", "users", 1234);
+ * $operations = [
+ * ["op" => Aerospike::OPERATOR_APPEND, "bin" => "name", "val" => " Ph.D."],
+ * ["op" => Aerospike::OPERATOR_INCR, "bin" => "age", "val" => 1],
+ * ["op" => Aerospike::OPERATOR_READ, "bin" => "age"],
+ * ];
+ * $options = [Aerospike::OPT_TTL => 600];
+ * $status = $client->operate($key, $operations, $returned, $options);
+ * if ($status == Aerospike::OK) {
+ * var_dump($returned);
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(1) {
+ * ["age"]=>
+ * int(34)
+ * }
+ * ```
+ *
+ * **Example #2 Implementing an LRU by reading a bin and touching a record in the same operation**
+ *
+ * ```
+ * [
+ * ["op" => Aerospike::OPERATOR_READ, "bin" => "age"],
+ * ["op" => Aerospike::OPERATOR_TOUCH, "ttl" => 20]
+ * ]
+ * ```
+ * @link https://www.aerospike.com/docs/guide/kvs.html Key-Value Store
+ * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#handling-unsupported-types Handling Unsupported Types
+ * @link https://www.aerospike.com/docs/client/c/usage/kvs/write.html#change-record-time-to-live-ttl Time-to-live
+ * @link https://www.aerospike.com/docs/guide/glossary.html Glossary
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array $operations The array of of one or more per-bin operations conforming to the following structure:
+ * ```
+ * Write Operation:
+ * op => Aerospike::OPERATOR_WRITE
+ * bin => bin name (cannot be longer than 14 characters)
+ * val => the value to store in the bin
+ *
+ * Increment Operation:
+ * op => Aerospike::OPERATOR_INCR
+ * bin => bin name
+ * val => the integer by which to increment the value in the bin
+ *
+ * Prepend Operation:
+ * op => Aerospike::OPERATOR_PREPEND
+ * bin => bin name
+ * val => the string to prepend the string value in the bin
+ *
+ * Append Operation:
+ * op => Aerospike::OPERATOR_APPEND
+ * bin => bin name
+ * val => the string to append the string value in the bin
+ *
+ * Read Operation:
+ * op => Aerospike::OPERATOR_READ
+ * bin => name of the bin we want to read after any write operations
+ *
+ * Touch Operation: reset the time-to-live of the record and increment its generation
+ * (only combines with read operations)
+ * op => Aerospike::OPERATOR_TOUCH
+ * ttl => a positive integer value to set as time-to-live for the record
+ *
+ * Delete Operation:
+ * op => Aerospike::OPERATOR_DELETE
+ *
+ * List Append Operation:
+ * op => Aerospike::OP_LIST_APPEND,
+ * bin => "events",
+ * val => 1234
+ *
+ * List Merge Operation:
+ * op => Aerospike::OP_LIST_MERGE,
+ * bin => "events",
+ * val => [ 123, 456 ]
+ *
+ * List Insert Operation:
+ * op => Aerospike::OP_LIST_INSERT,
+ * bin => "events",
+ * index => 2,
+ * val => 1234
+ *
+ * List Insert Items Operation:
+ * op => Aerospike::OP_LIST_INSERT_ITEMS,
+ * bin => "events",
+ * index => 2,
+ * val => [ 123, 456 ]
+ *
+ * List Pop Operation:
+ * op => Aerospike::OP_LIST_POP, # returns a value
+ * bin => "events",
+ * index => 2
+ *
+ * List Pop Range Operation:
+ * op => Aerospike::OP_LIST_POP_RANGE, # returns a value
+ * bin => "events",
+ * index => 2,
+ * val => 3 # remove 3 elements starting at index 2
+ *
+ * List Remove Operation:
+ * op => Aerospike::OP_LIST_REMOVE,
+ * bin => "events",
+ * index => 2
+ *
+ * List Remove Range Operation:
+ * op => Aerospike::OP_LIST_REMOVE_RANGE,
+ * bin => "events",
+ * index => 2,
+ * val => 3 # remove 3 elements starting at index 2
+ *
+ * List Clear Operation:
+ * op => Aerospike::OP_LIST_CLEAR,
+ * bin => "events"
+ *
+ * List Set Operation:
+ * op => Aerospike::OP_LIST_SET,
+ * bin => "events",
+ * index => 2,
+ * val => "latest event at index 2" # set this value at index 2
+ *
+ * List Get Operation:
+ * op => Aerospike::OP_LIST_GET, # returns a value
+ * bin => "events",
+ * index => 2 # similar to Aerospike::OPERATOR_READ but only returns the value
+ * at index 2 of the list, not the whole bin
+ *
+ * List Get Range Operation:
+ * op => Aerospike::OP_LIST_GET_RANGE, # returns a value
+ * bin => "events",
+ * index => 2,
+ * val => 3 # get 3 elements starting at index 2
+ *
+ * List Trim Operation:
+ * op => Aerospike::OP_LIST_TRIM,
+ * bin => "events",
+ * index => 2,
+ * val => 3 # remove all elements not in the range between index 2 and index 2 + 3
+ *
+ * List Size Operation:
+ * op => Aerospike::OP_LIST_SIZE, # returns a value
+ * bin => "events" # gets the size of a list contained in the bin
+ *
+ *
+ * Map operations
+ *
+ * Map Policies:
+ * Many of the following operations require a map policy, the policy is an array
+ * containing any of the keys AEROSPIKE::OPT_MAP_ORDER, AEROSPIKE::OPT_MAP_WRITE_MODE
+ *
+ * the value for AEROSPIKE::OPT_MAP_ORDER should be one of AEROSPIKE::AS_MAP_UNORDERED , AEROSPIKE::AS_MAP_KEY_ORDERED , AEROSPIKE::AS_MAP_KEY_VALUE_ORDERED
+ * the default value is currently AEROSPIKE::AS_MAP_UNORDERED
+ *
+ * the value for AEROSPIKE::OPT_MAP_WRITE_MODE should be one of: AEROSPIKE::AS_MAP_UPDATE, AEROSPIKE::AS_MAP_UPDATE_ONLY , AEROSPIKE::AS_MAP_CREATE_ONLY
+ * the default value is currently AEROSPIKE::AS_MAP_UPDATE
+ *
+ * the value for AEROSPIKE::OPT_MAP_WRITE_FLAGS should be one of: AEROSPIKE::AS_MAP_WRITE_DEFAULT, AEROSPIKE::AS_MAP_WRITE_CREATE_ONLY, AEROSPIKE::AS_MAP_WRITE_UPDATE_ONLY, AEROSPIKE::AS_MAP_WRITE_NO_FAIL, AEROSPIKE::AS_MAP_WRITE_PARTIAL
+ * the default value is currently AEROSPIKE::AS_MAP_WRITE_DEFAULT
+ *
+ * Map return types:
+ * many of the map operations require a return_type entry.
+ * this specifies the format in which the response should be returned. The options are:
+ * AEROSPIKE::AS_MAP_RETURN_NONE # Do not return a result.
+ * AEROSPIKE::AS_MAP_RETURN_INDEX # Return key index order.
+ * AEROSPIKE::AS_MAP_RETURN_REVERSE_INDEX # Return reverse key order.
+ * AEROSPIKE::AS_MAP_RETURN_RANK # Return value order.
+ * AEROSPIKE::AS_MAP_RETURN_REVERSE_RANK # Return reserve value order.
+ * AEROSPIKE::AS_MAP_RETURN_COUNT # Return count of items selected.
+ * AEROSPIKE::AS_MAP_RETURN_KEY # Return key for single key read and key list for range read.
+ * AEROSPIKE::AS_MAP_RETURN_VALUE # Return value for single key read and value list for range read.
+ * AEROSPIKE::AS_MAP_RETURN_KEY_VALUE # Return key/value items. Will be of the form ['key1', 'val1', 'key2', 'val2', 'key3', 'val3]
+ *
+ * Map policy Operation:
+ * op => Aerospike::OP_MAP_SET_POLICY,
+ * bin => "map",
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map clear operation: (Remove all items from a map)
+ * op => AEROSPIKE::OP_MAP_CLEAR,
+ * bin => "bin_name"
+ *
+ *
+ * Map Size Operation: Return the number of items in a map
+ * op => AEROSPIKE::OP_MAP_SIZE,
+ * bin => "bin_name"
+ *
+ * Map Get by Key operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_KEY ,
+ * bin => "bin_name",
+ * key => "my_key",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Key Range operation:
+ * op => AEROSPIKE::OP_MAP_GET_BY_KEY_RANGE ,
+ * bin => "bin_name",
+ * key => "aaa",
+ * range_end => "bbb"
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Value operation:
+ * op => AEROSPIKE::OP_MAP_GET_BY_VALUE ,
+ * bin => "bin_name",
+ * value => "my_val"
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get by Value Range operation:
+ * op => AEROSPIKE::OP_MAP_GET_BY_VALUE_RANGE ,
+ * bin => "bin_name",
+ * value => "value_a",
+ * range_end => "value_z",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Index operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_INDEX ,
+ * bin => "bin_name",
+ * index => 2,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get by Index Range operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_INDEX_RANGE,
+ * bin => "bin_name",
+ * index => 2,
+ * count => 2,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Rank operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_RANK ,
+ * bin => "bin_name",
+ * rank => -1, # get the item with the largest value
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get by Rank Range operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_RANK_RANGE ,
+ * rank => -2 ,
+ * count => 2 ,
+ * bin => "bin_name",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Put operation
+ * op => AEROSPIKE::OP_MAP_PUT ,
+ * bin => "bin_name",
+ * key => "aero",
+ * val => "spike",
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Put Items operations
+ * op => AEROSPIKE::OP_MAP_PUT_ITEMS ,
+ * bin => "bin_name",
+ * val => [1, "a", 1.5],
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Increment operation
+ * op => AEROSPIKE::OP_MAP_INCREMENT ,
+ * bin => "bin_name",
+ * val => 5, #increment the value by 5
+ * key => "key_to_increment",
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Decrement operation
+ * op => AEROSPIKE::OP_MAP_DECREMENT ,
+ * bin => "bin_name",
+ * key => "key_to_decrement",
+ * val => 5, #decrement by 5
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Remove by Key operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_KEY ,
+ * bin => "bin_name",
+ * key => "key_to_remove",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove by Key list operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_KEY_LIST ,
+ * bin => "bin_name",
+ * key => ["key1", 2, "key3"],
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by Key Range operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_KEY_RANGE ,
+ * bin => "bin",
+ * key => "a",
+ * range_end => "d",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by Value operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_VALUE ,
+ * bin => "bin_name",
+ * val => 5,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by value range operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_VALUE_RANGE ,
+ * bin => "bin_name",
+ * val => "a",
+ * range_end => "d"
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by value list operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_VALUE_LIST ,
+ * bin => "bin_name",
+ * val => [1, 2, 3, 4],
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove by Index operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_INDEX ,
+ * index => 2,
+ * bin => "bin_name",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove By Index Range operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_INDEX_RANGE ,
+ * bin => "bin_name",
+ * index => 3 ,
+ * count => 3 ,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove by Rank operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_RANK ,
+ * rank => -1 ,
+ * bin => "bin_name",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by rank range
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_RANK_RANGE,
+ * bin => "bin_name",
+ * rank => -1,
+ * count => return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ *
+ *
+ * ```
+ *
+ * @param array &$returned a pass-by-reference array of bins retrieved by read operations. If multiple operations exist for a specific bin name, the last operation will be the one placed as the value
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_DESERIALIZE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_DESERIALIZE Aerospike::OPT_DESERIALIZE option
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @see Aerospike::OPERATOR_WRITE Aerospike::OPERATOR_WRITE and other operators
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function operate(array $key, array $operations, &$returned, array $options = []) {}
+
+ /**
+ * Perform multiple bin operations on a record with a given key, with write operations happening before read ones.
+ * The order of the resulting elements will correspond to the order of the operations in the parameters.
+ *
+ * Non-existent bins being read will have a `NULL` value.
+ *
+ * Currently a call to operateOrdered() can include only one write operation per-bin.
+ * For example, you cannot both append and prepend to the same bin, in the same call.
+ *
+ * Like other bin operations, operateOrdered() only works on existing records (i.e. ones that were previously created with a put()).
+ *
+ * **Example #1 Combining several write operations into one multi-op call**
+ *
+ * ```php
+ * $config = ["hosts" => [["addr"=>"localhost", "port"=>3000]], "shm"=>[]];
+ * $client = new Aerospike($config, true);
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ *
+ * $key = $client->initKey("test", "demo", "pk458");
+ * $operations = [
+ * array("op" => Aerospike::OP_LIST_APPEND, "bin" => "age", "val"=>49),
+ * array("op" => Aerospike::OP_LIST_GET, "bin" => "age", "index"=>0),
+ * array("op" => Aerospike::OP_LIST_POP, "bin" => "age", "index"=>0)
+ * ];
+ * $returned = "output value";
+ * $status = $client->operateOrdered($key, $operations, $returned);
+ *
+ * if ($status == Aerospike::OK) {
+ * var_dump($returned);
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ *
+ * @link https://www.aerospike.com/docs/guide/kvs.html Key-Value Store
+ * @link https://github.com/aerospike/aerospike-client-php/blob/master/doc/README.md#handling-unsupported-types Handling Unsupported Types
+ * @link https://www.aerospike.com/docs/client/c/usage/kvs/write.html#change-record-time-to-live-ttl Time-to-live
+ * @link https://www.aerospike.com/docs/guide/glossary.html Glossary
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array $operations The array of of one or more per-bin operations conforming to the following structure:
+ * ```
+ * Write Operation:
+ * op => Aerospike::OPERATOR_WRITE
+ * bin => bin name (cannot be longer than 14 characters)
+ * val => the value to store in the bin
+ *
+ * Increment Operation:
+ * op => Aerospike::OPERATOR_INCR
+ * bin => bin name
+ * val => the integer by which to increment the value in the bin
+ *
+ * Prepend Operation:
+ * op => Aerospike::OPERATOR_PREPEND
+ * bin => bin name
+ * val => the string to prepend the string value in the bin
+ *
+ * Append Operation:
+ * op => Aerospike::OPERATOR_APPEND
+ * bin => bin name
+ * val => the string to append the string value in the bin
+ *
+ * Read Operation:
+ * op => Aerospike::OPERATOR_READ
+ * bin => name of the bin we want to read after any write operations
+ *
+ * Touch Operation: reset the time-to-live of the record and increment its generation
+ * (only combines with read operations)
+ * op => Aerospike::OPERATOR_TOUCH
+ * ttl => a positive integer value to set as time-to-live for the record
+ *
+ * Delete Operation:
+ * op => Aerospike::OPERATOR_DELETE
+ *
+ * List Append Operation:
+ * op => Aerospike::OP_LIST_APPEND,
+ * bin => "events",
+ * val => 1234
+ *
+ * List Merge Operation:
+ * op => Aerospike::OP_LIST_MERGE,
+ * bin => "events",
+ * val => [ 123, 456 ]
+ *
+ * List Insert Operation:
+ * op => Aerospike::OP_LIST_INSERT,
+ * bin => "events",
+ * index => 2,
+ * val => 1234
+ *
+ * List Insert Items Operation:
+ * op => Aerospike::OP_LIST_INSERT_ITEMS,
+ * bin => "events",
+ * index => 2,
+ * val => [ 123, 456 ]
+ *
+ * List Pop Operation:
+ * op => Aerospike::OP_LIST_POP, # returns a value
+ * bin => "events",
+ * index => 2
+ *
+ * List Pop Range Operation:
+ * op => Aerospike::OP_LIST_POP_RANGE, # returns a value
+ * bin => "events",
+ * index => 2,
+ * val => 3 # remove 3 elements starting at index 2
+ *
+ * List Remove Operation:
+ * op => Aerospike::OP_LIST_REMOVE,
+ * bin => "events",
+ * index => 2
+ *
+ * List Remove Range Operation:
+ * op => Aerospike::OP_LIST_REMOVE_RANGE,
+ * bin => "events",
+ * index => 2,
+ * val => 3 # remove 3 elements starting at index 2
+ *
+ * List Clear Operation:
+ * op => Aerospike::OP_LIST_CLEAR,
+ * bin => "events"
+ *
+ * List Set Operation:
+ * op => Aerospike::OP_LIST_SET,
+ * bin => "events",
+ * index => 2,
+ * val => "latest event at index 2" # set this value at index 2
+ *
+ * List Get Operation:
+ * op => Aerospike::OP_LIST_GET, # returns a value
+ * bin => "events",
+ * index => 2 # similar to Aerospike::OPERATOR_READ but only returns the value
+ * at index 2 of the list, not the whole bin
+ *
+ * List Get Range Operation:
+ * op => Aerospike::OP_LIST_GET_RANGE, # returns a value
+ * bin => "events",
+ * index => 2,
+ * val => 3 # get 3 elements starting at index 2
+ *
+ * List Trim Operation:
+ * op => Aerospike::OP_LIST_TRIM,
+ * bin => "events",
+ * index => 2,
+ * val => 3 # remove all elements not in the range between index 2 and index 2 + 3
+ *
+ * List Size Operation:
+ * op => Aerospike::OP_LIST_SIZE, # returns a value
+ * bin => "events" # gets the size of a list contained in the bin
+ *
+ *
+ * Map operations
+ *
+ * Map Policies:
+ * Many of the following operations require a map policy, the policy is an array
+ * containing any of the keys AEROSPIKE::OPT_MAP_ORDER, AEROSPIKE::OPT_MAP_WRITE_MODE
+ *
+ * the value for AEROSPIKE::OPT_MAP_ORDER should be one of AEROSPIKE::AS_MAP_UNORDERED , AEROSPIKE::AS_MAP_KEY_ORDERED , AEROSPIKE::AS_MAP_KEY_VALUE_ORDERED
+ * the default value is currently AEROSPIKE::AS_MAP_UNORDERED
+ *
+ * the value for AEROSPIKE::OPT_MAP_WRITE_MODE should be one of: AEROSPIKE::AS_MAP_UPDATE, AEROSPIKE::AS_MAP_UPDATE_ONLY , AEROSPIKE::AS_MAP_CREATE_ONLY
+ * the default value is currently AEROSPIKE::AS_MAP_UPDATE
+ *
+ * the value for AEROSPIKE::OPT_MAP_WRITE_FLAGS should be one of: AEROSPIKE::AS_MAP_WRITE_DEFAULT, AEROSPIKE::AS_MAP_WRITE_CREATE_ONLY, AEROSPIKE::AS_MAP_WRITE_UPDATE_ONLY, AEROSPIKE::AS_MAP_WRITE_NO_FAIL, AEROSPIKE::AS_MAP_WRITE_PARTIAL
+ * the default value is currently AEROSPIKE::AS_MAP_WRITE_DEFAULT
+ *
+ * Map return types:
+ * many of the map operations require a return_type entry.
+ * this specifies the format in which the response should be returned. The options are:
+ * AEROSPIKE::AS_MAP_RETURN_NONE # Do not return a result.
+ * AEROSPIKE::AS_MAP_RETURN_INDEX # Return key index order.
+ * AEROSPIKE::AS_MAP_RETURN_REVERSE_INDEX # Return reverse key order.
+ * AEROSPIKE::AS_MAP_RETURN_RANK # Return value order.
+ * AEROSPIKE::AS_MAP_RETURN_REVERSE_RANK # Return reserve value order.
+ * AEROSPIKE::AS_MAP_RETURN_COUNT # Return count of items selected.
+ * AEROSPIKE::AS_MAP_RETURN_KEY # Return key for single key read and key list for range read.
+ * AEROSPIKE::AS_MAP_RETURN_VALUE # Return value for single key read and value list for range read.
+ * AEROSPIKE::AS_MAP_RETURN_KEY_VALUE # Return key/value items. Will be of the form ['key1', 'val1', 'key2', 'val2', 'key3', 'val3]
+ *
+ * Map policy Operation:
+ * op => Aerospike::OP_MAP_SET_POLICY,
+ * bin => "map",
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map clear operation: (Remove all items from a map)
+ * op => AEROSPIKE::OP_MAP_CLEAR,
+ * bin => "bin_name"
+ *
+ *
+ * Map Size Operation: Return the number of items in a map
+ * op => AEROSPIKE::OP_MAP_SIZE,
+ * bin => "bin_name"
+ *
+ * Map Get by Key operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_KEY ,
+ * bin => "bin_name",
+ * key => "my_key",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Key Range operation:
+ * op => AEROSPIKE::OP_MAP_GET_BY_KEY_RANGE ,
+ * bin => "bin_name",
+ * key => "aaa",
+ * range_end => "bbb"
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Value operation:
+ * op => AEROSPIKE::OP_MAP_GET_BY_VALUE ,
+ * bin => "bin_name",
+ * value => "my_val"
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get by Value Range operation:
+ * op => AEROSPIKE::OP_MAP_GET_BY_VALUE_RANGE ,
+ * bin => "bin_name",
+ * value => "value_a",
+ * range_end => "value_z",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Index operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_INDEX ,
+ * bin => "bin_name",
+ * index => 2,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get by Index Range operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_INDEX_RANGE,
+ * bin => "bin_name",
+ * index => 2,
+ * count => 2,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get By Rank operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_RANK ,
+ * bin => "bin_name",
+ * rank => -1, # get the item with the largest value
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Get by Rank Range operation
+ * op => AEROSPIKE::OP_MAP_GET_BY_RANK_RANGE ,
+ * rank => -2 ,
+ * count => 2 ,
+ * bin => "bin_name",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Put operation
+ * op => AEROSPIKE::OP_MAP_PUT ,
+ * bin => "bin_name",
+ * key => "aero",
+ * val => "spike",
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Put Items operations
+ * op => AEROSPIKE::OP_MAP_PUT_ITEMS ,
+ * bin => "bin_name",
+ * val => [1, "a", 1.5],
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Increment operation
+ * op => AEROSPIKE::OP_MAP_INCREMENT ,
+ * bin => "bin_name",
+ * val => 5, #increment the value by 5
+ * key => "key_to_increment",
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Decrement operation
+ * op => AEROSPIKE::OP_MAP_DECREMENT ,
+ * bin => "bin_name",
+ * key => "key_to_decrement",
+ * val => 5, #decrement by 5
+ * map_policy => [ AEROSPIKE::OPT_MAP_ORDER => AEROSPIKE::AS_MAP_KEY_ORDERED]
+ *
+ * Map Remove by Key operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_KEY ,
+ * bin => "bin_name",
+ * key => "key_to_remove",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove by Key list operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_KEY_LIST ,
+ * bin => "bin_name",
+ * key => ["key1", 2, "key3"],
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by Key Range operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_KEY_RANGE ,
+ * bin => "bin",
+ * key => "a",
+ * range_end => "d",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by Value operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_VALUE ,
+ * bin => "bin_name",
+ * val => 5,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by value range operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_VALUE_RANGE ,
+ * bin => "bin_name",
+ * val => "a",
+ * range_end => "d"
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by value list operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_VALUE_LIST ,
+ * bin => "bin_name",
+ * val => [1, 2, 3, 4],
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove by Index operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_INDEX ,
+ * index => 2,
+ * bin => "bin_name",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove By Index Range operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_INDEX_RANGE ,
+ * bin => "bin_name",
+ * index => 3 ,
+ * count => 3 ,
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map Remove by Rank operation
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_RANK ,
+ * rank => -1 ,
+ * bin => "bin_name",
+ * return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ * Map remove by rank range
+ * op => AEROSPIKE::OP_MAP_REMOVE_BY_RANK_RANGE,
+ * bin => "bin_name",
+ * rank => -1,
+ * count => return_type => AEROSPIKE::MAP_RETURN_KEY_VALUE
+ *
+ *
+ *
+ * ```
+ *
+ * @param array &$returned a pass-by-reference array of bins retrieved by read operations. If multiple operations exist for a specific bin name, the last operation will be the one placed as the value
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_DESERIALIZE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_DESERIALIZE Aerospike::OPT_DESERIALIZE option
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @see Aerospike::OPERATOR_WRITE Aerospike::OPERATOR_WRITE and other operators
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function operateOrdered(array $key, array $operations, &$returned, array $options = []) {}
+
+ /**
+ * Count the number of elements in a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int &$count pass-by-reference param
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listSize(array $key, $bin, &$count, array $options = []) {}
+
+ /**
+ * Add a single value (of any type) to the end of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param mixed $value
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listAppend(array $key, $bin, $value, array $options = []) {}
+
+ /**
+ * Add several items to the end of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param array $items
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listMerge(array $key, $bin, array $items, array $options = []) {}
+
+ /**
+ * Insert a single element (of any type) at a specified index of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param mixed $value
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listInsert(array $key, $bin, $index, $value, array $options = []) {}
+
+ /**
+ * Insert several elements at a specified index of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param array $elements
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listInsertItems(array $key, $bin, $index, array $elements, array $options = []) {}
+
+ /**
+ * Remove and get back the element at a specified index of a list type bin
+ * Index -1 is the last item in the list, -3 is the third from last, 0 is the first in the list.
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param mixed &$element pass-by-reference param
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listPop(array $key, $bin, $index, &$element, array $options = []) {}
+
+ /**
+ * Remove and get back several elements at a specified index range of a list type bin
+ * Index -1 is the last item in the list, -3 is the third from last, 0 is the first in the list.
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param int $count
+ * @param array &$elements pass-by-reference param. After the method call it will be an array holding the popped elements.
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listPopRange(array $key, $bin, $index, $count, &$elements, array $options = []) {}
+
+ /**
+ * Remove a list element at a specified index of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listRemove(array $key, $bin, $index, array $options = []) {}
+
+ /**
+ * Remove several list elements at a specified index range of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param int $count
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listRemoveRange(array $key, $bin, $index, $count, array $options = []) {}
+
+ /**
+ * Trim the list, removing all elements not in the specified index range of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param int $count
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listTrim(array $key, $bin, $index, $count, array $options = []) {}
+
+ /**
+ * Remove all the elements from a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listClear(array $key, $bin, array $options = []) {}
+
+ /**
+ * Set an element at a specified index of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param mixed $value
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_TTL
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_GEN
+ * * Aerospike::OPT_POLICY_COMMIT_LEVEL
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_TTL Aerospike::OPT_TTL options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_GEN Aerospike::OPT_POLICY_GEN options
+ * @see Aerospike::OPT_POLICY_COMMIT_LEVEL Aerospike::OPT_POLICY_COMMIT_LEVEL options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listSet(array $key, $bin, $index, $value, array $options = []) {}
+
+ /**
+ * Get an element from a specified index of a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param array &$element pass-by-reference param which will hold the returned element.
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listGet(array $key, $bin, $index, array &$element, array $options = []) {}
+
+ /**
+ * Get several elements starting at a specified index from a list type bin
+ *
+ * @version 3.7 Requires server >= 3.7
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $bin
+ * @param int $index
+ * @param int $count
+ * @param array &$elements pass-by-reference param which will hold an array of returned elements from the specified list bin.
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_POLICY_REPLICA
+ * * Aerospike::OPT_POLICY_READ_MODE_AP
+ * * Aerospike::OPT_POLICY_READ_MODE_SC
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_POLICY_REPLICA Aerospike::OPT_POLICY_REPLICA options
+ * @see Aerospike::OPT_POLICY_READ_MODE_AP Aerospike::OPT_POLICY_READ_MODE_AP options
+ * @see Aerospike::OPT_POLICY_READ_MODE_SC Aerospike::OPT_POLICY_READ_MODE_SC options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listGetRange(array $key, $bin, $index, $count, &$elements, array $options = []) {}
+
+ // Batch Operation Methods
+
+ /**
+ * Read a batch of records from a list of given keys, and fill $records with the resulting indexed array
+ *
+ * Each record is an array consisting of *key*, *metadata* and *bins* (see: {@see Aerospike::get() get()}).
+ * Non-existent records will have `NULL` for their *metadata* and *bins* fields.
+ * The bins returned can be filtered by passing an array of bin names.
+ *
+ * **Note** that the protocol getMany() will use (batch-direct or batch-index)
+ * is configurable through the config parameter `Aerospike::USE_BATCH_DIRECT`
+ * or `php.ini` config parameter `aerospike.use_batch_direct`.
+ * By default batch-index is used with servers that support it (version >= 3.6.0).
+ *
+ * **Example #1 Aerospike::getMany() default behavior example**
+ * ```php
+ * $config = ["hosts" => [["addr"=>"localhost", "port"=>3000]], "shm"=>[]];
+ * $client = new Aerospike($config, true);
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ *
+ * $key1 = $client->initKey("test", "users", 1234);
+ * $key2 = $client->initKey("test", "users", 1235); // this key does not exist
+ * $key3 = $client->initKey("test", "users", 1236);
+ * $keys = array($key1, $key2, $key3);
+ * $status = $client->getMany($keys, $records);
+ * if ($status == Aerospike::OK) {
+ * var_dump($records);
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(3) {
+ * [0]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1234)
+ * ["digest"]=>
+ * string(20) "M?v2Kp???
+ *
+ * ?[??4?v
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["ttl"]=>
+ * int(4294967295)
+ * ["generation"]=>
+ * int(1)
+ * }
+ * ["bins"]=>
+ * array(3) {
+ * ["email"]=>
+ * string(15) "hey@example.com"
+ * ["name"]=>
+ * string(9) "You There"
+ * ["age"]=>
+ * int(33)
+ * }
+ * }
+ * [1]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1235)
+ * ["digest"]=>
+ * string(20) "?C??[?vwS??ƨ?????"
+ * }
+ * ["metadata"]=>
+ * NULL
+ * ["bins"]=>
+ * NULL
+ * }
+ * [2]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1236)
+ * ["digest"]=>
+ * string(20) "'?9?
+ * ??????
+ * ? ?"
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["ttl"]=>
+ * int(4294967295)
+ * ["generation"]=>
+ * int(1)
+ * }
+ * ["bins"]=>
+ * array(3) {
+ * ["email"]=>
+ * string(19) "thisguy@example.com"
+ * ["name"]=>
+ * string(8) "This Guy"
+ * ["age"]=>
+ * int(42)
+ * }
+ * }
+ * }
+ * ```
+ * **Example #2 getMany records with filtered bins**
+ * ```php
+ * // assuming this follows Example #1
+ *
+ * $filter = ["email"];
+ * $keys = [$key1, $key3];
+ * $status = $client->getMany($keys, $records, $filter);
+ * if ($status == Aerospike::OK) {
+ * var_dump($records);
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(2) {
+ * [0]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1234)
+ * ["digest"]=>
+ * string(20) "M?v2Kp???
+ *
+ * ?[??4?v
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["ttl"]=>
+ * int(4294967295)
+ * ["generation"]=>
+ * int(4)
+ * }
+ * ["bins"]=>
+ * array(1) {
+ * ["email"]=>
+ * string(15) "hey@example.com"
+ * }
+ * }
+ * [1]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1236)
+ * ["digest"]=>
+ * string(20) "'?9?
+ * ??????
+ * ? ?"
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["ttl"]=>
+ * int(4294967295)
+ * ["generation"]=>
+ * int(4)
+ * }
+ * ["bins"]=>
+ * array(1) {
+ * ["email"]=>
+ * string(19) "thisguy@example.com"
+ * }
+ * }
+ * }
+ * ```
+ * @param array $keys an array of initialized keys, each key an array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array &$records a pass-by-reference variable which will hold an array of record values, each record an array of `['key', 'metadata', 'bins']`
+ * @param array $select only these bins out of the record (optional)
+ * @param array $options an optional array of read policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::USE_BATCH_DIRECT
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * * Aerospike::OPT_BATCH_CONCURRENT
+ * * Aerospike::OPT_SEND_SET_NAME
+ * * Aerospike::OPT_ALLOW_INLINE
+ * @see Aerospike::USE_BATCH_DIRECT Aerospike::USE_BATCH_DIRECT options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @see Aerospike::get() get()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function getMany ( array $keys, &$records, array $select = [], array $options = []) {}
+
+
+ /**
+ * Check if a batch of records exists in the database and fill $metdata with the results
+ *
+ * Checks for the existence a batch of given *keys* (see: {@see Aerospike::exists() exists()}),
+ * and return an indexed array matching the order of the *keys*.
+ * Non-existent records will have `NULL` for their *metadata*.
+ *
+ * **Note** that the protocol existsMany() will use (batch-direct or batch-index)
+ * is configurable through the config parameter `Aerospike::USE_BATCH_DIRECT`
+ * or `php.ini` config parameter `aerospike.use_batch_direct`.
+ * By default batch-index is used with servers that support it (version >= 3.6.0).
+ *
+ * **Example #1 Aerospike::existsMany() default behavior example**
+ * ```php
+ * $config = ["hosts" => [["addr"=>"localhost", "port"=>3000]], "shm"=>[]];
+ * $client = new Aerospike($config, true);
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ *
+ * $key1 = $client->initKey("test", "users", 1234);
+ * $key2 = $client->initKey("test", "users", 1235); // this key does not exist
+ * $key3 = $client->initKey("test", "users", 1236);
+ * $keys = array($key1, $key2, $key3);
+ * $status = $client->existsMany($keys, $metadata);
+ * if ($status == Aerospike::OK) {
+ * var_dump($records);
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(3) {
+ * [0]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1234)
+ * ["digest"]=>
+ * string(20) "M?v2Kp???
+ *
+ * ?[??4?v
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["ttl"]=>
+ * int(4294967295)
+ * ["generation"]=>
+ * int(1)
+ * }
+ * }
+ * [1]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1235)
+ * ["digest"]=>
+ * string(20) "?C??[?vwS??ƨ?????"
+ * }
+ * ["metadata"]=>
+ * NULL
+ * }
+ * [2]=>
+ * array(3) {
+ * ["key"]=>
+ * array(4) {
+ * ["ns"]=>
+ * string(4) "test"
+ * ["set"]=>
+ * string(5) "users"
+ * ["key"]=>
+ * int(1236)
+ * ["digest"]=>
+ * string(20) "'?9?
+ * ??????
+ * ? ?"
+ * }
+ * ["metadata"]=>
+ * array(2) {
+ * ["ttl"]=>
+ * int(4294967295)
+ * ["generation"]=>
+ * int(1)
+ * }
+ * }
+ * }
+ * ```
+ * @param array $keys an array of initialized keys, each key an array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param array &$metadata a pass-by-reference array of metadata values, each an array of `['key', 'metadata']`
+ * @param array $options an optional array of read policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::USE_BATCH_DIRECT
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * * Aerospike::OPT_BATCH_CONCURRENT
+ * * Aerospike::OPT_SEND_SET_NAME
+ * * Aerospike::OPT_ALLOW_INLINE
+ * @see Aerospike::USE_BATCH_DIRECT Aerospike::USE_BATCH_DIRECT options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @see Aerospike::error() error()
+ * @see Aerospike::errorno() errorno()
+ * @see Aerospike::exists() exists()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function existsMany ( array $keys, array &$metadata, array $options = []) {}
+
+ // Scan and Query
+
+ /**
+ * Scan a namespace or set
+ *
+ * Scan a _ns.set_, and invoke a callback function *record_cb* on each
+ * record streaming back from the cluster.
+ *
+ * Optionally select the bins to be returned. Non-existent bins in this list will appear in the
+ * record with a NULL value.
+ *
+ * ```php
+ * $options = [Aerospike::OPT_SCAN_PRIORITY => Aerospike::SCAN_PRIORITY_MEDIUM];
+ * $processed = 0;
+ * $status = $client->scan('test', 'users', function ($record) use (&$processed) {
+ * if (!is_null($record['bins']['email'])) echo $record['bins']['email']."\n";
+ * if ($processed++ > 19) return false; // halt the stream by returning a false
+ * }, ['email'], $options);
+ *
+ * var_dump($status, $processed);
+ * ```
+ * ```
+ * foo@example.com
+ * :
+ * bar@example.com
+ * I think a sample of 20 records is enough
+ * ```
+ * @link https://www.aerospike.com/docs/architecture/data-model.html Aerospike Data Model
+ * @link https://www.aerospike.com/docs/guide/scan.html Scans
+ * @link https://www.aerospike.com/docs/operations/manage/scans/ Managing Scans
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param callable $record_cb A callback function invoked for each record streaming back from the cluster
+ * @param array $select An array of bin names which are the subset to be returned
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_SOCKET_TIMEOUT maximum socket idle time in milliseconds (0 means do not apply a socket idle timeout)
+ * * Aerospike::OPT_SCAN_PRIORITY
+ * * Aerospike::OPT_SCAN_PERCENTAGE of the records in the set to return
+ * * Aerospike::OPT_SCAN_CONCURRENTLY whether to run the scan in parallel
+ * * Aerospike::OPT_SCAN_NOBINS whether to not retrieve bins for the records
+ * * Aerospike::OPT_SCAN_RPS_LIMIT limit the scan to process OPT_SCAN_RPS_LIMIT per second.
+ *
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function scan(string $ns, string $set, callable $record_cb, array $select = [], array $options = []) {}
+
+ /**
+ * Query a secondary index on a namespace or set
+ *
+ * Query a _ns.set_ with a specified predicate, and invoke a callback function *record_cb* on each
+ * record matched by the query and streaming back from the cluster.
+ *
+ * Optionally select the bins to be returned. Non-existent bins in this list will appear in the
+ * record with a NULL value.
+ *
+ * ```php
+ * $result = [];
+ * $where = Aerospike::predicateBetween("age", 30, 39);
+ * $status = $client->query("test", "users", $where, function ($record) use (&$result) {
+ * $result[] = $record['bins'];
+ * });
+ * if ($status !== Aerospike::OK) {
+ * echo "An error occured while querying[{$client->errorno()}] {$client->error()}\n";
+ * } else {
+ * echo "The query returned ".count($result)." records\n";
+ * }
+ * ```
+ * ```
+ * foo@example.com
+ * :
+ * bar@example.com
+ * I think a sample of 20 records is enough
+ * ```
+ * @link https://www.aerospike.com/docs/architecture/data-model.html Aerospike Data Model
+ * @link https://www.aerospike.com/docs/guide/query.html Query
+ * @link https://www.aerospike.com/docs/operations/manage/queries/index.html Managing Queries
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param array $where the predicate for the query, usually created by the
+ * predicate helper methods. The arrays conform to one of the following:
+ * ```
+ * Array:
+ * bin => bin name
+ * op => one of Aerospike::OP_EQ, Aerospike::OP_BETWEEN, Aerospike::OP_CONTAINS, Aerospike::OP_RANGE, etc
+ * val => scalar integer/string for OP_EQ and OP_CONTAINS or [$min, $max] for OP_BETWEEN and OP_RANGE
+ *
+ * or an empty array() for no predicate
+ * ```
+ * examples
+ * ```
+ * ["bin"=>"name", "op"=>Aerospike::OP_EQ, "val"=>"foo"]
+ * ["bin"=>"age", "op"=>Aerospike::OP_BETWEEN, "val"=>[35,50]]
+ * ["bin"=>"movies", "op"=>Aerospike::OP_CONTAINS, "val"=>"12 Monkeys"]
+ * ["bin"=>"movies", "op"=>Aerospike::OP_RANGE, "val"=>[10,1000]]
+ * [] // no predicate
+ * ```
+ * @param callable $record_cb A callback function invoked for each record streaming back from the cluster
+ * @param array $select An array of bin names which are the subset to be returned
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * * Aerospike::OPT_QUERY_NOBINS
+ * @see Aerospike::predicateEquals()
+ * @see Aerospike::predicateBetween()
+ * @see Aerospike::predicateContains()
+ * @see Aerospike::predicateRange()
+ * @see Aerospike::predicateGeoContainsGeoJSONPoint()
+ * @see Aerospike::predicateGeoWithinGeoJSONRegion()
+ * @see Aerospike::predicateGeoContainsPoint()
+ * @see Aerospike::predicateGeoWithinRadius()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function query(string $ns, string $set, array $where, callable $record_cb, array $select = [], array $options = []) {}
+
+ /**
+ * Helper method for creating an EQUALS predicate
+ * @param string $bin name
+ * @param int|string $val
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * op => Aerospike::OP_EQ
+ * val => scalar integer/string value
+ * ```
+ */
+ public static function predicateEquals(string $bin, $val) {}
+
+ /**
+ * Helper method for creating a BETWEEN predicate
+ * @param string $bin name
+ * @param int $min
+ * @param int $max
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * op => Aerospike::OP_BETWEEN
+ * val => [min, max]
+ * ```
+ */
+ public static function predicateBetween(string $bin, int $min, int $max) {}
+
+ /**
+ * Helper method for creating an CONTAINS predicate
+ *
+ * Similar to predicateEquals(), predicateContains() looks for an exact
+ * match of a value inside a complex type - a list containing the value
+ * (if the index type is *INDEX_TYPE_LIST*), the value contained in the keys
+ * of a map (if the index type is *INDEX_TYPE_MAPKEYS*), or a record with the
+ * given value contained in the values of a map (if the index type was
+ * *INDEX_TYPE_MAPVALUES*).
+ * @param string $bin name
+ * @param int $index_type one of Aerospike::INDEX_TYPE_*
+ * @param int|string $val
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * index_type => Aerospike::INDEX_TYPE_*
+ * op => Aerospike::OP_CONTAINS
+ * val => scalar integer/string value
+ * ```
+ */
+ public static function predicateContains(string $bin, int $index_type, $val) {}
+
+ /**
+ * Helper method for creating a RANGE predicate
+ *
+ * Similar to predicateBetween(), predicateRange() looks for records with a
+ * range of values inside a complex type - a list containing the values
+ * (if the index type is *INDEX_TYPE_LIST*), the values contained in the keys
+ * of a map (if the index type is *INDEX_TYPE_MAPKEYS*), or a record with the
+ * given values contained in the values of a map (if the index type was
+ * *INDEX_TYPE_MAPVALUES*)
+ * @param string $bin name
+ * @param int $index_type one of Aerospike::INDEX_TYPE_*
+ * @param int $min
+ * @param int $max
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * index_type => Aerospike::INDEX_TYPE_*
+ * op => Aerospike::OP_BETWEEN
+ * val => [min, max]
+ * ```
+ */
+ public static function predicateRange(string $bin, int $index_type, int $min, int $max) {}
+
+ /**
+ * Helper method for creating a GEOCONTAINS point predicate
+ * @param string $bin name
+ * @param string $point GeoJSON string describing a point
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * op => Aerospike::OP_GEOCONTAINSPOINT
+ * val => GeoJSON string
+ * ```
+ */
+ public static function predicateGeoContainsGeoJSONPoint(string $bin, string $point) {}
+
+ /**
+ * Helper method for creating a GEOCONTAINS point predicate
+ * @param string $bin name
+ * @param float $long longitude of the point
+ * @param float $lat latitude of the point
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * op => Aerospike::OP_GEOCONTAINSPOINT
+ * val => GeoJSON string produced from $long and $lat
+ * ```
+ */
+ public static function predicateGeoContainsPoint(string $bin, float $long, float $lat) {}
+
+ /**
+ * Helper method for creating a GEOWITHIN region predicate
+ * @param string $bin name
+ * @param string $region GeoJSON string describing the region (polygon)
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * op => Aerospike::OP_GEOWITHINREGION
+ * val => GeoJSON string
+ * ```
+ */
+ public static function predicateGeoWithinGeoJSONRegion(string $bin, string $region) {}
+
+ /**
+ * Helper method for creating a GEOWITHIN circle region predicate
+ * @param string $bin name
+ * @param float $long longitude of the point
+ * @param float $lat latitude of the point
+ * @param float $radiusMeter radius of the circle in meters
+ * @see Aerospike::query()
+ * @see Aerospike::queryApply()
+ * @see Aerospike::aggregate()
+ * @return array expressing the predicate, to be used by query(), queryApply() or aggregate()
+ * ```
+ * Associative Array:
+ * bin => bin name
+ * op => Aerospike::OP_GEOWITHINREGION
+ * val => GeoJSON string produced from $long, $lat and $radius
+ * ```
+ */
+ public static function predicateGeoWithinRadius(string $bin, float $long, float $lat, float $radiusMeter) {}
+
+ /**
+ * Get the status of a background job triggered by Aerospike::scanApply or Aerospike::queryApply
+ *
+ * ```php
+ * // after a queryApply() where $job_id was set:
+ * do {
+ * time_nanosleep(0, 30000000); // pause 30ms
+ * $status = $client->jobInfo($job_id, Aerospike::JOB_QUERY, $job_info);
+ * var_dump($job_info);
+ * } while($job_info['status'] != Aerospike::JOB_STATUS_COMPLETED);
+ * ```
+ *
+ * @param int $job_id The Job ID
+ * @param int $job_type The type of the job, either Aerospike::JOB_QUERY, or Aerospike::JOB_SCAN
+ * @param array &$info The status of the background job filled (by reference) as an array of
+ * ```
+ * [
+ * 'progress_pct' => progress percentage for the job
+ * 'records_read' => number of records read by the job
+ * 'status' => one of Aerospike::STATUS_*
+ * ]
+ * ```
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * @see Aerospike::scanApply()
+ * @see Aerospike::queryApply()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function jobInfo(int $job_id, $job_type, array &$info, array $options = []) {}
+
+ // UDF Methods
+
+ /**
+ * Register a UDF module with the cluster
+ *
+ * Note that modules containing stream UDFs need to also be copied to the
+ * path described in `aerospike.udf.lua_user_path`, as the last reduce
+ * iteration is run locally on the client (after reducing on all the nodes
+ * of the cluster).
+ *
+ * Currently the only UDF language supported is Lua.
+ * ```php
+ * $status = $client->register('/path/to/my_udf.lua', 'my_udf.lua');
+ * if ($status == Aerospike::OK) {
+ * echo "UDF module at $path is registered as my_udf on the Aerospike DB.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * @link https://www.aerospike.com/docs/udf/udf_guide.html UDF Development Guide
+ * @param string $path the path to the Lua file on the client-side machine
+ * @param string $module the name of the UDF module to register with the cluster
+ * @param int $language
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function register($path, $module, $language = Aerospike::UDF_TYPE_LUA, $options = []) {}
+
+ /**
+ * Remove a UDF module from the cluster
+ *
+ * ```php
+ * $status = $client->deregister('my_udf');
+ * if ($status == Aerospike::OK) {
+ * echo "UDF module my_udf was removed from the Aerospike DB.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * @param string $module the name of the UDF module registered with the cluster
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT
+ * @see Aerospike::ERR_UDF_NOT_FOUND UDF error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function deregister($module, $options = []) {}
+
+ /**
+ * List the UDF modules registered with the cluster
+ *
+ * The modules array has the following structure:
+ * ```
+ * Array of:
+ * name => module name
+ * type => Aerospike::UDF_TYPE_*
+ * ```
+ * **Example**
+ * ```php
+ * $status = $client->listRegistered($modules);
+ * if ($status == Aerospike::OK) {
+ * var_dump($modules);
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(2) {
+ * [0]=>
+ * array(2) {
+ * ["name"]=>
+ * string(13) "my_record_udf"
+ * ["type"]=>
+ * int(0)
+ * }
+ * [1]=>
+ * array(2) {
+ * ["name"]=>
+ * string(13) "my_stream_udf"
+ * ["type"]=>
+ * int(0)
+ * }
+ * }
+ * ```
+ * @param array &$modules pass-by-reference param
+ * @param int $language
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT
+ * @see Aerospike::OK Aerospike::OK and error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function listRegistered(&$modules, $language = Aerospike::UDF_TYPE_LUA, $options = []) {}
+
+ /**
+ * Get the code for a UDF module registered with the cluster
+ *
+ * Populates _code_ with the content of the matching UDF _module_ that was
+ * previously registered with the server.
+ *
+ * **Example**
+ * ```php
+ * $status = $client->getRegistered('my_udf', $code);
+ * if ($status == Aerospike::OK) {
+ * var_dump($code);
+ * } elseif ($status == Aerospike::ERR_LUA_FILE_NOT_FOUND) {
+ * echo "The UDF module my_udf was not found to be registered with the server.\n";
+ * }
+ * ```
+ * ```
+ * string(351) "function startswith(rec, bin_name, prefix)
+ * if not aerospike:exists(rec) then
+ * return false
+ * end
+ * if not prefix then
+ * return true
+ * end
+ * if not rec[bin_name] then
+ * return false
+ * end
+ * local bin_val = rec[bin_name]
+ * l = prefix:len()
+ * if l > bin_val:len() then
+ * return false
+ * end
+ * ret = bin_val:sub(1, l) == prefix
+ * return ret
+ * end
+ * "
+ * ```
+ * @param string $module the name of the UDF module registered with the cluster
+ * @param string &$code pass-by-reference param
+ * @param string $language
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT
+ * @see Aerospike::ERR_LUA_FILE_NOT_FOUND UDF error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function getRegistered($module, &$code , $language = Aerospike::UDF_TYPE_LUA, $options = []) {}
+
+ /**
+ * Apply a UDF to a record
+ *
+ * Applies the UDF _module.function_ to a record with a given _key_.
+ * Arguments can be passed to the UDF and any returned value optionally captured.
+ *
+ * Currently the only UDF language supported is Lua.
+ * ```php
+ * $key = ["ns" => "test", "set" => "users", "key" => "1234"];
+ * $status = $client->apply($key, 'my_udf', 'startswith', ['email', 'hey@'], $returned);
+ * if ($status == Aerospike::OK) {
+ * if ($returned) {
+ * echo "The email of the user with key {$key['key']} starts with 'hey@'.\n";
+ * } else {
+ * echo "The email of the user with key {$key['key']} does not start with 'hey@'.\n";
+ * }
+ * } elseif ($status == Aerospike::ERR_UDF_NOT_FOUND) {
+ * echo "The UDF module my_udf.lua was not registered with the Aerospike DB.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * The email of the user with key 1234 starts with 'hey@'.
+ * ```
+ * @link https://www.aerospike.com/docs/udf/udf_guide.html UDF Development Guide
+ * @link https://www.aerospike.com/docs/udf/developing_record_udfs.html Developing Record UDFs
+ * @link https://www.aerospike.com/docs/udf/api_reference.html Lua UDF - API Reference
+ * @param array $key The key identifying the record. An array with keys `['ns','set','key']` or `['ns','set','digest']`
+ * @param string $module the name of the UDF module registered with the cluster
+ * @param string $function the name of the UDF
+ * @param array $args optional arguments for the UDF
+ * @param mixed &$returned pass-by-reference param
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_POLICY_KEY
+ * * Aerospike::OPT_SERIALIZER
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_KEY Aerospike::OPT_POLICY_KEY options
+ * @see Aerospike::OPT_SERIALIZER Aerospike::OPT_SERIALIZER options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::ERR_LUA UDF error status codes
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function apply(array $key, string $module, string $function, array $args = [], &$returned = null, $options = []) {}
+
+ /**
+ * Apply a UDF to each record in a scan
+ *
+ * Scan the *ns.set* and apply a UDF _module.function_ to each of its records.
+ * Arguments can be passed to the UDF and any returned value optionally captured.
+ *
+ * Currently the only UDF language supported is Lua.
+ * ```php
+ * $status = $client->scanApply("test", "users", "my_udf", "mytransform", array(20), $job_id);
+ * if ($status === Aerospike::OK) {
+ * var_dump("Job ID is $job_id");
+ * } else if ($status === Aerospike::ERR_CLIENT) {
+ * echo "An error occured while initiating the BACKGROUND SCAN [{$client->errorno()}] ".$client->error();
+ * } else {
+ * echo "An error occured while running the BACKGROUND SCAN [{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * string(12) "Job ID is 1"
+ * ```
+ * @link https://www.aerospike.com/docs/udf/udf_guide.html UDF Development Guide
+ * @link https://www.aerospike.com/docs/udf/developing_record_udfs.html Developing Record UDFs
+ * @link https://www.aerospike.com/docs/udf/api_reference.html Lua UDF - API Reference
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param string $module the name of the UDF module registered with the cluster
+ * @param string $function the name of the UDF
+ * @param array $args optional arguments for the UDF
+ * @param int &$job_id pass-by-reference filled by the job ID of the scan
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * * Aerospike::OPT_FAIL_ON_CLUSTER_CHANGE
+ * * Aerospike::OPT_SCAN_RPS_LIMIT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::ERR_LUA UDF error status codes
+ * @see Aerospike::jobInfo()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function scanApply(string $ns, string $set, string $module, string $function, array $args, int &$job_id, array $options = []) {}
+
+ /**
+ * Apply a UDF to each record in a query
+ *
+ * Query the *ns.set* with a predicate, and apply a UDF _module.function_
+ * to each of matched records.
+ * Arguments can be passed to the UDF and any returned value optionally captured.
+ *
+ * Currently the only UDF language supported is Lua.
+ * ```php
+ * $where = Aerospike::predicateBetween("age", 30, 39);
+ * $status = $client->queryApply("test", "users", "my_udf", "mytransform", [20], $job_id);
+ * if ($status === Aerospike::OK) {
+ * var_dump("Job ID is $job_id");
+ * } else if ($status === Aerospike::ERR_CLIENT) {
+ * echo "An error occured while initiating the BACKGROUND SCAN [{$client->errorno()}] ".$client->error();
+ * } else {
+ * echo "An error occured while running the BACKGROUND SCAN [{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * string(12) "Job ID is 1"
+ * ```
+ * @link https://www.aerospike.com/docs/udf/udf_guide.html UDF Development Guide
+ * @link https://www.aerospike.com/docs/udf/developing_record_udfs.html Developing Record UDFs
+ * @link https://www.aerospike.com/docs/udf/api_reference.html Lua UDF - API Reference
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param array $where the predicate for the query, usually created by the
+ * predicate methods. The arrays conform to one of the following:
+ * ```
+ * Array:
+ * bin => bin name
+ * op => one of Aerospike::OP_EQ, Aerospike::OP_BETWEEN, Aerospike::OP_CONTAINS, Aerospike::OP_RANGE, etc
+ * val => scalar integer/string for OP_EQ and OP_CONTAINS or [$min, $max] for OP_BETWEEN and OP_RANGE
+ *
+ * or an empty array() for no predicate
+ * ```
+ * examples
+ * ```
+ * ["bin"=>"name", "op"=>Aerospike::OP_EQ, "val"=>"foo"]
+ * ["bin"=>"age", "op"=>Aerospike::OP_BETWEEN, "val"=>[35,50]]
+ * ["bin"=>"movies", "op"=>Aerospike::OP_CONTAINS, "val"=>"12 Monkeys"]
+ * ["bin"=>"movies", "op"=>Aerospike::OP_RANGE, "val"=>[10,1000]]
+ * [] // no predicate
+ * ```
+ * @param string $module the name of the UDF module registered with the cluster
+ * @param string $function the name of the UDF
+ * @param array $args optional arguments for the UDF
+ * @param int &$job_id pass-by-reference filled by the job ID of the scan
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * * Aerospike::OPT_POLICY_DURABLE_DELETE
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_WRITE_TIMEOUT Aerospike::OPT_WRITE_TIMEOUT options
+ * @see Aerospike::OPT_POLICY_DURABLE_DELETE Aerospike::OPT_POLICY_DURABLE_DELETE options
+ * @see Aerospike::OPT_SLEEP_BETWEEN_RETRIES Aerospike::OPT_SLEEP_BETWEEN_RETRIES options
+ * @see Aerospike::OPT_TOTAL_TIMEOUT Aerospike::OPT_TOTAL_TIMEOUT options
+ * @see Aerospike::OPT_SOCKET_TIMEOUT Aerospike::OPT_SOCKET_TIMEOUT options
+ * @see Aerospike::MAX_RETRIES Aerospike::MAX_RETRIES options
+ * @see Aerospike::ERR_LUA UDF error status codes
+ * @see Aerospike::jobInfo()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function queryApply(string $ns, string $set, array $where, string $module, string $function, array $args, int &$job_id, array $options = []) {}
+
+ /**
+ * Apply a stream UDF to a scan or secondary index query
+ *
+ * Apply the UDF _module.function_ to the result of running a secondary
+ * index query on _ns.set_. The aggregated _returned_ variable is then
+ * filled, with its type depending on the UDF. It may be a string, integer
+ * or array, and potentially an array of arrays, such as in the case the
+ * UDF does not specify a reducer and there are multiple nodes in the
+ * cluster, each sending back the result of its own aggregation.
+ *
+ * As with query(), if an empty array is given as the _where_ predicate a
+ * 'scan aggregation' is initiated instead of a query, which means the
+ * stream UDF is applied to all the records returned by the scan.
+ *
+ * **Note** that modules containing stream UDFs need to also be copied to the
+ * path described in `aerospike.udf.lua_user_path`, as the last reduce
+ * iteration is run locally on the client, after reducing on all the nodes
+ * of the cluster.
+ *
+ * **Note** aggregate is currently unsupported in PHP built with ZTS enabled.
+ * Attempting to use it in that environment will fail.
+ *
+ * Currently the only UDF language supported is Lua.
+ *
+ * **Example Stream UDF**
+ *
+ * Module registered as stream_udf.lua
+ * ```
+ * local function having_ge_threshold(bin_having, ge_threshold)
+ * debug("group_count::thresh_filter: %s > %s ?", tostring(rec[bin_having]), tostring(ge_threshold))
+ * return function(rec)
+ * if rec[bin_having] < ge_threshold then
+ * return false
+ * end
+ * return true
+ * end
+ * end
+ *
+ * local function count(group_by_bin)
+ * return function(group, rec)
+ * if rec[group_by_bin] then
+ * local bin_name = rec[group_by_bin]
+ * group[bin_name] = (group[bin_name] or 0) + 1
+ * end
+ * return group
+ * end
+ * end
+ *
+ * local function add_values(val1, val2)
+ * return val1 + val2
+ * end
+ *
+ * local function reduce_groups(a, b)
+ * return map.merge(a, b, add_values)
+ * end
+ *
+ * function group_count(stream, group_by_bin, bin_having, ge_threshold)
+ * if bin_having and ge_threshold then
+ * local myfilter = having_ge_threshold(bin_having, ge_threshold)
+ * return stream : filter(myfilter) : aggregate(map{}, count(group_by_bin)) : reduce(reduce_groups)
+ * else
+ * return stream : aggregate(map{}, count(group_by_bin)) : reduce(reduce_groups)
+ * end
+ * end
+ * ```
+ * **Example of aggregating a stream UDF to the result of a secondary index query**
+ * ```php
+ * // assuming test.users has a bin first_name, show the first name distribution
+ * // for users in their twenties
+ * $where = Aerospike::predicateBetween("age", 20, 29);
+ * $status = $client->aggregate("test", "users", $where, "stream_udf", "group_count", ["first_name"], $names);
+ * if ($status == Aerospike::OK) {
+ * var_dump($names);
+ * } else {
+ * echo "An error occured while running the AGGREGATE [{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * ```
+ * array(5) {
+ * ["Claudio"]=>
+ * int(1)
+ * ["Michael"]=>
+ * int(3)
+ * ["Jennifer"]=>
+ * int(2)
+ * ["Jessica"]=>
+ * int(3)
+ * ["Jonathan"]=>
+ * int(3)
+ * }
+ * ```
+ * @link https://www.aerospike.com/docs/udf/udf_guide.html UDF Development Guide
+ * @link https://www.aerospike.com/docs/udf/developing_stream_udfs.html Developing Stream UDFs
+ * @link https://www.aerospike.com/docs/guide/aggregation.html Aggregation
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param array $where the predicate for the query, usually created by the
+ * predicate methods. The arrays conform to one of the following:
+ * ```
+ * Array:
+ * bin => bin name
+ * op => one of Aerospike::OP_EQ, Aerospike::OP_BETWEEN, Aerospike::OP_CONTAINS, Aerospike::OP_RANGE
+ * val => scalar integer/string for OP_EQ and OP_CONTAINS or [$min, $max] for OP_BETWEEN and OP_RANGE
+ *
+ * or an empty array() for no predicate
+ * ```
+ * examples
+ * ```
+ * ["bin"=>"name", "op"=>Aerospike::OP_EQ, "val"=>"foo"]
+ * ["bin"=>"age", "op"=>Aerospike::OP_BETWEEN, "val"=>[35,50]]
+ * ["bin"=>"movies", "op"=>Aerospike::OP_CONTAINS, "val"=>"12 Monkeys"]
+ * ["bin"=>"movies", "op"=>Aerospike::OP_RANGE, "val"=>[10,1000]]
+ * [] // no predicate
+ * ```
+ * @param string $module the name of the UDF module registered with the cluster
+ * @param string $function the name of the UDF
+ * @param array $args optional arguments for the UDF
+ * @param mixed &$returned pass-by-reference param
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_READ_TIMEOUT
+ * * Aerospike::OPT_SLEEP_BETWEEN_RETRIES
+ * * Aerospike::OPT_TOTAL_TIMEOUT
+ * * Aerospike::OPT_MAX_RETRIES
+ * * Aerospike::OPT_SOCKET_TIMEOUT
+ * @see Aerospike::OPT_READ_TIMEOUT Aerospike::OPT_READ_TIMEOUT options
+ * @see Aerospike::ERR_LUA UDF error status codes
+ * @see Aerospike::predicateEquals()
+ * @see Aerospike::predicateBetween()
+ * @see Aerospike::predicateContains()
+ * @see Aerospike::predicateRange()
+ * @see Aerospike::predicateGeoContainsGeoJSONPoint()
+ * @see Aerospike::predicateGeoWithinGeoJSONRegion()
+ * @see Aerospike::predicateGeoContainsPoint()
+ * @see Aerospike::predicateGeoWithinRadius()
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function aggregate(string $ns, string $set, array $where, string $module, string $function, array $args, &$returned, array $options = []) {}
+
+ // Admin methods
+
+ /**
+ * Create a secondary index on a bin of a specified set
+ *
+ * Create a secondary index of a given *index_type* on a namespace *ns*, *set* and *bin* with a specified *name*
+ * ```php
+ * $status = $client->addIndex("test", "user", "email", "user_email_idx", Aerospike::INDEX_TYPE_DEFAULT, Aerospike::INDEX_STRING);
+ * if ($status == Aerospike::OK) {
+ * echo "Index user_email_idx created on test.user.email\n";
+ * } else if ($status == Aerospike::ERR_INDEX_FOUND) {
+ * echo "This index has already been created.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ *
+ * $client->addIndex("test", "user", "movies", "user_movie_titles_idx", Aerospike::INDEX_TYPE_MAPKEYS, Aerospike::INDEX_STRING);
+ * $client->addIndex("test", "user", "movies", "user_movie_views_idx", Aerospike::INDEX_TYPE_MAPVALUES, Aerospike::INDEX_NUMERIC);
+ * $client->addIndex("test", "user", "aliases", "user_aliases_idx", Aerospike::INDEX_TYPE_LIST, Aerospike::INDEX_STRING);
+ *
+ * $client->info("sindex", $res);
+ * echo($res);
+ * ```
+ * @param string $ns the namespace
+ * @param string $set the set within the given namespace
+ * @param string $bin the bin on which the secondary index is to be created
+ * @param string $name the name of the index
+ * @param int $indexType one of *Aerospike::INDEX\_TYPE\_\**
+ * @param int $dataType one of *Aerospike::INDEX_NUMERIC* and *Aerospike::INDEX_STRING*
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * @see Aerospike::INDEX_TYPE_DEFAULT
+ * @see Aerospike::INDEX_STRING
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function addIndex(string $ns, string $set, string $bin, string $name, int $indexType, int $dataType, array $options = []) {}
+
+ /**
+ * Drop a secondary index
+ *
+ * ```php
+ * $status = $client->dropIndex("test", "user_email_idx");
+ * if ($status == Aerospike::OK) {
+ * echo "Index user_email_idx was dropped from namespace 'test'\n";
+ * } else if ($status == Aerospike::ERR_INDEX_NOT_FOUND) {
+ * echo "No such index exists.\n";
+ * } else {
+ * echo "[{$client->errorno()}] ".$client->error();
+ * }
+ * ```
+ * @param string $ns the namespace
+ * @param string $name the name of the index
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_WRITE_TIMEOUT
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function dropIndex(string $ns, string $name, array $options = []) {}
+
+ // Info Methods
+
+ /**
+ * Send an info request to a single cluster node
+ *
+ * Interface with the cluster's command and control functions.
+ * A formatted request string is sent to a cluster node, and a formatted
+ * response returned.
+ *
+ * A specific host can be optionally set, otherwise the request command is
+ * sent to the host definded for client constructor.
+ *
+ * ```php
+ * $client->info('bins/test', $response);
+ * var_dump($response);
+ * ```
+ * ```
+ * string(53) "bins/test num-bin-names=2,bin-names-quota=32768,demo,characters"
+ * ```
+ * @link https://www.aerospike.com/docs/reference/info Info Command Reference
+ * @param string $request a formatted info command
+ * @param string &$response a formatted response from the server, filled by reference
+ * @param array $host an array holding the cluster node connection information cluster
+ * and manage its connections to them. ```[ 'addr' => $addr , 'port' => $port ]```
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * @return int The status code of the operation. Compare to the Aerospike class status constants.
+ */
+ public function info(string $request, string &$response, array $host = null, array $options = []) {}
+
+ /**
+ * Send an info request to a single cluster node
+ *
+ * Interface with the cluster's command and control functions.
+ * A formatted request string is sent to a cluster node, and a formatted
+ * response returned.
+ *
+ * A specific host can be optionally set, otherwise the request command is
+ * sent to the host definded for client constructor.
+ *
+ * ```php
+ * $response = $client->infoMany('build');
+ * var_dump($response);
+ * ```
+ * ```
+ * array(3) {
+ * ["BB936F106CA0568"]=>
+ * string(6) "build 3.3.19"
+ * ["AE712F245BB9876"]=>
+ * string(6) "build 3.3.19"
+ * ["DCBA9AA34EE12FA"]=>
+ * string(6) "build 3.3.19"
+ * }
+ * ```
+ * @link https://www.aerospike.com/docs/reference/info Info Command Reference
+ * @param string $request a formatted info command
+ * @param array $host an array of _host_ arrays, each with ```[ 'addr' => $addr , 'port' => $port ]```
+ * @param array $options an optional array of policy options, whose keys include
+ * * Aerospike::OPT_READ_TIMEOUT
+ * @return array results in the format
+ * ```
+ * Array:
+ * NODE-ID => response string
+ * ```
+ */
+ public function infoMany(string $request, array $host = null, array $options = []) {}
+
+ /**
+ * Get the addresses of the cluster nodes
+ *
+ * ```php
+ * $nodes = $client->getNodes();
+ * var_dump($nodes);
+ * ```
+ * ```
+ * array(2) {
+ * [0]=>
+ * array(2) {
+ * ["addr"]=>
+ * string(15) "192.168.120.145"
+ * ["port"]=>
+ * string(4) "3000"
+ * }
+ * [1]=>
+ * array(2) {
+ * ["addr"]=>
+ * string(15) "192.168.120.144"
+ * ["port"]=>
+ * string(4) "3000"
+ * }
+ * }
+ * ```
+ * @return array results in the format
+ * ```
+ * Array:
+ * Array:
+ * 'addr' => the IP address of the node
+ * 'port' => the port of the node
+ * ```
+ */
+ public function getNodes() {}
+
+ // Logging Methods
+
+ /**
+ * Set the logging threshold of the Aerospike object
+ *
+ * @param $log_level one of `Aerospike::LOG_LEVEL_*` values
+ * * Aerospike::LOG_LEVEL_OFF
+ * * Aerospike::LOG_LEVEL_ERROR
+ * * Aerospike::LOG_LEVEL_WARN
+ * * Aerospike::LOG_LEVEL_INFO
+ * * Aerospike::LOG_LEVEL_DEBUG
+ * * Aerospike::LOG_LEVEL_TRACE
+ * @see Aerospike::LOG_LEVEL_OFF Aerospike::LOG_LEVEL_* constants
+ */
+ public function setLogLevel ( int $log_level ) {}
+
+ /**
+ * Set a handler for log events
+ *
+ * Registers a callback method that will be triggered whenever a logging event above the declared log threshold occurs.
+ *
+ * ```php
+ * $config = ["hosts" => [["addr"=>"localhost", "port"=>3000]], "shm"=>[]];
+ * $client = new Aerospike($config, true);
+ * if (!$client->isConnected()) {
+ * echo "Aerospike failed to connect[{$client->errorno()}]: {$client->error()}\n";
+ * exit(1);
+ * }
+ * $client->setLogLevel(Aerospike::LOG_LEVEL_DEBUG);
+ * $client->setLogHandler(function ($level, $file, $function, $line) {
+ * switch ($level) {
+ * case Aerospike::LOG_LEVEL_ERROR:
+ * $lvl_str = 'ERROR';
+ * break;
+ * case Aerospike::LOG_LEVEL_WARN:
+ * $lvl_str = 'WARN';
+ * break;
+ * case Aerospike::LOG_LEVEL_INFO:
+ * $lvl_str = 'INFO';
+ * break;
+ * case Aerospike::LOG_LEVEL_DEBUG:
+ * $lvl_str = 'DEBUG';
+ * break;
+ * case Aerospike::LOG_LEVEL_TRACE:
+ * $lvl_str = 'TRACE';
+ * break;
+ * default:
+ * $lvl_str = '???';
+ * }
+ * error_log("[$lvl_str] in $function at $file:$line");
+ * });
+ * ```
+ *
+ * @see Aerospike::LOG_LEVEL_OFF Aerospike::LOG_LEVEL_* constants
+ * @param callable $log_handler a callback function with the signature
+ * ```php
+ * function log_handler ( int $level, string $file, string $function, int $line ) : void
+ * ```
+ */
+ public function setLogHandler ( callable $log_handler ) {}
+
+ // Unsupported Type Handler Methods
+
+ /**
+ * Set a serialization handler for unsupported types
+ *
+ * Registers a callback method that will be triggered whenever a write method handles a value whose type is unsupported.
+ * This is a static method and the *serialize_cb* handler is global across all instances of the Aerospike class.
+ *
+ * ```php
+ * Aerospike::setSerializer(function ($val) {
+ * return gzcompress(json_encode($val));
+ * });
+ * ```
+ *
+ * @link https://github.com/citrusleaf/aerospike-client-php7/tree/master/doc#handling-unsupported-types Handling Unsupported Types
+ * @param callable $serialize_cb a callback invoked for each value of an unsupported type, when writing to the cluster. The function must follow the signature
+ * ```php
+ * function aerospike_serialize ( mixed $value ) : string
+ * ```
+ * @see Aerospike::OPT_SERIALIZER Aerospike::OPT_SERIALIZER options
+ */
+ public function setSerializer (callable $serialize_cb ) {}
+
+ /**
+ * Set a deserialization handler for unsupported types
+ *
+ * Registers a callback method that will be triggered whenever a read method handles a value whose type is unsupported.
+ * This is a static method and the *unserialize_cb* handler is global across all instances of the Aerospike class.
+ *
+ * ```php
+ * Aerospike::setDeserializer(function ($val) {
+ * return json_decode(gzuncompress($val));
+ * });
+ * ```
+ *
+ * @link https://github.com/citrusleaf/aerospike-client-php7/tree/master/doc#handling-unsupported-types Handling Unsupported Types
+ * @param callable $unserialize_cb a callback invoked for each value of an unsupported type, when reading from the cluster. The function must follow the signature
+ * ```php
+ * // $value is binary data of type AS_BYTES_BLOB
+ * function aerospike_deserialize ( string $value )
+ * ```
+ * @see Aerospike::OPT_SERIALIZER Aerospike::OPT_SERIALIZER options
+ */
+ public function setDeserializer ( callable $unserialize_cb ) {}
+
+
+ /**
+ * Options can be assigned values that modify default behavior
+ * Used by the constructor, read, write, scan, query, apply, and info
+ * operations.
+ */
+
+ /* Key used to specify an array of read policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_READ_DEFAULT_POL = "OPT_READ_DEFAULT_POL";
+ /* Key used to specify an array of write policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_WRITE_DEFAULT_POL = "OPT_WRITE_DEFAULT_POL";
+ /* Key used to specify an array of remove policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_REMOVE_DEFAULT_POL = "OPT_REMOVE_DEFAULT_POL";
+ /* Key used to specify an array of batch policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_BATCH_DEFAULT_POL = "OPT_BATCH_DEFAULT_POL";
+ /* Key used to specify an array of operate policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_OPERATE_DEFAULT_POL = "OPT_OPERATE_DEFAULT_POL";
+ /* Key used to specify an array of query policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_QUERY_DEFAULT_POL = "OPT_QUERY_DEFAULT_POL";
+ /* Key used to specify an array of scan policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_SCAN_DEFAULT_POL = "OPT_SCAN_DEFAULT_POL";
+ /* Key used to specify an array of apply policy defaults used in the constructor.
+ See https://github.com/aerospike/aerospike-client-php/blob/master/doc/policies.md
+ */
+ const OPT_APPLY_DEFAULT_POL = "OPT_APPLY_DEFAULT_POL";
+
+ /*
+ Key used in the options argument of the constructor used to point to an array of TLS
+ configuration parameters. Use of TLS requires an enterprise version of the Aerospike Server.
+ */
+ const OPT_TLS_CONFIG = "OPT_TLS_CONFIG";
+
+ /* Key used in the OPT_TLS boolean Whether or not to enable TLS.
+ */
+ const OPT_TLS_ENABLE = "OPT_TLS_ENABLE";
+
+ /*
+ Key used to specify a string path to a trusted CA certificate file. By default TLS will use system standard trusted CA certificates
+ */
+ const OPT_OPT_TLS_CAFILE = "OPT_OPT_TLS_CAFILE";
+
+ /*
+ Key used to specify a Path to a directory of trusted certificates. See the OpenSSL SSL_CTX_load_verify_locations manual page for more information about the format of the directory.
+ */
+ const OPT_TLS_CAPATH = "OPT_TLS_CAPATH";
+
+ /*Key used to specify a string representation of allowed protocols. Specifies enabled protocols. This format is the same as Apache's SSLProtocol documented at https://httpd.apache.org/docs/current/mod/mod_ssl.html#sslprotocol . If not specified the client will use "-all +TLSv1.2".
+ */
+ const OPT_TLS_PROTOCOLS ="OPT_TLS_PROTOCOLS";
+
+ /*
+ Key used to specify a string. Specifies enabled cipher suites. The format is the same as OpenSSL's Cipher List Format documented at https://www.openssl.org/docs/manmaster/apps/ciphers.html .If not specified the OpenSSL default cipher suite described in the ciphers documentation will be used. If you are not sure what cipher suite to select this option is best left unspecified
+ */
+ const OPT_TLS_CIPHER_SUITE = "OPT_TLS_CIPHER_SUITE";
+
+ /*
+ Key used to specify a boolean. Enable CRL checking for the certificate chain leaf certificate. An error occurs if a suitable CRL cannot be found. By default CRL checking is disabled.
+ */
+ const OPT_TLS_CRL_CHECK = "OPT_TLS_CRL_CHECK";
+
+ /*
+ Key used to specify a bolean. Enable CRL checking for the entire certificate chain. An error occurs if a suitable CRL cannot be found. By default CRL checking is disabled.
+ */
+ const OPT_TLS_CRL_CHECK_ALL = "OPT_TLS_CRL_CHECK_ALL";
+
+ /* Key used to specify a path to a certificate blacklist file. The file should contain one line for each blacklisted certificate. Each line starts with the certificate serial number expressed in hex. Each entry may optionally specify the issuer name of the certificate (serial numbers are only required to be unique per issuer). Example records: 867EC87482B2 /C=US/ST=CA/O=Acme/OU=Engineering/CN=Test Chain CA E2D4B0E570F9EF8E885C065899886461 */
+ const OPT_TLS_CERT_BLACKLIST = "OPT_TLS_CERT_BLACKLIST";
+
+ /* Boolean: Log session information for each connection. */
+ const OPT_TLS_LOG_SESSION_INFO = "OPT_TLS_LOG_SESSION_INFO";
+
+ /*
+ Path to the client's key for mutual authentication. By default mutual authentication is disabled.
+ */
+ const OPT_TLS_KEYFILE = "OPT_TLS_KEYFILE";
+
+ /* Path to the client's certificate chain file for mutual authentication. By default mutual authentication is disabled.
+ */
+ const OPT_TLS_CERTFILE = "OPT_TLS_CERTFILE";
+
+ /**
+ * Defines the length of time (in milliseconds) the client waits on establishing a connection.
+ * @const OPT_CONNECT_TIMEOUT value in milliseconds (default: 1000)
+ */
+ const OPT_CONNECT_TIMEOUT = "OPT_CONNECT_TIMEOUT";
+
+ /**
+ * Defines the length of time (in milliseconds) the client waits on a read
+ * operation.
+ * @const OPT_READ_TIMEOUT value in milliseconds (default: 1000)
+ */
+ const OPT_READ_TIMEOUT = "OPT_READ_TIMEOUT";
+ /**
+ * Defines the length of time (in milliseconds) the client waits on a write
+ * operation.
+ * @const OPT_WRITE_TIMEOUT value in milliseconds (default: 1000)
+ */
+ const OPT_WRITE_TIMEOUT = "OPT_WRITE_TIMEOUT";
+
+ /**
+ * Sets the TTL of the record along with a write operation.
+ *
+ * * TTL > 0 sets the number of seconds into the future in which to expire the record.
+ * * TTL = 0 uses the default TTL defined for the namespace.
+ * * TTL = -1 means the record should never expire.
+ * * TTL = -2 means the record's TTL should not be modified.
+ * @const OPT_TTL value in seconds, or the special values 0, -1 or -2 (default: 0)
+ */
+ const OPT_TTL = "OPT_TTL";
+
+ /**
+ * Accepts one of the POLICY_KEY_* values.
+ *
+ * {@link https://www.aerospike.com/docs/client/php/usage/kvs/record-structure.html Records}
+ * are uniquely identified by their digest, and can optionally store the value of their primary key
+ * (their unique ID in the application).
+ * @const OPT_POLICY_KEY Key storage policy option (digest-only or send key)
+ */
+ const OPT_POLICY_KEY = "OPT_POLICY_KEY";
+ /**
+ * Do not store the primary key with the record (default)
+ * @const POLICY_KEY_DIGEST digest only
+ */
+ const POLICY_KEY_DIGEST = 0;
+ /**
+ * Store the primary key with the record
+ * @const POLICY_KEY_SEND store the primary key with the record
+ */
+ const POLICY_KEY_SEND = 1;
+
+ /**
+ * Accepts one of the POLICY_EXISTS_* values.
+ *
+ * By default writes will try to create a record or update its bins, which
+ * is a behavior similar to how arrays work in PHP. Setting a write with a
+ * different POLICY\_EXISTS\_* value can simulate a more DML-like behavior,
+ * similar to an RDBMS.
+ * @const OPT_POLICY_EXISTS existence policy option
+ */
+ const OPT_POLICY_EXISTS = "OPT_POLICY_EXISTS";
+ /**
+ * "CREATE_OR_UPDATE" behavior. Create the record if it does not exist,
+ * or update its bins if it does. (default)
+ * @const POLICY_EXISTS_IGNORE create or update behavior
+ */
+ const POLICY_EXISTS_IGNORE = 0;
+ /**
+ * Create a record ONLY if it DOES NOT exist.
+ * @const POLICY_EXISTS_CREATE create only behavior (fail otherwise)
+ */
+ const POLICY_EXISTS_CREATE = 1;
+ /**
+ * Update a record ONLY if it exists.
+ * @const POLICY_EXISTS_UPDATE update only behavior (fail otherwise)
+ */
+ const POLICY_EXISTS_UPDATE = 2;
+ /**
+ * Replace a record ONLY if it exists.
+ * @const POLICY_EXISTS_REPLACE replace only behavior (fail otherwise)
+ */
+ const POLICY_EXISTS_REPLACE = 3;
+ /**
+ * Create the record if it does not exist, or replace its bins if it does.
+ * @const POLICY_EXISTS_CREATE_OR_REPLACE create or replace behavior
+ */
+ const POLICY_EXISTS_CREATE_OR_REPLACE = 4;
+
+ /**
+ * Set to an array( Aerospike::POLICY_GEN_* [, (int) $gen_value ] )
+ *
+ * Specifies the behavior of write opertions with regards to the record's
+ * generation. Used to implement a check-and-set (CAS) pattern.
+ * @const OPT_POLICY_GEN generation policy option
+ */
+ const OPT_POLICY_GEN = "OPT_POLICY_GEN";
+ /**
+ * Do not consider generation for the write operation.
+ * @const POLICY_GEN_IGNORE write a record, regardless of generation (default)
+ */
+ const POLICY_GEN_IGNORE = 0;
+ /**
+ * Only write if the record was not modified since a given generation value.
+ * @const POLICY_GEN_EQ write a record, ONLY if generations are equal
+ */
+ const POLICY_GEN_EQ = 1;
+ /**
+ *
+ * @const POLICY_GEN_GT write a record, ONLY if local generation is greater-than remote generation
+ */
+ const POLICY_GEN_GT = 2;
+
+ /**
+ * Set to one of the SERIALIZER_* values.
+ *
+ * Supported types, such as string, integer, and array get directly cast to
+ * the matching Aerospike types, such as as_string, as_integer, and as_map.
+ * Unsupported types, such as boolean, need a serializer to handle them.
+ * @const OPT_SERIALIZER determines a handler for unsupported data types
+ */
+ const OPT_SERIALIZER = "OPT_SERIALIZER";
+ /**
+ * Throw an exception instead of serializing unsupported types.
+ * @const SERIALIZER_NONE throw an error when serialization is required
+ */
+ const SERIALIZER_NONE = 0;
+ /**
+ * Use the built-in PHP serializer for any unsupported types.
+ * @const SERIALIZER_PHP use the PHP serialize/unserialize functions (default)
+ */
+ const SERIALIZER_PHP = 1;
+ /**
+ * Use a user-defined serializer for any unsupported types.
+ * @const SERIALIZER_USER use a pair of functions written in PHP for serialization
+ */
+ const SERIALIZER_USER = 2;
+
+ /**
+ * Accepts one of the POLICY_COMMIT_LEVEL_* values.
+ *
+ * One of the {@link https://www.aerospike.com/docs/architecture/consistency.html per-transaction consistency levels}.
+ * Specifies the number of replicas required to be successfully committed
+ * before returning success in a write operation to provide the desired
+ * consistency level.
+ * @const OPT_POLICY_COMMIT_LEVEL commit level policy option
+ */
+ const OPT_POLICY_COMMIT_LEVEL = "OPT_POLICY_COMMIT_LEVEL";
+ /**
+ * Return succcess only after successfully committing all replicas.
+ * @const POLICY_COMMIT_LEVEL_ALL write to the master and all replicas (default)
+ */
+ const POLICY_COMMIT_LEVEL_ALL = 0;
+ /**
+ * Return succcess after successfully committing the master replica.
+ * @const POLICY_COMMIT_LEVEL_MASTER master will asynchronously write to replicas
+ */
+ const POLICY_COMMIT_LEVEL_MASTER = 1;
+
+ /**
+ * Accepts one of the POLICY_REPLICA_* values.
+ *
+ * One of the {@link https://www.aerospike.com/docs/architecture/consistency.html per-transaction consistency levels}.
+ * Specifies which partition replica to read from.
+ * @const OPT_POLICY_REPLICA replica policy option
+ */
+ const OPT_POLICY_REPLICA = "OPT_POLICY_REPLICA";
+ /**
+ * Read from the partition master replica node.
+ * @const POLICY_REPLICA_MASTER read from master
+ */
+ const POLICY_REPLICA_MASTER = 0;
+ /**
+ * Read from an unspecified replica node.
+ * @const POLICY_REPLICA_ANY read from any replica node
+ */
+ const POLICY_REPLICA_ANY = 1;
+ /**
+ * Always try node containing master partition first. If connection fails and
+ * `retry_on_timeout` is true, try node containing replica partition.
+ * Currently restricted to master and one replica. (default)
+ * @const POLICY_REPLICA_SEQUENCE attempt to read from master first, then try the node containing replica partition if connection failed. (default)
+ */
+ const POLICY_REPLICA_SEQUENCE = 2;
+
+ /**
+ * Try node on the same rack as the client first. If there are no nodes on the
+ * same rack, use POLICY_REPLICA_SEQUENCE instead.
+ *
+ * "rack_aware" must be set to true in the client constructor, and "rack_id" must match the server rack configuration
+ * to enable this functionality.
+ * @const POLICY_REPLICA_PREFER_RACK attemp to read from master first, then try the node containing replica partition if connection failed. (default)
+ */
+ const POLICY_REPLICA_PREFER_RACK = 3;
+
+ /**
+ * Accepts one of the POLICY_READ_MODE_AP_* values.
+ *
+ * One of the {@link https://www.aerospike.com/docs/architecture/consistency.html per-transaction consistency levels}.
+ * Specifies the number of replicas to be consulted in a read operation to
+ * provide the desired consistency level in availability mode.
+ * @const OPT_POLICY_READ_MODE_AP policy read option for availability namespaces
+ */
+ const OPT_POLICY_READ_MODE_AP = "OPT_POLICY_READ_MODE_AP";
+ /**
+ * Involve a single replica in the operation.
+ * @const POLICY_READ_MODE_AP_ONE (default)
+ */
+ const POLICY_READ_MODE_AP_ONE = 0;
+ /**
+ * Involve all replicas in the operation.
+ * @const AS_POLICY_READ_MODE_AP_ALL
+ */
+ const AS_POLICY_READ_MODE_AP_ALL = 1;
+
+ /**
+ * Accepts one of the POLICY_READ_MODE_SC_* values.
+ *
+ * One of the {@link https://www.aerospike.com/docs/architecture/consistency.html per-transaction consistency levels}.
+ * Specifies the number of replicas to be consulted in a read operation to
+ * provide the desired consistency level.
+ * @const OPT_POLICY_READ_MODE_SC policy read option for consistency namespaces
+ */
+ const OPT_POLICY_READ_MODE_SC = "OPT_POLICY_READ_MODE_SC";
+ /**
+ * Always read from master. Record versions are local to session.
+ * @const POLICY_READ_MODE_SC_SESSION (default)
+ */
+ const POLICY_READ_MODE_SC_SESSION = 0;
+ /**
+ * Always read from master. Record versions are global and thus serialized.
+ * @const POLICY_READ_MODE_SC_LINEARIZE
+ */
+ const POLICY_READ_MODE_SC_LINEARIZE = 1;
+ /**
+ * Read from master or fully migrated replica. Record versions may not always increase.
+ * @const POLICY_READ_MODE_SC_ALLOW_REPLICA
+ */
+ const POLICY_READ_MODE_SC_ALLOW_REPLICA = 2;
+ /**
+ * Read from master or fully migrated replica. Unavailable partitions are allowed. Record versions may not always increase.
+ * @const POLICY_READ_MODE_SC_ALLOW_UNAVAILABLE
+ */
+ const POLICY_READ_MODE_SC_ALLOW_UNAVAILABLE = 3;
+
+
+ /*
+ * Should raw bytes representing a list or map be deserialized to an array.
+ * Set to false for backup programs that just need access to raw bytes.
+ * Default: true
+ @const OPT_DESERIALIZE
+ */
+ const OPT_DESERIALIZE = "deserialize";
+
+ /**
+ * Milliseconds to sleep between retries. Enter zero to skip sleep.
+ * const OPT_SLEEP_BETWEEN_RETRIES
+ */
+ const OPT_SLEEP_BETWEEN_RETRIES = "sleep_between_retries";
+
+ /**
+ * Maximum number of retries before aborting the current transaction.
+ * The initial attempt is not counted as a retry.
+ * If OPT_MAX_RETRIES is exceeded, the transaction will return error ERR_TIMEOUT.
+ * WARNING: Database writes that are not idempotent (such as "add")
+ * should not be retried because the write operation may be performed
+ * multiple times if the client timed out previous transaction attempts.
+ * It's important to use a distinct write policy for non-idempotent
+ * writes which sets OPT_MAX_RETRIES = 0;
+ **/
+ const OPT_MAX_RETRIES = "OPT_MAX_RETRIES";
+ /**
+ * Total transaction timeout in milliseconds.
+ * The OPT_TOTAL_TIMEOUT is tracked on the client and sent to the server along with
+ * the transaction in the wire protocol. The client will most likely timeout
+ * first, but the server also has the capability to timeout the transaction.
+
+ * If OPT_TOTAL_TIMEOUT is not zero and OPT_TOTAL_TIMEOUT is reached before the transaction
+ * completes, the transaction will return error ERR_TIMEOUT.
+ * If OPT_TOTAL_TIMEOUT is zero, there will be no total time limit.
+ */
+ const OPT_TOTAL_TIMEOUT = "OPT_TOTAL_TIMEOUT";
+
+ /**
+ * Socket idle timeout in milliseconds when processing a database command.
+
+ * If OPT_SOCKET_TIMEOUT is not zero and the socket has been idle for at least OPT_SOCKET_TIMEOUT,
+ * both OPT_MAX_RETRIES and OPT_TOTAL_TIMEOUT are checked. If OPT_MAX_RETRIES and OPT_TOTAL_TIMEOUT are not
+ * exceeded, the transaction is retried.
+
+ * If both OPT_SOCKET_TIMEOUT and OPT_TOTAL_TIMEOUT are non-zero and OPT_SOCKET_TIMEOUT > OPT_TOTAL_TIMEOUT,
+ * then OPT_SOCKET_TIMEOUT will be set to OPT_TOTAL_TIMEOUT. If OPT_SOCKET_TIMEOUT is zero, there will be
+ * no socket idle limit.
+ */
+ const OPT_SOCKET_TIMEOUT = "OPT_SOCKET_TIMEOUT";
+
+
+ /**
+ * Determine if batch commands to each server are run in parallel threads.
+ */
+ const OPT_BATCH_CONCURRENT = "OPT_BATCH_CONCURRENT";
+ /**
+ * Allow batch to be processed immediately in the server's receiving thread when the server
+ * deems it to be appropriate. If false, the batch will always be processed in separate
+ * transaction threads. This field is only relevant for the new batch index protocol.
+ *
+ * For batch exists or batch reads of smaller sized records (<= 1K per record), inline
+ * processing will be significantly faster on "in memory" namespaces. The server disables
+ * inline processing on disk based namespaces regardless of this policy field.
+ *
+ * Inline processing can introduce the possibility of unfairness because the server
+ * can process the entire batch before moving onto the next command.
+ * Default: true
+ */
+ const OPT_ALLOW_INLINE = "OPT_ALLOW_INLINE";
+
+ /**
+ * Send set name field to server for every key in the batch for batch index protocol.
+ * This is only necessary when authentication is enabled and security roles are defined
+ * on a per set basis.
+ * Default: false
+ */
+ const OPT_SEND_SET_NAME = "OPT_SEND_SET_NAME";
+
+ /**
+ * Abort the scan if the cluster is not in a stable state. Default false
+ */
+ const OPT_FAIL_ON_CLUSTER_CHANGE = "OPT_FAIL_ON_CLUSTER_CHANGE";
+ /**
+ * Accepts one of the SCAN_PRIORITY_* values.
+ *
+ * @const OPT_SCAN_PRIORITY The priority of the scan
+ */
+ const OPT_SCAN_PRIORITY = "OPT_SCAN_PRIORITY";
+ /**
+ * The cluster will auto-adjust the priority of the scan.
+ * @const SCAN_PRIORITY_AUTO auto-adjust the scan priority (default)
+ */
+ const SCAN_PRIORITY_AUTO = "SCAN_PRIORITY_AUTO";
+ /**
+ * Set the scan as having low priority.
+ * @const SCAN_PRIORITY_LOW low priority scan
+ */
+ const SCAN_PRIORITY_LOW = "SCAN_PRIORITY_LOW";
+ /**
+ * Set the scan as having medium priority.
+ * @const SCAN_PRIORITY_MEDIUM medium priority scan
+ */
+ const SCAN_PRIORITY_MEDIUM = "SCAN_PRIORITY_MEDIUM";
+ /**
+ * Set the scan as having high priority.
+ * @const SCAN_PRIORITY_HIGH high priority scan
+ */
+ const SCAN_PRIORITY_HIGH = "SCAN_PRIORITY_HIGH";
+
+ /**
+ * Do not return the bins of the records matched by the scan.
+ *
+ * @const OPT_SCAN_NOBINS boolean value (default: false)
+ */
+ const OPT_SCAN_NOBINS = "OPT_SCAN_NOBINS";
+
+ /**
+ * Set the scan to run over a given percentage of the possible records.
+ *
+ * @const OPT_SCAN_PERCENTAGE integer value from 1-100 (default: 100)
+ */
+ const OPT_SCAN_PERCENTAGE = "OPT_SCAN_PERCENTAGE";
+
+ /**
+ * Scan all the nodes in the cluster concurrently.
+ *
+ * @const OPT_SCAN_CONCURRENTLY boolean value (default: false)
+ */
+ const OPT_SCAN_CONCURRENTLY = "OPT_SCAN_CONCURRENTLY";
+
+ /**
+ * Do not return the bins of the records matched by the query.
+ *
+ * @const OPT_QUERY_NOBINS boolean value (default: false)
+ */
+ const OPT_QUERY_NOBINS = "OPT_QUERY_NOBINS";
+
+ /**
+ * Revert to the older batch-direct protocol, instead of batch-index.
+ *
+ * @const USE_BATCH_DIRECT boolean value (default: false)
+ */
+ const USE_BATCH_DIRECT = "USE_BATCH_DIRECT";
+
+ /**
+ * Set to true to enable durable delete for the operation.
+ * Durable deletes are an Enterprise Edition feature
+ *
+ * @const OPT_POLICY_DURABLE_DELETE boolean value (default: false)
+ */
+ const OPT_POLICY_DURABLE_DELETE = "OPT_POLICY_DURABLE_DELETE";
+
+ /**
+ * Map policy declaring the ordering of an Aerospike map type
+ *
+ * @see Aerospike::AS_MAP_UNORDERED
+ * @see Aerospike::AS_MAP_KEY_ORDERED
+ * @see Aerospike::AS_MAP_KEY_VALUE_ORDERED
+ * @const OPT_MAP_ORDER
+ */
+ const OPT_MAP_ORDER = "OPT_MAP_ORDER";
+
+ /**
+ * The Aerospike map is unordered
+ * @const AS_MAP_UNORDERED (default)
+ */
+ const AS_MAP_UNORDERED = "AS_MAP_UNORDERED";
+
+ /**
+ * The Aerospike map is ordered by key
+ * @const AS_MAP_KEY_ORDERED
+ */
+ const AS_MAP_KEY_ORDERED = "AS_MAP_KEY_ORDERED";
+
+ /**
+ * The Aerospike map is ordered by key and value
+ * @const AS_MAP_KEY_VALUE_ORDERED
+ */
+ const AS_MAP_KEY_VALUE_ORDERED = "AS_MAP_KEY_VALUE_ORDERED";
+
+ /**
+ * Map policy declaring the behavior of map write operations
+ * @see Aerospike::AS_MAP_UPDATE
+ * @see Aerospike::AS_MAP_UPDATE_ONLY
+ * @see Aerospike::AS_MAP_CREATE_ONLY
+ * @const OPT_MAP_WRITE_MODE
+ */
+ const OPT_MAP_WRITE_MODE = "OPT_MAP_WRITE_MODE";
+
+ /**
+ * @const AS_MAP_UPDATE (default)
+ */
+ const AS_MAP_UPDATE = "AS_MAP_UPDATE";
+
+ /**
+ * @const AS_MAP_UPDATE_ONLY
+ */
+ const AS_MAP_UPDATE_ONLY = "AS_MAP_UPDATE_ONLY";
+
+ /**
+ * @const AS_MAP_CREATE_ONLY
+ */
+ const AS_MAP_CREATE_ONLY = "AS_MAP_CREATE_ONLY";
+
+ /**
+ * Map policy flags declaring the behavior of map write operations
+ * @see Aerospike::AS_MAP_WRITE_DEFAULT
+ * @see Aerospike::AS_MAP_WRITE_CREATE_ONLY
+ * @see Aerospike::AS_MAP_WRITE_UPDATE_ONLY
+ * @see Aerospike::AS_MAP_WRITE_NO_FAIL
+ * @see Aerospike::AS_MAP_WRITE_PARTIAL
+ * @const OPT_MAP_WRITE_FLAGS
+ */
+ const OPT_MAP_WRITE_FLAGS = "OPT_MAP_WRITE_FLAGS";
+
+ /**
+ * Default. Allow create or update.
+ * @const AS_MAP_WRITE_DEFAULT (default)
+ */
+ const AS_MAP_WRITE_DEFAULT = "AS_MAP_WRITE_DEFAULT";
+
+ /**
+ * If the key already exists, the item will be denied. If the key does not exist, a new item will be created.
+ * @const AS_MAP_WRITE_CREATE_ONLY
+ */
+ const AS_MAP_WRITE_CREATE_ONLY = "AS_MAP_WRITE_CREATE_ONLY";
+
+ /**
+ * If the key already exists, the item will be overwritten. If the key does not exist, the item will be denied.
+ * @const AS_MAP_WRITE_UPDATE_ONLY
+ */
+ const AS_MAP_WRITE_UPDATE_ONLY = "AS_MAP_WRITE_UPDATE_ONLY";
+
+ /**
+ * Do not raise error if a map item is denied due to write flag constraints (always succeed).
+ * @const AS_MAP_WRITE_NO_FAIL
+ */
+ const AS_MAP_WRITE_NO_FAIL = "AS_MAP_WRITE_NO_FAIL";
+
+ /**
+ * Allow other valid map items to be committed if a map item is denied due to write flag constraints.
+ * @const AS_MAP_WRITE_PARTIAL
+ */
+ const AS_MAP_WRITE_PARTIAL = "AS_MAP_WRITE_PARTIAL";
+
+ /**
+ * Do not return a result for the map operation (get and remove operations)
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_NONE
+ */
+ const MAP_RETURN_NONE = "AS_MAP_RETURN_NONE";
+
+ /**
+ * Return in key index order
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const AS_MAP_RETURN_INDEX
+ */
+ const MAP_RETURN_INDEX = "AS_MAP_RETURN_INDEX";
+
+ /**
+ * Return in reverse key order
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_REVERSE_INDEX
+ */
+ const MAP_RETURN_REVERSE_INDEX = "AS_MAP_RETURN_REVERSE_INDEX";
+
+ /**
+ * Return in value order
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_RANK
+ */
+ const MAP_RETURN_RANK = "AS_MAP_RETURN_RANK";
+
+ /**
+ * Return in reverse value order
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_REVERSE_RANK
+ */
+ const MAP_RETURN_REVERSE_RANK = "AS_MAP_RETURN_REVERSE_RANK";
+
+ /**
+ * Return count of items selected
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_COUNT
+ */
+ const MAP_RETURN_COUNT = "AS_MAP_RETURN_COUNT";
+
+ /**
+ * Return key for single key read and key list for range read
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_KEY
+ */
+ const MAP_RETURN_KEY = "AS_MAP_RETURN_KEY";
+
+ /**
+ * Return value for single key read and value list for range read
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_VALUE
+ */
+ const MAP_RETURN_VALUE = "AS_MAP_RETURN_VALUE";
+
+ /**
+ * Return key/value items
+ * Will be of the form ['key1', 'val1', 'key2', 'val2', 'key3', 'val3]
+ * @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
+ * @const MAP_RETURN_KEY_VALUE
+ */
+ const MAP_RETURN_KEY_VALUE = "AS_MAP_RETURN_KEY_VALUE";
+
+
+ /**
+ * @const LOG_LEVEL_OFF
+ */
+ const LOG_LEVEL_OFF = "LOG_LEVEL_OFF";
+ /**
+ * @const LOG_LEVEL_ERROR
+ */
+ const LOG_LEVEL_ERROR = "LOG_LEVEL_ERROR";
+ /**
+ * @const LOG_LEVEL_WARN
+ */
+ const LOG_LEVEL_WARN = "LOG_LEVEL_WARN";
+ /**
+ * @const LOG_LEVEL_INFO
+ */
+ const LOG_LEVEL_INFO = "LOG_LEVEL_INFO";
+ /**
+ * @const LOG_LEVEL_DEBUG
+ */
+ const LOG_LEVEL_DEBUG = "LOG_LEVEL_DEBUG";
+ /**
+ * @const LOG_LEVEL_TRACE
+ */
+ const LOG_LEVEL_TRACE = "LOG_LEVEL_TRACE";
+
+ /**
+ * Aerospike Status Codes
+ *
+ * Each Aerospike API method invocation returns a status code from the
+ * server.
+ *
+ * The status codes map to the
+ * {@link https://github.com/aerospike/aerospike-client-c/blob/master/src/include/aerospike/as_status.h status codes}
+ * of the C client.
+ *
+ * @const OK Success
+ */
+ const OK = "AEROSPIKE_OK";
+
+ // -10 - -1 - Client Errors
+
+ /**
+ * Synchronous connection error
+ * @const ERR_CONNECTION
+ */
+ const ERR_CONNECTION = "AEROSPIKE_ERR_CONNECTION";
+ /**
+ * Node invalid or could not be found
+ * @const ERR_TLS_ERROR
+ */
+ const ERR_TLS_ERROR = "AEROSPIKE_ERR_TLS";
+ /**
+ * Node invalid or could not be found
+ * @const ERR_INVALID_NODE
+ */
+ const ERR_INVALID_NODE = "AEROSPIKE_ERR_INVALID_NODE";
+ /**
+ * Client hit the max asynchronous connections
+ * @const ERR_NO_MORE_CONNECTIONS
+ */
+ const ERR_NO_MORE_CONNECTIONS = "AEROSPIKE_ERR_NO_MORE_CONNECTIONS";
+ /**
+ * Asynchronous connection error
+ * @const ERR_ASYNC_CONNECTION
+ */
+ const ERR_ASYNC_CONNECTION = "AEROSPIKE_ERR_ASYNC_CONNECTION";
+ /**
+ * Query or scan was aborted in user's callback
+ * @const ERR_CLIENT_ABORT
+ */
+ const ERR_CLIENT_ABORT = "AEROSPIKE_ERR_CLIENT_ABORT";
+ /**
+ * Host name could not be found in DNS lookup
+ * @const ERR_INVALID_HOST
+ */
+ const ERR_INVALID_HOST = "AEROSPIKE_ERR_INVALID_HOST";
+ /**
+ * Invalid client API parameter
+ * @const ERR_PARAM
+ */
+ const ERR_PARAM = "AEROSPIKE_ERR_PARAM";
+ /**
+ * Generic client API usage error
+ * @const ERR_CLIENT
+ */
+ const ERR_CLIENT = "AEROSPIKE_ERR_CLIENT";
+
+ // 1-49 - Basic Server Errors
+
+ /**
+ * Generic error returned by server
+ * @const ERR_SERVER
+ */
+ const ERR_SERVER = "AEROSPIKE_ERR_SERVER";
+ /**
+ * No record is found with the specified namespace/set/key combination.
+ * May be returned by a read, or a write with OPT_POLICY_EXISTS
+ * set to POLICY_EXISTS_UPDATE
+ * @const ERR_RECORD_NOT_FOUND
+ */
+ const ERR_RECORD_NOT_FOUND = "AEROSPIKE_ERR_RECORD_NOT_FOUND";
+ /**
+ * Generation of record does not satisfy the OPT_POLICY_GEN write policy
+ * @const ERR_RECORD_GENERATION
+ */
+ const ERR_RECORD_GENERATION = "AEROSPIKE_ERR_RECORD_GENERATION";
+ /**
+ * Illegal parameter sent from client. Check client parameters and verify
+ * each is supported by current server version
+ * @const ERR_REQUEST_INVALID
+ */
+ const ERR_REQUEST_INVALID = "AEROSPIKE_ERR_REQUEST_INVALID";
+ /**
+ * The operation cannot be applied to the current bin on the server
+ * @const ERR_OP_NOT_APPLICABLE
+ */
+ const ERR_OP_NOT_APPLICABLE = "AEROSPIKE_ERR_OP_NOT_APPLICABLE";
+ /**
+ * Record already exists. May be returned by a write with the
+ * OPT_POLICY_EXISTS write policy set to POLICY_EXISTS_CREATE
+ * @const ERR_RECORD_EXISTS
+ */
+ const ERR_RECORD_EXISTS = "AEROSPIKE_ERR_RECORD_EXISTS";
+ /**
+ * (future) For future write requests which specify 'BIN_CREATE_ONLY',
+ * request failed because one of the bins in the write already exists
+ * @const ERR_BIN_EXISTS
+ */
+ const ERR_BIN_EXISTS = "AEROSPIKE_ERR_BIN_EXISTS";
+ /**
+ * On scan requests, the scan terminates because cluster is in migration.
+ * Only occur when client requested 'fail_on_cluster_change' policy on scan
+ * @const ERR_CLUSTER_CHANGE
+ */
+ const ERR_CLUSTER_CHANGE = "AEROSPIKE_ERR_CLUSTER_CHANGE";
+ /**
+ * Occurs when stop_writes is true (either memory - stop-writes-pct -
+ * or disk - min-avail-pct). Can also occur if memory cannot be allocated
+ * anymore (but stop_writes should in general hit first). Namespace will no
+ * longer be able to accept write requests
+ * @const ERR_SERVER_FULL
+ */
+ const ERR_SERVER_FULL = "AEROSPIKE_ERR_SERVER_FULL";
+ /**
+ * Request was not completed during the allocated time, thus aborted
+ * @const ERR_TIMEOUT
+ */
+ const ERR_TIMEOUT = "AEROSPIKE_ERR_TIMEOUT";
+ /**
+ * Write request is rejected because XDR is not running.
+ * Only occur when XDR configuration xdr-stop-writes-noxdr is on
+ * @const ERR_NO_XDR
+ */
+ #[Deprecated("Will be reused as ERR_ALWAYS_FORBIDDEN")]
+ const ERR_ALWAYS_FORBIDDEN = "AEROSPIKE_ERR_ALWAYS_FORBIDDEN";
+ /**
+ * Server is not accepting requests.
+ * Occur during single node on a quick restart to join existing cluster
+ * @const ERR_CLUSTER
+ */
+ const ERR_CLUSTER = "AEROSPIKE_ERR_CLUSTER";
+ /**
+ * Operation is not allowed due to data type or namespace configuration incompatibility.
+ * For example, append to a float data type, or insert a non-integer when
+ * namespace is configured as data-in-index
+ * @const ERR_BIN_INCOMPATIBLE_TYPE
+ */
+ const ERR_BIN_INCOMPATIBLE_TYPE = "AEROSPIKE_ERR_BIN_INCOMPATIBLE_TYPE";
+ /**
+ * Attempt to write a record whose size is bigger than the configured write-block-size
+ * @const ERR_RECORD_TOO_BIG
+ */
+ const ERR_RECORD_TOO_BIG = "AEROSPIKE_ERR_RECORD_TOO_BIG";
+ /**
+ * Too many concurrent operations (> transaction-pending-limit) on the same record.
+ * A "hot-key" situation
+ * @const ERR_RECORD_BUSY
+ */
+ const ERR_RECORD_BUSY = "AEROSPIKE_ERR_RECORD_BUSY";
+ /**
+ * Scan aborted by user on server
+ * @const ERR_SCAN_ABORTED
+ */
+ const ERR_SCAN_ABORTED = "AEROSPIKE_ERR_SCAN_ABORTED";
+ /**
+ * The client is trying to use a feature that does not yet exist in the
+ * version of the server node it is talking to
+ * @const ERR_UNSUPPORTED_FEATURE
+ */
+ const ERR_UNSUPPORTED_FEATURE = "AEROSPIKE_ERR_UNSUPPORTED_FEATURE";
+ /**
+ * (future) For future write requests which specify 'REPLACE_ONLY',
+ * request fail because specified bin name does not exist in record
+ * @const ERR_BIN_NOT_FOUND
+ */
+ const ERR_BIN_NOT_FOUND = "AEROSPIKE_ERR_BIN_NOT_FOUND";
+ /**
+ * Write request is rejected because one or more storage devices of the node are not keeping up
+ * @const ERR_DEVICE_OVERLOAD
+ */
+ const ERR_DEVICE_OVERLOAD = "AEROSPIKE_ERR_DEVICE_OVERLOAD";
+ /**
+ * For update request on records which has key stored, the incoming key does not match
+ * the existing stored key. This indicates a RIPEMD160 key collision has happend (report as a bug)
+ * @const ERR_RECORD_KEY_MISMATCH
+ */
+ const ERR_RECORD_KEY_MISMATCH = "AEROSPIKE_ERR_RECORD_KEY_MISMATCH";
+ /**
+ * Namespace in request not found on server
+ * @const ERR_NAMESPACE_NOT_FOUND
+ */
+ const ERR_NAMESPACE_NOT_FOUND = "AEROSPIKE_ERR_NAMESPACE_NOT_FOUND";
+ /**
+ * Bin name length greater than 14 characters, or maximum number of unique bin names are exceeded
+ * @const ERR_BIN_NAME
+ */
+ const ERR_BIN_NAME = "AEROSPIKE_ERR_BIN_NAME";
+ /**
+ * Operation not allowed at this time.
+ * For writes, the set is in the middle of being deleted, or the set's stop-write is reached;
+ * For scan, too many concurrent scan jobs (> scan-max-active);
+ * For XDR-ed cluster, fail writes which are not replicated from another datacenter
+ * @const ERR_FAIL_FORBIDDEN
+ */
+ const ERR_FAIL_FORBIDDEN = "AEROSPIKE_ERR_FORBIDDEN";
+ /**
+ * Target was not found for operations that requires a target to be found
+ * @const ERR_FAIL_ELEMENT_NOT_FOUND
+ */
+ const ERR_FAIL_ELEMENT_NOT_FOUND = "AEROSPIKE_ERR_FAIL_NOT_FOUND";
+ /**
+ * Target already exist for operations that requires the target to not exist
+ * @const ERR_FAIL_ELEMENT_EXISTS
+ */
+ const ERR_FAIL_ELEMENT_EXISTS = "AEROSPIKE_ERR_FAIL_ELEMENT_EXISTS";
+
+ // 50-89 - Security Specific Errors
+
+ /**
+ * Security functionality not supported by connected server
+ * @const ERR_SECURITY_NOT_SUPPORTED
+ */
+ const ERR_SECURITY_NOT_SUPPORTED = "AEROSPIKE_ERR_SECURITY_NOT_SUPPORTED";
+ /**
+ * Security functionality not enabled by connected server
+ * @const ERR_SECURITY_NOT_ENABLED
+ */
+ const ERR_SECURITY_NOT_ENABLED = "AEROSPIKE_ERR_SECURITY_NOT_ENABLED";
+ /**
+ * Security scheme not supported
+ * @const ERR_SECURITY_SCHEME_NOT_SUPPORTED
+ */
+ const ERR_SECURITY_SCHEME_NOT_SUPPORTED = "AEROSPIKE_ERR_SECURITY_SCHEME_NOT_SUPPORTED";
+ /**
+ * Unrecognized security command
+ * @const ERR_INVALID_COMMAND
+ */
+ const ERR_INVALID_COMMAND = "AEROSPIKE_ERR_INVALID_COMMAND";
+ /**
+ * Field is not valid
+ * @const ERR_INVALID_FIELD
+ */
+ const ERR_INVALID_FIELD = "AEROSPIKE_ERR_INVALID_FIELD";
+ /**
+ * Security protocol not followed
+ * @const ERR_ILLEGAL_STATE
+ */
+ const ERR_ILLEGAL_STATE = "AEROSPIKE_ERR_ILLEGAL_STATE";
+ /**
+ * No user supplied or unknown user
+ * @const ERR_INVALID_USER
+ */
+ const ERR_INVALID_USER = "AEROSPIKE_ERR_INVALID_USER";
+ /**
+ * User already exists
+ * @const ERR_USER_ALREADY_EXISTS
+ */
+ const ERR_USER_ALREADY_EXISTS = "AEROSPIKE_ERR_USER_ALREADY_EXISTS";
+ /**
+ * Password does not exists or not recognized
+ * @const ERR_INVALID_PASSWORD
+ */
+ const ERR_INVALID_PASSWORD = "AEROSPIKE_ERR_INVALID_PASSWORD";
+ /**
+ * Expired password
+ * @const ERR_EXPIRED_PASSWORD
+ */
+ const ERR_EXPIRED_PASSWORD = "AEROSPIKE_ERR_EXPIRED_PASSWORD";
+ /**
+ * Forbidden password (e.g. recently used)
+ * @const ERR_FORBIDDEN_PASSWORD
+ */
+ const ERR_FORBIDDEN_PASSWORD = "AEROSPIKE_ERR_FORBIDDEN_PASSWORD";
+ /**
+ * Invalid credential or credential does not exist
+ * @const ERR_INVALID_CREDENTIAL
+ */
+ const ERR_INVALID_CREDENTIAL = "AEROSPIKE_ERR_INVALID_CREDENTIAL";
+ /**
+ * No role(s) or unknown role(s)
+ * @const ERR_INVALID_ROLE
+ */
+ const ERR_INVALID_ROLE = "AEROSPIKE_ERR_INVALID_ROLE";
+ /**
+ * Privilege is invalid
+ * @const ERR_INVALID_PRIVILEGE
+ */
+ const ERR_INVALID_PRIVILEGE = "AEROSPIKE_ERR_INVALID_PRIVILEGE";
+ /**
+ * User must be authenticated before performing database operations
+ * @const ERR_NOT_AUTHENTICATED
+ */
+ const ERR_NOT_AUTHENTICATED = "AEROSPIKE_ERR_NOT_AUTHENTICATED";
+ /**
+ * User does not possess the required role to perform the database operation
+ * @const ERR_ROLE_VIOLATION
+ */
+ const ERR_ROLE_VIOLATION = "AEROSPIKE_ERR_ROLE_VIOLATION";
+ /**
+ * Role already exists
+ * @const ERR_ROLE_ALREADY_EXISTS
+ */
+ const ERR_ROLE_ALREADY_EXISTS = "AEROSPIKE_ERR_ROLE_ALREADY_EXISTS";
+
+ // 100-109 - UDF Specific Errors
+ //
+ /**
+ * A user defined function failed to execute
+ * @const ERR_UDF
+ */
+ const ERR_UDF = "AEROSPIKE_ERR_UDF";
+ /**
+ * The UDF does not exist
+ * @const ERR_UDF_NOT_FOUND
+ */
+ const ERR_UDF_NOT_FOUND = "AEROSPIKE_ERR_UDF_NOT_FOUND";
+ /**
+ * The LUA file does not exist
+ * @const ERR_LUA_FILE_NOT_FOUND
+ */
+ const ERR_LUA_FILE_NOT_FOUND = "AEROSPIKE_ERR_LUA_FILE_NOT_FOUND";
+
+ // 150-159 - Batch Specific Errors
+
+ /**
+ * Batch functionality has been disabled by configuring the batch-index-thread=0
+ * @const ERR_BATCH_DISABLED
+ */
+ const ERR_BATCH_DISABLED = "AEROSPIKE_ERR_BATCH_DISABLED";
+ /**
+ * Batch max requests has been exceeded
+ * @const ERR_BATCH_MAX_REQUESTS_EXCEEDED
+ */
+ const ERR_BATCH_MAX_REQUESTS_EXCEEDED= "AEROSPIKE_ERR_BATCH_MAX_REQUESTS_EXCEEDED";
+ /**
+ * All batch queues are full
+ * @const ERR_BATCH_QUEUES_FULL
+ */
+ const ERR_BATCH_QUEUES_FULL = "AEROSPIKE_ERR_BATCH_QUEUES_FULL";
+
+ // 160-169 - Geo Specific Errors
+
+ /**
+ * GeoJSON is malformed or not supported
+ * @const ERR_GEO_INVALID_GEOJSON
+ */
+ const ERR_GEO_INVALID_GEOJSON = "AEROSPIKE_ERR_GEO_INVALID_GEOJSON";
+
+ // 200-219 - Secondary Index Specific Errors
+
+ /**
+ * Secondary index already exists
+ * @const ERR_INDEX_FOUND
+ * Accepts one of the POLICY_KEY_* values.
+ *
+ * {@link https://www.aerospike.com/docs/client/php/usage/kvs/record-structure.html Records}
+ * are uniquely identified by their digest, and can optionally store the value of their primary key
+ * (their unique ID in the application).
+ * @const OPT_POLICY_KEY Key storage policy option (digest-only or send key)
+ */
+ const ERR_INDEX_FOUND = "AEROSPIKE_ERR_INDEX_FOUND";
+ /**
+ * Secondary index does not exist
+ * @const ERR_INDEX_NOT_FOUND
+ */
+ const ERR_INDEX_NOT_FOUND = "AEROSPIKE_ERR_INDEX_NOT_FOUND";
+ /**
+ * Secondary index memory space exceeded
+ * @const ERR_INDEX_OOM
+ */
+ const ERR_INDEX_OOM = "AEROSPIKE_ERR_INDEX_OOM";
+ /**
+ * Secondary index not available for query. Occurs when indexing creation has not finished
+ * @const ERR_INDEX_NOT_READABLE
+ */
+ const ERR_INDEX_NOT_READABLE = "AEROSPIKE_ERR_INDEX_NOT_READABLE";
+ /**
+ * Generic secondary index error
+ * @const ERR_INDEX
+ */
+ const ERR_INDEX = "AEROSPIKE_ERR_INDEX";
+ /**
+ * Index name maximun length exceeded
+ * @const ERR_INDEX_NAME_MAXLEN
+ */
+ const ERR_INDEX_NAME_MAXLEN = "AEROSPIKE_ERR_INDEX_NAME_MAXLEN";
+ /**
+ * Maximum number of indicies exceeded
+ * @const ERR_INDEX_MAXCOUNT
+ */
+ const ERR_INDEX_MAXCOUNT = "AEROSPIKE_ERR_INDEX_MAXCOUNT";
+ /**
+ * Secondary index query aborted
+ * @const ERR_QUERY_ABORTED
+ */
+ const ERR_QUERY_ABORTED = "AEROSPIKE_ERR_QUERY_ABORTED";
+ /**
+ * Secondary index queue full
+ * @const ERR_QUERY_QUEUE_FULL
+ */
+ const ERR_QUERY_QUEUE_FULL = "AEROSPIKE_ERR_QUERY_QUEUE_FULL";
+ /**
+ * Secondary index query timed out on server
+ * @const ERR_QUERY_TIMEOUT
+ */
+ const ERR_QUERY_TIMEOUT = "AEROSPIKE_ERR_QUERY_TIMEOUT";
+ /**
+ * Generic query error
+ * @const ERR_QUERY
+ */
+ const ERR_QUERY = "AEROSPIKE_ERR_QUERY";
+ /**
+ * write operator for the operate() method
+ * @const OPERATOR_WRITE
+ */
+ const OPERATOR_WRITE = "OPERATOR_WRITE";
+ /**
+ * read operator for the operate() method
+ * @const OPERATOR_READ
+ */
+ const OPERATOR_READ = "OPERATOR_READ";
+ /**
+ * increment operator for the operate() method
+ * @const OPERATOR_INCR
+ */
+ const OPERATOR_INCR = "OPERATOR_INCR";
+ /**
+ * prepend operator for the operate() method
+ * @const OPERATOR_PREPEND
+ */
+ const OPERATOR_PREPEND = "OPERATOR_PREPEND";
+ /**
+ * append operator for the operate() method
+ * @const OPERATOR_APPEND
+ */
+ const OPERATOR_APPEND = "OPERATOR_APPEND";
+ /**
+ * touch operator for the operate() method
+ * @const OPERATOR_TOUCH
+ */
+ const OPERATOR_TOUCH = "OPERATOR_TOUCH";
+ /**
+ * delete operator for the operate() method
+ * @const OPERATOR_DELETE
+ */
+ const OPERATOR_DELETE = "OPERATOR_DELETE";
+
+ // List operation constants
+
+ /**
+ * list-append operator for the operate() method
+ * @const OP_LIST_APPEND
+ */
+ const OP_LIST_APPEND = "OP_LIST_APPEND";
+ /**
+ * list-merge operator for the operate() method
+ * @const OP_LIST_MERGE
+ */
+ const OP_LIST_MERGE = "OP_LIST_MERGE";
+ /**
+ * list-insert operator for the operate() method
+ * @const OP_LIST_INSERT
+ */
+ const OP_LIST_INSERT = "OP_LIST_INSERT";
+ /**
+ * list-insert-items operator for the operate() method
+ * @const OP_LIST_INSERT_ITEMS
+ */
+ const OP_LIST_INSERT_ITEMS = "OP_LIST_INSERT_ITEMS";
+ /**
+ * list-pop operator for the operate() method
+ * @const OP_LIST_POP
+ */
+ const OP_LIST_POP = "OP_LIST_POP";
+ /**
+ * list-pop-range operator for the operate() method
+ * @const OP_LIST_POP_RANGE
+ */
+ const OP_LIST_POP_RANGE = "OP_LIST_POP_RANGE";
+ /**
+ * list-remove operator for the operate() method
+ * @const OP_LIST_REMOVE
+ */
+ const OP_LIST_REMOVE = "OP_LIST_REMOVE";
+ /**
+ * list-remove-range operator for the operate() method
+ * @const OP_LIST_REMOVE_RANGE
+ */
+ const OP_LIST_REMOVE_RANGE = "OP_LIST_REMOVE_RANGE";
+ /**
+ * list-clear operator for the operate() method
+ * @const OP_LIST_CLEAR
+ */
+ const OP_LIST_CLEAR = "OP_LIST_CLEAR";
+ /**
+ * list-set operator for the operate() method
+ * @const OP_LIST_SET
+ */
+ const OP_LIST_SET = "OP_LIST_SET";
+ /**
+ * list-get operator for the operate() method
+ * @const OP_LIST_GET
+ */
+ const OP_LIST_GET = "OP_LIST_GET";
+ /**
+ * list-get-range operator for the operate() method
+ * @const OP_LIST_GET_RANGE
+ */
+ const OP_LIST_GET_RANGE = "OP_LIST_GET_RANGE";
+ /**
+ * list-trim operator for the operate() method
+ * @const OP_LIST_TRIM
+ */
+ const OP_LIST_TRIM = "OP_LIST_TRIM";
+ /**
+ * list-size operator for the operate() method
+ * @const OP_LIST_SIZE
+ */
+ const OP_LIST_SIZE = "OP_LIST_SIZE";
+
+ // Map operation constants
+
+ /**
+ * map-size operator for the operate() method
+ * @const OP_MAP_SIZE
+ */
+ const OP_MAP_SIZE = "OP_MAP_SIZE";
+ /**
+ * map-size operator for the operate() method
+ * @const OP_MAP_CLEAR
+ */
+ const OP_MAP_CLEAR = "OP_MAP_CLEAR";
+ /**
+ * map-set-policy operator for the operate() method
+ * @const OP_MAP_SET_POLICY
+ */
+ const OP_MAP_SET_POLICY = "OP_MAP_SET_POLICY";
+ /**
+ * map-get-by-key operator for the operate() method
+ * @const OP_MAP_GET_BY_KEY
+ */
+ const OP_MAP_GET_BY_KEY = "OP_MAP_GET_BY_KEY";
+ /**
+ * map-get-by-key-range operator for the operate() method
+ * @const OP_MAP_GET_BY_KEY_RANGE
+ */
+ const OP_MAP_GET_BY_KEY_RANGE = "OP_MAP_GET_BY_KEY_RANGE";
+ /**
+ * map-get-by-value operator for the operate() method
+ * @const OP_MAP_GET_BY_VALUE
+ */
+ const OP_MAP_GET_BY_VALUE = "OP_MAP_GET_BY_VALUE";
+ /**
+ * map-get-by-value-range operator for the operate() method
+ * @const OP_MAP_GET_BY_VALUE_RANGE
+ */
+ const OP_MAP_GET_BY_VALUE_RANGE = "OP_MAP_GET_BY_VALUE_RANGE";
+ /**
+ * map-get-by-index operator for the operate() method
+ * @const OP_MAP_GET_BY_INDEX
+ */
+ const OP_MAP_GET_BY_INDEX = "OP_MAP_GET_BY_INDEX";
+ /**
+ * map-get-by-index-range operator for the operate() method
+ * @const OP_MAP_GET_BY_INDEX_RANGE
+ */
+ const OP_MAP_GET_BY_INDEX_RANGE = "OP_MAP_GET_BY_INDEX_RANGE";
+ /**
+ * map-get-by-rank operator for the operate() method
+ * @const OP_MAP_GET_BY_RANK
+ */
+ const OP_MAP_GET_BY_RANK = "OP_MAP_GET_BY_RANK";
+ /**
+ * map-get-by-rank-range operator for the operate() method
+ * @const OP_MAP_GET_BY_RANK_RANGE
+ */
+ const OP_MAP_GET_BY_RANK_RANGE = "OP_MAP_GET_BY_RANK_RANGE";
+ /**
+ * map-put operator for the operate() method
+ * @const OP_MAP_PUT
+ */
+ const OP_MAP_PUT = "OP_MAP_PUT";
+ /**
+ * map-put-items operator for the operate() method
+ * @const OP_MAP_PUT_ITEMS
+ */
+ const OP_MAP_PUT_ITEMS = "OP_MAP_PUT_ITEMS";
+ /**
+ * map-increment operator for the operate() method
+ * @const OP_MAP_INCREMENT
+ */
+ const OP_MAP_INCREMENT = "OP_MAP_INCREMENT";
+ /**
+ * map-decrement operator for the operate() method
+ * @const OP_MAP_DECREMENT
+ */
+ const OP_MAP_DECREMENT = "OP_MAP_DECREMENT";
+ /**
+ * map-remove-by-key operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_KEY
+ */
+ const OP_MAP_REMOVE_BY_KEY = "OP_MAP_REMOVE_BY_KEY";
+ /**
+ * map-remove-by-key-list operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_KEY_LIST
+ */
+ const OP_MAP_REMOVE_BY_KEY_LIST = "OP_MAP_REMOVE_BY_KEY_LIST";
+ /**
+ * map-remove-by-key-range key operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_KEY_RANGE
+ */
+ const OP_MAP_REMOVE_BY_KEY_RANGE = "OP_MAP_REMOVE_BY_KEY_RANGE";
+ /**
+ * map-remove-by-value operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_VALUE
+ */
+ const OP_MAP_REMOVE_BY_VALUE = "OP_MAP_REMOVE_BY_VALUE";
+ /**
+ * map-remove-by-value operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_VALUE_RANGE
+ */
+ const OP_MAP_REMOVE_BY_VALUE_RANGE = "OP_MAP_REMOVE_BY_VALUE_RANGE";
+ /**
+ * map-remove-by-value-list operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_VALUE_LIST
+ */
+ const OP_MAP_REMOVE_BY_VALUE_LIST = "OP_MAP_REMOVE_BY_VALUE_LIST";
+ /**
+ * map-remove-by-index operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_INDEX
+ */
+ const OP_MAP_REMOVE_BY_INDEX = "OP_MAP_REMOVE_BY_INDEX";
+ /**
+ * map-remove-by-index-range operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_INDEX_RANGE
+ */
+ const OP_MAP_REMOVE_BY_INDEX_RANGE = "OP_MAP_REMOVE_BY_INDEX_RANGE";
+ /**
+ * map-remove-by-rank operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_RANK
+ */
+ const OP_MAP_REMOVE_BY_RANK = "OP_MAP_REMOVE_BY_RANK";
+ /**
+ * map-remove-by-rank-range operator for the operate() method
+ * @const OP_MAP_REMOVE_BY_RANK_RANGE
+ */
+ const OP_MAP_REMOVE_BY_RANK_RANGE = "OP_MAP_REMOVE_BY_RANK_RANGE";
+
+ // Query Predicate Operators
+
+ /**
+ * predicate operator for equality check of scalar integer or string value
+ * @const OP_EQ
+ * @see Aerospike::predicateEquals
+ */
+ const OP_EQ = "=";
+ /**
+ * predicate operator matching whether an integer falls between a range of integer values
+ * @const OP_BETWEEN
+ * @see Aerospike::predicateBetween
+ */
+ const OP_BETWEEN = "BETWEEN";
+ /**
+ * predicate operator for a whether a specific value is in an indexed list, mapkeys, or mapvalues
+ * @const OP_CONTAINS
+ * @see Aerospike::predicateContains
+ */
+ const OP_CONTAINS = "CONTAINS";
+ /**
+ * predicate operator for whether an indexed list, mapkeys, or mapvalues has an integer value within a specified range
+ * @const OP_RANGE
+ * @see Aerospike::predicateRange
+ */
+ const OP_RANGE = "RANGE";
+ /**
+ * geospatial predicate operator for points within a specified region
+ * @const OP_GEOWITHINREGION
+ */
+ const OP_GEOWITHINREGION = "GEOWITHIN";
+ /**
+ * geospatial predicate operator for regons containing a sepcified point
+ * @const OP_GEOWITHINREGION
+ */
+ const OP_GEOCONTAINSPOINT = "GEOCONTAINS";
+
+ /**
+ * Scan status is undefined
+ */
+ #[Deprecated('use JOB_STATUS_UNDEF along with jobInfo()')]
+ const SCAN_STATUS_UNDEF = "SCAN_STATUS_UNDEF";
+ /**
+ * Scan is currently running
+ */
+ #[Deprecated('use JOB_STATUS_INPROGRESS along with jobInfo()')]
+ const SCAN_STATUS_INPROGRESS = "SCAN_STATUS_INPROGRESS";
+ /**
+ * Scan completed successfully
+ */
+ #[Deprecated]
+ const SCAN_STATUS_ABORTED = "SCAN_STATUS_ABORTED";
+ /**
+ * Scan was aborted due to failure or the user
+ */
+ #[Deprecated('use JOB_STATUS_COMPLETED along with jobInfo()')]
+ const SCAN_STATUS_COMPLETED = "SCAN_STATUS_COMPLETED";
+
+ // Status values returned by jobInfo()
+
+ /**
+ * Job status is undefined
+ */
+ const JOB_STATUS_UNDEF = "JOB_STATUS_UNDEF";
+ /**
+ * Job is currently running
+ */
+ const JOB_STATUS_INPROGRESS = "JOB_STATUS_INPROGRESS";
+ /**
+ * Job completed successfully
+ */
+ const JOB_STATUS_COMPLETED = "JOB_STATUS_COMPLETED";
+
+ // Index (container) types
+ /**
+ * The bin being indexed should contain scalar values such as string or integer
+ * @const INDEX_TYPE_DEFAULT
+ */
+ const INDEX_TYPE_DEFAULT = "INDEX_TYPE_DEFAULT";
+ /**
+ * The bin being indexed should contain a list
+ * @const INDEX_TYPE_LIST
+ */
+ const INDEX_TYPE_LIST = "INDEX_TYPE_LIST";
+ /**
+ * The bin being indexed should contain a map. The map keys will be indexed
+ * @const INDEX_TYPE_MAPKEYS
+ */
+ const INDEX_TYPE_MAPKEYS = "INDEX_TYPE_MAPKEYS";
+ /**
+ * The bin being indexed should contain a map. The map values will be indexed
+ * @const INDEX_TYPE_MAPKEYS
+ */
+ const INDEX_TYPE_MAPVALUES = "INDEX_TYPE_MAPVALUES";
+ // Data type
+ /**
+ * If and only if the container type matches, the value should be of type string
+ * @const INDEX_STRING
+ */
+ const INDEX_STRING = "INDEX_STRING";
+ /**
+ * If and only if the container type matches, the value should be of type integer
+ * @const INDEX_NUMERIC
+ */
+ const INDEX_NUMERIC = "INDEX_NUMERIC";
+ /**
+ * If and only if the container type matches, the value should be GeoJSON
+ * @const INDEX_GEO2DSPHERE
+ */
+ const INDEX_GEO2DSPHERE = "INDEX_GEO2DSPHERE";
+
+ /**
+ * Declare the UDF module's language to be Lua
+ * @const UDF_TYPE_LUA
+ */
+ const UDF_TYPE_LUA = "UDF_TYPE_LUA";
+
+ // Security role privileges
+
+ /**
+ * Privilege to read data
+ * @const PRIV_READ
+ * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ */
+ const PRIV_READ = "PRIV_READ";
+ /**
+ * Privilege to read and write data
+ * @const PRIV_READ_WRITE
+ * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ */
+ const PRIV_READ_WRITE = "PRIV_READ_WRITE";
+ /**
+ * Privilege to read, write and execute user-defined functions
+ * @const PRIV_READ_WRITE_UDF
+ * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ */
+ const PRIV_READ_WRITE_UDF = "PRIV_READ_WRITE_UDF";
+ /**
+ * Privilege to create and assign roles to users
+ * @const PRIV_USER_ADMIN
+ * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ */
+ const PRIV_USER_ADMIN = "PRIV_USER_ADMIN";
+ /**
+ * Privilege to manage indexes and UDFs, monitor and abort scan/query jobs, get server config
+ * @const PRIV_DATA_ADMIN
+ * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ */
+ const PRIV_DATA_ADMIN = "PRIV_DATA_ADMIN"; // can perform data admin functions that do not involve user admin
+ /** Privilege to modify dynamic server configs, get config and stats, and all data admin privileges
+ * @const PRIV_SYS_ADMIN
+ * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ */
+ const PRIV_SYS_ADMIN = "PRIV_SYS_ADMIN"; // can perform sysadmin functions that do not involve user admin
+
+ /*
+ // TODO:
+ // security methods
+ public int createRole ( string $role, array $privileges [, array $options ] )
+ public int grantPrivileges ( string $role, array $privileges [, array $options ] )
+ public int revokePrivileges ( string $role, array $privileges [, array $options ] )
+ public int queryRole ( string $role, array &$privileges [, array $options ] )
+ public int queryRoles ( array &$roles [, array $options ] )
+ public int dropRole ( string $role [, array $options ] )
+ public int createUser ( string $user, string $password, array $roles [, array $options ] )
+ public int setPassword ( string $user, string $password [, array $options ] )
+ public int changePassword ( string $user, string $password [, array $options ] )
+ public int grantRoles ( string $user, array $roles [, array $options ] )
+ public int revokeRoles ( string $user, array $roles [, array $options ] )
+ public int queryUser ( string $user, array &$roles [, array $options ] )
+ public int queryUsers ( array &$roles [, array $options ] )
+ public int dropUser ( string $user [, array $options ] )
+
+ */
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/amqp/amqp.php b/vendor/jetbrains/phpstorm-stubs/amqp/amqp.php
new file mode 100644
index 0000000000..76dc090e6b
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/amqp/amqp.php
@@ -0,0 +1,1729 @@
+ amqp.host The host to connect too. Note: Max 1024 characters.
+ * 'port' => amqp.port Port on the host.
+ * 'vhost' => amqp.vhost The virtual host on the host. Note: Max 128 characters.
+ * 'login' => amqp.login The login name to use. Note: Max 128 characters.
+ * 'password' => amqp.password Password. Note: Max 128 characters.
+ * 'read_timeout' => Timeout in for income activity. Note: 0 or greater seconds. May be fractional.
+ * 'write_timeout' => Timeout in for outcome activity. Note: 0 or greater seconds. May be fractional.
+ * 'connect_timeout' => Connection timeout. Note: 0 or greater seconds. May be fractional.
+ * 'rpc_timeout' => RPC timeout. Note: 0 or greater seconds. May be fractional.
+ *
+ * Connection tuning options (see http://www.rabbitmq.com/amqp-0-9-1-reference.html#connection.tune for details):
+ * 'channel_max' => Specifies highest channel number that the server permits. 0 means standard extension limit
+ * (see PHP_AMQP_MAX_CHANNELS constant)
+ * 'frame_max' => The largest frame size that the server proposes for the connection, including frame header
+ * and end-byte. 0 means standard extension limit (depends on librabbimq default frame size limit)
+ * 'heartbeat' => The delay, in seconds, of the connection heartbeat that the server wants.
+ * 0 means the server does not want a heartbeat. Note, librabbitmq has limited heartbeat support,
+ * which means heartbeats checked only during blocking calls.
+ *
+ * TLS support (see https://www.rabbitmq.com/ssl.html for details):
+ * 'cacert' => Path to the CA cert file in PEM format..
+ * 'cert' => Path to the client certificate in PEM foramt.
+ * 'key' => Path to the client key in PEM format.
+ * 'verify' => Enable or disable peer verification. If peer verification is enabled then the common name in the
+ * server certificate must match the server name. Peer verification is enabled by default.
+ * )
+ *
+ * @param array $credentials Optional array of credential information for
+ * connecting to the AMQP broker.
+ */
+ public function __construct(array $credentials = array()) { }
+
+ /**
+ * Closes the transient connection with the AMQP broker.
+ *
+ * This method will close an open connection with the AMQP broker.
+ *
+ * @return boolean true if connection was successfully closed, false otherwise.
+ */
+ public function disconnect() { }
+
+ /**
+ * Get the configured host.
+ *
+ * @return string The configured hostname of the broker
+ */
+ public function getHost() { }
+
+ /**
+ * Get the configured login.
+ *
+ * @return string The configured login as a string.
+ */
+ public function getLogin() { }
+
+ /**
+ * Get the configured password.
+ *
+ * @return string The configured password as a string.
+ */
+ public function getPassword() { }
+
+ /**
+ * Get the configured port.
+ *
+ * @return int The configured port as an integer.
+ */
+ public function getPort() { }
+
+ /**
+ * Get the configured vhost.
+ *
+ * @return string The configured virtual host as a string.
+ */
+ public function getVhost() { }
+
+ /**
+ * Check whether the connection to the AMQP broker is still valid.
+ *
+ * It does so by checking the return status of the last connect-command.
+ *
+ * @return boolean True if connected, false otherwise.
+ */
+ public function isConnected() { }
+
+ /**
+ * Establish a persistent connection with the AMQP broker.
+ *
+ * This method will initiate a connection with the AMQP broker
+ * or reuse an existing one if present.
+ *
+ * @throws AMQPConnectionException
+ * @return boolean TRUE on success or throws an exception on failure.
+ */
+ public function pconnect() { }
+
+ /**
+ * Closes a persistent connection with the AMQP broker.
+ *
+ * This method will close an open persistent connection with the AMQP
+ * broker.
+ *
+ * @return boolean true if connection was found and closed,
+ * false if no persistent connection with this host,
+ * port, vhost and login could be found,
+ */
+ public function pdisconnect() { }
+
+ /**
+ * Close any open transient connections and initiate a new one with the AMQP broker.
+ *
+ * @return boolean TRUE on success or FALSE on failure.
+ */
+ public function reconnect() { }
+
+ /**
+ * Close any open persistent connections and initiate a new one with the AMQP broker.
+ *
+ * @return boolean TRUE on success or FALSE on failure.
+ */
+ public function preconnect() { }
+
+
+ /**
+ * Set the hostname used to connect to the AMQP broker.
+ *
+ * @param string $host The hostname of the AMQP broker.
+ *
+ * @throws AMQPConnectionException If host is longer then 1024 characters.
+ *
+ * @return boolean TRUE on success or FALSE on failure.
+ */
+ public function setHost($host) { }
+
+ /**
+ * Set the login string used to connect to the AMQP broker.
+ *
+ * @param string $login The login string used to authenticate
+ * with the AMQP broker.
+ *
+ * @throws AMQPConnectionException If login is longer then 32 characters.
+ *
+ * @return boolean TRUE on success or FALSE on failure.
+ */
+ public function setLogin($login) { }
+
+ /**
+ * Set the password string used to connect to the AMQP broker.
+ *
+ * @param string $password The password string used to authenticate
+ * with the AMQP broker.
+ *
+ * @throws AMQPConnectionException If password is longer then 32characters.
+ *
+ * @return boolean TRUE on success or FALSE on failure.
+ */
+ public function setPassword($password) { }
+
+ /**
+ * Set the port used to connect to the AMQP broker.
+ *
+ * @param integer $port The port used to connect to the AMQP broker.
+ *
+ * @throws AMQPConnectionException If port is longer not between
+ * 1 and 65535.
+ *
+ * @return boolean TRUE on success or FALSE on failure.
+ */
+ public function setPort($port) { }
+
+ /**
+ * Sets the virtual host to which to connect on the AMQP broker.
+ *
+ * @param string $vhost The virtual host to use on the AMQP
+ * broker.
+ *
+ * @throws AMQPConnectionException If host is longer then 32 characters.
+ *
+ * @return boolean true on success or false on failure.
+ */
+ public function setVhost($vhost) { }
+
+ /**
+ * Sets the interval of time to wait for income activity from AMQP broker
+ *
+ * @param int $timeout
+ *
+ * @return bool
+ */
+ #[Deprecated(replacement: "%class%->setReadTimout(%parameter0%)")]
+ public function setTimeout($timeout) { }
+
+ /**
+ * Get the configured interval of time to wait for income activity
+ * from AMQP broker
+ *
+ * @return float
+ */
+ #[Deprecated(replacement: '%class%->getReadTimout(%parameter0%)')]
+ public function getTimeout() { }
+
+ /**
+ * Sets the interval of time to wait for income activity from AMQP broker
+ *
+ * @param int $timeout
+ *
+ * @return bool
+ */
+ public function setReadTimeout($timeout) { }
+
+ /**
+ * Get the configured interval of time to wait for income activity
+ * from AMQP broker
+ *
+ * @return float
+ */
+ public function getReadTimeout() { }
+
+ /**
+ * Sets the interval of time to wait for outcome activity to AMQP broker
+ *
+ * @param int $timeout
+ *
+ * @return bool
+ */
+ public function setWriteTimeout($timeout) { }
+
+ /**
+ * Get the configured interval of time to wait for outcome activity
+ * to AMQP broker
+ *
+ * @return float
+ */
+ public function getWriteTimeout() { }
+
+ /**
+ * Sets the interval of time to wait for RPC activity to AMQP broker
+ *
+ * @param int $timeout
+ *
+ * @return bool
+ */
+ public function setRpcTimeout($timeout)
+ {
+ }
+
+ /**
+ * Get the configured interval of time to wait for RPC activity
+ * to AMQP broker
+ *
+ * @return float
+ */
+ public function getRpcTimeout()
+ {
+ }
+
+ /**
+ * Return last used channel id during current connection session.
+ *
+ * @return int
+ */
+ public function getUsedChannels() { }
+
+ /**
+ * Get the maximum number of channels the connection can handle.
+ *
+ * When connection is connected, effective connection value returned, which is normally the same as original
+ * correspondent value passed to constructor, otherwise original value passed to constructor returned.
+ *
+ * @return int
+ */
+ public function getMaxChannels() { }
+
+ /**
+ * Get max supported frame size per connection in bytes.
+ *
+ * When connection is connected, effective connection value returned, which is normally the same as original
+ * correspondent value passed to constructor, otherwise original value passed to constructor returned.
+ *
+ * @return int
+ */
+ public function getMaxFrameSize() { }
+
+ /**
+ * Get number of seconds between heartbeats of the connection in seconds.
+ *
+ * When connection is connected, effective connection value returned, which is normally the same as original
+ * correspondent value passed to constructor, otherwise original value passed to constructor returned.
+ *
+ * @return int
+ */
+ public function getHeartbeatInterval() { }
+
+ /**
+ * Whether connection persistent.
+ *
+ * When connection is not connected, boolean false always returned
+ *
+ * @return bool
+ */
+ public function isPersistent() { }
+
+ /**
+ * Get path to the CA cert file in PEM format
+ *
+ * @return string
+ */
+ public function getCACert() { }
+
+ /**
+ * Set path to the CA cert file in PEM format
+ *
+ * @param string $cacert
+ */
+ public function setCACert($cacert) { }
+
+ /**
+ * Get path to the client certificate in PEM format
+ *
+ * @return string
+ */
+ public function getCert() { }
+
+ /**
+ * Set path to the client certificate in PEM format
+ *
+ * @param string $cert
+ */
+ public function setCert($cert) { }
+
+ /**
+ * Get path to the client key in PEM format
+ *
+ * @return string
+ */
+ public function getKey() { }
+
+ /**
+ * Set path to the client key in PEM format
+ *
+ * @param string $key
+ */
+ public function setKey($key) { }
+
+ /**
+ * Get whether peer verification enabled or disabled
+ *
+ * @return bool
+ */
+ public function getVerify() { }
+
+ /**
+ * Enable or disable peer verification
+ *
+ * @param bool $verify
+ */
+ public function setVerify($verify) { }
+
+ /**
+ * set authentication method
+ *
+ * @param int $method AMQP_SASL_METHOD_PLAIN | AMQP_SASL_METHOD_EXTERNAL
+ */
+ public function setSaslMethod($method) { }
+
+ /**
+ * Get authentication mechanism configuration
+ *
+ * @return int AMQP_SASL_METHOD_PLAIN | AMQP_SASL_METHOD_EXTERNAL
+ */
+ public function getSaslMethod() { }
+
+ /**
+ * Return the connection name
+ * @return string|null
+ */
+ public function getConnectionName() { }
+
+ /**
+ * Set the connection name
+ * @param string $connection_name
+ * @return void
+ */
+ public function setConnectionName($connection_name) { }
+}
+
+/**
+ * stub class representing AMQPConnectionException from pecl-amqp
+ */
+class AMQPConnectionException extends AMQPException
+{
+}
+
+/**
+ * stub class representing AMQPDecimal from pecl-amqp
+ */
+final class AMQPDecimal
+{
+ const EXPONENT_MIN = 0;
+ const EXPONENT_MAX = 255;
+ const SIGNIFICAND_MIN = 0;
+ const SIGNIFICAND_MAX = 4294967295;
+
+ /**
+ * @param $exponent
+ * @param $significand
+ *
+ * @throws AMQPExchangeValue
+ */
+ public function __construct($exponent, $significand) { }
+
+ /** @return int */
+ public function getExponent() { }
+
+ /** @return int */
+ public function getSignificand() { }
+}
+
+/**
+ * stub class representing AMQPEnvelope from pecl-amqp
+ */
+class AMQPEnvelope extends AMQPBasicProperties
+{
+ public function __construct() { }
+
+ /**
+ * Get the body of the message.
+ *
+ * @return string The contents of the message body.
+ */
+ public function getBody() { }
+
+ /**
+ * Get the routing key of the message.
+ *
+ * @return string The message routing key.
+ */
+ public function getRoutingKey() { }
+
+ /**
+ * Get the consumer tag of the message.
+ *
+ * @return string The consumer tag of the message.
+ */
+ public function getConsumerTag() { }
+
+ /**
+ * Get the delivery tag of the message.
+ *
+ * @return string The delivery tag of the message.
+ */
+ public function getDeliveryTag() { }
+
+ /**
+ * Get the exchange name on which the message was published.
+ *
+ * @return string The exchange name on which the message was published.
+ */
+ public function getExchangeName() { }
+
+ /**
+ * Whether this is a redelivery of the message.
+ *
+ * Whether this is a redelivery of a message. If this message has been
+ * delivered and AMQPEnvelope::nack() was called, the message will be put
+ * back on the queue to be redelivered, at which point the message will
+ * always return TRUE when this method is called.
+ *
+ * @return bool TRUE if this is a redelivery, FALSE otherwise.
+ */
+ public function isRedelivery() { }
+
+ /**
+ * Get a specific message header.
+ *
+ * @param string $header_key Name of the header to get the value from.
+ *
+ * @return string|false The contents of the specified header or FALSE
+ * if not set.
+ */
+ public function getHeader($header_key) { }
+
+ /**
+ * Check whether specific message header exists.
+ *
+ * @param string $header_key Name of the header to check.
+ *
+ * @return bool
+ */
+ public function hasHeader($header_key) { }
+}
+
+/**
+ * stub class representing AMQPEnvelopeException from pecl-amqp
+ */
+class AMQPEnvelopeException extends AMQPException
+{
+ /**
+ * @var AMQPEnvelope
+ */
+ public $envelope;
+}
+
+/**
+ * stub class representing AMQPException from pecl-amqp
+ */
+class AMQPException extends Exception
+{
+}
+
+/**
+ * stub class representing AMQPExchange from pecl-amqp
+ */
+class AMQPExchange
+{
+ /**
+ * Bind to another exchange.
+ *
+ * Bind an exchange to another exchange using the specified routing key.
+ *
+ * @param string $exchange_name Name of the exchange to bind.
+ * @param string $routing_key The routing key to use for binding.
+ * @param array $arguments Additional binding arguments.
+ *
+ * @throws AMQPExchangeException On failure.
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function bind($exchange_name, $routing_key = '', array $arguments = array()) { }
+
+ /**
+ * Remove binding to another exchange.
+ *
+ * Remove a routing key binding on an another exchange from the given exchange.
+ *
+ * @param string $exchange_name Name of the exchange to bind.
+ * @param string $routing_key The routing key to use for binding.
+ * @param array $arguments Additional binding arguments.
+ *
+ * @throws AMQPExchangeException On failure.
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function unbind($exchange_name, $routing_key = '', array $arguments = array()) { }
+
+ /**
+ * Create an instance of AMQPExchange.
+ *
+ * Returns a new instance of an AMQPExchange object, associated with the
+ * given AMQPChannel object.
+ *
+ * @param AMQPChannel $amqp_channel A valid AMQPChannel object, connected
+ * to a broker.
+ *
+ * @throws AMQPExchangeException When amqp_channel is not connected to
+ * a broker.
+ * @throws AMQPConnectionException If the connection to the broker was
+ * lost.
+ */
+ public function __construct(AMQPChannel $amqp_channel) { }
+
+ /**
+ * Declare a new exchange on the broker.
+ *
+ * @throws AMQPExchangeException On failure.
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function declareExchange() { }
+
+ /**
+ * Delete the exchange from the broker.
+ *
+ * @param string $exchangeName Optional name of exchange to delete.
+ * @param integer $flags Optionally AMQP_IFUNUSED can be specified
+ * to indicate the exchange should not be
+ * deleted until no clients are connected to
+ * it.
+ *
+ * @throws AMQPExchangeException On failure.
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function delete($exchangeName = null, $flags = AMQP_NOPARAM) { }
+
+ /**
+ * Get the argument associated with the given key.
+ *
+ * @param string $key The key to look up.
+ *
+ * @return string|integer|false The string or integer value associated
+ * with the given key, or FALSE if the key
+ * is not set.
+ */
+ public function getArgument($key) { }
+
+ /**
+ * Check whether argument associated with the given key exists.
+ *
+ * @param string $key The key to look up.
+ *
+ * @return bool
+ */
+ public function hasArgument($key) { }
+
+ /**
+ * Get all arguments set on the given exchange.
+ *
+ * @return array An array containing all of the set key/value pairs.
+ */
+ public function getArguments() { }
+
+ /**
+ * Get all the flags currently set on the given exchange.
+ *
+ * @return int An integer bitmask of all the flags currently set on this
+ * exchange object.
+ */
+ public function getFlags() { }
+
+ /**
+ * Get the configured name.
+ *
+ * @return string The configured name as a string.
+ */
+ public function getName() { }
+
+ /**
+ * Get the configured type.
+ *
+ * @return string The configured type as a string.
+ */
+ public function getType() { }
+
+ /**
+ * Publish a message to an exchange.
+ *
+ * Publish a message to the exchange represented by the AMQPExchange object.
+ *
+ * @param string $message The message to publish.
+ * @param string $routing_key The optional routing key to which to
+ * publish to.
+ * @param integer $flags One or more of AMQP_MANDATORY and
+ * AMQP_IMMEDIATE.
+ * @param array $attributes One of content_type, content_encoding,
+ * message_id, user_id, app_id, delivery_mode,
+ * priority, timestamp, expiration, type
+ * or reply_to, headers.
+ *
+ * @throws AMQPExchangeException On failure.
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function publish(
+ $message,
+ $routing_key = null,
+ $flags = AMQP_NOPARAM,
+ array $attributes = array()
+ ) {
+ }
+
+ /**
+ * Set the value for the given key.
+ *
+ * @param string $key Name of the argument to set.
+ * @param string|integer $value Value of the argument to set.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setArgument($key, $value) { }
+
+ /**
+ * Set all arguments on the exchange.
+ *
+ * @param array $arguments An array of key/value pairs of arguments.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setArguments(array $arguments) { }
+
+ /**
+ * Set the flags on an exchange.
+ *
+ * @param integer $flags A bitmask of flags. This call currently only
+ * considers the following flags:
+ * AMQP_DURABLE, AMQP_PASSIVE
+ * (and AMQP_DURABLE, if librabbitmq version >= 0.5.3)
+ *
+ * @return void
+ */
+ public function setFlags($flags) { }
+
+ /**
+ * Set the name of the exchange.
+ *
+ * @param string $exchange_name The name of the exchange to set as string.
+ *
+ * @return void
+ */
+ public function setName($exchange_name) { }
+
+ /**
+ * Set the type of the exchange.
+ *
+ * Set the type of the exchange. This can be any of AMQP_EX_TYPE_DIRECT,
+ * AMQP_EX_TYPE_FANOUT, AMQP_EX_TYPE_HEADERS or AMQP_EX_TYPE_TOPIC.
+ *
+ * @param string $exchange_type The type of exchange as a string.
+ *
+ * @return void
+ */
+ public function setType($exchange_type) { }
+
+ /**
+ * Get the AMQPChannel object in use
+ *
+ * @return AMQPChannel
+ */
+ public function getChannel() { }
+
+ /**
+ * Get the AMQPConnection object in use
+ *
+ * @return AMQPConnection
+ */
+ public function getConnection() { }
+
+ /**
+ * Declare a new exchange on the broker.
+ * @return int
+ * @throws AMQPExchangeException
+ * @throws AMQPChannelException
+ * @throws AMQPConnectionException
+ * @see AMQPExchange::declareExchange()
+ */
+ #[Deprecated]
+ public function declare() { }
+}
+
+/**
+ * stub class representing AMQPExchangeException from pecl-amqp
+ */
+class AMQPExchangeException extends AMQPException
+{
+}
+
+/**
+ * stub class representing AMQPQueue from pecl-amqp
+ */
+class AMQPQueue
+{
+ /**
+ * Acknowledge the receipt of a message.
+ *
+ * This method allows the acknowledgement of a message that is retrieved
+ * without the AMQP_AUTOACK flag through AMQPQueue::get() or
+ * AMQPQueue::consume()
+ *
+ * @param string $delivery_tag The message delivery tag of which to
+ * acknowledge receipt.
+ * @param integer $flags The only valid flag that can be passed is
+ * AMQP_MULTIPLE.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool
+ */
+ public function ack($delivery_tag, $flags = AMQP_NOPARAM) { }
+
+ /**
+ * Bind the given queue to a routing key on an exchange.
+ *
+ * @param string $exchange_name Name of the exchange to bind to.
+ * @param string $routing_key Pattern or routing key to bind with.
+ * @param array $arguments Additional binding arguments.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool
+ */
+ public function bind($exchange_name, $routing_key = null, array $arguments = array()) { }
+
+ /**
+ * Cancel a queue that is already bound to an exchange and routing key.
+ *
+ * @param string $consumer_tag The consumer tag cancel. If no tag provided,
+ * or it is empty string, the latest consumer
+ * tag on this queue will be used and after
+ * successful request it will set to null.
+ * If it also empty, no `basic.cancel`
+ * request will be sent. When consumer_tag give
+ * and it equals to latest consumer_tag on queue,
+ * it will be interpreted as latest consumer_tag usage.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool
+ */
+ public function cancel($consumer_tag = '') { }
+
+ /**
+ * Create an instance of an AMQPQueue object.
+ *
+ * @param AMQPChannel $amqp_channel The amqp channel to use.
+ *
+ * @throws AMQPQueueException When amqp_channel is not connected to a
+ * broker.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ */
+ public function __construct(AMQPChannel $amqp_channel) { }
+
+ /**
+ * Consume messages from a queue.
+ *
+ * Blocking function that will retrieve the next message from the queue as
+ * it becomes available and will pass it off to the callback.
+ *
+ * @param callable|null $callback A callback function to which the
+ * consumed message will be passed. The
+ * function must accept at a minimum
+ * one parameter, an AMQPEnvelope object,
+ * and an optional second parameter
+ * the AMQPQueue object from which callback
+ * was invoked. The AMQPQueue::consume() will
+ * not return the processing thread back to
+ * the PHP script until the callback
+ * function returns FALSE.
+ * If the callback is omitted or null is passed,
+ * then the messages delivered to this client will
+ * be made available to the first real callback
+ * registered. That allows one to have a single
+ * callback consuming from multiple queues.
+ * @param integer $flags A bitmask of any of the flags: AMQP_AUTOACK,
+ * AMQP_JUST_CONSUME. Note: when AMQP_JUST_CONSUME
+ * flag used all other flags are ignored and
+ * $consumerTag parameter has no sense.
+ * AMQP_JUST_CONSUME flag prevent from sending
+ * `basic.consume` request and just run $callback
+ * if it provided. Calling method with empty $callback
+ * and AMQP_JUST_CONSUME makes no sense.
+ * @param string $consumerTag A string describing this consumer. Used
+ * for canceling subscriptions with cancel().
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ * @throws AMQPEnvelopeException When no queue found for envelope.
+ *
+ * @return void
+ */
+ public function consume(
+ callable $callback = null,
+ $flags = AMQP_NOPARAM,
+ $consumerTag = null
+ ) {
+ }
+
+ /**
+ * Declare a new queue on the broker.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return integer the message count.
+ */
+ public function declareQueue() { }
+
+ /**
+ * Delete a queue from the broker.
+ *
+ * This includes its entire contents of unread or unacknowledged messages.
+ *
+ * @param integer $flags Optionally AMQP_IFUNUSED can be specified
+ * to indicate the queue should not be
+ * deleted until no clients are connected to
+ * it.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return integer The number of deleted messages.
+ */
+ public function delete($flags = AMQP_NOPARAM) { }
+
+ /**
+ * Retrieve the next message from the queue.
+ *
+ * Retrieve the next available message from the queue. If no messages are
+ * present in the queue, this function will return FALSE immediately. This
+ * is a non blocking alternative to the AMQPQueue::consume() method.
+ * Currently, the only supported flag for the flags parameter is
+ * AMQP_AUTOACK. If this flag is passed in, then the message returned will
+ * automatically be marked as acknowledged by the broker as soon as the
+ * frames are sent to the client.
+ *
+ * @param integer $flags A bitmask of supported flags for the
+ * method call. Currently, the only the
+ * supported flag is AMQP_AUTOACK. If this
+ * value is not provided, it will use the
+ * value of ini-setting amqp.auto_ack.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return AMQPEnvelope|false
+ */
+ public function get($flags = AMQP_NOPARAM) { }
+
+ /**
+ * Get the argument associated with the given key.
+ *
+ * @param string $key The key to look up.
+ *
+ * @return string|integer|false The string or integer value associated
+ * with the given key, or false if the key
+ * is not set.
+ */
+ public function getArgument($key) { }
+
+ /**
+ * Get all set arguments as an array of key/value pairs.
+ *
+ * @return array An array containing all of the set key/value pairs.
+ */
+ public function getArguments() { }
+
+ /**
+ * Get all the flags currently set on the given queue.
+ *
+ * @return int An integer bitmask of all the flags currently set on this
+ * exchange object.
+ */
+ public function getFlags() { }
+
+ /**
+ * Get the configured name.
+ *
+ * @return string The configured name as a string.
+ */
+ public function getName() { }
+
+ /**
+ * Mark a message as explicitly not acknowledged.
+ *
+ * Mark the message identified by delivery_tag as explicitly not
+ * acknowledged. This method can only be called on messages that have not
+ * yet been acknowledged, meaning that messages retrieved with by
+ * AMQPQueue::consume() and AMQPQueue::get() and using the AMQP_AUTOACK
+ * flag are not eligible. When called, the broker will immediately put the
+ * message back onto the queue, instead of waiting until the connection is
+ * closed. This method is only supported by the RabbitMQ broker. The
+ * behavior of calling this method while connected to any other broker is
+ * undefined.
+ *
+ * @param string $delivery_tag Delivery tag of last message to reject.
+ * @param integer $flags AMQP_REQUEUE to requeue the message(s),
+ * AMQP_MULTIPLE to nack all previous
+ * unacked messages as well.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool
+ */
+ public function nack($delivery_tag, $flags = AMQP_NOPARAM) { }
+
+ /**
+ * Mark one message as explicitly not acknowledged.
+ *
+ * Mark the message identified by delivery_tag as explicitly not
+ * acknowledged. This method can only be called on messages that have not
+ * yet been acknowledged, meaning that messages retrieved with by
+ * AMQPQueue::consume() and AMQPQueue::get() and using the AMQP_AUTOACK
+ * flag are not eligible.
+ *
+ * @param string $delivery_tag Delivery tag of the message to reject.
+ * @param integer $flags AMQP_REQUEUE to requeue the message(s).
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool
+ */
+ public function reject($delivery_tag, $flags = AMQP_NOPARAM) { }
+
+ /**
+ * Purge the contents of a queue.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool
+ */
+ public function purge() { }
+
+ /**
+ * Set a queue argument.
+ *
+ * @param string $key The key to set.
+ * @param mixed $value The value to set.
+ *
+ * @return bool
+ */
+ public function setArgument($key, $value) { }
+
+ /**
+ * Set all arguments on the given queue.
+ *
+ * All other argument settings will be wiped.
+ *
+ * @param array $arguments An array of key/value pairs of arguments.
+ *
+ * @return bool
+ */
+ public function setArguments(array $arguments) { }
+
+ /**
+ * Check whether a queue has specific argument.
+ *
+ * @param string $key The key to check.
+ *
+ * @return bool
+ */
+ public function hasArgument($key) { }
+
+ /**
+ * Set the flags on the queue.
+ *
+ * @param integer $flags A bitmask of flags:
+ * AMQP_DURABLE, AMQP_PASSIVE,
+ * AMQP_EXCLUSIVE, AMQP_AUTODELETE.
+ *
+ * @return bool
+ */
+ public function setFlags($flags) { }
+
+ /**
+ * Set the queue name.
+ *
+ * @param string $queue_name The name of the queue.
+ *
+ * @return bool
+ */
+ public function setName($queue_name) { }
+
+ /**
+ * Remove a routing key binding on an exchange from the given queue.
+ *
+ * @param string $exchange_name The name of the exchange on which the
+ * queue is bound.
+ * @param string $routing_key The binding routing key used by the
+ * queue.
+ * @param array $arguments Additional binding arguments.
+ *
+ * @throws AMQPChannelException If the channel is not open.
+ * @throws AMQPConnectionException If the connection to the broker was lost.
+ *
+ * @return bool
+ */
+ public function unbind($exchange_name, $routing_key = null, array $arguments = array()) { }
+
+ /**
+ * Get the AMQPChannel object in use
+ *
+ * @return AMQPChannel
+ */
+ public function getChannel() { }
+
+ /**
+ * Get the AMQPConnection object in use
+ *
+ * @return AMQPConnection
+ */
+ public function getConnection() { }
+
+ /**
+ * Get latest consumer tag. If no consumer available or the latest on was canceled null will be returned.
+ *
+ * @return string|null
+ */
+ public function getConsumerTag() { }
+
+ /**
+ * Declare a new queue
+ * @return int
+ * @throws AMQPChannelException
+ * @throws AMQPConnectionException
+ * @see AMQPQueue::declareQueue()
+ */
+ #[Deprecated]
+ public function declare() { }
+
+}
+
+/**
+ * stub class representing AMQPQueueException from pecl-amqp
+ */
+class AMQPQueueException extends AMQPException
+{
+}
+
+/**
+ * stub class representing AMQPTimestamp from pecl-amqp
+ */
+final class AMQPTimestamp
+{
+ const MIN = "0";
+ const MAX = "18446744073709551616";
+
+ /**
+ * @param string $timestamp
+ *
+ * @throws AMQPExchangeValue
+ */
+ public function __construct($timestamp) { }
+
+ /** @return string */
+ public function getTimestamp() { }
+
+ /** @return string */
+ public function __toString() { }
+}
+
+/**
+ * stub class representing AMQPExchangeValue from pecl-amqp
+ */
+class AMQPExchangeValue extends AMQPException
+{
+}
+
+/**
+ * stub class representing AMQPExchangeValue from pecl-amqp
+ */
+class AMQPValueException extends AMQPException
+{
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/apache/apache.php b/vendor/jetbrains/phpstorm-stubs/apache/apache.php
new file mode 100644
index 0000000000..5401f1f00d
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/apache/apache.php
@@ -0,0 +1,116 @@
+TRUE if PHP is running as an Apache 1 module, the Apache version is non-multithreaded, and the child_terminate PHP directive is enabled (disabled by default). If these conditions are not met, FALSE is returned and an error of level E_WARNING is generated.
+ */
+function apache_child_terminate () {}
+
+/**
+ * Get a list of loaded Apache modules
+ * @link https://php.net/manual/en/function.apache-get-modules.php
+ * @return array of loaded Apache modules.
+ */
+#[Pure]
+function apache_get_modules () {}
+
+/**
+ * Fetch the Apache version
+ * @link https://php.net/manual/en/function.apache-get-version.php
+ * @return string|false the Apache version on success or FALSE on failure.
+ */
+#[Pure]
+function apache_get_version () {}
+
+/**
+ * Get an Apache subprocess_env variable
+ * Retrieve an Apache environment variable specified by $variable.
+ * This function requires Apache 2 otherwise it's undefined.
+ * @link https://php.net/manual/en/function.apache-getenv.php
+ * @param string $variable
+ * The Apache environment variable.
+ *
+ * @param bool $walk_to_top
+ * Whether to get the top-level variable available to all Apache layers.
+ *
+ * @return string|false The value of the Apache environment variable on success, or FALSE on failure.
+ */
+#[Pure]
+function apache_getenv ( $variable, $walk_to_top = false ) {}
+
+/**
+ * Perform a partial request for the specified URI and return all info about it
+ * This performs a partial request for a URI. It goes just far enough to obtain all the important information about the given resource.
+ * This function is supported when PHP is installed as an Apache module or by the NSAPI server module in Netscape/iPlanet/SunONE webservers.
+ * @link https://php.net/manual/en/function.apache-lookup-uri.php
+ * @param string $filename
+ * The filename (URI) that's being requested.
+ *
+ * @return object of related URI information.
+ */
+function apache_lookup_uri ( $filename ) {}
+
+/**
+ * Get and set apache request notes
+ * This function is a wrapper for Apache's table_get and table_set. It edits the table of notes that exists during a request. The table's purpose is to allow Apache modules to communicate.
+ * The main use for apache_note() is to pass information from one module to another within the same request.
+ * @link https://php.net/manual/en/function.apache-note.php
+ * @param string $note_name
+ * The name of the note.
+ *
+ * @param string $note_value
+ * The value of the note.
+ *
+ * @return string|false If called with one argument, it returns the current value of note note_name. If called with two arguments, it sets the value of note note_name to note_value and returns the previous value of note note_name. If the note cannot be retrieved, FALSE is returned.
+ */
+function apache_note ( $note_name, $note_value = '' ) {}
+
+/**
+ * Reset the Apache write timer
+ * apache_reset_timeout() resets the Apache write timer, which defaults to 300 seconds. With set_time_limit(0); ignore_user_abort(true) and periodic apache_reset_timeout() calls, Apache can theoretically run forever.
+ * This function requires Apache 1.
+ * @link https://php.net/manual/en/function.apache-reset-timeout.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function apache_reset_timeout () {}
+
+/**
+ * Fetch all HTTP response headers
+ * @link https://php.net/manual/en/function.apache-response-headers.php
+ * @return array|false An array of all Apache response headers on success or FALSE on failure.
+ */
+function apache_response_headers () {}
+
+/**
+ * Sets the value of the Apache environment variable specified by variable.
+ * Note: When setting an Apache environment variable, the corresponding $_SERVER variable is not changed.
+ * @link https://php.net/manual/en/function.apache-setenv.php
+ * @param string $variable
+ * The environment variable that's being set.
+ *
+ * @param string $value
+ * The new variable value.
+ *
+ * @param bool $walk_to_top
+ * Whether to set the top-level variable available to all Apache layers.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function apache_setenv ( $variable, $value, $walk_to_top = false ) {}
+
+/**
+ * Perform an Apache sub-request
+ * virtual() is an Apache-specific function which is similar to in mod_include. It performs an Apache sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you would parse through Apache. Note that for a CGI script, the script must generate valid CGI headers. At the minimum that means it must generate a Content-Type header.
+ * To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.
+ * This function is supported when PHP is installed as an Apache module or by the NSAPI server module in Netscape/iPlanet/SunONE webservers.
+ * @link https://secure.php.net/manual/en/function.virtual.php
+ * @param string $filename
+ * The file that the virtual command will be performed on.
+ *
+ * @return bool Performs the virtual command on success, or returns FALSE on failure.
+ */
+function virtual ( $filename ) {}
diff --git a/vendor/jetbrains/phpstorm-stubs/apcu/apcu.php b/vendor/jetbrains/phpstorm-stubs/apcu/apcu.php
new file mode 100644
index 0000000000..54fb7e86c9
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/apcu/apcu.php
@@ -0,0 +1,661 @@
+ value pairs.
+ * The constant_name must follow the normal constant naming rules. Value must evaluate to a scalar value.
+ * @param bool $case_sensitive The default behaviour for constants is to be declared case-sensitive;
+ * i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE
+ * the constants will be declared as case-insensitive symbols.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function apc_define_constants($key, array $constants, $case_sensitive = true){}
+
+/**
+ * Caches a variable in the data store, only if it's not already stored
+ * @link https://php.net/manual/en/function.apc-add.php
+ * @param string $key Store the variable using this name. Keys are cache-unique,
+ * so attempting to use apc_add() to store data with a key that already exists will not
+ * overwrite the existing data, and will instead return FALSE. (This is the only difference
+ * between apc_add() and apc_store().)
+ * @param mixed $var The variable to store
+ * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed,
+ * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied
+ * (or if the ttl is 0), the value will persist until it is removed from the cache manually,
+ * or otherwise fails to exist in the cache (clear, restart, etc.).
+ * @return bool
+ */
+function apc_add($key, $var, $ttl = 0){}
+
+/**
+ * Stores a file in the bytecode cache, bypassing all filters
+ * @link https://php.net/manual/en/function.apc-compile-file.php
+ * @param string|string[] $filename Full or relative path to a PHP file that will be
+ * compiled and stored in the bytecode cache.
+ * @param bool $atomic
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function apc_compile_file($filename, $atomic = true){}
+
+/**
+ * Loads a set of constants from the cache
+ * @link https://php.net/manual/en/function.apc-load-constants.php
+ * @param string $key The name of the constant set (that was stored
+ * with apc_define_constants()) to be retrieved.
+ * @param bool $case_sensitive The default behaviour for constants is to be declared case-sensitive;
+ * i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE
+ * the constants will be declared as case-insensitive symbols.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function apc_load_constants($key, $case_sensitive = true){}
+
+/**
+ * Checks if APC key exists
+ * @link https://php.net/manual/en/function.apc-exists.php
+ * @param string|string[] $keys A string, or an array of strings, that contain keys.
+ * @return bool|string[] Returns TRUE if the key exists, otherwise FALSE
+ * Or if an array was passed to keys, then an array is returned that
+ * contains all existing keys, or an empty array if none exist.
+ */
+function apc_exists($keys){}
+
+/**
+ * Deletes the given files from the opcode cache
+ *
+ * Accepts a string, array of strings, or APCIterator object.
+ * Returns True/False, or for an Array an Array of failed files.
+ *
+ * @link https://php.net/manual/en/function.apc-delete-file.php
+ * @param string|string[]|APCIterator $keys
+ * @return bool|string[]
+ */
+function apc_delete_file($keys){}
+
+/**
+ * Increase a stored number
+ * @link https://php.net/manual/en/function.apc-inc.php
+ * @param string $key The key of the value being increased.
+ * @param int $step The step, or value to increase.
+ * @param bool &$success Optionally pass the success or fail boolean value to this referenced variable.
+ * @return int|false Returns the current value of key's value on success, or FALSE on failure.
+ */
+function apc_inc($key, $step = 1, &$success = null){}
+
+/**
+ * Decrease a stored number
+ * @link https://php.net/manual/en/function.apc-dec.php
+ * @param string $key The key of the value being decreased.
+ * @param int $step The step, or value to decrease.
+ * @param bool &$success Optionally pass the success or fail boolean value to this referenced variable.
+ * @return int|false Returns the current value of key's value on success, or FALSE on failure.
+ */
+function apc_dec($key, $step = 1, &$success = null){}
+
+/**
+ * Updates an old value with a new value
+ * @link https://php.net/manual/en/function.apc-cas.php
+ * @param string $key
+ * @param int $old
+ * @param int $new
+ * @return bool
+ */
+function apc_cas($key, $old, $new){}
+
+/**
+ * Returns a binary dump of the given files and user variables from the APC cache
+ *
+ * A NULL for files or user_vars signals a dump of every entry, while array() will dump nothing.
+ *
+ * @link https://php.net/manual/en/function.apc-bin-dump.php
+ * @param string[]|null $files The files. Passing in NULL signals a dump of every entry, while passing in array() will dump nothing.
+ * @param string[]|null $user_vars The user vars. Passing in NULL signals a dump of every entry, while passing in array() will dump nothing.
+ * @return string|false|null Returns a binary dump of the given files and user variables from the APC cache, FALSE if APC is not enabled, or NULL if an unknown error is encountered.
+ */
+function apc_bin_dump($files = null, $user_vars = null){}
+
+/**
+ * Output a binary dump of the given files and user variables from the APC cache to the named file
+ * @link https://php.net/manual/en/function.apc-bin-dumpfile.php
+ * @param string[]|null $files The file names being dumped.
+ * @param string[]|null $user_vars The user variables being dumped.
+ * @param string $filename The filename where the dump is being saved.
+ * @param int $flags Flags passed to the filename stream. See the file_put_contents() documentation for details.
+ * @param resource $context The context passed to the filename stream. See the file_put_contents() documentation for details.
+ * @return int|false The number of bytes written to the file, otherwise FALSE if APC
+ * is not enabled, filename is an invalid file name, filename can't be opened,
+ * the file dump can't be completed (e.g., the hard drive is out of disk space),
+ * or an unknown error was encountered.
+ */
+function apc_bin_dumpfile($files, $user_vars, $filename, $flags = 0, $context = null){}
+
+/**
+ * Load the given binary dump into the APC file/user cache
+ * @link https://php.net/manual/en/function.apc-bin-load.php
+ * @param string $data The binary dump being loaded, likely from apc_bin_dump().
+ * @param int $flags Either APC_BIN_VERIFY_CRC32, APC_BIN_VERIFY_MD5, or both.
+ * @return bool Returns TRUE if the binary dump data was loaded with success, otherwise FALSE is returned.
+ * FALSE is returned if APC is not enabled, or if the data is not a valid APC binary dump (e.g., unexpected size).
+ */
+function apc_bin_load($data, $flags = 0){}
+
+/**
+ * Load the given binary dump from the named file into the APC file/user cache
+ * @link https://php.net/manual/en/function.apc-bin-loadfile.php
+ * @param string $filename The file name containing the dump, likely from apc_bin_dumpfile().
+ * @param resource $context The files context.
+ * @param int $flags Either APC_BIN_VERIFY_CRC32, APC_BIN_VERIFY_MD5, or both.
+ * @return bool Returns TRUE on success, otherwise FALSE Reasons it may return FALSE include APC
+ * is not enabled, filename is an invalid file name or empty, filename can't be opened,
+ * the file dump can't be completed, or if the data is not a valid APC binary dump (e.g., unexpected size).
+ */
+function apc_bin_loadfile($filename, $context = null, $flags = 0){}
+
+/**
+ * The APCIterator class
+ *
+ * The APCIterator class makes it easier to iterate over large APC caches.
+ * This is helpful as it allows iterating over large caches in steps, while grabbing a defined number
+ * of entries per lock instance, so it frees the cache locks for other activities rather than hold up
+ * the entire cache to grab 100 (the default) entries. Also, using regular expression matching is more
+ * efficient as it's been moved to the C level.
+ *
+ * @link https://php.net/manual/en/class.apciterator.php
+ */
+class APCIterator implements Iterator
+{
+ /**
+ * Constructs an APCIterator iterator object
+ * @link https://php.net/manual/en/apciterator.construct.php
+ * @param string $cache The cache type, which will be 'user' or 'file'.
+ * @param string|string[]|null $search A PCRE regular expression that matches against APC key names,
+ * either as a string for a single regular expression, or as an array of regular expressions.
+ * Or, optionally pass in NULL to skip the search.
+ * @param int $format The desired format, as configured with one ore more of the APC_ITER_* constants.
+ * @param int $chunk_size The chunk size. Must be a value greater than 0. The default value is 100.
+ * @param int $list The type to list. Either pass in APC_LIST_ACTIVE or APC_LIST_INACTIVE.
+ */
+ public function __construct($cache, $search = null, $format = APC_ITER_ALL, $chunk_size = 100, $list = APC_LIST_ACTIVE){}
+
+ /**
+ * Rewinds back the iterator to the first element
+ * @link https://php.net/manual/en/apciterator.rewind.php
+ */
+ public function rewind(){}
+
+ /**
+ * Checks if the current iterator position is valid
+ * @link https://php.net/manual/en/apciterator.valid.php
+ * @return bool Returns TRUE if the current iterator position is valid, otherwise FALSE.
+ */
+ public function valid(){}
+
+ /**
+ * Gets the current item from the APCIterator stack
+ * @link https://php.net/manual/en/apciterator.current.php
+ * @return mixed|false Returns the current item on success, or FALSE if no more items or exist, or on failure.
+ */
+ public function current(){}
+
+ /**
+ * Gets the current iterator key
+ * @link https://php.net/manual/en/apciterator.key.php
+ * @return string|int|false Returns the key on success, or FALSE upon failure.
+ */
+ public function key(){}
+
+ /**
+ * Moves the iterator pointer to the next element
+ * @link https://php.net/manual/en/apciterator.next.php
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function next(){}
+
+ /**
+ * Gets the total number of cache hits
+ * @link https://php.net/manual/en/apciterator.gettotalhits.php
+ * @return int|false The number of hits on success, or FALSE on failure.
+ */
+ public function getTotalHits(){}
+
+ /**
+ * Gets the total cache size
+ * @link https://php.net/manual/en/apciterator.gettotalsize.php
+ * @return int|bool The total cache size.
+ */
+ public function getTotalSize(){}
+
+ /**
+ * Get the total count
+ * @link https://php.net/manual/en/apciterator.gettotalcount.php
+ * @return int|bool The total count.
+ */
+ public function getTotalCount(){}
+}
+
+/**
+ * Stubs for APCu 5.0.0
+ */
+
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_LIST_ACTIVE', 1);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_LIST_DELETED', 2);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_TYPE', 1);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_KEY', 2);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_FILENAME', 4);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_DEVICE', 8);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_INODE', 16);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_VALUE', 32);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_MD5', 64);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_NUM_HITS', 128);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_MTIME', 256);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_CTIME', 512);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_DTIME', 1024);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_ATIME', 2048);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_REFCOUNT', 4096);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_MEM_SIZE', 8192);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_TTL', 16384);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_NONE', 0);
+/**
+ * @link https://php.net/manual/en/apcu.constants.php
+ */
+define('APC_ITER_ALL', -1);
+
+
+/**
+ * Clears the APCu cache
+ * @link https://php.net/manual/en/function.apcu-clear-cache.php
+ *
+ * @return bool Returns TRUE always.
+ */
+function apcu_clear_cache(){}
+
+/**
+ * Retrieves APCu Shared Memory Allocation information
+ * @link https://php.net/manual/en/function.apcu-sma-info.php
+ * @param bool $limited When set to FALSE (default) apcu_sma_info() will
+ * return a detailed information about each segment.
+ *
+ * @return array|false Array of Shared Memory Allocation data; FALSE on failure.
+ */
+function apcu_sma_info($limited = false){}
+
+/**
+ * Cache a variable in the data store
+ * @link https://php.net/manual/en/function.apcu-store.php
+ * @param string|array $key String: Store the variable using this name. Keys are cache-unique,
+ * so storing a second value with the same key will overwrite the original value.
+ * Array: Names in key, variables in value.
+ * @param mixed $var [optional] The variable to store
+ * @param int $ttl [optional] Time To Live; store var in the cache for ttl seconds. After the ttl has passed,
+ * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied
+ * (or if the ttl is 0), the value will persist until it is removed from the cache manually,
+ * or otherwise fails to exist in the cache (clear, restart, etc.).
+ * @return bool|array Returns TRUE on success or FALSE on failure | array with error keys.
+ */
+function apcu_store($key, $var, $ttl = 0){}
+
+/**
+ * Fetch a stored variable from the cache
+ * @link https://php.net/manual/en/function.apcu-fetch.php
+ * @param string|string[] $key The key used to store the value (with apcu_store()).
+ * If an array is passed then each element is fetched and returned.
+ * @param bool &$success Set to TRUE in success and FALSE in failure.
+ * @return mixed|false The stored variable or array of variables on success; FALSE on failure.
+ */
+function apcu_fetch($key, &$success = null){}
+
+/**
+ * Removes a stored variable from the cache
+ * @link https://php.net/manual/en/function.apcu-delete.php
+ * @param string|string[]|APCuIterator $key The key used to store the value (with apcu_store()).
+ * @return bool|string[] Returns TRUE on success or FALSE on failure. For array of keys returns list of failed keys.
+ */
+function apcu_delete($key){}
+
+/**
+ * Caches a variable in the data store, only if it's not already stored
+ * @link https://php.net/manual/en/function.apcu-add.php
+ * @param string|array $key Store the variable using this name. Keys are cache-unique,
+ * so attempting to use apcu_add() to store data with a key that already exists will not
+ * overwrite the existing data, and will instead return FALSE. (This is the only difference
+ * between apcu_add() and apcu_store().)
+ * Array: Names in key, variables in value.
+ * @param mixed $var The variable to store
+ * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed,
+ * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied
+ * (or if the ttl is 0), the value will persist until it is removed from the cache manually,
+ * or otherwise fails to exist in the cache (clear, restart, etc.).
+ * @return bool|array Returns TRUE if something has effectively been added into the cache, FALSE otherwise.
+ * Second syntax returns array with error keys.
+ */
+function apcu_add($key, $var, $ttl = 0){}
+
+/**
+ * Checks if APCu key exists
+ * @link https://php.net/manual/en/function.apcu-exists.php
+ * @param string|string[] $keys A string, or an array of strings, that contain keys.
+ * @return bool|string[] Returns TRUE if the key exists, otherwise FALSE
+ * Or if an array was passed to keys, then an array is returned that
+ * contains all existing keys, or an empty array if none exist.
+ */
+function apcu_exists($keys){}
+
+/**
+ * Increase a stored number
+ * @link https://php.net/manual/en/function.apcu-inc.php
+ * @param string $key The key of the value being increased.
+ * @param int $step The step, or value to increase.
+ * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed,
+ * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied
+ * (or if the ttl is 0), the value will persist until it is removed from the cache manually,
+ * or otherwise fails to exist in the cache (clear, restart, etc.).
+ * @param bool &$success Optionally pass the success or fail boolean value to this referenced variable.
+ * @return int|false Returns the current value of key's value on success, or FALSE on failure.
+ */
+function apcu_inc($key, $step = 1, &$success = null, $ttl = 0){}
+
+/**
+ * Decrease a stored number
+ * @link https://php.net/manual/en/function.apcu-dec.php
+ * @param string $key The key of the value being decreased.
+ * @param int $step The step, or value to decrease.
+ * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed,
+ * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied
+ * (or if the ttl is 0), the value will persist until it is removed from the cache manually,
+ * or otherwise fails to exist in the cache (clear, restart, etc.).
+ * @param bool &$success Optionally pass the success or fail boolean value to this referenced variable.
+ * @return int|false Returns the current value of key's value on success, or FALSE on failure.
+ */
+function apcu_dec($key, $step = 1, &$success = null, $ttl = 0){}
+
+/**
+ * Updates an old value with a new value
+ *
+ * apcu_cas() updates an already existing integer value if the old parameter matches the currently stored value
+ * with the value of the new parameter.
+ *
+ * @link https://php.net/manual/en/function.apcu-cas.php
+ * @param string $key The key of the value being updated.
+ * @param int $old The old value (the value currently stored).
+ * @param int $new The new value to update to.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function apcu_cas($key, $old, $new){}
+
+/**
+ * Atomically fetch or generate a cache entry
+ *
+ *
Atomically attempts to find key in the cache, if it cannot be found generator is called,
+ * passing key as the only argument. The return value of the call is then cached with the optionally
+ * specified ttl, and returned.
+ *
+ *
+ *
Note: When control enters apcu_entry() the lock for the cache is acquired exclusively, it is released when
+ * control leaves apcu_entry(): In effect, this turns the body of generator into a critical section,
+ * disallowing two processes from executing the same code paths concurrently.
+ * In addition, it prohibits the concurrent execution of any other APCu functions,
+ * since they will acquire the same lock.
+ *
+ *
+ * @link https://php.net/manual/en/function.apcu-entry.php
+ *
+ * @param string $key Identity of cache entry
+ * @param callable $generator A callable that accepts key as the only argument and returns the value to cache.
+ *
Warning
+ * The only APCu function that can be called safely by generator is apcu_entry().
+ * @param int $ttl [optional] Time To Live; store var in the cache for ttl seconds.
+ * After the ttl has passed, the stored variable will be expunged from the cache (on the next request).
+ * If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually,
+ * or otherwise fails to exist in the cache (clear, restart, etc.).
+ * @return mixed Returns the cached value
+ * @since APCu 5.1.0
+ */
+function apcu_entry($key, callable $generator, $ttl = 0){}
+
+/**
+ * Retrieves cached information from APCu's data store
+ *
+ * @link https://php.net/manual/en/function.apcu-cache-info.php
+ *
+ * @param bool $limited If limited is TRUE, the return value will exclude the individual list of cache entries.
+ * This is useful when trying to optimize calls for statistics gathering.
+ * @return array|false Array of cached data (and meta-data) or FALSE on failure
+ */
+function apcu_cache_info($limited = false){}
+
+/**
+ * Whether APCu is usable in the current environment
+ *
+ * @link https://www.php.net/manual/en/function.apcu-enabled.php
+ *
+ * @return bool
+ */
+function apcu_enabled(){}
+
+/**
+ * @param string $key
+ * @return array|null
+ */
+function apcu_key_info($key){}
+
+/**
+ * The APCuIterator class
+ *
+ * The APCuIterator class makes it easier to iterate over large APCu caches.
+ * This is helpful as it allows iterating over large caches in steps, while grabbing a defined number
+ * of entries per lock instance, so it frees the cache locks for other activities rather than hold up
+ * the entire cache to grab 100 (the default) entries. Also, using regular expression matching is more
+ * efficient as it's been moved to the C level.
+ *
+ * @link https://php.net/manual/en/class.apcuiterator.php
+ * @since APCu 5.0.0
+ */
+class APCuIterator implements Iterator
+{
+ /**
+ * Constructs an APCuIterator iterator object
+ * @link https://php.net/manual/en/apcuiterator.construct.php
+ * @param string|string[]|null $search A PCRE regular expression that matches against APCu key names,
+ * either as a string for a single regular expression, or as an array of regular expressions.
+ * Or, optionally pass in NULL to skip the search.
+ * @param int $format The desired format, as configured with one ore more of the APC_ITER_* constants.
+ * @param int $chunk_size The chunk size. Must be a value greater than 0. The default value is 100.
+ * @param int $list The type to list. Either pass in APC_LIST_ACTIVE or APC_LIST_DELETED.
+ */
+ public function __construct($search = null, $format = APC_ITER_ALL, $chunk_size = 100, $list = APC_LIST_ACTIVE){}
+
+ /**
+ * Rewinds back the iterator to the first element
+ * @link https://php.net/manual/en/apcuiterator.rewind.php
+ */
+ public function rewind(){}
+
+ /**
+ * Checks if the current iterator position is valid
+ * @link https://php.net/manual/en/apcuiterator.valid.php
+ * @return bool Returns TRUE if the current iterator position is valid, otherwise FALSE.
+ */
+ public function valid(){}
+
+ /**
+ * Gets the current item from the APCuIterator stack
+ * @link https://php.net/manual/en/apcuiterator.current.php
+ * @return mixed|false Returns the current item on success, or FALSE if no more items or exist, or on failure.
+ */
+ public function current(){}
+
+ /**
+ * Gets the current iterator key
+ * @link https://php.net/manual/en/apcuiterator.key.php
+ * @return string|int|false Returns the key on success, or FALSE upon failure.
+ */
+ public function key(){}
+
+ /**
+ * Moves the iterator pointer to the next element
+ * @link https://php.net/manual/en/apcuiterator.next.php
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function next(){}
+
+ /**
+ * Gets the total number of cache hits
+ * @link https://php.net/manual/en/apcuiterator.gettotalhits.php
+ * @return int|false The number of hits on success, or FALSE on failure.
+ */
+ public function getTotalHits(){}
+
+ /**
+ * Gets the total cache size
+ * @link https://php.net/manual/en/apcuiterator.gettotalsize.php
+ * @return int|false The total cache size.
+ */
+ public function getTotalSize(){}
+
+ /**
+ * Get the total count
+ * @link https://php.net/manual/en/apcuiterator.gettotalcount.php
+ * @return int|false The total count.
+ */
+ public function getTotalCount(){}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/bcmath/bcmath.php b/vendor/jetbrains/phpstorm-stubs/bcmath/bcmath.php
new file mode 100644
index 0000000000..b06357bb84
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/bcmath/bcmath.php
@@ -0,0 +1,211 @@
+
+ * The left operand, as a string.
+ *
+ * @param string $num2
+ * The right operand, as a string.
+ *
+ * @param int|null $scale [optional]
+ * This optional parameter is used to set the number of digits after the
+ * decimal place in the result. If omitted, it will default to the scale
+ * set globally with the {@link bcscale()} function, or fallback to 0 if
+ * this has not been set.
+ *
+ * @return string The sum of the two operands, as a string.
+ */
+#[Pure]
+function bcadd (string $num1, string $num2, ?int $scale = 0): string
+{}
+
+/**
+ * Subtract one arbitrary precision number from another
+ * @link https://php.net/manual/en/function.bcsub.php
+ * @param string $num1
+ * The left operand, as a string.
+ *
+ * @param string $num2
+ * The right operand, as a string.
+ *
+ * @param int|null $scale [optional]
+ * This optional parameter is used to set the number of digits after the
+ * decimal place in the result. If omitted, it will default to the scale
+ * set globally with the {@link bcscale()} function, or fallback to 0 if
+ * this has not been set.
+ *
+ * @return string The result of the subtraction, as a string.
+ */
+#[Pure]
+function bcsub (string $num1, string $num2, ?int $scale = 0): string
+{}
+
+/**
+ * Multiply two arbitrary precision numbers
+ * @link https://php.net/manual/en/function.bcmul.php
+ * @param string $num1
+ * The left operand, as a string.
+ *
+ * @param string $num2
+ * The right operand, as a string.
+ *
+ * @param int|null $scale [optional]
+ * This optional parameter is used to set the number of digits after the
+ * decimal place in the result. If omitted, it will default to the scale
+ * set globally with the {@link bcscale()} function, or fallback to 0 if
+ * this has not been set.
+ *
+ * @return string the result as a string.
+ */
+#[Pure]
+function bcmul (string $num1, string $num2, ?int $scale = 0): string
+{}
+
+/**
+ * Divide two arbitrary precision numbers
+ * @link https://php.net/manual/en/function.bcdiv.php
+ * @param string $num1
+ * The dividend, as a string.
+ *
+ * @param string $num2
+ * The divisor, as a string.
+ *
+ * @param int|null $scale [optional]
+ * This optional parameter is used to set the number of digits after the
+ * decimal place in the result. If omitted, it will default to the scale
+ * set globally with the {@link bcscale()} function, or fallback to 0 if
+ * this has not been set.
+ *
+ * @return string|null the result of the division as a string, or NULL if
+ * divisor is 0.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "?string")]
+function bcdiv (string $num1, string $num2, ?int $scale = 0)
+{}
+
+/**
+ * Get modulus of an arbitrary precision number
+ * @link https://php.net/manual/en/function.bcmod.php
+ * @param string $num1
+ * The dividend, as a string. Since PHP 7.2, the divided is no longer truncated to an integer.
+ *
+ * @param string $num2
+ * The divisor, as a string. Since PHP 7.2, the divisor is no longer truncated to an integer.
+ *
+ * @param int|null $scale [optional]
+ * This optional parameter is used to set the number of digits after the
+ * decimal place in the result. If omitted, it will default to the scale
+ * set globally with the {@link bcscale()} function, or fallback to 0 if
+ * this has not been set. Available since PHP 7.2.
+ *
+ * @return string|null the modulus as a string, or NULL if
+ * divisor is 0.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "?string")]
+function bcmod (string $num1, string $num2, ?int $scale = 0)
+{}
+
+/**
+ * Raise an arbitrary precision number to another
+ * @link https://php.net/manual/en/function.bcpow.php
+ * @param string $num
+ * The base, as a string.
+ *
+ * @param string $exponent
+ * The exponent, as a string. If the exponent is non-integral, it is truncated.
+ * The valid range of the exponent is platform specific, but is at least
+ * -2147483648 to 2147483647.
+ *
+ * @param int|null $scale [optional]
+ * This optional parameter is used to set the number of digits after the
+ * decimal place in the result. If omitted, it will default to the scale
+ * set globally with the {@link bcscale()} function, or fallback to 0 if
+ * this has not been set.
+ *
+ * @return string the result as a string.
+ */
+#[Pure]
+function bcpow (string $num, string $exponent, ?int $scale = 0): string
+{}
+
+/**
+ * Get the square root of an arbitrary precision number
+ * @link https://php.net/manual/en/function.bcsqrt.php
+ * @param string $num
+ * The operand, as a string.
+ *
+ * @param int|null $scale [optional]
+ * @return string|null the square root as a string, or NULL if
+ * operand is negative.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "?string")]
+function bcsqrt (string $num, ?int $scale)
+{}
+
+/**
+ * Set default scale parameter for all bc math functions
+ * @link https://php.net/manual/en/function.bcscale.php
+ * @param int|null $scale
+ * The scale factor. Since 7.3.0 can be omitted.
+ *
+ * @return int|true INT since 7.3.0 and TRUE before.
+ */
+function bcscale (?int $scale): int
+{}
+
+/**
+ * Compare two arbitrary precision numbers
+ * @link https://php.net/manual/en/function.bccomp.php
+ * @param string $num1
+ * The left operand, as a string.
+ *
+ * @param string $num2
+ * The right operand, as a string.
+ *
+ * @param int|null $scale [optional]
+ * The optional scale parameter is used to set the
+ * number of digits after the decimal place which will be used in the
+ * comparison.
+ *
+ * @return int 0 if the two operands are equal, 1 if the
+ * left_operand is larger than the
+ * right_operand, -1 otherwise.
+ */
+#[Pure]
+function bccomp (string $num1, string $num2, ?int $scale = 0): int
+{}
+
+/**
+ * Raise an arbitrary precision number to another, reduced by a specified modulus
+ * @link https://php.net/manual/en/function.bcpowmod.php
+ * @param string $num
+ * The base, as an integral string (i.e. the scale has to be zero).
+ *
+ * @param string $exponent
+ * The exponent, as an non-negative, integral string (i.e. the scale has to be
+ * zero).
+ *
+ * @param string $modulus
+ * The modulus, as an integral string (i.e. the scale has to be zero).
+ *
+ * @param int|null $scale [optional]
+ * This optional parameter is used to set the number of digits after the
+ * decimal place in the result. If omitted, it will default to the scale
+ * set globally with the {@link bcscale()} function, or fallback to 0 if
+ * this has not been set.
+ *
+ * @return string|null the result as a string, or NULL if modulus
+ * is 0 or exponent is negative.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "?string")]
+function bcpowmod (string $num, string $exponent, string $modulus, ?int $scale = 0)
+{}
diff --git a/vendor/jetbrains/phpstorm-stubs/blackfire/blackfire.php b/vendor/jetbrains/phpstorm-stubs/blackfire/blackfire.php
new file mode 100644
index 0000000000..ad677f9ccf
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/blackfire/blackfire.php
@@ -0,0 +1,107 @@
+
+ * The name of the file to open, or an existing stream resource.
+ *
+ * @param string $mode
+ * Similar to the fopen function, only 'r' (read)
+ * and 'w' (write) are supported. Everything else will cause bzopen
+ * to return FALSE.
+ *
+ * @return resource|false If the open fails, bzopen returns FALSE, otherwise
+ * it returns a pointer to the newly opened file.
+ */
+#[Pure]
+function bzopen ($file, string $mode) {}
+
+/**
+ * Binary safe bzip2 file read
+ * @link https://php.net/manual/en/function.bzread.php
+ * @param resource $bz
+ * The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ *
+ * @param int $length [optional]
+ * If not specified, bzread will read 1024
+ * (uncompressed) bytes at a time. A maximum of 8192
+ * uncompressed bytes will be read at a time.
+ *
+ * @return string the uncompressed data, or FALSE on error.
+ */
+function bzread ($bz, int $length = 1024): string|false {}
+
+/**
+ * Binary safe bzip2 file write
+ * @link https://php.net/manual/en/function.bzwrite.php
+ * @param resource $bz
+ * The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ *
+ * @param string $data
+ * The written data.
+ *
+ * @param int|null $length [optional]
+ * If supplied, writing will stop after length
+ * (uncompressed) bytes have been written or the end of
+ * data is reached, whichever comes first.
+ *
+ * @return int the number of bytes written, or FALSE on error.
+ */
+function bzwrite ($bz, string $data, ?int $length): int|false
+{}
+
+/**
+ * Force a write of all buffered data
+ * @link https://php.net/manual/en/function.bzflush.php
+ * @param resource $bz
+ * The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function bzflush ($bz): bool {}
+
+/**
+ * Close a bzip2 file
+ * @link https://php.net/manual/en/function.bzclose.php
+ * @param resource $bz
+ * The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function bzclose ($bz): bool
+{}
+
+/**
+ * Returns a bzip2 error number
+ * @link https://php.net/manual/en/function.bzerrno.php
+ * @param resource $bz
+ * The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ *
+ * @return int the error number as an integer.
+ */
+#[Pure]
+function bzerrno ($bz): int
+{}
+
+/**
+ * Returns a bzip2 error string
+ * @link https://php.net/manual/en/function.bzerrstr.php
+ * @param resource $bz
+ * The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ *
+ * @return string a string containing the error message.
+ */
+#[Pure]
+function bzerrstr ($bz): string
+{}
+
+/**
+ * Returns the bzip2 error number and error string in an array
+ * @link https://php.net/manual/en/function.bzerror.php
+ * @param resource $bz
+ * The file pointer. It must be valid and must point to a file
+ * successfully opened by bzopen.
+ *
+ * @return array an associative array, with the error code in the
+ * errno entry, and the error message in the
+ * errstr entry.
+ */
+#[Pure]
+function bzerror ($bz): array
+{}
+
+/**
+ * Compress a string into bzip2 encoded data
+ * @link https://php.net/manual/en/function.bzcompress.php
+ * @param string $data
+ * The string to compress.
+ *
+ * @param int $block_size [optional]
+ * Specifies the blocksize used during compression and should be a number
+ * from 1 to 9 with 9 giving the best compression, but using more
+ * resources to do so.
+ *
+ * @param int $work_factor [optional]
+ * Controls how the compression phase behaves when presented with worst
+ * case, highly repetitive, input data. The value can be between 0 and
+ * 250 with 0 being a special case.
+ *
+ *
+ * Regardless of the workfactor, the generated
+ * output is the same.
+ *
+ * @return string|int The compressed string, or an error number if an error occurred.
+ */
+#[Pure]
+function bzcompress (string $data, int $block_size = 4, int $work_factor = 0): string|int {}
+
+/**
+ * Decompresses bzip2 encoded data
+ * @link https://php.net/manual/en/function.bzdecompress.php
+ * @param string $data
+ * The string to decompress.
+ *
+ * @param bool $use_less_memory [optional]
+ * If TRUE, an alternative decompression algorithm will be used which
+ * uses less memory (the maximum memory requirement drops to around 2300K)
+ * but works at roughly half the speed.
+ *
+ *
+ * See the bzip2 documentation for more
+ * information about this feature.
+ *
+ * @return string|int|false The decompressed string, or an error number if an error occurred.
+ */
+#[Pure]
+function bzdecompress (string $data, bool $use_less_memory): string|int|false {}
diff --git a/vendor/jetbrains/phpstorm-stubs/calendar/calendar.php b/vendor/jetbrains/phpstorm-stubs/calendar/calendar.php
new file mode 100644
index 0000000000..8ab1d117c7
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/calendar/calendar.php
@@ -0,0 +1,318 @@
+
+ * A julian day number as integer
+ *
+ * @return string The gregorian date as a string in the form "month/day/year"
+ */
+function jdtogregorian (int $julian_day): string
+{}
+
+/**
+ * Converts a Gregorian date to Julian Day Count
+ * @link https://php.net/manual/en/function.gregoriantojd.php
+ * @param int $month
+ * The month as a number from 1 (for January) to 12 (for December)
+ *
+ * @param int $day
+ * The day as a number from 1 to 31
+ *
+ * @param int $year
+ * The year as a number between -4714 and 9999
+ *
+ * @return int The julian day for the given gregorian date as an integer.
+ */
+function gregoriantojd (int $month, int $day, int $year): int
+{}
+
+/**
+ * Converts a Julian Day Count to a Julian Calendar Date
+ * @link https://php.net/manual/en/function.jdtojulian.php
+ * @param int $julian_day
+ * A julian day number as integer
+ *
+ * @return string The julian date as a string in the form "month/day/year"
+ */
+function jdtojulian (int $julian_day): string
+{}
+
+/**
+ * Converts a Julian Calendar date to Julian Day Count
+ * @link https://php.net/manual/en/function.juliantojd.php
+ * @param int $month
+ * The month as a number from 1 (for January) to 12 (for December)
+ *
+ * @param int $day
+ * The day as a number from 1 to 31
+ *
+ * @param int $year
+ * The year as a number between -4713 and 9999
+ *
+ * @return int The julian day for the given julian date as an integer.
+ */
+function juliantojd (int $month, int $day, int $year): int
+{}
+
+/**
+ * Converts a Julian day count to a Jewish calendar date
+ * @link https://php.net/manual/en/function.jdtojewish.php
+ * @param int $julian_day
+ * @param bool $hebrew [optional]
+ * If the hebrew parameter is set to TRUE, the
+ * fl parameter is used for Hebrew, string based,
+ * output format.
+ *
+ * @param int $flags [optional]
+ * The available formats are:
+ * CAL_JEWISH_ADD_ALAFIM_GERESH,
+ * CAL_JEWISH_ADD_ALAFIM,
+ * CAL_JEWISH_ADD_GERESHAYIM.
+ *
+ * @return string The jewish date as a string in the form "month/day/year"
+ */
+function jdtojewish (int $julian_day, bool $hebrew = false, int $flags = 0): string
+{}
+
+/**
+ * Converts a date in the Jewish Calendar to Julian Day Count
+ * @link https://php.net/manual/en/function.jewishtojd.php
+ * @param int $month
+ * The month as a number from 1 to 13
+ *
+ * @param int $day
+ * The day as a number from 1 to 30
+ *
+ * @param int $year
+ * The year as a number between 1 and 9999
+ *
+ * @return int The julian day for the given jewish date as an integer.
+ */
+function jewishtojd (int $month, int $day, int $year): int
+{}
+
+/**
+ * Converts a Julian Day Count to the French Republican Calendar
+ * @link https://php.net/manual/en/function.jdtofrench.php
+ * @param int $julian_day
+ * @return string The french revolution date as a string in the form "month/day/year"
+ */
+function jdtofrench (int $julian_day): string
+{}
+
+/**
+ * Converts a date from the French Republican Calendar to a Julian Day Count
+ * @link https://php.net/manual/en/function.frenchtojd.php
+ * @param int $month
+ * The month as a number from 1 (for Vendémiaire) to 13 (for the period of 5-6 days at the end of each year)
+ *
+ * @param int $day
+ * The day as a number from 1 to 30
+ *
+ * @param int $year
+ * The year as a number between 1 and 14
+ *
+ * @return int The julian day for the given french revolution date as an integer.
+ */
+function frenchtojd (int $month, int $day, int $year): int
+{}
+
+/**
+ * Returns the day of the week
+ * @link https://php.net/manual/en/function.jddayofweek.php
+ * @param int $julian_day
+ * A julian day number as integer
+ *
+ * @param int $mode [optional]
+ * Calendar week modes
+ *
+ *
Mode
+ *
Meaning
+ *
+ *
+ *
0 (Default)
+ *
+ * Return the day number as an int (0=Sunday, 1=Monday, etc)
+ *
+ *
+ *
+ *
1
+ *
+ * Returns string containing the day of week
+ * (English-Gregorian)
+ *
+ *
+ *
+ *
2
+ *
+ * Return a string containing the abbreviated day of week
+ * (English-Gregorian)
+ *
+ *
+ *
+ * @return string|int The gregorian weekday as either an integer or string.
+ */
+function jddayofweek (int $julian_day, int $mode = CAL_DOW_DAYNO): string|int
+{}
+
+/**
+ * Returns a month name
+ * @link https://php.net/manual/en/function.jdmonthname.php
+ * @param int $julian_day
+ * @param int $mode
+ * @return string The month name for the given Julian Day and calendar.
+ */
+function jdmonthname (int $julian_day, int $mode): string
+{}
+
+/**
+ * Get Unix timestamp for midnight on Easter of a given year
+ * @link https://php.net/manual/en/function.easter-date.php
+ * @param int|null $year [optional]
+ * The year as a number between 1970 an 2037
+ *
+ * @param int $mode [optional] Allows Easter dates to be calculated based on the Julian calendar when set to CAL_EASTER_ALWAYS_JULIAN
+ * @return int The easter date as a unix timestamp.
+ */
+function easter_date (?int $year, int $mode = CAL_EASTER_DEFAULT): int
+{}
+
+/**
+ * Get number of days after March 21 on which Easter falls for a given year
+ * @link https://php.net/manual/en/function.easter-days.php
+ * @param int|null $year [optional]
+ * The year as a positive number
+ *
+ * @param int $mode [optional]
+ * Allows to calculate easter dates based
+ * on the Gregorian calendar during the years 1582 - 1752 when set to
+ * CAL_EASTER_ROMAN. See the calendar constants for more valid
+ * constants.
+ *
+ * @return int The number of days after March 21st that the Easter Sunday
+ * is in the given year.
+ */
+function easter_days (?int $year, int $mode = CAL_EASTER_DEFAULT): int
+{}
+
+/**
+ * Convert Unix timestamp to Julian Day
+ * @link https://php.net/manual/en/function.unixtojd.php
+ * @param int|null $timestamp [optional] defaults to time()
+ * A unix timestamp to convert.
+ *
+ * @return int|false A julian day number as integer.
+ */
+function unixtojd (?int $timestamp = 0): int|false
+{}
+
+/**
+ * Convert Julian Day to Unix timestamp
+ * @link https://php.net/manual/en/function.jdtounix.php
+ * @param int $julian_day
+ * A julian day number between 2440588 and 2465342.
+ *
+ * @return int The unix timestamp for the start of the given julian day.
+ */
+function jdtounix (int $julian_day): int
+{}
+
+/**
+ * Converts from a supported calendar to Julian Day Count
+ * @link https://php.net/manual/en/function.cal-to-jd.php
+ * @param int $calendar
+ * Calendar to convert from, one of
+ * CAL_GREGORIAN,
+ * CAL_JULIAN,
+ * CAL_JEWISH or
+ * CAL_FRENCH.
+ *
+ * @param int $month
+ * The month as a number, the valid range depends
+ * on the calendar
+ *
+ * @param int $day
+ * The day as a number, the valid range depends
+ * on the calendar
+ *
+ * @param int $year
+ * The year as a number, the valid range depends
+ * on the calendar
+ *
+ * @return int A Julian Day number.
+ */
+function cal_to_jd (int $calendar, int $month, int $day, int $year): int
+{}
+
+/**
+ * Converts from Julian Day Count to a supported calendar
+ * @link https://php.net/manual/en/function.cal-from-jd.php
+ * @param int $julian_day
+ * Julian day as integer
+ *
+ * @param int $calendar
+ * Calendar to convert to
+ *
+ * @return array an array containing calendar information like month, day, year,
+ * day of week, abbreviated and full names of weekday and month and the
+ * date in string form "month/day/year".
+ */
+function cal_from_jd (int $julian_day, int $calendar): array
+{}
+
+/**
+ * Return the number of days in a month for a given year and calendar
+ * @link https://php.net/manual/en/function.cal-days-in-month.php
+ * @param int $calendar
+ * Calendar to use for calculation
+ *
+ * @param int $month
+ * Month in the selected calendar
+ *
+ * @param int $year
+ * Year in the selected calendar
+ *
+ * @return int The length in days of the selected month in the given calendar
+ */
+function cal_days_in_month (int $calendar, int $month, int $year): int
+{}
+
+/**
+ * Returns information about a particular calendar
+ * @link https://php.net/manual/en/function.cal-info.php
+ * @param int $calendar [optional]
+ * Calendar to return information for. If no calendar is specified
+ * information about all calendars is returned.
+ *
+ * @return array
+ */
+function cal_info (int $calendar = -1): array
+{}
+
+define ('CAL_GREGORIAN', 0);
+define ('CAL_JULIAN', 1);
+define ('CAL_JEWISH', 2);
+define ('CAL_FRENCH', 3);
+define ('CAL_NUM_CALS', 4);
+define ('CAL_DOW_DAYNO', 0);
+define ('CAL_DOW_SHORT', 2);
+define ('CAL_DOW_LONG', 1);
+define ('CAL_MONTH_GREGORIAN_SHORT', 0);
+define ('CAL_MONTH_GREGORIAN_LONG', 1);
+define ('CAL_MONTH_JULIAN_SHORT', 2);
+define ('CAL_MONTH_JULIAN_LONG', 3);
+define ('CAL_MONTH_JEWISH', 4);
+define ('CAL_MONTH_FRENCH', 5);
+define ('CAL_EASTER_DEFAULT', 0);
+define ('CAL_EASTER_ROMAN', 1);
+define ('CAL_EASTER_ALWAYS_GREGORIAN', 2);
+define ('CAL_EASTER_ALWAYS_JULIAN', 3);
+define ('CAL_JEWISH_ADD_ALAFIM_GERESH', 2);
+define ('CAL_JEWISH_ADD_ALAFIM', 4);
+define ('CAL_JEWISH_ADD_GERESHAYIM', 8);
+
+// End of calendar v.
diff --git a/vendor/jetbrains/phpstorm-stubs/cassandra/cassandra.php b/vendor/jetbrains/phpstorm-stubs/cassandra/cassandra.php
new file mode 100644
index 0000000000..5e8238bfdd
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/cassandra/cassandra.php
@@ -0,0 +1,8136 @@
+
+ * @link https://github.com/soulshockers/cassandra-phpdoc
+ */
+
+/**
+ * Copyright 2019 DataStax, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace {
+
+ /**
+ * The main entry point to the PHP Driver for Apache Cassandra.
+ *
+ * Use Cassandra::cluster() to build a cluster instance.
+ * Use Cassandra::ssl() to build SSL options instance.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/
+ */
+ final class Cassandra
+ {
+
+ /**
+ * Consistency level ANY means the request is fulfilled as soon as the data
+ * has been written on the Coordinator. Requests with this consistency level
+ * are not guaranteed to make it to Replica nodes.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_ANY
+ */
+ const CONSISTENCY_ANY = 0;
+
+ /**
+ * Consistency level ONE guarantees that data has been written to at least
+ * one Replica node.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_ONE
+ */
+ const CONSISTENCY_ONE = 1;
+
+ /**
+ * Consistency level TWO guarantees that data has been written to at least
+ * two Replica nodes.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_TWO
+ */
+ const CONSISTENCY_TWO = 2;
+
+ /**
+ * Consistency level THREE guarantees that data has been written to at least
+ * three Replica nodes.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_THREE
+ */
+ const CONSISTENCY_THREE = 3;
+
+ /**
+ * Consistency level QUORUM guarantees that data has been written to at least
+ * the majority of Replica nodes. How many nodes exactly are a majority
+ * depends on the replication factor of a given keyspace and is calculated
+ * using the formula `ceil(RF / 2 + 1)`, where `ceil` is a mathematical
+ * ceiling function and `RF` is the replication factor used. For example,
+ * for a replication factor of `5`, the majority is `ceil(5 / 2 + 1) = 3`.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_QUORUM
+ */
+ const CONSISTENCY_QUORUM = 4;
+
+ /**
+ * Consistency level ALL guarantees that data has been written to all
+ * Replica nodes.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_ALL
+ */
+ const CONSISTENCY_ALL = 5;
+
+ /**
+ * Same as `CONSISTENCY_QUORUM`, but confined to the local data center. This
+ * consistency level works only with `NetworkTopologyStrategy` replication.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_LOCAL_QUORUM
+ */
+ const CONSISTENCY_LOCAL_QUORUM = 6;
+
+ /**
+ * Consistency level EACH_QUORUM guarantees that data has been written to at
+ * least a majority Replica nodes in all datacenters. This consistency level
+ * works only with `NetworkTopologyStrategy` replication.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_EACH_QUORUM
+ */
+ const CONSISTENCY_EACH_QUORUM = 7;
+
+ /**
+ * This is a serial consistency level, it is used in conditional updates,
+ * e.g. (`CREATE|INSERT ... IF NOT EXISTS`), and should be specified as the
+ * `serial_consistency` execution option when invoking `session.execute`
+ * or `session.execute_async`.
+ *
+ * Consistency level SERIAL, when set, ensures that a Paxos commit fails if
+ * any of the replicas is down.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_SERIAL
+ */
+ const CONSISTENCY_SERIAL = 8;
+
+ /**
+ * Same as `CONSISTENCY_SERIAL`, but confined to the local data center. This
+ * consistency level works only with `NetworkTopologyStrategy` replication.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_LOCAL_SERIAL
+ */
+ const CONSISTENCY_LOCAL_SERIAL = 9;
+
+ /**
+ * Same as `CONSISTENCY_ONE`, but confined to the local data center. This
+ * consistency level works only with `NetworkTopologyStrategy` replication.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_LOCAL_ONE
+ */
+ const CONSISTENCY_LOCAL_ONE = 10;
+
+ /**
+ * Perform no verification of nodes when using SSL encryption.
+ *
+ * @see \Cassandra\SSLOptions\Builder::withVerifyFlags()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERIFY_NONE
+ */
+ const VERIFY_NONE = 0;
+
+ /**
+ * Verify presence and validity of SSL certificates.
+ *
+ * @see \Cassandra\SSLOptions\Builder::withVerifyFlags()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERIFY_PEER_CERT
+ */
+ const VERIFY_PEER_CERT = 1;
+
+ /**
+ * Verify that the IP address matches the SSL certificate’s common name or
+ * one of its subject alternative names. This implies the certificate is
+ * also present.
+ *
+ * @see \Cassandra\SSLOptions\Builder::withVerifyFlags()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERIFY_PEER_IDENTITY
+ */
+ const VERIFY_PEER_IDENTITY = 2;
+
+ /**
+ * @see \Cassandra\BatchStatement::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-BATCH_LOGGED
+ */
+ const BATCH_LOGGED = 0;
+
+ /**
+ * @see \Cassandra\BatchStatement::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-BATCH_UNLOGGED
+ */
+ const BATCH_UNLOGGED = 1;
+
+ /**
+ * @see \Cassandra\BatchStatement::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-BATCH_COUNTER
+ */
+ const BATCH_COUNTER = 2;
+
+ /**
+ * Used to disable logging.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_DISABLED
+ */
+ const LOG_DISABLED = 0;
+
+ /**
+ * Allow critical level logging.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_CRITICAL
+ */
+ const LOG_CRITICAL = 1;
+
+ /**
+ * Allow error level logging.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_ERROR
+ */
+ const LOG_ERROR = 2;
+
+ /**
+ * Allow warning level logging.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_WARN
+ */
+ const LOG_WARN = 3;
+
+ /**
+ * Allow info level logging.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_INFO
+ */
+ const LOG_INFO = 4;
+
+ /**
+ * Allow debug level logging.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_DEBUG
+ */
+ const LOG_DEBUG = 5;
+
+ /**
+ * Allow trace level logging.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_TRACE
+ */
+ const LOG_TRACE = 6;
+
+ /**
+ * When using a map, collection or set of type text, all of its elements
+ * must be strings.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TEXT
+ */
+ const TYPE_TEXT = 'text';
+
+ /**
+ * When using a map, collection or set of type ascii, all of its elements
+ * must be strings.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_ASCII
+ */
+ const TYPE_ASCII = 'ascii';
+
+ /**
+ * When using a map, collection or set of type varchar, all of its elements
+ * must be strings.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_VARCHAR
+ */
+ const TYPE_VARCHAR = 'varchar';
+
+ /**
+ * When using a map, collection or set of type bigint, all of its elements
+ * must be instances of Bigint.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_BIGINT
+ */
+ const TYPE_BIGINT = 'bigint';
+
+ /**
+ * When using a map, collection or set of type smallint, all of its elements
+ * must be instances of Inet.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_SMALLINT
+ */
+ const TYPE_SMALLINT = 'smallint';
+
+ /**
+ * When using a map, collection or set of type tinyint, all of its elements
+ * must be instances of Inet.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TINYINT
+ */
+ const TYPE_TINYINT = 'tinyint';
+
+ /**
+ * When using a map, collection or set of type blob, all of its elements
+ * must be instances of Blob.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_BLOB
+ */
+ const TYPE_BLOB = 'blob';
+
+ /**
+ * When using a map, collection or set of type bool, all of its elements
+ * must be boolean.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_BOOLEAN
+ */
+ const TYPE_BOOLEAN = 'boolean';
+
+ /**
+ * When using a map, collection or set of type counter, all of its elements
+ * must be instances of Bigint.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_COUNTER
+ */
+ const TYPE_COUNTER = 'counter';
+
+ /**
+ * When using a map, collection or set of type decimal, all of its elements
+ * must be instances of Decimal.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_DECIMAL
+ */
+ const TYPE_DECIMAL = 'decimal';
+
+ /**
+ * When using a map, collection or set of type double, all of its elements
+ * must be doubles.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_DOUBLE
+ */
+ const TYPE_DOUBLE = 'double';
+
+ /**
+ * When using a map, collection or set of type float, all of its elements
+ * must be instances of Float.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_FLOAT
+ */
+ const TYPE_FLOAT = 'float';
+
+ /**
+ * When using a map, collection or set of type int, all of its elements
+ * must be ints.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_INT
+ */
+ const TYPE_INT = 'int';
+
+ /**
+ * When using a map, collection or set of type timestamp, all of its elements
+ * must be instances of Timestamp.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TIMESTAMP
+ */
+ const TYPE_TIMESTAMP = 'timestamp';
+
+ /**
+ * When using a map, collection or set of type uuid, all of its elements
+ * must be instances of Uuid.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_UUID
+ */
+ const TYPE_UUID = 'uuid';
+
+ /**
+ * When using a map, collection or set of type varint, all of its elements
+ * must be instances of Varint.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_VARINT
+ */
+ const TYPE_VARINT = 'varint';
+
+ /**
+ * When using a map, collection or set of type timeuuid, all of its elements
+ * must be instances of Timeuuid.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TIMEUUID
+ */
+ const TYPE_TIMEUUID = 'timeuuid';
+
+ /**
+ * When using a map, collection or set of type inet, all of its elements
+ * must be instances of Inet.
+ *
+ * @see Set::__construct()
+ * @see Collection::__construct()
+ * @see Map::__construct()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_INET
+ */
+ const TYPE_INET = 'inet';
+
+ /**
+ * The current version of the extension.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERSION
+ */
+ const VERSION = '1.3.2';
+
+ /**
+ * The version of the cpp-driver the extension is compiled against.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CPP_DRIVER_VERSION
+ */
+ const CPP_DRIVER_VERSION = '2.13.0';
+
+ /**
+ * Creates a new cluster builder for constructing a Cluster object.
+ *
+ * @return \Cassandra\Cluster\Builder A cluster builder object with default settings
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#method-cluster
+ */
+ public static function cluster()
+ {
+ }
+
+ /**
+ * Creates a new ssl builder for constructing a SSLOptions object.
+ *
+ * @return \Cassandra\SSLOptions\Builder A SSL options builder with default settings
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#method-ssl
+ */
+ public static function ssl()
+ {
+ }
+
+ }
+
+}
+
+
+/**
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/
+ */
+
+namespace Cassandra {
+
+ use JetBrains\PhpStorm\Deprecated;
+
+ /**
+ * A PHP representation of a column
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/
+ */
+ interface Column
+ {
+
+ /**
+ * Returns the name of the column.
+ *
+ * @return string Name of the column or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-name
+ */
+ public function name();
+
+ /**
+ * Returns the type of the column.
+ *
+ * @return \Cassandra\Type Type of the column
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-type
+ */
+ public function type();
+
+ /**
+ * Returns whether the column is in descending or ascending order.
+ *
+ * @return bool Whether the column is stored in descending order.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-isReversed
+ */
+ public function isReversed();
+
+ /**
+ * Returns true for static columns.
+ *
+ * @return bool Whether the column is static
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-isStatic
+ */
+ public function isStatic();
+
+ /**
+ * Returns true for frozen columns.
+ *
+ * @return bool Whether the column is frozen
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-isFrozen
+ */
+ public function isFrozen();
+
+ /**
+ * Returns name of the index if defined.
+ *
+ * @return string Name of the index if defined or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-indexName
+ */
+ public function indexName();
+
+ /**
+ * Returns index options if present.
+ *
+ * @return string Index options if present or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-indexOptions
+ */
+ public function indexOptions();
+
+ }
+
+ /**
+ * A session is used to prepare and execute statements.
+ *
+ * @see \Cassandra\Cluster::connect()
+ * @see \Cassandra\Cluster::connectAsync()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/
+ */
+ interface Session
+ {
+
+ /**
+ * Execute a query.
+ *
+ * Available execution options:
+ * | Option Name | Option **Type** | Option Details |
+ * |--------------------|-----------------|----------------------------------------------------------------------------------------------------------|
+ * | arguments | array | An array or positional or named arguments |
+ * | consistency | int | A consistency constant e.g Dse::CONSISTENCY_ONE, Dse::CONSISTENCY_QUORUM, etc. |
+ * | timeout | int | A number of rows to include in result for paging |
+ * | paging_state_token | string | A string token use to resume from the state of a previous result set |
+ * | retry_policy | RetryPolicy | A retry policy that is used to handle server-side failures for this request |
+ * | serial_consistency | int | Either Dse::CONSISTENCY_SERIAL or Dse::CONSISTENCY_LOCAL_SERIAL |
+ * | timestamp | int\|string | Either an integer or integer string timestamp that represents the number of microseconds since the epoch |
+ * | execute_as | string | User to execute statement as |
+ *
+ * @param string|\Cassandra\Statement $statement string or statement to be executed.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query.
+ *
+ * @return \Cassandra\Rows A collection of rows.
+ * @throws \Cassandra\Exception
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-execute
+ */
+ public function execute($statement, $options);
+
+ /**
+ * Execute a query asynchronously. This method returns immediately, but
+ * the query continues execution in the background.
+ *
+ * @param string|\Cassandra\Statement $statement string or statement to be executed.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query.
+ *
+ * @return \Cassandra\FutureRows A future that can be used to retrieve the result.
+ *
+ * @see \Cassandra\Session::execute() for valid execution options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-executeAsync
+ */
+ public function executeAsync($statement, $options);
+
+ /**
+ * Prepare a query for execution.
+ *
+ * @param string $cql The query to be prepared.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query.
+ *
+ * @return \Cassandra\PreparedStatement A prepared statement that can be bound with parameters and executed.
+ *
+ * @throws \Cassandra\Exception
+ *
+ * @see \Cassandra\Session::execute() for valid execution options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-prepare
+ */
+ public function prepare($cql, $options);
+
+ /**
+ * Asynchronously prepare a query for execution.
+ *
+ * @param string $cql The query to be prepared.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query.
+ *
+ * @return \Cassandra\FuturePreparedStatement A future that can be used to retrieve the prepared statement.
+ *
+ * @see \Cassandra\Session::execute() for valid execution options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-prepareAsync
+ */
+ public function prepareAsync($cql, $options);
+
+ /**
+ * Close the session and all its connections.
+ *
+ * @param float $timeout The amount of time in seconds to wait for the session to close.
+ *
+ * @return null Nothing.
+ * @throws \Cassandra\Exception
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-close
+ */
+ public function close($timeout);
+
+ /**
+ * Asynchronously close the session and all its connections.
+ *
+ * @return \Cassandra\FutureClose A future that can be waited on.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-closeAsync
+ */
+ public function closeAsync();
+
+ /**
+ * Get performance and diagnostic metrics.
+ *
+ * @return array Performance/Diagnostic metrics.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-metrics
+ */
+ public function metrics();
+
+ /**
+ * Get a snapshot of the cluster's current schema.
+ *
+ * @return \Cassandra\Schema A snapshot of the cluster's schema.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-schema
+ */
+ public function schema();
+
+ }
+
+ /**
+ * A PHP representation of a table
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/
+ */
+ interface Table
+ {
+
+ /**
+ * Returns the name of this table
+ *
+ * @return string Name of the table
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-name
+ */
+ public function name();
+
+ /**
+ * Return a table's option by name
+ *
+ * @param string $name The name of the option
+ *
+ * @return \Cassandra\Value Value of an option by name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-option
+ */
+ public function option($name);
+
+ /**
+ * Returns all the table's options
+ *
+ * @return array A dictionary of `string` and `Value` pairs of the table's options.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-options
+ */
+ public function options();
+
+ /**
+ * Description of the table, if any
+ *
+ * @return string Table description or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-comment
+ */
+ public function comment();
+
+ /**
+ * Returns read repair chance
+ *
+ * @return float Read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-readRepairChance
+ */
+ public function readRepairChance();
+
+ /**
+ * Returns local read repair chance
+ *
+ * @return float Local read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-localReadRepairChance
+ */
+ public function localReadRepairChance();
+
+ /**
+ * Returns GC grace seconds
+ *
+ * @return int GC grace seconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-gcGraceSeconds
+ */
+ public function gcGraceSeconds();
+
+ /**
+ * Returns caching options
+ *
+ * @return string Caching options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-caching
+ */
+ public function caching();
+
+ /**
+ * Returns bloom filter FP chance
+ *
+ * @return float Bloom filter FP chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-bloomFilterFPChance
+ */
+ public function bloomFilterFPChance();
+
+ /**
+ * Returns memtable flush period in milliseconds
+ *
+ * @return int Memtable flush period in milliseconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-memtableFlushPeriodMs
+ */
+ public function memtableFlushPeriodMs();
+
+ /**
+ * Returns default TTL.
+ *
+ * @return int Default TTL.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-defaultTTL
+ */
+ public function defaultTTL();
+
+ /**
+ * Returns speculative retry.
+ *
+ * @return string Speculative retry.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-speculativeRetry
+ */
+ public function speculativeRetry();
+
+ /**
+ * Returns index interval
+ *
+ * @return int Index interval
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-indexInterval
+ */
+ public function indexInterval();
+
+ /**
+ * Returns compaction strategy class name
+ *
+ * @return string Compaction strategy class name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-compactionStrategyClassName
+ */
+ public function compactionStrategyClassName();
+
+ /**
+ * Returns compaction strategy options
+ *
+ * @return \Cassandra\Map Compaction strategy options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-compactionStrategyOptions
+ */
+ public function compactionStrategyOptions();
+
+ /**
+ * Returns compression parameters
+ *
+ * @return \Cassandra\Map Compression parameters
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-compressionParameters
+ */
+ public function compressionParameters();
+
+ /**
+ * Returns whether or not the `populate_io_cache_on_flush` is true
+ *
+ * @return bool Value of `populate_io_cache_on_flush` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-populateIOCacheOnFlush
+ */
+ public function populateIOCacheOnFlush();
+
+ /**
+ * Returns whether or not the `replicate_on_write` is true
+ *
+ * @return bool Value of `replicate_on_write` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-replicateOnWrite
+ */
+ public function replicateOnWrite();
+
+ /**
+ * Returns the value of `max_index_interval`
+ *
+ * @return int Value of `max_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-maxIndexInterval
+ */
+ public function maxIndexInterval();
+
+ /**
+ * Returns the value of `min_index_interval`
+ *
+ * @return int Value of `min_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-minIndexInterval
+ */
+ public function minIndexInterval();
+
+ /**
+ * Returns column by name
+ *
+ * @param string $name Name of the column
+ *
+ * @return \Cassandra\Column Column instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-column
+ */
+ public function column($name);
+
+ /**
+ * Returns all columns in this table
+ *
+ * @return array A list of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-columns
+ */
+ public function columns();
+
+ /**
+ * Returns the partition key columns of the table
+ *
+ * @return array A list of of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-partitionKey
+ */
+ public function partitionKey();
+
+ /**
+ * Returns both the partition and clustering key columns of the table
+ *
+ * @return array A list of of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-primaryKey
+ */
+ public function primaryKey();
+
+ /**
+ * Returns the clustering key columns of the table
+ *
+ * @return array A list of of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-clusteringKey
+ */
+ public function clusteringKey();
+
+ /**
+ * @return array A list of cluster column orders ('asc' and 'desc')
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-clusteringOrder
+ */
+ public function clusteringOrder();
+
+ }
+
+ /**
+ * Interface for retry policies.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.RetryPolicy/
+ */
+ interface RetryPolicy
+ {
+
+ }
+
+ /**
+ * Interface for timestamp generators.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.TimestampGenerator/
+ */
+ interface TimestampGenerator
+ {
+
+ }
+
+ /**
+ * An interface implemented by all exceptions thrown by the PHP Driver.
+ * Makes it easy to catch all driver-related exceptions using
+ * `catch (Exception $e)`.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Exception/
+ */
+ interface Exception
+ {
+
+ }
+
+ /**
+ * A PHP representation of a function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/
+ */
+ interface Function_
+ {
+
+ /**
+ * Returns the full name of the function
+ *
+ * @return string Full name of the function including name and types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-name
+ */
+ public function name();
+
+ /**
+ * Returns the simple name of the function
+ *
+ * @return string Simple name of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-simpleName
+ */
+ public function simpleName();
+
+ /**
+ * Returns the arguments of the function
+ *
+ * @return array Arguments of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-arguments
+ */
+ public function arguments();
+
+ /**
+ * Returns the return type of the function
+ *
+ * @return \Cassandra\Type Return type of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-returnType
+ */
+ public function returnType();
+
+ /**
+ * Returns the signature of the function
+ *
+ * @return string Signature of the function (same as name())
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-signature
+ */
+ public function signature();
+
+ /**
+ * Returns the lanuage of the function
+ *
+ * @return string Language used by the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-language
+ */
+ public function language();
+
+ /**
+ * Returns the body of the function
+ *
+ * @return string Body of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-body
+ */
+ public function body();
+
+ /**
+ * Determines if a function is called when the value is null.
+ *
+ * @return bool Returns whether the function is called when the input columns are null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-isCalledOnNullInput
+ */
+ public function isCalledOnNullInput();
+
+ }
+
+ /**
+ * A PHP representation of the CQL `uuid` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.UuidInterface/
+ */
+ interface UuidInterface
+ {
+
+ /**
+ * Returns this uuid as string.
+ *
+ * @return string uuid as string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.UuidInterface/#method-uuid
+ */
+ public function uuid();
+
+ /**
+ * Returns the version of this uuid.
+ *
+ * @return int version of this uuid
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.UuidInterface/#method-version
+ */
+ public function version();
+
+ }
+
+ /**
+ * A PHP representation of an index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/
+ */
+ interface Index
+ {
+
+ /**
+ * Returns the name of the index
+ *
+ * @return string Name of the index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-name
+ */
+ public function name();
+
+ /**
+ * Returns the kind of index
+ *
+ * @return string Kind of the index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-kind
+ */
+ public function kind();
+
+ /**
+ * Returns the target column of the index
+ *
+ * @return string Target column name of the index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-target
+ */
+ public function target();
+
+ /**
+ * Return a column's option by name
+ *
+ * @param string $name The name of the option
+ *
+ * @return \Cassandra\Value Value of an option by name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-option
+ */
+ public function option($name);
+
+ /**
+ * Returns all the index's options
+ *
+ * @return array A dictionary of `string` and `Value` pairs of the index's options.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-options
+ */
+ public function options();
+
+ /**
+ * Returns the class name of the index
+ *
+ * @return string Class name of a custom index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-className
+ */
+ public function className();
+
+ /**
+ * Determines if the index is a custom index.
+ *
+ * @return bool true if a custom index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-isCustom
+ */
+ public function isCustom();
+
+ }
+
+ /**
+ * Cluster object is used to create Sessions.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Cluster/
+ */
+ interface Cluster
+ {
+
+ /**
+ * Creates a new Session instance.
+ *
+ * @param string $keyspace Optional keyspace name
+ *
+ * @return \Cassandra\Session Session instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Cluster/#method-connect
+ */
+ public function connect($keyspace);
+
+ /**
+ * Creates a new Session instance.
+ *
+ * @param string $keyspace Optional keyspace name
+ *
+ * @return \Cassandra\Future A Future Session instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Cluster/#method-connectAsync
+ */
+ public function connectAsync($keyspace);
+
+ }
+
+ /**
+ * Common interface implemented by all numeric types, providing basic
+ * arithmetic functions.
+ *
+ * @see \Cassandra\Bigint
+ * @see \Cassandra\Decimal
+ * @see \Cassandra\Float_
+ * @see \Cassandra\Varint
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/
+ */
+ interface Numeric
+ {
+
+ /**
+ * @param \Cassandra\Numeric $num a number to add to this one
+ *
+ * @return \Cassandra\Numeric sum
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-add
+ */
+ public function add($num);
+
+ /**
+ * @param \Cassandra\Numeric $num a number to subtract from this one
+ *
+ * @return \Cassandra\Numeric difference
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-sub
+ */
+ public function sub($num);
+
+ /**
+ * @param \Cassandra\Numeric $num a number to multiply this one by
+ *
+ * @return \Cassandra\Numeric product
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-mul
+ */
+ public function mul($num);
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric quotient
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-div
+ */
+ public function div($num);
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric remainder
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-mod
+ */
+ public function mod($num);
+
+ /**
+ * @return \Cassandra\Numeric absolute value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-abs
+ */
+ public function abs();
+
+ /**
+ * @return \Cassandra\Numeric negative value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-neg
+ */
+ public function neg();
+
+ /**
+ * @return \Cassandra\Numeric square root
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-sqrt
+ */
+ public function sqrt();
+
+ /**
+ * @return int this number as int
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-toInt
+ */
+ public function toInt();
+
+ /**
+ * @return float this number as float
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-toDouble
+ */
+ public function toDouble();
+
+ }
+
+ /**
+ * Futures are returns from asynchronous methods.
+ *
+ * @see \Cassandra\Cluster::connectAsync()
+ * @see \Cassandra\Session::executeAsync()
+ * @see \Cassandra\Session::prepareAsync()
+ * @see \Cassandra\Session::closeAsync()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Future/
+ */
+ interface Future
+ {
+
+ /**
+ * Waits for a given future resource to resolve and throws errors if any.
+ *
+ * @param int|float|null $timeout A timeout in seconds
+ *
+ * @return mixed a value that the future has been resolved with
+ * @throws \Cassandra\Exception\TimeoutException
+ *
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Future/#method-get
+ */
+ public function get($timeout);
+
+ }
+
+ /**
+ * A PHP representation of a keyspace
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/
+ */
+ interface Keyspace
+ {
+
+ /**
+ * Returns keyspace name
+ *
+ * @return string Name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-name
+ */
+ public function name();
+
+ /**
+ * Returns replication class name
+ *
+ * @return string Replication class
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-replicationClassName
+ */
+ public function replicationClassName();
+
+ /**
+ * Returns replication options
+ *
+ * @return \Cassandra\Map Replication options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-replicationOptions
+ */
+ public function replicationOptions();
+
+ /**
+ * Returns whether the keyspace has durable writes enabled
+ *
+ * @return string Whether durable writes are enabled
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-hasDurableWrites
+ */
+ public function hasDurableWrites();
+
+ /**
+ * Returns a table by name
+ *
+ * @param string $name Table name
+ *
+ * @return \Cassandra\Table|null Table instance or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-table
+ */
+ public function table($name);
+
+ /**
+ * Returns all tables defined in this keyspace
+ *
+ * @return array An array of `Table` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-tables
+ */
+ public function tables();
+
+ /**
+ * Get user type by name
+ *
+ * @param string $name User type name
+ *
+ * @return \Cassandra\Type\UserType|null A user type or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-userType
+ */
+ public function userType($name);
+
+ /**
+ * Get all user types
+ *
+ * @return array An array of user types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-userTypes
+ */
+ public function userTypes();
+
+ /**
+ * Get materialized view by name
+ *
+ * @param string $name Materialized view name
+ *
+ * @return \Cassandra\MaterizedView|null A materialized view or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-materializedView
+ */
+ public function materializedView($name);
+
+ /**
+ * Gets all materialized views
+ *
+ * @return array An array of materialized views
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-materializedViews
+ */
+ public function materializedViews();
+
+ /**
+ * Get a function by name and signature
+ *
+ * @param string $name Function name
+ * @param string|\Cassandra\Type $params Function arguments
+ *
+ * @return \Cassandra\Function_|null A function or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-function
+ */
+ public function function_($name, ...$params);
+
+ /**
+ * Get all functions
+ *
+ * @return array An array of functions
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-functions
+ */
+ public function functions();
+
+ /**
+ * Get an aggregate by name and signature
+ *
+ * @param string $name Aggregate name
+ * @param string|\Cassandra\Type $params Aggregate arguments
+ *
+ * @return \Cassandra\Aggregate|null An aggregate or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-aggregate
+ */
+ public function aggregate($name, ...$params);
+
+ /**
+ * Get all aggregates
+ *
+ * @return array An array of aggregates
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-aggregates
+ */
+ public function aggregates();
+
+ }
+
+ /**
+ * Common interface implemented by all Cassandra value types.
+ *
+ * @see \Cassandra\Bigint
+ * @see \Cassandra\Smallint
+ * @see \Cassandra\Tinyint
+ * @see \Cassandra\Blob
+ * @see \Cassandra\Collection
+ * @see \Cassandra\Float_
+ * @see \Cassandra\Inet
+ * @see \Cassandra\Map
+ * @see \Cassandra\Set
+ * @see \Cassandra\Timestamp
+ * @see \Cassandra\Timeuuid
+ * @see \Cassandra\Uuid
+ * @see \Cassandra\Varint
+ * @see \Cassandra\Date
+ * @see \Cassandra\Time
+ *
+ * @see \Cassandra\Numeric
+ * @see \Cassandra\UuidInterface
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Value/
+ */
+ interface Value
+ {
+
+ /**
+ * The type of represented by the value.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Value/#method-type
+ */
+ public function type();
+
+ }
+
+ /**
+ * A PHP representation of an aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/
+ */
+ interface Aggregate
+ {
+
+ /**
+ * Returns the full name of the aggregate
+ *
+ * @return string Full name of the aggregate including name and types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-name
+ */
+ public function name();
+
+ /**
+ * Returns the simple name of the aggregate
+ *
+ * @return string Simple name of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-simpleName
+ */
+ public function simpleName();
+
+ /**
+ * Returns the argument types of the aggregate
+ *
+ * @return array Argument types of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-argumentTypes
+ */
+ public function argumentTypes();
+
+ /**
+ * Returns the final function of the aggregate
+ *
+ * @return \Cassandra\Function_ Final function of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-finalFunction
+ */
+ public function finalFunction();
+
+ /**
+ * Returns the state function of the aggregate
+ *
+ * @return \Cassandra\Function_ State function of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-stateFunction
+ */
+ public function stateFunction();
+
+ /**
+ * Returns the initial condition of the aggregate
+ *
+ * @return \Cassandra\Value Initial condition of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-initialCondition
+ */
+ public function initialCondition();
+
+ /**
+ * Returns the return type of the aggregate
+ *
+ * @return \Cassandra\Type Return type of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-returnType
+ */
+ public function returnType();
+
+ /**
+ * Returns the state type of the aggregate
+ *
+ * @return \Cassandra\Type State type of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-stateType
+ */
+ public function stateType();
+
+ /**
+ * Returns the signature of the aggregate
+ *
+ * @return string Signature of the aggregate (same as name())
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-signature
+ */
+ public function signature();
+
+ }
+
+ /**
+ * All statements implement this common interface.
+ *
+ * @see \Cassandra\SimpleStatement
+ * @see \Cassandra\PreparedStatement
+ * @see \Cassandra\BatchStatement
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Statement/
+ */
+ interface Statement
+ {
+
+ }
+
+ /**
+ * A PHP representation of a schema
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Schema/
+ */
+ interface Schema
+ {
+
+ /**
+ * Returns a Keyspace instance by name.
+ *
+ * @param string $name Name of the keyspace to get
+ *
+ * @return \Cassandra\Keyspace Keyspace instance or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Schema/#method-keyspace
+ */
+ public function keyspace($name);
+
+ /**
+ * Returns all keyspaces defined in the schema.
+ *
+ * @return array An array of Keyspace instances.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Schema/#method-keyspaces
+ */
+ public function keyspaces();
+
+ }
+
+ /**
+ * Rows represent a result of statement execution.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/
+ */
+ final class Rows implements \Iterator, \ArrayAccess
+ {
+
+ /**
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-__construct
+ */
+ public function __construct()
+ {
+ }
+
+ /**
+ * Returns the number of rows.
+ *
+ * @return int number of rows
+ *
+ * @see \Countable::count()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-count
+ */
+ public function count()
+ {
+ }
+
+ /**
+ * Resets the rows iterator.
+ *
+ * @return void
+ *
+ * @see \Iterator::rewind()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-rewind
+ */
+ public function rewind()
+ {
+ }
+
+ /**
+ * Returns current row.
+ *
+ * @return array current row
+ *
+ * @see \Iterator::current()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-current
+ */
+ public function current()
+ {
+ }
+
+ /**
+ * Returns current index.
+ *
+ * @return int index
+ *
+ * @see \Iterator::key()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-key
+ */
+ public function key()
+ {
+ }
+
+ /**
+ * Advances the rows iterator by one.
+ *
+ * @return void
+ *
+ * @see \Iterator::next()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-next
+ */
+ public function next()
+ {
+ }
+
+ /**
+ * Returns existence of more rows being available.
+ *
+ * @return bool whether there are more rows available for iteration
+ *
+ * @see \Iterator::valid()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-valid
+ */
+ public function valid()
+ {
+ }
+
+ /**
+ * Returns existence of a given row.
+ *
+ * @param int $offset row index
+ *
+ * @return bool whether a row at a given index exists
+ *
+ * @see \ArrayAccess::offsetExists()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetExists
+ */
+ public function offsetExists($offset)
+ {
+ }
+
+ /**
+ * Returns a row at given index.
+ *
+ * @param int $offset row index
+ *
+ * @return array|null row at a given index
+ *
+ * @see \ArrayAccess::offsetGet()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetGet
+ */
+ public function offsetGet($offset)
+ {
+ }
+
+ /**
+ * Sets a row at given index.
+ *
+ * @param int $offset row index
+ * @param array $value row value
+ *
+ * @return void
+ *
+ * @throws \Cassandra\Exception\DomainException
+ *
+ * @see \ArrayAccess::offsetSet()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetSet
+ */
+ public function offsetSet($offset, $value)
+ {
+ }
+
+ /**
+ * Removes a row at given index.
+ *
+ * @param int $offset row index
+ *
+ * @return void
+ *
+ * @throws \Cassandra\Exception\DomainException
+ *
+ * @see \ArrayAccess::offsetUnset()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetUnset
+ */
+ public function offsetUnset($offset)
+ {
+ }
+
+ /**
+ * Check for the last page when paging.
+ *
+ * @return bool whether this is the last page or not
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-isLastPage
+ */
+ public function isLastPage()
+ {
+ }
+
+ /**
+ * Get the next page of results.
+ *
+ * @param float|null $timeout
+ *
+ * @return \Cassandra\Rows|null loads and returns next result page
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-nextPage
+ */
+ public function nextPage($timeout)
+ {
+ }
+
+ /**
+ * Get the next page of results asynchronously.
+ *
+ * @return \Cassandra\Future returns future of the next result page
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-nextPageAsync
+ */
+ public function nextPageAsync()
+ {
+ }
+
+ /**
+ * Returns the raw paging state token.
+ *
+ * @return string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-pagingStateToken
+ */
+ public function pagingStateToken()
+ {
+ }
+
+ /**
+ * Get the first row.
+ *
+ * @return array|null returns first row if any
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-first
+ */
+ public function first()
+ {
+ }
+
+ }
+
+ /**
+ * Default cluster implementation.
+ *
+ * @see \Cassandra\Cluster
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultCluster/
+ */
+ final class DefaultCluster implements Cluster
+ {
+
+ /**
+ * Creates a new Session instance.
+ *
+ * @param string $keyspace Optional keyspace name
+ * @param int $timeout Optional timeout
+ *
+ * @return \Cassandra\Session Session instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultCluster/#method-connect
+ */
+ public function connect($keyspace, $timeout)
+ {
+ }
+
+ /**
+ * Creates a new Session instance.
+ *
+ * @param string $keyspace Optional keyspace name
+ *
+ * @return \Cassandra\Future A Future Session instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultCluster/#method-connectAsync
+ */
+ public function connectAsync($keyspace)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of a public function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/
+ */
+ final class DefaultFunction implements Function_
+ {
+
+ /**
+ * Returns the full name of the function
+ *
+ * @return string Full name of the function including name and types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns the simple name of the function
+ *
+ * @return string Simple name of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-simpleName
+ */
+ public function simpleName()
+ {
+ }
+
+ /**
+ * Returns the arguments of the function
+ *
+ * @return array Arguments of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-arguments
+ */
+ public function arguments()
+ {
+ }
+
+ /**
+ * Returns the return type of the function
+ *
+ * @return \Cassandra\Type Return type of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-returnType
+ */
+ public function returnType()
+ {
+ }
+
+ /**
+ * Returns the signature of the function
+ *
+ * @return string Signature of the function (same as name())
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-signature
+ */
+ public function signature()
+ {
+ }
+
+ /**
+ * Returns the lanuage of the function
+ *
+ * @return string Language used by the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-language
+ */
+ public function language()
+ {
+ }
+
+ /**
+ * Returns the body of the function
+ *
+ * @return string Body of the function
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-body
+ */
+ public function body()
+ {
+ }
+
+ /**
+ * Determines if a function is called when the value is null.
+ *
+ * @return bool Returns whether the function is called when the input columns are null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-isCalledOnNullInput
+ */
+ public function isCalledOnNullInput()
+ {
+ }
+
+ }
+
+ /**
+ * Simple statements can be executed using a Session instance.
+ * They are constructed with a CQL string that can contain positional
+ * argument markers `?`.
+ *
+ * NOTE: Positional argument are only valid for native protocol v2+.
+ *
+ * @see \Cassandra\Session::execute()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.SimpleStatement/
+ */
+ final class SimpleStatement implements Statement
+ {
+
+ /**
+ * Creates a new simple statement with the provided CQL.
+ *
+ * @param string $cql CQL string for this simple statement
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.SimpleStatement/#method-__construct
+ */
+ public function __construct($cql)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `tuple` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/
+ */
+ final class Tuple implements Value, \Countable, \Iterator
+ {
+
+ /**
+ * Creates a new tuple with the given types.
+ *
+ * @param array $types Array of types
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-__construct
+ */
+ public function __construct($types)
+ {
+ }
+
+ /**
+ * The type of this tuple.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Array of values in this tuple.
+ *
+ * @return array values
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-values
+ */
+ public function values()
+ {
+ }
+
+ /**
+ * Sets the value at index in this tuple .
+ *
+ * @param mixed $value A value or null
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-set
+ */
+ public function set($value)
+ {
+ }
+
+ /**
+ * Retrieves the value at a given index.
+ *
+ * @param int $index Index
+ *
+ * @return mixed A value or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-get
+ */
+ public function get($index)
+ {
+ }
+
+ /**
+ * Total number of elements in this tuple
+ *
+ * @return int count
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-count
+ */
+ public function count()
+ {
+ }
+
+ /**
+ * Current element for iteration
+ *
+ * @return mixed current element
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-current
+ */
+ public function current()
+ {
+ }
+
+ /**
+ * Current key for iteration
+ *
+ * @return int current key
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-key
+ */
+ public function key()
+ {
+ }
+
+ /**
+ * Move internal iterator forward
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-next
+ */
+ public function next()
+ {
+ }
+
+ /**
+ * Check whether a current value exists
+ *
+ * @return bool
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-valid
+ */
+ public function valid()
+ {
+ }
+
+ /**
+ * Rewind internal iterator
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-rewind
+ */
+ public function rewind()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `smallint` datatype.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/
+ */
+ final class Smallint implements Value, Numeric
+ {
+
+ /**
+ * Creates a new 16-bit signed integer.
+ *
+ * @param int|float|string $value The value as an integer, double or string
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-__construct
+ */
+ public function __construct($value)
+ {
+ }
+
+ /**
+ * Minimum possible Smallint value
+ *
+ * @return \Cassandra\Smallint minimum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-min
+ */
+ public static function min()
+ {
+ }
+
+ /**
+ * Maximum possible Smallint value
+ *
+ * @return \Cassandra\Smallint maximum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-max
+ */
+ public static function max()
+ {
+ }
+
+ /**
+ * @return string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this value (smallint).
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns the integer value.
+ *
+ * @return int integer value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-value
+ */
+ public function value()
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to add to this one
+ *
+ * @return \Cassandra\Numeric sum
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-add
+ */
+ public function add($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to subtract from this one
+ *
+ * @return \Cassandra\Numeric difference
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-sub
+ */
+ public function sub($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to multiply this one by
+ *
+ * @return \Cassandra\Numeric product
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-mul
+ */
+ public function mul($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric quotient
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-div
+ */
+ public function div($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric remainder
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-mod
+ */
+ public function mod($num)
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric absolute value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-abs
+ */
+ public function abs()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric negative value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-neg
+ */
+ public function neg()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric square root
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-sqrt
+ */
+ public function sqrt()
+ {
+ }
+
+ /**
+ * @return int this number as int
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-toInt
+ */
+ public function toInt()
+ {
+ }
+
+ /**
+ * @return float this number as float
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-toDouble
+ */
+ public function toDouble()
+ {
+ }
+
+ }
+
+ /**
+ * A future returned from `Session::prepareAsync()`
+ * This future will resolve with a PreparedStatement or an exception.
+ *
+ * @see \Cassandra\Session::prepareAsync()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FuturePreparedStatement/
+ */
+ final class FuturePreparedStatement implements Future
+ {
+
+ /**
+ * Waits for a given future resource to resolve and throws errors if any.
+ *
+ * @param int|float|null $timeout A timeout in seconds
+ *
+ * @return \Cassandra\PreparedStatement A prepared statement
+ * @throws \Cassandra\Exception\TimeoutException
+ *
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FuturePreparedStatement/#method-get
+ */
+ public function get($timeout)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of a schema
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/
+ */
+ final class DefaultSchema implements Schema
+ {
+
+ /**
+ * Returns a Keyspace instance by name.
+ *
+ * @param string $name Name of the keyspace to get
+ *
+ * @return \Cassandra\Keyspace Keyspace instance or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/#method-keyspace
+ */
+ public function keyspace($name)
+ {
+ }
+
+ /**
+ * Returns all keyspaces defined in the schema.
+ *
+ * @return array An array of `Keyspace` instances.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/#method-keyspaces
+ */
+ public function keyspaces()
+ {
+ }
+
+ /**
+ * Get the version of the schema snapshot
+ *
+ * @return int Version of the schema.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/#method-version
+ */
+ public function version()
+ {
+ }
+
+ }
+
+ /**
+ * Batch statements are used to execute a series of simple or prepared
+ * statements.
+ *
+ * There are 3 types of batch statements:
+ * * `Cassandra::BATCH_LOGGED` - this is the default batch type. This batch
+ * guarantees that either all or none of its statements will be executed.
+ * This behavior is achieved by writing a batch log on the coordinator,
+ * which slows down the execution somewhat.
+ * * `Cassandra::BATCH_UNLOGGED` - this batch will not be verified when
+ * executed, which makes it faster than a `LOGGED` batch, but means that
+ * some of its statements might fail, while others - succeed.
+ * * `Cassandra::BATCH_COUNTER` - this batch is used for counter updates,
+ * which are, unlike other writes, not idempotent.
+ *
+ * @see Cassandra::BATCH_LOGGED
+ * @see Cassandra::BATCH_UNLOGGED
+ * @see Cassandra::BATCH_COUNTER
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.BatchStatement/
+ */
+ final class BatchStatement implements Statement
+ {
+
+ /**
+ * Creates a new batch statement.
+ *
+ * @param int $type must be one of Cassandra::BATCH_* (default: Cassandra::BATCH_LOGGED).
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.BatchStatement/#method-__construct
+ */
+ public function __construct($type)
+ {
+ }
+
+ /**
+ * Adds a statement to this batch.
+ *
+ * @param string|\Cassandra\Statement $statement string or statement to add
+ * @param array|null $arguments positional or named arguments (optional)
+ *
+ * @return \Cassandra\BatchStatement self
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.BatchStatement/#method-add
+ */
+ public function add($statement, $arguments)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `list` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/
+ */
+ final class Collection implements Value, \Countable, \Iterator
+ {
+
+ /**
+ * Creates a new collection of a given type.
+ *
+ * @param \Cassandra\Type $type
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-__construct
+ */
+ public function __construct($type)
+ {
+ }
+
+ /**
+ * The type of this collection.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Array of values in this collection.
+ *
+ * @return array values
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-values
+ */
+ public function values()
+ {
+ }
+
+ /**
+ * Adds one or more values to this collection.
+ *
+ * @param mixed $value ,... one or more values to add
+ *
+ * @return int total number of values in this collection
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-add
+ */
+ public function add($value)
+ {
+ }
+
+ /**
+ * Retrieves the value at a given index.
+ *
+ * @param int $index Index
+ *
+ * @return mixed Value or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-get
+ */
+ public function get($index)
+ {
+ }
+
+ /**
+ * Finds index of a value in this collection.
+ *
+ * @param mixed $value Value
+ *
+ * @return int Index or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-find
+ */
+ public function find($value)
+ {
+ }
+
+ /**
+ * Total number of elements in this collection
+ *
+ * @return int count
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-count
+ */
+ public function count()
+ {
+ }
+
+ /**
+ * Current element for iteration
+ *
+ * @return mixed current element
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-current
+ */
+ public function current()
+ {
+ }
+
+ /**
+ * Current key for iteration
+ *
+ * @return int current key
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-key
+ */
+ public function key()
+ {
+ }
+
+ /**
+ * Move internal iterator forward
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-next
+ */
+ public function next()
+ {
+ }
+
+ /**
+ * Check whether a current value exists
+ *
+ * @return bool
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-valid
+ */
+ public function valid()
+ {
+ }
+
+ /**
+ * Rewind internal iterator
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-rewind
+ */
+ public function rewind()
+ {
+ }
+
+ /**
+ * Deletes the value at a given index
+ *
+ * @param int $index Index
+ *
+ * @return bool Whether the value at a given index is correctly removed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-remove
+ */
+ public function remove($index)
+ {
+ }
+
+ }
+
+ /**
+ * This future results is resolved with Rows.
+ *
+ * @see \Cassandra\Session::executeAsync()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureRows/
+ */
+ final class FutureRows implements Future
+ {
+
+ /**
+ * Waits for a given future resource to resolve and throws errors if any.
+ *
+ * @param int|float|null $timeout A timeout in seconds
+ *
+ * @return \Cassandra\Rows|null The result set
+ * @throws \Cassandra\Exception\TimeoutException
+ *
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureRows/#method-get
+ */
+ public function get($timeout)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of a materialized view
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/
+ */
+ final class DefaultMaterializedView extends MaterializedView
+ {
+
+ /**
+ * Returns the name of this view
+ *
+ * @return string Name of the view
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Return a view's option by name
+ *
+ * @param string $name The name of the option
+ *
+ * @return \Cassandra\Value Value of an option by name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-option
+ */
+ public function option($name)
+ {
+ }
+
+ /**
+ * Returns all the view's options
+ *
+ * @return array A dictionary of string and Value pairs of the
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-options
+ */
+ public function options()
+ {
+ }
+
+ /**
+ * Description of the view, if any
+ *
+ * @return string Table description or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-comment
+ */
+ public function comment()
+ {
+ }
+
+ /**
+ * Returns read repair chance
+ *
+ * @return float Read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-readRepairChance
+ */
+ public function readRepairChance()
+ {
+ }
+
+ /**
+ * Returns local read repair chance
+ *
+ * @return float Local read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-localReadRepairChance
+ */
+ public function localReadRepairChance()
+ {
+ }
+
+ /**
+ * Returns GC grace seconds
+ *
+ * @return int GC grace seconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-gcGraceSeconds
+ */
+ public function gcGraceSeconds()
+ {
+ }
+
+ /**
+ * Returns caching options
+ *
+ * @return string Caching options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-caching
+ */
+ public function caching()
+ {
+ }
+
+ /**
+ * Returns bloom filter FP chance
+ *
+ * @return float Bloom filter FP chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-bloomFilterFPChance
+ */
+ public function bloomFilterFPChance()
+ {
+ }
+
+ /**
+ * Returns memtable flush period in milliseconds
+ *
+ * @return int Memtable flush period in milliseconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-memtableFlushPeriodMs
+ */
+ public function memtableFlushPeriodMs()
+ {
+ }
+
+ /**
+ * Returns default TTL.
+ *
+ * @return int Default TTL.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-defaultTTL
+ */
+ public function defaultTTL()
+ {
+ }
+
+ /**
+ * Returns speculative retry.
+ *
+ * @return string Speculative retry.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-speculativeRetry
+ */
+ public function speculativeRetry()
+ {
+ }
+
+ /**
+ * Returns index interval
+ *
+ * @return int Index interval
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-indexInterval
+ */
+ public function indexInterval()
+ {
+ }
+
+ /**
+ * Returns compaction strategy class name
+ *
+ * @return string Compaction strategy class name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-compactionStrategyClassName
+ */
+ public function compactionStrategyClassName()
+ {
+ }
+
+ /**
+ * Returns compaction strategy options
+ *
+ * @return \Cassandra\Map Compaction strategy options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-compactionStrategyOptions
+ */
+ public function compactionStrategyOptions()
+ {
+ }
+
+ /**
+ * Returns compression parameters
+ *
+ * @return \Cassandra\Map Compression parameters
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-compressionParameters
+ */
+ public function compressionParameters()
+ {
+ }
+
+ /**
+ * Returns whether or not the `populate_io_cache_on_flush` is true
+ *
+ * @return bool Value of `populate_io_cache_on_flush` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-populateIOCacheOnFlush
+ */
+ public function populateIOCacheOnFlush()
+ {
+ }
+
+ /**
+ * Returns whether or not the `replicate_on_write` is true
+ *
+ * @return bool Value of `replicate_on_write` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-replicateOnWrite
+ */
+ public function replicateOnWrite()
+ {
+ }
+
+ /**
+ * Returns the value of `max_index_interval`
+ *
+ * @return int Value of `max_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-maxIndexInterval
+ */
+ public function maxIndexInterval()
+ {
+ }
+
+ /**
+ * Returns the value of `min_index_interval`
+ *
+ * @return int Value of `min_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-minIndexInterval
+ */
+ public function minIndexInterval()
+ {
+ }
+
+ /**
+ * Returns column by name
+ *
+ * @param string $name Name of the column
+ *
+ * @return \Cassandra\Column Column instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-column
+ */
+ public function column($name)
+ {
+ }
+
+ /**
+ * Returns all columns in this view
+ *
+ * @return array A list of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-columns
+ */
+ public function columns()
+ {
+ }
+
+ /**
+ * Returns the partition key columns of the view
+ *
+ * @return array A list of of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-partitionKey
+ */
+ public function partitionKey()
+ {
+ }
+
+ /**
+ * Returns both the partition and clustering key columns of the view
+ *
+ * @return array A list of of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-primaryKey
+ */
+ public function primaryKey()
+ {
+ }
+
+ /**
+ * Returns the clustering key columns of the view
+ *
+ * @return array A list of of Column instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-clusteringKey
+ */
+ public function clusteringKey()
+ {
+ }
+
+ /**
+ * @return array A list of cluster column orders ('asc' and 'desc')
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-clusteringOrder
+ */
+ public function clusteringOrder()
+ {
+ }
+
+ /**
+ * Returns the base table of the view
+ *
+ * @return \Cassandra\Table Base table of the view
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-baseTable
+ */
+ public function baseTable()
+ {
+ }
+
+ }
+
+ /**
+ * SSL options for Cluster.
+ *
+ * @see \Cassandra\SSLOptions\Builder
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.SSLOptions/
+ */
+ final class SSLOptions
+ {
+
+ }
+
+ /**
+ * A PHP representation of the CQL `bigint` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/
+ */
+ final class Bigint implements Value, Numeric
+ {
+
+ /**
+ * Creates a new 64bit integer.
+ *
+ * @param string $value integer value as a string
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-__construct
+ */
+ public function __construct($value)
+ {
+ }
+
+ /**
+ * Minimum possible Bigint value
+ *
+ * @return \Cassandra\Bigint minimum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-min
+ */
+ public static function min()
+ {
+ }
+
+ /**
+ * Maximum possible Bigint value
+ *
+ * @return \Cassandra\Bigint maximum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-max
+ */
+ public static function max()
+ {
+ }
+
+ /**
+ * Returns string representation of the integer value.
+ *
+ * @return string integer value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this bigint.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns the integer value.
+ *
+ * @return string integer value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-value
+ */
+ public function value()
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to add to this one
+ *
+ * @return \Cassandra\Numeric sum
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-add
+ */
+ public function add($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to subtract from this one
+ *
+ * @return \Cassandra\Numeric difference
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-sub
+ */
+ public function sub($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to multiply this one by
+ *
+ * @return \Cassandra\Numeric product
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-mul
+ */
+ public function mul($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric quotient
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-div
+ */
+ public function div($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric remainder
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-mod
+ */
+ public function mod($num)
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric absolute value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-abs
+ */
+ public function abs()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric negative value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-neg
+ */
+ public function neg()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric square root
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-sqrt
+ */
+ public function sqrt()
+ {
+ }
+
+ /**
+ * @return int this number as int
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-toInt
+ */
+ public function toInt()
+ {
+ }
+
+ /**
+ * @return float this number as float
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-toDouble
+ */
+ public function toDouble()
+ {
+ }
+
+ }
+
+ /**
+ * A future that resolves with Session.
+ *
+ * @see \Cassandra\Cluster::connectAsync()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureSession/
+ */
+ final class FutureSession implements Future
+ {
+
+ /**
+ * Waits for a given future resource to resolve and throws errors if any.
+ *
+ * @param int|float|null $timeout A timeout in seconds
+ *
+ * @return \Cassandra\Session A connected session
+ * @throws \Cassandra\Exception\TimeoutException
+ *
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureSession/#method-get
+ */
+ public function get($timeout)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `set` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/
+ */
+ final class Set implements Value, \Countable, \Iterator
+ {
+
+ /**
+ * Creates a new collection of a given type.
+ *
+ * @param \Cassandra\Type $type
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-__construct
+ */
+ public function __construct($type)
+ {
+ }
+
+ /**
+ * The type of this set.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Array of values in this set.
+ *
+ * @return array values
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-values
+ */
+ public function values()
+ {
+ }
+
+ /**
+ * Adds a value to this set.
+ *
+ * @param mixed $value Value
+ *
+ * @return bool whether the value has been added
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-add
+ */
+ public function add($value)
+ {
+ }
+
+ /**
+ * Returns whether a value is in this set.
+ *
+ * @param mixed $value Value
+ *
+ * @return bool whether the value is in the set
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-has
+ */
+ public function has($value)
+ {
+ }
+
+ /**
+ * Removes a value to this set.
+ *
+ * @param mixed $value Value
+ *
+ * @return bool whether the value has been removed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-remove
+ */
+ public function remove($value)
+ {
+ }
+
+ /**
+ * Total number of elements in this set
+ *
+ * @return int count
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-count
+ */
+ public function count()
+ {
+ }
+
+ /**
+ * Current element for iteration
+ *
+ * @return mixed current element
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-current
+ */
+ public function current()
+ {
+ }
+
+ /**
+ * Current key for iteration
+ *
+ * @return int current key
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-key
+ */
+ public function key()
+ {
+ }
+
+ /**
+ * Move internal iterator forward
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-next
+ */
+ public function next()
+ {
+ }
+
+ /**
+ * Check whether a current value exists
+ *
+ * @return bool
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-valid
+ */
+ public function valid()
+ {
+ }
+
+ /**
+ * Rewind internal iterator
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-rewind
+ */
+ public function rewind()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of an index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/
+ */
+ final class DefaultIndex implements Index
+ {
+
+ /**
+ * Returns the name of the index
+ *
+ * @return string Name of the index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns the kind of index
+ *
+ * @return string Kind of the index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-kind
+ */
+ public function kind()
+ {
+ }
+
+ /**
+ * Returns the target column of the index
+ *
+ * @return string Target column name of the index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-target
+ */
+ public function target()
+ {
+ }
+
+ /**
+ * Return a column's option by name
+ *
+ * @param string $name The name of the option
+ *
+ * @return \Cassandra\Value Value of an option by name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-option
+ */
+ public function option($name)
+ {
+ }
+
+ /**
+ * Returns all the index's options
+ *
+ * @return array A dictionary of `string` and `Value` pairs of the index's options.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-options
+ */
+ public function options()
+ {
+ }
+
+ /**
+ * Returns the class name of the index
+ *
+ * @return string Class name of a custom index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-className
+ */
+ public function className()
+ {
+ }
+
+ /**
+ * Determines if the index is a custom index.
+ *
+ * @return bool true if a custom index
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-isCustom
+ */
+ public function isCustom()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of an aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/
+ */
+ final class DefaultAggregate implements Aggregate
+ {
+
+ /**
+ * Returns the full name of the aggregate
+ *
+ * @return string Full name of the aggregate including name and types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns the simple name of the aggregate
+ *
+ * @return string Simple name of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-simpleName
+ */
+ public function simpleName()
+ {
+ }
+
+ /**
+ * Returns the argument types of the aggregate
+ *
+ * @return array Argument types of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-argumentTypes
+ */
+ public function argumentTypes()
+ {
+ }
+
+ /**
+ * Returns the state function of the aggregate
+ *
+ * @return \Cassandra\Function_ State public function of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-stateFunction
+ */
+ public function stateFunction()
+ {
+ }
+
+ /**
+ * Returns the final function of the aggregate
+ *
+ * @return \Cassandra\Function_ Final public function of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-finalFunction
+ */
+ public function finalFunction()
+ {
+ }
+
+ /**
+ * Returns the initial condition of the aggregate
+ *
+ * @return \Cassandra\Value Initial condition of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-initialCondition
+ */
+ public function initialCondition()
+ {
+ }
+
+ /**
+ * Returns the state type of the aggregate
+ *
+ * @return \Cassandra\Type State type of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-stateType
+ */
+ public function stateType()
+ {
+ }
+
+ /**
+ * Returns the return type of the aggregate
+ *
+ * @return \Cassandra\Type Return type of the aggregate
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-returnType
+ */
+ public function returnType()
+ {
+ }
+
+ /**
+ * Returns the signature of the aggregate
+ *
+ * @return string Signature of the aggregate (same as name())
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-signature
+ */
+ public function signature()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `timestamp` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/
+ */
+ final class Timestamp implements Value
+ {
+
+ /**
+ * Creates a new timestamp from either unix timestamp and microseconds or
+ * from the current time by default.
+ *
+ * @param int $seconds The number of seconds
+ * @param int $microseconds The number of microseconds
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-__construct
+ */
+ public function __construct($seconds, $microseconds)
+ {
+ }
+
+ /**
+ * The type of this timestamp.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Unix timestamp.
+ *
+ * @return int seconds
+ *
+ * @see time
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-time
+ */
+ public function time()
+ {
+ }
+
+ /**
+ * Microtime from this timestamp
+ *
+ * @param bool $get_as_float Whether to get this value as float
+ *
+ * @return float|string Float or string representation
+ *
+ * @see microtime
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-microtime
+ */
+ public function microtime($get_as_float)
+ {
+ }
+
+ /**
+ * Converts current timestamp to PHP DateTime.
+ *
+ * @return \DateTime PHP representation
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-toDateTime
+ */
+ public function toDateTime()
+ {
+ }
+
+ /**
+ * Returns a string representation of this timestamp.
+ *
+ * @return string timestamp
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `tinyint` datatype.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/
+ */
+ final class Tinyint implements Value, Numeric
+ {
+
+ /**
+ * Creates a new 8-bit signed integer.
+ *
+ * @param int|float|string $value The value as an integer, float or string
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-__construct
+ */
+ public function __construct($value)
+ {
+ }
+
+ /**
+ * Minimum possible Tinyint value
+ *
+ * @return \Cassandra\Tinyint minimum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-min
+ */
+ public static function min()
+ {
+ }
+
+ /**
+ * Maximum possible Tinyint value
+ *
+ * @return \Cassandra\Tinyint maximum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-max
+ */
+ public static function max()
+ {
+ }
+
+ /**
+ * @return string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this value (tinyint).
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns the integer value.
+ *
+ * @return int integer value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-value
+ */
+ public function value()
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to add to this one
+ *
+ * @return \Cassandra\Numeric sum
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-add
+ */
+ public function add($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to subtract from this one
+ *
+ * @return \Cassandra\Numeric difference
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-sub
+ */
+ public function sub($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to multiply this one by
+ *
+ * @return \Cassandra\Numeric product
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-mul
+ */
+ public function mul($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric quotient
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-div
+ */
+ public function div($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric remainder
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-mod
+ */
+ public function mod($num)
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric absolute value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-abs
+ */
+ public function abs()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric negative value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-neg
+ */
+ public function neg()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric square root
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-sqrt
+ */
+ public function sqrt()
+ {
+ }
+
+ /**
+ * @return int this number as int
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-toInt
+ */
+ public function toInt()
+ {
+ }
+
+ /**
+ * @return float this number as float
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-toDouble
+ */
+ public function toDouble()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `timeuuid` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/
+ */
+ final class Timeuuid implements Value, UuidInterface
+ {
+
+ /**
+ * Creates a timeuuid from a given timestamp or current time.
+ *
+ * @param int $timestamp Unix timestamp
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-__construct
+ */
+ public function __construct($timestamp)
+ {
+ }
+
+ /**
+ * Returns this timeuuid as string.
+ *
+ * @return string timeuuid
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this timeuuid.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns this timeuuid as string.
+ *
+ * @return string timeuuid
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-uuid
+ */
+ public function uuid()
+ {
+ }
+
+ /**
+ * Returns the version of this timeuuid.
+ *
+ * @return int version of this timeuuid
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-version
+ */
+ public function version()
+ {
+ }
+
+ /**
+ * Unix timestamp.
+ *
+ * @return int seconds
+ *
+ * @see time
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-time
+ */
+ public function time()
+ {
+ }
+
+ /**
+ * Converts current timeuuid to PHP DateTime.
+ *
+ * @return \DateTime PHP representation
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-toDateTime
+ */
+ public function toDateTime()
+ {
+ }
+
+ }
+
+ /**
+ * A session is used to prepare and execute statements.
+ *
+ * @see \Cassandra\Cluster::connect()
+ * @see \Cassandra\Cluster::connectAsync()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/
+ */
+ final class DefaultSession implements Session
+ {
+
+ /**
+ * Execute a query.
+ *
+ * Available execution options:
+ * | Option Name | Option **Type** | Option Details |
+ * |--------------------|-----------------|----------------------------------------------------------------------------------------------------------|
+ * | arguments | array | An array or positional or named arguments |
+ * | consistency | int | A consistency constant e.g Dse::CONSISTENCY_ONE, Dse::CONSISTENCY_QUORUM, etc. |
+ * | timeout | int | A number of rows to include in result for paging |
+ * | paging_state_token | string | A string token use to resume from the state of a previous result set |
+ * | retry_policy | RetryPolicy | A retry policy that is used to handle server-side failures for this request |
+ * | serial_consistency | int | Either Dse::CONSISTENCY_SERIAL or Dse::CONSISTENCY_LOCAL_SERIAL |
+ * | timestamp | int\|string | Either an integer or integer string timestamp that represents the number of microseconds since the epoch |
+ * | execute_as | string | User to execute statement as |
+ *
+ * @param string|\Cassandra\Statement $statement string or statement to be executed.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query.
+ *
+ * @return \Cassandra\Rows A collection of rows.
+ * @throws \Cassandra\Exception
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-execute
+ */
+ public function execute($statement, $options)
+ {
+ }
+
+ /**
+ * Execute a query asynchronously. This method returns immediately, but
+ * the query continues execution in the background.
+ *
+ * @param string|\Cassandra\Statement $statement string or statement to be executed.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query.
+ *
+ * @return \Cassandra\FutureRows A future that can be used to retrieve the result.
+ *
+ * @see \Cassandra\Session::execute() for valid execution options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-executeAsync
+ */
+ public function executeAsync($statement, $options)
+ {
+ }
+
+ /**
+ * Prepare a query for execution.
+ *
+ * @param string $cql The query to be prepared.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query.
+ *
+ * @return \Cassandra\PreparedStatement A prepared statement that can be bound with parameters and executed.
+ *
+ * @throws \Cassandra\Exception
+ *
+ * @see \Cassandra\Session::execute() for valid execution options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-prepare
+ */
+ public function prepare($cql, $options)
+ {
+ }
+
+ /**
+ * Asynchronously prepare a query for execution.
+ *
+ * @param string $cql The query to be prepared.
+ * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query.
+ *
+ * @return \Cassandra\FuturePreparedStatement A future that can be used to retrieve the prepared statement.
+ *
+ * @see \Cassandra\Session::execute() for valid execution options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-prepareAsync
+ */
+ public function prepareAsync($cql, $options)
+ {
+ }
+
+ /**
+ * Close the session and all its connections.
+ *
+ * @param float $timeout The amount of time in seconds to wait for the session to close.
+ *
+ * @return null Nothing.
+ * @throws \Cassandra\Exception
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-close
+ */
+ public function close($timeout)
+ {
+ }
+
+ /**
+ * Asynchronously close the session and all its connections.
+ *
+ * @return \Cassandra\FutureClose A future that can be waited on.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-closeAsync
+ */
+ public function closeAsync()
+ {
+ }
+
+ /**
+ * Get performance and diagnostic metrics.
+ *
+ * @return array Performance/Diagnostic metrics.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-metrics
+ */
+ public function metrics()
+ {
+ }
+
+ /**
+ * Get a snapshot of the cluster's current schema.
+ *
+ * @return \Cassandra\Schema A snapshot of the cluster's schema.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-schema
+ */
+ public function schema()
+ {
+ }
+
+ }
+
+ /**
+ * A class for representing custom values.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Custom/
+ */
+ abstract class Custom implements Value
+ {
+
+ /**
+ * The type of this value.
+ *
+ * @return \Cassandra\Type\Custom
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Custom/#method-type
+ */
+ public abstract function type();
+
+ }
+
+ /**
+ * A PHP representation of a materialized view
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/
+ */
+ abstract class MaterializedView implements Table
+ {
+
+ /**
+ * Returns the base table of the view
+ *
+ * @return \Cassandra\Table Base table of the view
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-baseTable
+ */
+ public abstract function baseTable();
+
+ /**
+ * Returns the name of this view
+ *
+ * @return string Name of the view
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-name
+ */
+ public abstract function name();
+
+ /**
+ * Return a view's option by name
+ *
+ * @param string $name The name of the option
+ *
+ * @return \Cassandra\Value Value of an option by name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-option
+ */
+ public abstract function option($name);
+
+ /**
+ * Returns all the view's options
+ *
+ * @return array A dictionary of string and Value pairs of the
+ * view's options.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-options
+ */
+ public abstract function options();
+
+ /**
+ * Description of the view, if any
+ *
+ * @return string View description or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-comment
+ */
+ public abstract function comment();
+
+ /**
+ * Returns read repair chance
+ *
+ * @return float Read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-readRepairChance
+ */
+ public abstract function readRepairChance();
+
+ /**
+ * Returns local read repair chance
+ *
+ * @return float Local read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-localReadRepairChance
+ */
+ public abstract function localReadRepairChance();
+
+ /**
+ * Returns GC grace seconds
+ *
+ * @return int GC grace seconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-gcGraceSeconds
+ */
+ public abstract function gcGraceSeconds();
+
+ /**
+ * Returns caching options
+ *
+ * @return string Caching options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-caching
+ */
+ public abstract function caching();
+
+ /**
+ * Returns bloom filter FP chance
+ *
+ * @return float Bloom filter FP chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-bloomFilterFPChance
+ */
+ public abstract function bloomFilterFPChance();
+
+ /**
+ * Returns memtable flush period in milliseconds
+ *
+ * @return int Memtable flush period in milliseconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-memtableFlushPeriodMs
+ */
+ public abstract function memtableFlushPeriodMs();
+
+ /**
+ * Returns default TTL.
+ *
+ * @return int Default TTL.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-defaultTTL
+ */
+ public abstract function defaultTTL();
+
+ /**
+ * Returns speculative retry.
+ *
+ * @return string Speculative retry.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-speculativeRetry
+ */
+ public abstract function speculativeRetry();
+
+ /**
+ * Returns index interval
+ *
+ * @return int Index interval
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-indexInterval
+ */
+ public abstract function indexInterval();
+
+ /**
+ * Returns compaction strategy class name
+ *
+ * @return string Compaction strategy class name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-compactionStrategyClassName
+ */
+ public abstract function compactionStrategyClassName();
+
+ /**
+ * Returns compaction strategy options
+ *
+ * @return \Cassandra\Map Compaction strategy options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-compactionStrategyOptions
+ */
+ public abstract function compactionStrategyOptions();
+
+ /**
+ * Returns compression parameters
+ *
+ * @return \Cassandra\Map Compression parameters
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-compressionParameters
+ */
+ public abstract function compressionParameters();
+
+ /**
+ * Returns whether or not the `populate_io_cache_on_flush` is true
+ *
+ * @return bool Value of `populate_io_cache_on_flush` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-populateIOCacheOnFlush
+ */
+ public abstract function populateIOCacheOnFlush();
+
+ /**
+ * Returns whether or not the `replicate_on_write` is true
+ *
+ * @return bool Value of `replicate_on_write` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-replicateOnWrite
+ */
+ public abstract function replicateOnWrite();
+
+ /**
+ * Returns the value of `max_index_interval`
+ *
+ * @return int Value of `max_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-maxIndexInterval
+ */
+ public abstract function maxIndexInterval();
+
+ /**
+ * Returns the value of `min_index_interval`
+ *
+ * @return int Value of `min_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-minIndexInterval
+ */
+ public abstract function minIndexInterval();
+
+ /**
+ * Returns column by name
+ *
+ * @param string $name Name of the column
+ *
+ * @return \Cassandra\Column Column instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-column
+ */
+ public abstract function column($name);
+
+ /**
+ * Returns all columns in this view
+ *
+ * @return array A list of `Column` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-columns
+ */
+ public abstract function columns();
+
+ /**
+ * Returns the partition key columns of the view
+ *
+ * @return array A list of of `Column` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-partitionKey
+ */
+ public abstract function partitionKey();
+
+ /**
+ * Returns both the partition and clustering key columns of the view
+ *
+ * @return array A list of of `Column` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-primaryKey
+ */
+ public abstract function primaryKey();
+
+ /**
+ * Returns the clustering key columns of the view
+ *
+ * @return array A list of of `Column` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-clusteringKey
+ */
+ public abstract function clusteringKey();
+
+ /**
+ * @return array A list of cluster column orders ('asc' and 'desc')
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-clusteringOrder
+ */
+ public abstract function clusteringOrder();
+
+ }
+
+ /**
+ * A PHP representation of the CQL `time` type.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/
+ */
+ final class Time implements Value
+ {
+
+ /**
+ * Creates a new Time object
+ *
+ * @param int|string $nanoseconds Number of nanoseconds since last microsecond
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-__construct
+ */
+ public function __construct($nanoseconds)
+ {
+ }
+
+ /**
+ * @param \DateTime $datetime
+ *
+ * @return \Cassandra\Time
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-fromDateTime
+ */
+ public static function fromDateTime($datetime)
+ {
+ }
+
+ /**
+ * The type of this date.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * @return int
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-seconds
+ */
+ public function seconds()
+ {
+ }
+
+ /**
+ * @return string this date in string format: Time(nanoseconds=$nanoseconds)
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * Cluster object is used to create Sessions.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/
+ */
+ abstract class Type
+ {
+
+ /**
+ * Get representation of ascii type
+ *
+ * @return \Cassandra\Type ascii type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-ascii
+ */
+ public static final function ascii()
+ {
+ }
+
+ /**
+ * Get representation of bigint type
+ *
+ * @return \Cassandra\Type bigint type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-bigint
+ */
+ public static final function bigint()
+ {
+ }
+
+ /**
+ * Get representation of smallint type
+ *
+ * @return \Cassandra\Type smallint type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-smallint
+ */
+ public static final function smallint()
+ {
+ }
+
+ /**
+ * Get representation of tinyint type
+ *
+ * @return \Cassandra\Type tinyint type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-tinyint
+ */
+ public static final function tinyint()
+ {
+ }
+
+ /**
+ * Get representation of blob type
+ *
+ * @return \Cassandra\Type blob type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-blob
+ */
+ public static final function blob()
+ {
+ }
+
+ /**
+ * Get representation of boolean type
+ *
+ * @return \Cassandra\Type boolean type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-boolean
+ */
+ public static final function boolean()
+ {
+ }
+
+ /**
+ * Get representation of counter type
+ *
+ * @return \Cassandra\Type counter type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-counter
+ */
+ public static final function counter()
+ {
+ }
+
+ /**
+ * Get representation of decimal type
+ *
+ * @return \Cassandra\Type decimal type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-decimal
+ */
+ public static final function decimal()
+ {
+ }
+
+ /**
+ * Get representation of double type
+ *
+ * @return \Cassandra\Type double type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-double
+ */
+ public static final function double()
+ {
+ }
+
+ /**
+ * Get representation of duration type
+ *
+ * @return \Cassandra\Type duration type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-duration
+ */
+ public static final function duration()
+ {
+ }
+
+ /**
+ * Get representation of float type
+ *
+ * @return \Cassandra\Type float type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-float
+ */
+ public static final function float()
+ {
+ }
+
+ /**
+ * Get representation of int type
+ *
+ * @return \Cassandra\Type int type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-int
+ */
+ public static final function int()
+ {
+ }
+
+ /**
+ * Get representation of text type
+ *
+ * @return \Cassandra\Type text type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-text
+ */
+ public static final function text()
+ {
+ }
+
+ /**
+ * Get representation of timestamp type
+ *
+ * @return \Cassandra\Type timestamp type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-timestamp
+ */
+ public static final function timestamp()
+ {
+ }
+
+ /**
+ * Get representation of date type
+ *
+ * @return \Cassandra\Type date type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-date
+ */
+ public static final function date()
+ {
+ }
+
+ /**
+ * Get representation of time type
+ *
+ * @return \Cassandra\Type time type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-time
+ */
+ public static final function time()
+ {
+ }
+
+ /**
+ * Get representation of uuid type
+ *
+ * @return \Cassandra\Type uuid type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-uuid
+ */
+ public static final function uuid()
+ {
+ }
+
+ /**
+ * Get representation of varchar type
+ *
+ * @return \Cassandra\Type varchar type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-varchar
+ */
+ public static final function varchar()
+ {
+ }
+
+ /**
+ * Get representation of varint type
+ *
+ * @return \Cassandra\Type varint type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-varint
+ */
+ public static final function varint()
+ {
+ }
+
+ /**
+ * Get representation of timeuuid type
+ *
+ * @return \Cassandra\Type timeuuid type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-timeuuid
+ */
+ public static final function timeuuid()
+ {
+ }
+
+ /**
+ * Get representation of inet type
+ *
+ * @return \Cassandra\Type inet type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-inet
+ */
+ public static final function inet()
+ {
+ }
+
+ /**
+ * Initialize a Collection type
+ * ```php
+ * create(1, 2, 3, 4, 5, 6, 7, 8, 9);
+ *
+ * var_dump($collection);
+ * ```
+ *
+ * @param \Cassandra\Type $type The type of values
+ *
+ * @return \Cassandra\Type The collection type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-collection
+ */
+ public static final function collection($type)
+ {
+ }
+
+ /**
+ * Initialize a set type
+ * ```
+ * create("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");
+ *
+ * var_dump($set);
+ * ```
+ *
+ * @param \Cassandra\Type $type The types of values
+ *
+ * @return \Cassandra\Type The set type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-set
+ */
+ public static final function set($type)
+ {
+ }
+
+ /**
+ * Initialize a map type
+ * ```create(1, "a", 2, "b", 3, "c", 4, "d", 5, "e", 6, "f")
+ *
+ * var_dump($map);```
+ *
+ * @param \Cassandra\Type $keyType The type of keys
+ * @param \Cassandra\Type $valueType The type of values
+ *
+ * @return \Cassandra\Type The map type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-map
+ */
+ public static final function map($keyType, $valueType)
+ {
+ }
+
+ /**
+ * Initialize a tuple type
+ * ```create("a", 123);
+ *
+ * var_dump($tuple);```
+ *
+ * @param \Cassandra\Type $types A variadic list of types
+ *
+ * @return \Cassandra\Type The tuple type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-tuple
+ */
+ public static final function tuple($types)
+ {
+ }
+
+ /**
+ * Initialize a user type
+ * ```create("a", "abc", "b", 123);
+ *
+ * var_dump($userType);```
+ *
+ * @param \Cassandra\Type $types A variadic list of name/type pairs
+ *
+ * @return \Cassandra\Type The user type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-userType
+ */
+ public static final function userType($types)
+ {
+ }
+
+ /**
+ * Returns the name of this type as string.
+ *
+ * @return string Name of this type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-name
+ */
+ public abstract function name();
+
+ /**
+ * Returns string representation of this type.
+ *
+ * @return string String representation of this type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-__toString
+ */
+ public abstract function __toString();
+
+ }
+
+ /**
+ * A PHP representation of the CQL `varint` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/
+ */
+ final class Varint implements Value, Numeric
+ {
+
+ /**
+ * Creates a new variable length integer.
+ *
+ * @param string $value integer value as a string
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-__construct
+ */
+ public function __construct($value)
+ {
+ }
+
+ /**
+ * Returns the integer value.
+ *
+ * @return string integer value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this varint.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns the integer value.
+ *
+ * @return string integer value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-value
+ */
+ public function value()
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to add to this one
+ *
+ * @return \Cassandra\Numeric sum
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-add
+ */
+ public function add($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to subtract from this one
+ *
+ * @return \Cassandra\Numeric difference
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-sub
+ */
+ public function sub($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to multiply this one by
+ *
+ * @return \Cassandra\Numeric product
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-mul
+ */
+ public function mul($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric quotient
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-div
+ */
+ public function div($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric remainder
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-mod
+ */
+ public function mod($num)
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric absolute value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-abs
+ */
+ public function abs()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric negative value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-neg
+ */
+ public function neg()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric square root
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-sqrt
+ */
+ public function sqrt()
+ {
+ }
+
+ /**
+ * @return int this number as int
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-toInt
+ */
+ public function toInt()
+ {
+ }
+
+ /**
+ * @return float this number as float
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-toDouble
+ */
+ public function toDouble()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `map` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/
+ */
+ final class Map implements Value, \Countable, \Iterator, \ArrayAccess
+ {
+
+ /**
+ * Creates a new map of a given key and value type.
+ *
+ * @param \Cassandra\Type $keyType
+ * @param \Cassandra\Type $valueType
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-__construct
+ */
+ public function __construct($keyType, $valueType)
+ {
+ }
+
+ /**
+ * The type of this map.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns all keys in the map as an array.
+ *
+ * @return array keys
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-keys
+ */
+ public function keys()
+ {
+ }
+
+ /**
+ * Returns all values in the map as an array.
+ *
+ * @return array values
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-values
+ */
+ public function values()
+ {
+ }
+
+ /**
+ * Sets key/value in the map.
+ *
+ * @param mixed $key key
+ * @param mixed $value value
+ *
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-set
+ */
+ public function set($key, $value)
+ {
+ }
+
+ /**
+ * Gets the value of the key in the map.
+ *
+ * @param mixed $key Key
+ *
+ * @return mixed Value or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-get
+ */
+ public function get($key)
+ {
+ }
+
+ /**
+ * Removes the key from the map.
+ *
+ * @param mixed $key Key
+ *
+ * @return bool Whether the key was removed or not, e.g. didn't exist
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-remove
+ */
+ public function remove($key)
+ {
+ }
+
+ /**
+ * Returns whether the key is in the map.
+ *
+ * @param mixed $key Key
+ *
+ * @return bool Whether the key is in the map or not
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-has
+ */
+ public function has($key)
+ {
+ }
+
+ /**
+ * Total number of elements in this map
+ *
+ * @return int count
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-count
+ */
+ public function count()
+ {
+ }
+
+ /**
+ * Current value for iteration
+ *
+ * @return mixed current value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-current
+ */
+ public function current()
+ {
+ }
+
+ /**
+ * Current key for iteration
+ *
+ * @return int current key
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-key
+ */
+ public function key()
+ {
+ }
+
+ /**
+ * Move internal iterator forward
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-next
+ */
+ public function next()
+ {
+ }
+
+ /**
+ * Check whether a current value exists
+ *
+ * @return bool
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-valid
+ */
+ public function valid()
+ {
+ }
+
+ /**
+ * Rewind internal iterator
+ *
+ * @return void
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-rewind
+ */
+ public function rewind()
+ {
+ }
+
+ /**
+ * Sets the value at a given key
+ *
+ * @param mixed $key Key to use.
+ * @param mixed $value Value to set.
+ *
+ * @return void
+ * @throws \Cassandra\Exception\InvalidArgumentException when the type of key or value is wrong
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetSet
+ */
+ public function offsetSet($key, $value)
+ {
+ }
+
+ /**
+ * Retrieves the value at a given key
+ *
+ * @param mixed $key Key to use.
+ *
+ * @return mixed Value or `null`
+ * @throws \Cassandra\Exception\InvalidArgumentException when the type of key is wrong
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetGet
+ */
+ public function offsetGet($key)
+ {
+ }
+
+ /**
+ * Deletes the value at a given key
+ *
+ * @param mixed $key Key to use.
+ *
+ * @return void
+ * @throws \Cassandra\Exception\InvalidArgumentException when the type of key is wrong
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetUnset
+ */
+ public function offsetUnset($key)
+ {
+ }
+
+ /**
+ * Returns whether the value a given key is present
+ *
+ * @param mixed $key Key to use.
+ *
+ * @return bool Whether the value at a given key is present
+ * @throws \Cassandra\Exception\InvalidArgumentException when the type of key is wrong
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetExists
+ */
+ public function offsetExists($key)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `uuid` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/
+ */
+ final class Uuid implements Value, UuidInterface
+ {
+
+ /**
+ * Creates a uuid from a given uuid string or a random one.
+ *
+ * @param string $uuid A uuid string
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-__construct
+ */
+ public function __construct($uuid)
+ {
+ }
+
+ /**
+ * Returns this uuid as string.
+ *
+ * @return string uuid
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this uuid.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns this uuid as string.
+ *
+ * @return string uuid
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-uuid
+ */
+ public function uuid()
+ {
+ }
+
+ /**
+ * Returns the version of this uuid.
+ *
+ * @return int version of this uuid
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-version
+ */
+ public function version()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `float` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/
+ */
+ final class Float_ implements Value, Numeric
+ {
+
+ /**
+ * Creates a new float.
+ *
+ * @param float|int|string|\Cassandra\Float_ $value A float value as a string, number or Float
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-__construct
+ */
+ public function __construct($value)
+ {
+ }
+
+ /**
+ * Minimum possible Float value
+ *
+ * @return \Cassandra\Float_ minimum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-min
+ */
+ public static function min()
+ {
+ }
+
+ /**
+ * Maximum possible Float value
+ *
+ * @return \Cassandra\Float_ maximum value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-max
+ */
+ public static function max()
+ {
+ }
+
+ /**
+ * Returns string representation of the float value.
+ *
+ * @return string float value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this float.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns the float value.
+ *
+ * @return float float value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-value
+ */
+ public function value()
+ {
+ }
+
+ /**
+ * @return bool
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-isInfinite
+ */
+ public function isInfinite()
+ {
+ }
+
+ /**
+ * @return bool
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-isFinite
+ */
+ public function isFinite()
+ {
+ }
+
+ /**
+ * @return bool
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-isNaN
+ */
+ public function isNaN()
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to add to this one
+ *
+ * @return \Cassandra\Numeric sum
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-add
+ */
+ public function add($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to subtract from this one
+ *
+ * @return \Cassandra\Numeric difference
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-sub
+ */
+ public function sub($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to multiply this one by
+ *
+ * @return \Cassandra\Numeric product
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-mul
+ */
+ public function mul($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric quotient
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-div
+ */
+ public function div($num)
+ {
+ }
+
+ /**
+ * @param \Cassandra\Numeric $num a number to divide this one by
+ *
+ * @return \Cassandra\Numeric remainder
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-mod
+ */
+ public function mod($num)
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric absolute value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-abs
+ */
+ public function abs()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric negative value
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-neg
+ */
+ public function neg()
+ {
+ }
+
+ /**
+ * @return \Cassandra\Numeric square root
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-sqrt
+ */
+ public function sqrt()
+ {
+ }
+
+ /**
+ * @return int this number as int
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-toInt
+ */
+ public function toInt()
+ {
+ }
+
+ /**
+ * @return float this number as float
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-toDouble
+ */
+ public function toDouble()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `duration` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/
+ */
+ final class Duration implements Value
+ {
+
+ /**
+ * @param int|float|string|\Cassandra\Bigint $months Months attribute of the duration.
+ * @param int|float|string|\Cassandra\Bigint $days Days attribute of the duration.
+ * @param int|float|string|\Cassandra\Bigint $nanos Nanos attribute of the duration.
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-__construct
+ */
+ public function __construct($months, $days, $nanos)
+ {
+ }
+
+ /**
+ * The type of represented by the value.
+ *
+ * @return \Cassandra\Type the Cassandra type for Duration
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * @return string the months attribute of this Duration
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-months
+ */
+ public function months()
+ {
+ }
+
+ /**
+ * @return string the days attribute of this Duration
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-days
+ */
+ public function days()
+ {
+ }
+
+ /**
+ * @return string the nanoseconds attribute of this Duration
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-nanos
+ */
+ public function nanos()
+ {
+ }
+
+ /**
+ * @return string string representation of this Duration; may be used as a literal parameter in CQL queries.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of a keyspace
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/
+ */
+ final class DefaultKeyspace implements Keyspace
+ {
+
+ /**
+ * Returns keyspace name
+ *
+ * @return string Name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns replication class name
+ *
+ * @return string Replication class
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-replicationClassName
+ */
+ public function replicationClassName()
+ {
+ }
+
+ /**
+ * Returns replication options
+ *
+ * @return \Cassandra\Map Replication options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-replicationOptions
+ */
+ public function replicationOptions()
+ {
+ }
+
+ /**
+ * Returns whether the keyspace has durable writes enabled
+ *
+ * @return string Whether durable writes are enabled
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-hasDurableWrites
+ */
+ public function hasDurableWrites()
+ {
+ }
+
+ /**
+ * Returns a table by name
+ *
+ * @param string $name Table name
+ *
+ * @return \Cassandra\Table
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-table
+ */
+ public function table($name)
+ {
+ }
+
+ /**
+ * Returns all tables defined in this keyspace
+ *
+ * @return array An array of `Table` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-tables
+ */
+ public function tables()
+ {
+ }
+
+ /**
+ * Get user type by name
+ *
+ * @param string $name User type name
+ *
+ * @return \Cassandra\Type\UserType|null A user type or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-userType
+ */
+ public function userType($name)
+ {
+ }
+
+ /**
+ * Get all user types
+ *
+ * @return array An array of user types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-userTypes
+ */
+ public function userTypes()
+ {
+ }
+
+ /**
+ * Get materialized view by name
+ *
+ * @param string $name Materialized view name
+ *
+ * @return \Cassandra\MaterizedView|null A materialized view or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-materializedView
+ */
+ public function materializedView($name)
+ {
+ }
+
+ /**
+ * Gets all materialized views
+ *
+ * @return array An array of materialized views
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-materializedViews
+ */
+ public function materializedViews()
+ {
+ }
+
+ /**
+ * Get a function by name and signature
+ *
+ * @param string $name Function name
+ * @param string|\Cassandra\Type $params Function arguments
+ *
+ * @return \Cassandra\Function_|null A function or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-function
+ */
+ public function function_($name, ...$params)
+ {
+ }
+
+ /**
+ * Get all functions
+ *
+ * @return array An array of functions
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-functions
+ */
+ public function functions()
+ {
+ }
+
+ /**
+ * Get an aggregate by name and signature
+ *
+ * @param string $name Aggregate name
+ * @param string|\Cassandra\Type $params Aggregate arguments
+ *
+ * @return \Cassandra\Aggregate|null An aggregate or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-aggregate
+ */
+ public function aggregate($name, ...$params)
+ {
+ }
+
+ /**
+ * Get all aggregates
+ *
+ * @return array An array of aggregates
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-aggregates
+ */
+ public function aggregates()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `inet` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/
+ */
+ final class Inet implements Value
+ {
+
+ /**
+ * Creates a new IPv4 or IPv6 inet address.
+ *
+ * @param string $address any IPv4 or IPv6 address
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-__construct
+ */
+ public function __construct($address)
+ {
+ }
+
+ /**
+ * Returns the normalized string representation of the address.
+ *
+ * @return string address
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this inet.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns the normalized string representation of the address.
+ *
+ * @return string address
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-address
+ */
+ public function address()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `date` type.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/
+ */
+ final class Date implements Value
+ {
+
+ /**
+ * Creates a new Date object
+ *
+ * @param int $seconds Absolute seconds from epoch (1970, 1, 1), can be negative, defaults to current time.
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-__construct
+ */
+ public function __construct($seconds)
+ {
+ }
+
+ /**
+ * Creates a new Date object from a \DateTime object.
+ *
+ * @param \DateTime $datetime A \DateTime object to convert.
+ *
+ * @return \DateTime PHP representation
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-fromDateTime
+ */
+ public static function fromDateTime($datetime)
+ {
+ }
+
+ /**
+ * The type of this date.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * @return int Absolute seconds from epoch (1970, 1, 1), can be negative
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-seconds
+ */
+ public function seconds()
+ {
+ }
+
+ /**
+ * Converts current date to PHP DateTime.
+ *
+ * @param \Cassandra\Time $time An optional Time object that is added to the DateTime object.
+ *
+ * @return \DateTime PHP representation
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-toDateTime
+ */
+ public function toDateTime($time)
+ {
+ }
+
+ /**
+ * @return string this date in string format: Date(seconds=$seconds)
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of a column
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/
+ */
+ final class DefaultColumn implements Column
+ {
+
+ /**
+ * Returns the name of the column.
+ *
+ * @return string Name of the column or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns the type of the column.
+ *
+ * @return \Cassandra\Type Type of the column
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns whether the column is in descending or ascending order.
+ *
+ * @return bool Whether the column is stored in descending order.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-isReversed
+ */
+ public function isReversed()
+ {
+ }
+
+ /**
+ * Returns true for static columns.
+ *
+ * @return bool Whether the column is static
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-isStatic
+ */
+ public function isStatic()
+ {
+ }
+
+ /**
+ * Returns true for frozen columns.
+ *
+ * @return bool Whether the column is frozen
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-isFrozen
+ */
+ public function isFrozen()
+ {
+ }
+
+ /**
+ * Returns name of the index if defined.
+ *
+ * @return string Name of the index if defined or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-indexName
+ */
+ public function indexName()
+ {
+ }
+
+ /**
+ * Returns index options if present.
+ *
+ * @return string Index options if present or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-indexOptions
+ */
+ public function indexOptions()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `blob` datatype
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/
+ */
+ final class Blob implements Value
+ {
+
+ /**
+ * Creates a new bytes array.
+ *
+ * @param string $bytes any bytes
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-__construct
+ */
+ public function __construct($bytes)
+ {
+ }
+
+ /**
+ * Returns bytes as a hex string.
+ *
+ * @return string bytes as hexadecimal string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * The type of this blob.
+ *
+ * @return \Cassandra\Type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-type
+ */
+ public function type()
+ {
+ }
+
+ /**
+ * Returns bytes as a hex string.
+ *
+ * @return string bytes as hexadecimal string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-bytes
+ */
+ public function bytes()
+ {
+ }
+
+ /**
+ * Returns bytes as a binary string.
+ *
+ * @return string bytes as binary string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-toBinaryString
+ */
+ public function toBinaryString()
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of a table
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/
+ */
+ final class DefaultTable implements Table
+ {
+
+ /**
+ * Returns the name of this table
+ *
+ * @return string Name of the table
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Return a table's option by name
+ *
+ * @param string $name The name of the option
+ *
+ * @return \Cassandra\Value Value of an option by name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-option
+ */
+ public function option($name)
+ {
+ }
+
+ /**
+ * Returns all the table's options
+ *
+ * @return array A dictionary of `string` and `Value` pairs of the table's options.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-options
+ */
+ public function options()
+ {
+ }
+
+ /**
+ * Description of the table, if any
+ *
+ * @return string Table description or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-comment
+ */
+ public function comment()
+ {
+ }
+
+ /**
+ * Returns read repair chance
+ *
+ * @return float Read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-readRepairChance
+ */
+ public function readRepairChance()
+ {
+ }
+
+ /**
+ * Returns local read repair chance
+ *
+ * @return float Local read repair chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-localReadRepairChance
+ */
+ public function localReadRepairChance()
+ {
+ }
+
+ /**
+ * Returns GC grace seconds
+ *
+ * @return int GC grace seconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-gcGraceSeconds
+ */
+ public function gcGraceSeconds()
+ {
+ }
+
+ /**
+ * Returns caching options
+ *
+ * @return string Caching options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-caching
+ */
+ public function caching()
+ {
+ }
+
+ /**
+ * Returns bloom filter FP chance
+ *
+ * @return float Bloom filter FP chance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-bloomFilterFPChance
+ */
+ public function bloomFilterFPChance()
+ {
+ }
+
+ /**
+ * Returns memtable flush period in milliseconds
+ *
+ * @return int Memtable flush period in milliseconds
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-memtableFlushPeriodMs
+ */
+ public function memtableFlushPeriodMs()
+ {
+ }
+
+ /**
+ * Returns default TTL.
+ *
+ * @return int Default TTL.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-defaultTTL
+ */
+ public function defaultTTL()
+ {
+ }
+
+ /**
+ * Returns speculative retry.
+ *
+ * @return string Speculative retry.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-speculativeRetry
+ */
+ public function speculativeRetry()
+ {
+ }
+
+ /**
+ * Returns index interval
+ *
+ * @return int Index interval
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-indexInterval
+ */
+ public function indexInterval()
+ {
+ }
+
+ /**
+ * Returns compaction strategy class name
+ *
+ * @return string Compaction strategy class name
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-compactionStrategyClassName
+ */
+ public function compactionStrategyClassName()
+ {
+ }
+
+ /**
+ * Returns compaction strategy options
+ *
+ * @return \Cassandra\Map Compaction strategy options
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-compactionStrategyOptions
+ */
+ public function compactionStrategyOptions()
+ {
+ }
+
+ /**
+ * Returns compression parameters
+ *
+ * @return \Cassandra\Map Compression parameters
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-compressionParameters
+ */
+ public function compressionParameters()
+ {
+ }
+
+ /**
+ * Returns whether or not the `populate_io_cache_on_flush` is true
+ *
+ * @return bool Value of `populate_io_cache_on_flush` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-populateIOCacheOnFlush
+ */
+ public function populateIOCacheOnFlush()
+ {
+ }
+
+ /**
+ * Returns whether or not the `replicate_on_write` is true
+ *
+ * @return bool Value of `replicate_on_write` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-replicateOnWrite
+ */
+ public function replicateOnWrite()
+ {
+ }
+
+ /**
+ * Returns the value of `max_index_interval`
+ *
+ * @return int Value of `max_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-maxIndexInterval
+ */
+ public function maxIndexInterval()
+ {
+ }
+
+ /**
+ * Returns the value of `min_index_interval`
+ *
+ * @return int Value of `min_index_interval` or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-minIndexInterval
+ */
+ public function minIndexInterval()
+ {
+ }
+
+ /**
+ * Returns column by name
+ *
+ * @param string $name Name of the column
+ *
+ * @return \Cassandra\Column Column instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-column
+ */
+ public function column($name)
+ {
+ }
+
+ /**
+ * Returns all columns in this table
+ *
+ * @return array A list of `Column` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-columns
+ */
+ public function columns()
+ {
+ }
+
+ /**
+ * Returns the partition key columns of the table
+ *
+ * @return array A list of of `Column` instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-partitionKey
+ */
+ public function partitionKey()
+ {
+ }
+
+ /**
+ * Returns both the partition and clustering key columns of the table
+ *
+ * @return array A list of of `Column` instance
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-primaryKey
+ */
+ public function primaryKey()
+ {
+ }
+
+ /**
+ * Returns the clustering key columns of the table
+ *
+ * @return array A list of of `Column` instances
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-clusteringKey
+ */
+ public function clusteringKey()
+ {
+ }
+
+ /**
+ * @return array A list of cluster column orders ('asc' and 'desc')
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-clusteringOrder
+ */
+ public function clusteringOrder()
+ {
+ }
+
+ /**
+ * Get an index by name
+ *
+ * @param string $name Index name
+ *
+ * @return \Cassandra\Index|null An index or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-index
+ */
+ public function index($name)
+ {
+ }
+
+ /**
+ * Gets all indexes
+ *
+ * @return array An array of indexes
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-indexes
+ */
+ public function indexes()
+ {
+ }
+
+ /**
+ * Get materialized view by name
+ *
+ * @param string $name Materialized view name
+ *
+ * @return \Cassandra\MaterizedView|null A materialized view or null
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-materializedView
+ */
+ public function materializedView($name)
+ {
+ }
+
+ /**
+ * Gets all materialized views
+ *
+ * @return array An array of materialized views
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-materializedViews
+ */
+ public function materializedViews()
+ {
+ }
+
+ }
+
+ /**
+ * A future that always resolves in a value.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureValue/
+ */
+ final class FutureValue implements Future
+ {
+
+ /**
+ * Waits for a given future resource to resolve and throws errors if any.
+ *
+ * @param int|double|null $timeout A timeout in seconds
+ *
+ * @return mixed A value
+ * @throws \Cassandra\Exception\TimeoutException
+ *
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureValue/#method-get
+ */
+ public function get($timeout)
+ {
+ }
+
+ }
+
+ /**
+ * A PHP representation of the CQL `decimal` datatype
+ *
+ * The actual value of a decimal is `$value * pow(10, $scale * -1)`
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Decimal/
+ */
+ final class Decimal implements Value, Numeric
+ {
+
+ /**
+ * Creates a decimal from a given decimal string:
+ *
+ * ~~~{.php}
+ * schema() will always return an empty object. This
+ * can be useful for reducing the startup overhead of short-lived sessions.
+ *
+ * @param bool $enabled whether the driver fetches and maintains schema metadata.
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withSchemaMetadata
+ */
+ public function withSchemaMetadata($enabled)
+ {
+ }
+
+ /**
+ * Enables/disables Hostname Resolution.
+ *
+ * If enabled the driver will resolve hostnames for IP addresses using
+ * reverse IP lookup. This is useful for authentication (Kerberos) or
+ * encryption SSL services that require a valid hostname for verification.
+ *
+ * Important: It's possible that the underlying C/C++ driver does not
+ * support hostname resolution. A PHP warning will be emitted if the driver
+ * does not support hostname resolution.
+ *
+ * @param bool $enabled whether the driver uses hostname resolution.
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withHostnameResolution
+ */
+ public function withHostnameResolution($enabled)
+ {
+ }
+
+ /**
+ * Enables/disables Randomized Contact Points.
+ *
+ * If enabled this allows the driver randomly use contact points in order
+ * to evenly spread the load across the cluster and prevent
+ * hotspots/load spikes during notifications (e.g. massive schema change).
+ *
+ * Note: This setting should only be disabled for debugging and testing.
+ *
+ * @param bool $enabled whether the driver uses randomized contact points.
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withRandomizedContactPoints
+ */
+ public function withRandomizedContactPoints($enabled)
+ {
+ }
+
+ /**
+ * Specify interval in seconds that the driver should wait before attempting
+ * to send heartbeat messages and control the amount of time the connection
+ * must be idle before sending heartbeat messages. This is useful for
+ * preventing intermediate network devices from dropping connections.
+ *
+ * @param float $interval interval in seconds (0 to disable heartbeat).
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withConnectionHeartbeatInterval
+ */
+ public function withConnectionHeartbeatInterval($interval)
+ {
+ }
+
+ }
+
+}
+
+/**
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/TimestampGenerator/
+ */
+
+namespace Cassandra\TimestampGenerator {
+
+ /**
+ * A timestamp generator that allows the server-side to assign timestamps.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/TimestampGenerator/class.ServerSide/
+ */
+ final class ServerSide implements \Cassandra\TimestampGenerator
+ {
+
+ }
+
+ /**
+ * A timestamp generator that generates monotonically increasing timestamps
+ * client-side. The timestamps generated have a microsecond granularity with
+ * the sub-millisecond part generated using a counter. The implementation
+ * guarantees that no more than 1000 timestamps will be generated for a given
+ * clock tick even if shared by multiple session objects. If that rate is
+ * exceeded then a warning is logged and timestamps stop incrementing until
+ * the next clock tick.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/TimestampGenerator/class.Monotonic/
+ */
+ final class Monotonic implements \Cassandra\TimestampGenerator
+ {
+
+ }
+
+}
+
+/**
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/
+ */
+
+namespace Cassandra\RetryPolicy {
+
+ /**
+ * The default retry policy. This policy retries a query, using the
+ * request's original consistency level, in the following cases:
+ *
+ * * On a read timeout, if enough replicas replied but the data was not received.
+ * * On a write timeout, if a timeout occurs while writing a distributed batch log.
+ * * On unavailable, it will move to the next host.
+ *
+ * In all other cases the error will be returned.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.DefaultPolicy/
+ */
+ final class DefaultPolicy implements \Cassandra\RetryPolicy
+ {
+
+ }
+
+ /**
+ * A retry policy that will downgrade the consistency of a request in
+ * an attempt to save a request in cases where there is any chance of success. A
+ * write request will succeed if there is at least a single copy persisted and a
+ * read request will succeed if there is some data available even if it increases
+ * the risk of reading stale data. This policy will retry in the same scenarios as
+ * the default policy, and it will also retry in the following case:
+ *
+ * * On a read timeout, if some replicas responded but is lower than
+ * required by the current consistency level then retry with a lower
+ * consistency level
+ * * On a write timeout, Retry unlogged batches at a lower consistency level
+ * if at least one replica responded. For single queries and batch if any
+ * replicas responded then consider the request successful and swallow the
+ * error.
+ * * On unavailable, retry at a lower consistency if at lease one replica
+ * responded.
+ *
+ * Important: This policy may attempt to retry requests with a lower
+ * consistency level. Using this policy can break consistency guarantees.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.DowngradingConsistency/
+ */
+ final class DowngradingConsistency implements \Cassandra\RetryPolicy
+ {
+
+ }
+
+ /**
+ * A retry policy that never retries and allows all errors to fallthrough.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.Fallthrough/
+ */
+ final class Fallthrough implements \Cassandra\RetryPolicy
+ {
+
+ }
+
+ /**
+ * A retry policy that logs the decisions of its child policy.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.Logging/
+ */
+ final class Logging implements \Cassandra\RetryPolicy
+ {
+
+ /**
+ * Creates a new Logging retry policy.
+ *
+ * @param \Cassandra\RetryPolicy $childPolicy Any retry policy other than Logging
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.Logging/#method-__construct
+ */
+ public function __construct($childPolicy)
+ {
+ }
+
+ }
+
+}
+
+/**
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/
+ */
+
+namespace Cassandra\Type {
+
+ /**
+ * A class that represents the tuple type. The tuple type is able to represent
+ * a composite type of one or more types accessed by index.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Tuple/
+ */
+ final class Tuple extends \Cassandra\Type
+ {
+
+ private function __construct()
+ {
+ }
+
+ /**
+ * Returns "tuple"
+ *
+ * @return string "tuple"
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Tuple/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns type representation in CQL, e.g. `tuple`
+ *
+ * @return string Type representation in CQL
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Tuple/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * Returns types of values
+ *
+ * @return array An array of types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Tuple/#method-types
+ */
+ public function types()
+ {
+ }
+
+ /**
+ * Creates a new Tuple from the given values. When no values given,
+ * creates a tuple with null for the values.
+ *
+ * @param mixed $values ,... One or more values to be added to the tuple.
+ *
+ * @return \Cassandra\Tuple A tuple with given values.
+ * @throws \Cassandra\Exception\InvalidArgumentException when values given are of a
+ * different type than what the
+ * tuple expects.
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Tuple/#method-create
+ */
+ public function create($values)
+ {
+ }
+
+ }
+
+ /**
+ * A class that represents the list type. The list type contains the type of the
+ * elements contain in the list.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Collection/
+ */
+ final class Collection extends \Cassandra\Type
+ {
+
+ private function __construct()
+ {
+ }
+
+ /**
+ * Returns "list"
+ *
+ * @return string "list"
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Collection/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns type of values
+ *
+ * @return \Cassandra\Type Type of values
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Collection/#method-valueType
+ */
+ public function valueType()
+ {
+ }
+
+ /**
+ * Returns type representation in CQL, e.g. `list`
+ *
+ * @return string Type representation in CQL
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Collection/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * Creates a new Collection from the given values. When no values
+ * given, creates an empty list.
+ *
+ * @param mixed $value ,... One or more values to be added to the list.
+ *
+ * @return \Cassandra\Collection A list with given values.
+ * @throws \Cassandra\Exception\InvalidArgumentException when values given are of a
+ * different type than what this
+ * list type expects.
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Collection/#method-create
+ */
+ public function create($value)
+ {
+ }
+
+ }
+
+ /**
+ * A class that represents the set type. The set type contains the type of the
+ * elements contain in the set.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Set/
+ */
+ final class Set extends \Cassandra\Type
+ {
+
+ private function __construct()
+ {
+ }
+
+ /**
+ * Returns "set"
+ *
+ * @return string "set"
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Set/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns type of values
+ *
+ * @return \Cassandra\Type Type of values
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Set/#method-valueType
+ */
+ public function valueType()
+ {
+ }
+
+ /**
+ * Returns type representation in CQL, e.g. `set`
+ *
+ * @return string Type representation in CQL
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Set/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * Creates a new Set from the given values.
+ *
+ * @param mixed $value ,... One or more values to be added to the set. When no values are given, creates an empty set.
+ *
+ * @return \Cassandra\Set A set with given values.
+ * @throws \Cassandra\Exception\InvalidArgumentException when values given are of a
+ * different type than what this
+ * set type expects.
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Set/#method-create
+ */
+ public function create($value)
+ {
+ }
+
+ }
+
+ /**
+ * A class that represents a custom type.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Custom/
+ */
+ final class Custom extends \Cassandra\Type
+ {
+
+ private function __construct()
+ {
+ }
+
+ /**
+ * Returns the name of this type as string.
+ *
+ * @return string The name of this type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Custom/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns string representation of this type.
+ *
+ * @return string String representation of this type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Custom/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * @param mixed $value
+ *
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Custom/#method-create
+ */
+ public function create($value)
+ {
+ }
+
+ }
+
+ /**
+ * A class that represents a user type. The user type is able to represent a
+ * composite type of one or more types accessed by name.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/
+ */
+ final class UserType extends \Cassandra\Type
+ {
+
+ private function __construct()
+ {
+ }
+
+ /**
+ * Associate the user type with a name.
+ *
+ * @param string $name Name of the user type.
+ *
+ * @return null Nothing.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/#method-withName
+ */
+ public function withName($name)
+ {
+ }
+
+ /**
+ * Returns type name for the user type
+ *
+ * @return string Name of this type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Associate the user type with a keyspace.
+ *
+ * @param string $keyspace Keyspace that contains the user type.
+ *
+ * @return null Nothing.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/#method-withKeyspace
+ */
+ public function withKeyspace($keyspace)
+ {
+ }
+
+ /**
+ * Returns keyspace for the user type
+ *
+ * @return string
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/#method-keyspace
+ */
+ public function keyspace()
+ {
+ }
+
+ /**
+ * Returns type representation in CQL, e.g. keyspace1.type_name1 or
+ * `userType`.
+ *
+ * @return string Type representation in CQL
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * Returns types of values
+ *
+ * @return array An array of types
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/#method-types
+ */
+ public function types()
+ {
+ }
+
+ /**
+ * Creates a new UserTypeValue from the given name/value pairs. When
+ * no values given, creates an empty user type.
+ *
+ * @param mixed $value ,... One or more name/value pairs to be added to the user type.
+ *
+ * @return \Cassandra\UserTypeValue A user type value with given name/value pairs.
+ * @throws \Cassandra\Exception\InvalidArgumentException when values given are of a
+ * different types than what the
+ * user type expects.
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.UserType/#method-create
+ */
+ public function create($value)
+ {
+ }
+
+ }
+
+ /**
+ * A class that represents the map type. The map type contains two types that
+ * represents the types of the key and value contained in the map.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Map/
+ */
+ final class Map extends \Cassandra\Type
+ {
+
+ private function __construct()
+ {
+ }
+
+ /**
+ * Returns "map"
+ *
+ * @return string "map"
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Map/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns type of keys
+ *
+ * @return \Cassandra\Type Type of keys
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Map/#method-keyType
+ */
+ public function keyType()
+ {
+ }
+
+ /**
+ * Returns type of values
+ *
+ * @return \Cassandra\Type Type of values
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Map/#method-valueType
+ */
+ public function valueType()
+ {
+ }
+
+ /**
+ * Returns type representation in CQL, e.g. `map`
+ *
+ * @return string Type representation in CQL
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Map/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * Creates a new Map from the given values.
+ *
+ * ```create(new Uuid(), 'first uuid',
+ * new Uuid(), 'second uuid',
+ * new Uuid(), 'third uuid');
+ *
+ * var_dump($map);```
+ *
+ *
+ * is a key and each even value is a value for the
+ * map, e.g. `create(key, value, key, value)`.
+ * When no values given, creates an empty map.
+ *
+ * @param mixed $value ,... An even number of values, where each odd value
+ *
+ * @return \Cassandra\Map A set with given values.
+ * @throws \Cassandra\Exception\InvalidArgumentException when keys or values given are
+ * of a different type than what
+ * this map type expects.
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Map/#method-create
+ */
+ public function create($value)
+ {
+ }
+
+ }
+
+ /**
+ * A class that represents a primitive type (e.g. `varchar` or `bigint`)
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Scalar/
+ */
+ final class Scalar extends \Cassandra\Type
+ {
+
+ private function __construct()
+ {
+ }
+
+ /**
+ * Returns the name of this type as string.
+ *
+ * @return string Name of this type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Scalar/#method-name
+ */
+ public function name()
+ {
+ }
+
+ /**
+ * Returns string representation of this type.
+ *
+ * @return string String representation of this type
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Scalar/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ /**
+ * @param mixed $value
+ *
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Scalar/#method-create
+ */
+ public function create($value)
+ {
+ }
+
+ }
+
+}
+
+/**
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/SSLOptions/
+ */
+
+namespace Cassandra\SSLOptions {
+
+ /**
+ * SSLOptions builder allows fluent configuration of ssl options.
+ *
+ * @see \Cassandra::ssl()
+ * @see \Cassandra\Cluster\Builder::withSSL()
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/SSLOptions/class.Builder/
+ */
+ final class Builder
+ {
+
+ /**
+ * Builds SSL options.
+ *
+ * @return \Cassandra\SSLOptions ssl options configured accordingly.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/SSLOptions/class.Builder/#method-build
+ */
+ public function build()
+ {
+ }
+
+ /**
+ * Adds a trusted certificate. This is used to verify node's identity.
+ *
+ * @param string $path ,... one or more paths to files containing a PEM formatted certificate.
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/SSLOptions/class.Builder/#method-withTrustedCerts
+ */
+ public function withTrustedCerts($path)
+ {
+ }
+
+ /**
+ * Disable certificate verification.
+ *
+ * @param int $flags
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/SSLOptions/class.Builder/#method-withVerifyFlags
+ */
+ public function withVerifyFlags($flags)
+ {
+ }
+
+ /**
+ * Set client-side certificate chain.
+ *
+ * This is used to authenticate the client on the server-side. This should contain the entire Certificate
+ * chain starting with the certificate itself.
+ *
+ * @param string $path path to a file containing a PEM formatted certificate.
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/SSLOptions/class.Builder/#method-withClientCert
+ */
+ public function withClientCert($path)
+ {
+ }
+
+ /**
+ * Set client-side private key. This is used to authenticate the client on
+ * the server-side.
+ *
+ * @param string $path Path to the private key file
+ * @param string|null $passphrase Passphrase for the private key, if any
+ *
+ * @return \Cassandra\Cluster\Builder self
+ * @throws \Cassandra\Exception\InvalidArgumentException
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/SSLOptions/class.Builder/#method-withPrivateKey
+ */
+ public function withPrivateKey($path, $passphrase)
+ {
+ }
+
+ }
+
+}
+
+/**
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/
+ */
+
+namespace Cassandra\Exception {
+
+ use JetBrains\PhpStorm\Pure;
+
+ /**
+ * ConfigurationException is raised when query is syntactically correct but
+ * invalid because of some configuration issue.
+ * For example when attempting to drop a non-existent keyspace.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ConfigurationException/
+ */
+ class ConfigurationException extends ValidationException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ConfigurationException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ConfigurationException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ConfigurationException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * Cassandra domain exception.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DomainException/
+ */
+ class DomainException extends \DomainException implements \Cassandra\Exception
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DomainException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DomainException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DomainException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * InvalidQueryException is raised when query is syntactically correct but invalid.
+ * For example when attempting to create a table without specifying a keyspace.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidQueryException/
+ */
+ class InvalidQueryException extends ValidationException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidQueryException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidQueryException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidQueryException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * UnpreparedException is raised when a given prepared statement id does not
+ * exist on the server. The driver should be automatically re-preparing the
+ * statement in this case. Seeing this error could be considered a bug.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnpreparedException/
+ */
+ class UnpreparedException extends ValidationException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnpreparedException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnpreparedException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnpreparedException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * Cassandra invalid argument exception.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidArgumentException/
+ */
+ class InvalidArgumentException extends \InvalidArgumentException implements \Cassandra\Exception
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidArgumentException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidArgumentException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidArgumentException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * ServerException is raised when something unexpected happened on the server.
+ * This exception is most likely due to a server-side bug.
+ * **NOTE** This exception and all its children are generated on the server.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ServerException/
+ */
+ class ServerException extends RuntimeException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ServerException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ServerException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ServerException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * Cassandra domain exception.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RangeException/
+ */
+ class RangeException extends \RangeException implements \Cassandra\Exception
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RangeException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RangeException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RangeException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * UnauthorizedException is raised when the current user doesn't have
+ * sufficient permissions to access data.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnauthorizedException/
+ */
+ class UnauthorizedException extends ValidationException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnauthorizedException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnauthorizedException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnauthorizedException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * Cassandra logic exception.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.LogicException/
+ */
+ class LogicException extends \LogicException implements \Cassandra\Exception
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.LogicException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.LogicException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.LogicException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * UnavailableException is raised when a coordinator detected that there aren't
+ * enough replica nodes available to fulfill the request.
+ *
+ * NOTE: Request has not even been forwarded to the replica nodes in this case.
+ * @see https://github.com/apache/cassandra/blob/cassandra-2.1/doc/native_protocol_v1.spec#L667-L677 Description of the Unavailable error in the native protocol v1 spec.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnavailableException/
+ */
+ class UnavailableException extends ExecutionException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnavailableException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnavailableException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.UnavailableException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * AuthenticationException is raised when client was not configured with valid
+ * authentication credentials.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AuthenticationException/
+ */
+ class AuthenticationException extends RuntimeException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AuthenticationException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AuthenticationException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AuthenticationException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * OverloadedException is raised when a node is overloaded.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.OverloadedException/
+ */
+ class OverloadedException extends ServerException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.OverloadedException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.OverloadedException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.OverloadedException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * ReadTimeoutException is raised when a coordinator failed to receive acks
+ * from the required number of replica nodes in time during a read.
+ * @see https://github.com/apache/cassandra/blob/cassandra-2.1/doc/native_protocol_v1.spec#L709-L726 Description of ReadTimeout error in the native protocol spec
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ReadTimeoutException/
+ */
+ class ReadTimeoutException extends ExecutionException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ReadTimeoutException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ReadTimeoutException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ReadTimeoutException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * IsBootstrappingException is raised when a node is bootstrapping.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.IsBootstrappingException/
+ */
+ class IsBootstrappingException extends ServerException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.IsBootstrappingException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.IsBootstrappingException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.IsBootstrappingException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * ProtocolException is raised when a client did not follow server's protocol,
+ * e.g. sending a QUERY message before STARTUP. Seeing this error can be
+ * considered a bug.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ProtocolException/
+ */
+ class ProtocolException extends RuntimeException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ProtocolException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ProtocolException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ProtocolException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * ExecutionException is raised when something went wrong during request execution.
+ * @see \Cassandra\Exception\TruncateException
+ * @see \Cassandra\Exception\UnavailableException
+ * @see \Cassandra\Exception\ReadTimeoutException
+ * @see \Cassandra\Exception\WriteTimeoutException
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ExecutionException/
+ */
+ class ExecutionException extends RuntimeException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ExecutionException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ExecutionException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ExecutionException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * InvalidSyntaxException is raised when CQL in the request is syntactically incorrect.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidSyntaxException/
+ */
+ class InvalidSyntaxException extends ValidationException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidSyntaxException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidSyntaxException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.InvalidSyntaxException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * Cassandra runtime exception.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RuntimeException/
+ */
+ class RuntimeException extends \RuntimeException implements \Cassandra\Exception
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RuntimeException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RuntimeException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.RuntimeException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * TimeoutException is generally raised when a future did not resolve
+ * within a given time interval.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TimeoutException/
+ */
+ class TimeoutException extends RuntimeException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TimeoutException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TimeoutException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TimeoutException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * ValidationException is raised on invalid request, before even attempting to
+ * execute it.
+ * @see \Cassandra\Exception\InvalidSyntaxException
+ * @see \Cassandra\Exception\UnauthorizedException
+ * @see \Cassandra\Exception\InvalidQueryException
+ * @see \Cassandra\Exception\ConfigurationException
+ * @see \Cassandra\Exception\AlreadyExistsException
+ * @see \Cassandra\Exception\UnpreparedException
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ValidationException/
+ */
+ class ValidationException extends RuntimeException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ValidationException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ValidationException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.ValidationException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * TruncateException is raised when something went wrong during table
+ * truncation.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TruncateException/
+ */
+ class TruncateException extends ExecutionException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TruncateException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TruncateException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.TruncateException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * AlreadyExistsException is raised when attempting to re-create existing keyspace.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AlreadyExistsException/
+ */
+ class AlreadyExistsException extends ConfigurationException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AlreadyExistsException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AlreadyExistsException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.AlreadyExistsException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * Cassandra domain exception.
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DivideByZeroException/
+ */
+ class DivideByZeroException extends RangeException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DivideByZeroException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DivideByZeroException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.DivideByZeroException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+ /**
+ * WriteTimeoutException is raised when a coordinator failed to receive acks
+ * from the required number of replica nodes in time during a write.
+ * @see https://github.com/apache/cassandra/blob/cassandra-2.1/doc/native_protocol_v1.spec#L683-L708 Description of WriteTimeout error in the native protocol spec
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.WriteTimeoutException/
+ */
+ class WriteTimeoutException extends ExecutionException
+ {
+
+ /**
+ * @param mixed $message
+ * @param mixed $code
+ * @param mixed $previous
+ *
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.WriteTimeoutException/#method-__construct
+ */
+ #[Pure]
+ public function __construct($message, $code, $previous)
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.WriteTimeoutException/#method-__wakeup
+ */
+ public function __wakeup()
+ {
+ }
+
+ /**
+ * @return mixed
+ * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Exception/class.WriteTimeoutException/#method-__toString
+ */
+ public function __toString()
+ {
+ }
+
+ }
+
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/com_dotnet/com_dotnet.php b/vendor/jetbrains/phpstorm-stubs/com_dotnet/com_dotnet.php
new file mode 100644
index 0000000000..a1b2f9245e
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/com_dotnet/com_dotnet.php
@@ -0,0 +1,450 @@
+
+ * COM class constructor.
+ * @param string $module_name
+ * @param string $server_name [optional]
+ * @param int $codepage [optional]
+ * @param string $typelib [optional]
+ */
+ public function __construct ( $module_name, $server_name = null, $codepage = CP_ACP, $typelib = null) {}
+
+ public function __get ($name) {}
+
+ public function __set ($name, $value) {}
+
+ public function __call ($name, $args) {}
+
+}
+
+/**
+ * The DOTNET class allows you to instantiate a class from a .Net assembly and call its methods and access its properties.
+ * @link https://php.net/manual/en/class.dotnet.php
+ */
+class DOTNET {
+
+ /**
+ * (PHP 4 >= 4.1.0, PHP 5, PHP 7)
+ * COM class constructor.
+ * @param string $assembly_name
+ * @param string $class_name
+ * @param int $codepage [optional]
+ */
+ public function __construct ( $assembly_name , string $class_name, $codepage = CP_ACP ) {}
+
+ public function __get ($name) {}
+
+ public function __set ($name, $value) {}
+
+ public function __call ($name, $args) {}
+
+}
+
+/**
+ * The VARIANT is COM's equivalent of the PHP zval; it is a structure that can contain a value with a range of different possible types. The VARIANT class provided by the COM extension allows you to have more control over the way that PHP passes values to and from COM.
+ * @link https://php.net/manual/en/class.variant.php
+ */
+class VARIANT {
+
+ /**
+ * (PHP 4 >= 4.1.0, PHP 5, PHP 7)
+ * COM class constructor.
+ * @param mixed $value [optional]
+ * @param int $type [optional]
+ * @param int $codepage [optional]
+ */
+ public function __construct ( $value = null , int $type = VT_EMPTY, $codepage = CP_ACP ) {}
+
+ public function __get ($name) {}
+
+ public function __set ($name, $value) {}
+
+ public function __call ($name, $args) {}
+
+}
+
+/**
+ * This extension will throw instances of the class com_exception whenever there is a potentially fatal error reported by COM. All COM exceptions have a well-defined code property that corresponds to the HRESULT return value from the various COM operations. You may use this code to make programmatic decisions on how to handle the exception.
+ * @link https://php.net/manual/en/com.error-handling.php
+ */
+class com_exception extends \Exception {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Generate a globally unique identifier (GUID)
+ * @link https://php.net/manual/en/function.com-create-guid.php
+ * @return string
+ */
+function com_create_guid () {}
+
+/**
+ * (PHP 4 >= 4.2.0, PHP 5, PHP 7)
+ * Connect events from a COM object to a PHP object
+ * @link https://php.net/manual/en/function.com-event-sink.php
+ * @param \VARIANT $comobject
+ * @param object $sinkobject
+ * @param string $sinkinterface [optional]
+ * @return bool
+ */
+function com_event_sink ( $comobject, $sinkobject, $sinkinterface = null) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns a handle to an already running instance of a COM object
+ * @link https://php.net/manual/en/function.com-get-active-object.php
+ * @param string $progid
+ * @param int $code_page [optional]
+ * @return \VARIANT
+ */
+function com_get_active_object ( $progid, $code_page = CP_ACP ) {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5, PHP 7)
+ * Loads a Typelib
+ * @link https://php.net/manual/en/function.com-get-active-object.php
+ * @param string $typelib_name
+ * @param bool $case_insensitive [optional]
+ * @return bool
+ */
+function com_load_typelib ( $typelib_name, $case_insensitive = true ) {}
+
+/**
+ * (PHP 4 >= 4.2.0, PHP 5, PHP 7)
+ * Process COM messages, sleeping for up to timeoutms milliseconds
+ * @link https://php.net/manual/en/function.com-message-pump.php
+ * @param int $timeoutms [optional]
+ * @return bool
+ */
+function com_message_pump ( $timeoutms = 0 ) {}
+
+/**
+ * (PHP 4 >= 4.2.0, PHP 5, PHP 7)
+ * Print out a PHP class definition for a dispatchable interface
+ * @link https://php.net/manual/en/function.com-print-typeinfo.php
+ * @param object $comobject
+ * @param string $dispinterface [optional]
+ * @param bool $wantsink [optional]
+ * @return bool
+ */
+function com_print_typeinfo ( $comobject, $dispinterface = null, $wantsink = false ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns the absolute value of a variant
+ * @link https://php.net/manual/en/function.variant-abs.php
+ * @param mixed $val
+ * @return mixed
+ */
+function variant_abs ( $val ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * "Adds" two variant values together and returns the result
+ * @link https://php.net/manual/en/function.variant-abs.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_add ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Performs a bitwise AND operation between two variants
+ * @link https://php.net/manual/en/function.variant-and.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_and ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Convert a variant into a new variant object of another type
+ * @link https://php.net/manual/en/function.variant-cast.php
+ * @param \VARIANT $variant
+ * @param int $type
+ * @return \VARIANT
+ */
+function variant_cast ( $variant, $type ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Concatenates two variant values together and returns the result
+ * @link https://php.net/manual/en/function.variant-cat.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_cat ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Compares two variants
+ * @link https://php.net/manual/en/function.variant-cmp.php
+ * @param mixed $left
+ * @param mixed $right
+ * @param int $lcid [optional]
+ * @param int $flags [optional]
+ * @return int
+ */
+function variant_cmp ( $left, $right, $lcid = null, $flags = null ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns a variant date representation of a Unix timestamp
+ * @link https://php.net/manual/en/function.variant-date-from-timestamp.php
+ * @param int $timestamp
+ * @return \VARIANT
+ */
+function variant_date_from_timestamp ( $timestamp ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Converts a variant date/time value to Unix timestamp
+ * @link https://php.net/manual/en/function.variant-date-to-timestamp.php
+ * @param \VARIANT $variant
+ * @return int
+ */
+function variant_date_to_timestamp ( $variant ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns the result from dividing two variants
+ * @link https://php.net/manual/en/function.variant-div.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_div ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Performs a bitwise equivalence on two variants
+ * @link https://php.net/manual/en/function.variant-eqv.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_eqv ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns the integer portion of a variant
+ * @link https://php.net/manual/en/function.variant-fix.php
+ * @param mixed $variant
+ * @return mixed
+ */
+function variant_fix ( $variant ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns the type of a variant object
+ * @link https://php.net/manual/en/function.variant-get-type.php
+ * @param VARIANT $variant
+ * @return int
+ */
+function variant_get_type ( $variant ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Converts variants to integers and then returns the result from dividing them
+ * @link https://php.net/manual/en/function.variant-idiv.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_idiv ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Performs a bitwise implication on two variants
+ * @link https://php.net/manual/en/function.variant-imp.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_imp ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns the integer portion of a variant
+ * @link https://php.net/manual/en/function.variant-int.php
+ * @param mixed $variant
+ * @return mixed
+ */
+function variant_int ( $variant ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Divides two variants and returns only the remainder
+ * @link https://php.net/manual/en/function.variant-mod.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_mod ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Multiplies the values of the two variants
+ * @link https://php.net/manual/en/function.variant-mul.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_mul ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Performs logical negation on a variant
+ * @link https://php.net/manual/en/function.variant-neg.php
+ * @param mixed $variant
+ * @return mixed
+ */
+function variant_neg ( $variant ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Performs bitwise not negation on a variant
+ * @link https://php.net/manual/en/function.variant-not.php
+ * @param mixed $variant
+ * @return mixed
+ */
+function variant_not ( $variant ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Performs a logical disjunction on two variants
+ * @link https://php.net/manual/en/function.variant-or.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_or ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Returns the result of performing the power function with two variants
+ * @link https://php.net/manual/en/function.variant-pow.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_pow ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Rounds a variant to the specified number of decimal places
+ * @link https://php.net/manual/en/function.variant-round.php
+ * @param mixed $variant
+ * @param int $decimals
+ * @return mixed
+ */
+function variant_round ( $variant, $decimals ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Convert a variant into another type "in-place"
+ * @link https://php.net/manual/en/function.variant-set-type.php
+ * @param VARIANT $variant
+ * @param int $type
+ * @return void
+ */
+function variant_set_type ( $variant, $type ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Assigns a new value for a variant object
+ * @link https://php.net/manual/en/function.variant-set.php
+ * @param VARIANT $variant
+ * @param mixed $value
+ * @return void
+ */
+function variant_set ( $variant, $value ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Subtracts the value of the right variant from the left variant value
+ * @link https://php.net/manual/en/function.variant-sub.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_sub ( $left, $right ) {}
+
+/**
+ * (PHP 5, PHP 7)
+ * Performs a logical exclusion on two variants
+ * @link https://php.net/manual/en/function.variant-xor.php
+ * @param mixed $left
+ * @param mixed $right
+ * @return mixed
+ */
+function variant_xor ( $left, $right ) {}
+
+define ('CLSCTX_INPROC_SERVER', 1);
+define ('CLSCTX_INPROC_HANDLER', 2);
+define ('CLSCTX_LOCAL_SERVER', 4);
+define ('CLSCTX_REMOTE_SERVER', 16);
+define ('CLSCTX_SERVER', 21);
+define ('CLSCTX_ALL', 23);
+
+define ('VT_NULL', 1);
+define ('VT_EMPTY', 0);
+define ('VT_UI1', 17);
+define ('VT_I2', 2);
+define ('VT_I4', 3);
+define ('VT_R4', 4);
+define ('VT_R8', 5);
+define ('VT_BOOL', 11);
+define ('VT_ERROR', 10);
+define ('VT_CY', 6);
+define ('VT_DATE', 7);
+define ('VT_BSTR', 8);
+define ('VT_DECIMAL', 14);
+define ('VT_UNKNOWN', 13);
+define ('VT_DISPATCH', 9);
+define ('VT_VARIANT', 12);
+define ('VT_I1', 16);
+define ('VT_UI2', 18);
+define ('VT_UI4', 19);
+define ('VT_INT', 22);
+define ('VT_UINT', 23);
+define ('VT_ARRAY', 8192);
+define ('VT_BYREF', 16384);
+
+define ('CP_ACP', 0);
+define ('CP_MACCP', 2);
+define ('CP_OEMCP', 1);
+define ('CP_UTF7', 65000);
+define ('CP_UTF8', 65001);
+define ('CP_SYMBOL', 42);
+define ('CP_THREAD_ACP', 3);
+
+define ('VARCMP_LT', 0);
+define ('VARCMP_EQ', 1);
+define ('VARCMP_GT', 2);
+define ('VARCMP_NULL', 3);
+
+define ('NORM_IGNORECASE', 1);
+define ('NORM_IGNORENONSPACE', 2);
+define ('NORM_IGNORESYMBOLS', 4);
+define ('NORM_IGNOREWIDTH', 131072);
+define ('NORM_IGNOREKANATYPE', 65536);
+define ('NORM_IGNOREKASHIDA', 262144);
+
+define ('DISP_E_DIVBYZERO', -2147352558);
+define ('DISP_E_OVERFLOW', -2147352566);
+define ('MK_E_UNAVAILABLE', -2147221021);
+
+// End of com v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/composer.json b/vendor/jetbrains/phpstorm-stubs/composer.json
new file mode 100644
index 0000000000..6eb60c416a
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/composer.json
@@ -0,0 +1,35 @@
+{
+ "name": "jetbrains/phpstorm-stubs",
+ "description": "PHP runtime & extensions header files for PhpStorm",
+ "homepage": "https://www.jetbrains.com/phpstorm",
+ "license": "Apache-2.0",
+ "keywords": [
+ "JetBrains",
+ "PHPStorm",
+ "stubs",
+ "autocomplete",
+ "type",
+ "inference",
+ "code",
+ "inspection"
+ ],
+ "require-dev": {
+ "php": "^8.0",
+ "nikic/php-parser": "dev-master",
+ "phpdocumentor/reflection-docblock": "dev-master",
+ "phpunit/phpunit": "^9",
+ "friendsofphp/php-cs-fixer": "^2.16"
+ },
+ "autoload": {
+ "files": ["PhpStormStubsMap.php"]
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "StubTests\\": "tests/"
+ }
+ },
+ "scripts": {
+ "cs": "php-cs-fixer fix -v --diff --dry-run",
+ "cs-fix": "php-cs-fixer fix -v --diff"
+ }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/couchbase/couchbase.php b/vendor/jetbrains/phpstorm-stubs/couchbase/couchbase.php
new file mode 100644
index 0000000000..94a9149c12
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/couchbase/couchbase.php
@@ -0,0 +1,3613 @@
+= 4.0.0)
+ * and the mutation operation succeeded.
+ *
+ * If set, it can be used for enhanced durability requirements, as well as optimized consistency
+ * for N1QL queries.
+ */
+ public $token;
+ }
+
+ /**
+ * A fragment of a JSON Document returned by the sub-document API.
+ *
+ * @see \Couchbase\Bucket::mutateIn()
+ * @see \Couchbase\Bucket::lookupIn()
+ */
+ class DocumentFragment {
+ /**
+ * @var Exception exception object in case of error, or NULL
+ */
+ public $error;
+
+ /**
+ * @var mixed The value sub-document command returned.
+ */
+ public $value;
+
+ /**
+ * @var string The last known CAS value of the document
+ */
+ public $cas;
+
+ /**
+ * @var MutationToken
+ * The optional, opaque mutation token related to updated document the environment.
+ *
+ * Note that the mutation token is always NULL, unless they are explicitly enabled on the
+ * connection string (`?fetch_mutation_tokens=true`), the server version is supported (>= 4.0.0)
+ * and the mutation operation succeeded.
+ *
+ * If set, it can be used for enhanced durability requirements, as well as optimized consistency
+ * for N1QL queries.
+ */
+ public $token;
+ }
+
+ /**
+ * Represents a Couchbase Server Cluster.
+ *
+ * It is an entry point to the library, and in charge of opening connections to the Buckets.
+ * In addition it can instantiate \Couchbase\ClusterManager to peform cluster-wide operations.
+ *
+ * @see \Couchbase\Bucket
+ * @see \Couchbase\ClusterManager
+ * @see \Couchbase\Authenticator
+ */
+ class Cluster {
+ /**
+ * Create cluster object
+ *
+ * @param string $connstr connection string
+ */
+ public function __construct($connstr) {}
+
+ /**
+ * Open connection to the Couchbase bucket
+ *
+ * @param string $name Name of the bucket.
+ * @param string $password Password of the bucket to override authenticator.
+ * @return Bucket
+ *
+ * @see \Couchbase\Authenticator
+ */
+ public function openBucket($name = "default", $password = "") {}
+
+ /**
+ * Open management connection to the Couchbase cluster.
+ *
+ * @param string $username Name of the administrator to override authenticator or NULL.
+ * @param string $password Password of the administrator to override authenticator or NULL.
+ * @return ClusterManager
+ *
+ * @see \Couchbase\Authenticator
+ */
+ public function manager($username = null, $password = null) {}
+
+ /**
+ * Associate authenticator with Cluster
+ *
+ * @param Authenticator $authenticator
+ * @return null
+ *
+ * @see \Couchbase\Authenticator
+ * @see \Couchbase\ClassicAuthenticator
+ * @see \Couchbase\PasswordAuthenticator
+ */
+ public function authenticate($authenticator) {}
+
+ /**
+ * Create \Couchbase\PasswordAuthenticator from given credentials and associate it with Cluster
+ *
+ * @param string $username
+ * @param string $password
+ * @return null
+ *
+ * @see \Couchbase\Authenticator
+ * @see \Couchbase\PasswordAuthenticator
+ */
+ public function authenticateAs($username, $password) {}
+ }
+
+ /**
+ * Provides management capabilities for a Couchbase Server Cluster
+ *
+ * @see \Couchbase\Cluster
+ */
+ class ClusterManager {
+ /**
+ * The user account managed by Couchbase Cluster.
+ */
+ const RBAC_DOMAIN_LOCAL = 1;
+ /**
+ * The user account managed by external system (e.g. LDAP).
+ */
+ const RBAC_DOMAIN_EXTERNAL = 2;
+
+
+ final private function __construct() {}
+
+ /**
+ * Lists all buckets on this cluster.
+ *
+ * @return array
+ */
+ public function listBuckets() {}
+
+ /**
+ * Creates new bucket
+ *
+ * @param string $name Name of the bucket
+ * @param array $options Bucket options
+ * * "authType" (default: "sasl") type of the bucket authentication
+ * * "bucketType" (default: "couchbase") type of the bucket
+ * * "ramQuotaMB" (default: 100) memory quota of the bucket
+ * * "replicaNumber" (default: 1) number of replicas.
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-bucket-create.html
+ * More options and details
+ */
+ public function createBucket($name, $options = []) {}
+
+ /**
+ * Removes a bucket identified by its name.
+ *
+ * @param string $name name of the bucket
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-bucket-delete.html
+ * More details
+ */
+ public function removeBucket($name) {}
+
+ /**
+ * Provides information about the cluster.
+ *
+ * Returns an associative array of status information as seen on the cluster. The exact structure of the returned
+ * data can be seen in the Couchbase Manual by looking at the cluster /info endpoint.
+ *
+ * @return array
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-cluster-get.html
+ * Retrieving Cluster Information
+ */
+ public function info() {}
+
+ /**
+ * Lists all users on this cluster.
+ *
+ * @param int $domain RBAC domain
+ *
+ * @return array
+ *
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_LOCAL
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_EXTERNAL
+ */
+ public function listUsers($domain = RBAC_DOMAIN_LOCAL) {}
+
+ /**
+ * Fetch single user by its name
+ *
+ * @param string $username The user's identifier
+ * @param int $domain RBAC domain
+ *
+ * @return array
+ *
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_LOCAL
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_EXTERNAL
+ */
+ public function getUser($username, $domain = RBAC_DOMAIN_LOCAL) {}
+
+ /**
+ * Creates new user
+ *
+ * @param string $name Name of the user
+ * @param \Couchbase\UserSettings $settings settings (credentials and roles)
+ * @param int $domain RBAC domain
+ *
+ * @see https://developer.couchbase.com/documentation/server/5.0/rest-api/rbac.html
+ * More options and details
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_LOCAL
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_EXTERNAL
+ */
+ public function upsertUser($name, $settings, $domain = RBAC_DOMAIN_LOCAL) {}
+
+ /**
+ * Removes a user identified by its name.
+ *
+ * @param string $name name of the bucket
+ * @param int $domain RBAC domain
+ *
+ * @see https://developer.couchbase.com/documentation/server/5.0/rest-api/rbac.html
+ * More details
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_LOCAL
+ * @see \Couchbase\ClusterManager::RBAC_DOMAIN_EXTERNAL
+ */
+ public function removeUser($name, $domain = RBAC_DOMAIN_LOCAL) {}
+ }
+
+ /**
+ * Represents settings for new/updated user.
+ *
+ * @see https://developer.couchbase.com/documentation/server/5.0/rest-api/rbac.html
+ */
+ class UserSettings {
+ /**
+ * Sets full name of the user (optional).
+ *
+ * @param string $fullName Full name of the user
+ *
+ * @return \Couchbase\UserSettings
+ *
+ * @see https://developer.couchbase.com/documentation/server/5.0/rest-api/rbac.html
+ * More details
+ */
+ public function fullName($fullName) {}
+
+ /**
+ * Sets password of the user.
+ *
+ * @param string $password Password of the user
+ *
+ * @return \Couchbase\UserSettings
+ *
+ * @see https://developer.couchbase.com/documentation/server/5.0/rest-api/rbac.html
+ * More details
+ */
+ public function password($password) {}
+
+ /**
+ * Adds role to the list of the accessible roles of the user.
+ *
+ * @param string $role identifier of the role
+ * @param string $bucket the bucket where this role applicable (or `*` for all buckets)
+ *
+ * @return \Couchbase\UserSettings
+ *
+ * @see https://developer.couchbase.com/documentation/server/5.0/rest-api/rbac.html
+ * More details
+ */
+ public function role($role, $bucket = null) {}
+ }
+
+ /**
+ * Represents connection to the Couchbase Server
+ *
+ * @property int $operationTimeout
+ * The operation timeout (in microseconds) is the maximum amount of time the
+ * library will wait for an operation to receive a response before invoking
+ * its callback with a failure status.
+ *
+ * An operation may timeout if:
+ *
+ * * A server is taking too long to respond
+ * * An updated cluster configuration has not been promptly received
+ *
+ * @property int $viewTimeout
+ * The I/O timeout (in microseconds) for HTTP requests to Couchbase Views API
+ *
+ * @property int $n1qlTimeout
+ * The I/O timeout (in microseconds) for N1QL queries.
+ *
+ * @property int $httpTimeout
+ * The I/O timeout (in microseconds) for HTTP queries (management API).
+ *
+ * @property int $configTimeout
+ * How long (in microseconds) the client will wait to obtain the initial
+ * configuration.
+ *
+ * @property int $configNodeTimeout
+ * Per-node configuration timeout (in microseconds).
+ *
+ * This timeout sets the amount of time to wait for each node within
+ * the bootstrap/configuration process. This interval is a subset of
+ * the $configTimeout option mentioned above and is intended to ensure
+ * that the bootstrap process does not wait too long for a given node.
+ * Nodes that are physically offline may never respond and it may take
+ * a long time until they are detected as being offline.
+ *
+ * @property int $configDelay
+ * Config refresh throttling
+ *
+ * Modify the amount of time (in microseconds) before the configiration
+ * error threshold will forcefully be set to its maximum number forcing
+ * a configuration refresh.
+ *
+ * Note that if you expect a high number of timeouts in your operations,
+ * you should set this to a high number. If you are using the default
+ * timeout setting, then this value is likely optimal.
+ *
+ * @property int $htconfigIdleTimeout
+ * Idling/Persistence for HTTP bootstrap (in microseconds)
+ *
+ * By default the behavior of the library for HTTP bootstrap is to keep
+ * the stream open at all times (opening a new stream on a different host
+ * if the existing one is broken) in order to proactively receive
+ * configuration updates.
+ *
+ * The default value for this setting is -1. Changing this to another
+ * number invokes the following semantics:
+ *
+ * * The configuration stream is not kept alive indefinitely. It is kept
+ * open for the number of seconds specified in this setting. The socket
+ * is closed after a period of inactivity (indicated by this setting).
+ *
+ * * If the stream is broken (and no current refresh was requested by
+ * the client) then a new stream is not opened.
+ *
+ * @property int $durabilityInterval
+ * The time (in microseconds) the client will wait between repeated probes
+ * to a given server.
+ *
+ * @property int $durabilityTimeout
+ * The time (in microseconds) the client will spend sending repeated probes
+ * to a given key's vBucket masters and replicas before they are deemed not
+ * to have satisfied the durability requirements
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/start-using-sdk.html
+ * Start Using SDK
+ */
+ class Bucket {
+ /** Ping data (Key/Value) service. */
+ const PINGSVC_KV = 0x01;
+ /** Ping query (N1QL) service. */
+ const PINGSVC_N1QL = 0x02;
+ /** Ping views (Map/Reduce) service. */
+ const PINGSVC_VIEWS = 0x04;
+ /** Ping full text search (FTS) service. */
+ const PINGSVC_FTS = 0x08;
+
+
+ final private function __construct() {}
+
+ /**
+ * @param string $name
+ * @return int
+ */
+ final private function __get($name) {}
+
+ /**
+ * @param string $name
+ * @param int $value
+ * @return int
+ */
+ final private function __set($name, $value) {}
+
+ /**
+ * Returns the name of the bucket for current connection
+ *
+ * @return string
+ */
+ public function getName() {}
+
+ /**
+ * Returns an instance of a CouchbaseBucketManager for performing management operations against a bucket.
+ *
+ * @return BucketManager
+ */
+ public function manager() {}
+
+ /**
+ * Sets custom encoder and decoder functions for handling serialization.
+ *
+ * @param callable $encoder
+ * @param callable $decoder
+ *
+ * @see \Couchbase\defaultEncoder
+ * @see \Couchbase\defaultDecoder
+ * @see \Couchbase\passthruEncoder
+ * @see \Couchbase\passthruDecoder
+ */
+ public function setTranscoder($encoder, $decoder) {}
+
+ /**
+ * Retrieves a document
+ *
+ * @param string|array $ids one or more IDs
+ * @param array $options options
+ * * "lockTime" non zero if the documents have to be locked
+ * * "expiry" non zero if the expiration time should be updated
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see \Couchbase\Bucket::getAndLock()
+ * @see \Couchbase\Bucket::getAndTouch()
+ * @see \Couchbase\Bucket::unlock()
+ * @see \Couchbase\Bucket::touch()
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function get($ids, $options = []) {}
+
+ /**
+ * Retrieves a document and locks it.
+ *
+ * After the document has been locked on the server, its CAS would be masked,
+ * and all mutations of it will be rejected until the server unlocks the document
+ * automatically or it will be done manually with \Couchbase\Bucket::unlock() operation.
+ *
+ * @param string|array $ids one or more IDs
+ * @param int $lockTime time to lock the documents
+ * @param array $options options
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see \Couchbase\Bucket::unlock()
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ * @see https://forums.couchbase.com/t/is-there-a-way-to-do-pessimistic-locking-for-more-than-30-seconds/10666/3
+ * Forum post about getting server defaults for the $lockTime
+ */
+ public function getAndLock($ids, $lockTime, $options = []) {}
+
+ /**
+ * Retrieves a document and updates its expiration time.
+ *
+ * @param string|array $ids one or more IDs
+ * @param int $expiry time after which the document will not be accessible.
+ * If larger than 30 days (60*60*24*30), it will be interpreted by the
+ * server as absolute UNIX time (seconds from epoch 1970-01-01T00:00:00).
+ * @param array $options options
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function getAndTouch($ids, $expiry, $options = []) {}
+
+ /**
+ * Retrieves a document from a replica.
+ *
+ * @param string|array $ids one or more IDs
+ * @param array $options options
+ * * "index" the replica index. If the index is zero, it will return
+ * first successful replica, otherwise it will read only selected node.
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/failure-considerations.html
+ * More about failure considerations.
+ */
+ public function getFromReplica($ids, $options = []) {}
+
+ /**
+ * Inserts or updates a document, depending on whether the document already exists on the cluster.
+ *
+ * @param string|array $ids one or more IDs
+ * @param mixed $value value of the document
+ * @param array $options options
+ * * "expiry" document expiration time in seconds. If larger than 30 days (60*60*24*30),
+ * it will be interpreted by the server as absolute UNIX time (seconds from epoch
+ * 1970-01-01T00:00:00).
+ * * "persist_to" how many nodes the key should be persisted to (including master).
+ * If set to 0 then persistence will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which persistence
+ * is possible (which will always contain at least the master node).
+ * * "replicate_to" how many nodes the key should be persisted to (excluding master).
+ * If set to 0 then replication will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which replication
+ * is possible (which may be 0 if the bucket is not configured for replicas).
+ * * "flags" override flags (not recommended to use)
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function upsert($ids, $value, $options = []) {}
+
+ /**
+ * Inserts a document. This operation will fail if the document already exists on the cluster.
+ *
+ * @param string|array $ids one or more IDs
+ * @param mixed $value value of the document
+ * @param array $options options
+ * * "expiry" document expiration time in seconds. If larger than 30 days (60*60*24*30),
+ * it will be interpreted by the server as absolute UNIX time (seconds from epoch
+ * 1970-01-01T00:00:00).
+ * * "persist_to" how many nodes the key should be persisted to (including master).
+ * If set to 0 then persistence will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which persistence
+ * is possible (which will always contain at least the master node).
+ * * "replicate_to" how many nodes the key should be persisted to (excluding master).
+ * If set to 0 then replication will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which replication
+ * is possible (which may be 0 if the bucket is not configured for replicas).
+ * * "flags" override flags (not recommended to use)
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function insert($ids, $value, $options = []) {}
+
+ /**
+ * Replaces a document. This operation will fail if the document does not exists on the cluster.
+ *
+ * @param string|array $ids one or more IDs
+ * @param mixed $value value of the document
+ * @param array $options options
+ * * "cas" last known document CAS, which serves for optimistic locking.
+ * * "expiry" document expiration time in seconds. If larger than 30 days (60*60*24*30),
+ * it will be interpreted by the server as absolute UNIX time (seconds from epoch
+ * 1970-01-01T00:00:00).
+ * * "persist_to" how many nodes the key should be persisted to (including master).
+ * If set to 0 then persistence will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which persistence
+ * is possible (which will always contain at least the master node).
+ * * "replicate_to" how many nodes the key should be persisted to (excluding master).
+ * If set to 0 then replication will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which replication
+ * is possible (which may be 0 if the bucket is not configured for replicas).
+ * * "flags" override flags (not recommended to use)
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function replace($ids, $value, $options = []) {}
+
+ /**
+ * Appends content to a document.
+ *
+ * On the server side it just contatenate passed value to the existing one.
+ * Note that this might make the value un-decodable. Consider sub-document API
+ * for partial updates of the JSON documents.
+ *
+ * @param string|array $ids one or more IDs
+ * @param mixed $value value of the document
+ * @param array $options options
+ * * "cas" last known document CAS, which serves for optimistic locking.
+ * * "expiry" document expiration time in seconds. If larger than 30 days (60*60*24*30),
+ * it will be interpreted by the server as absolute UNIX time (seconds from epoch
+ * 1970-01-01T00:00:00).
+ * * "persist_to" how many nodes the key should be persisted to (including master).
+ * If set to 0 then persistence will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which persistence
+ * is possible (which will always contain at least the master node).
+ * * "replicate_to" how many nodes the key should be persisted to (excluding master).
+ * If set to 0 then replication will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which replication
+ * is possible (which may be 0 if the bucket is not configured for replicas).
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see \Couchbase\Bucket::mutateIn()
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function append($ids, $value, $options = []) {}
+
+ /**
+ * Prepends content to a document.
+ *
+ * On the server side it just contatenate existing value to the passed one.
+ * Note that this might make the value un-decodable. Consider sub-document API
+ * for partial updates of the JSON documents.
+ *
+ * @param string|array $ids one or more IDs
+ * @param mixed $value value of the document
+ * @param array $options options
+ * * "cas" last known document CAS, which serves for optimistic locking.
+ * * "expiry" document expiration time in seconds. If larger than 30 days (60*60*24*30),
+ * it will be interpreted by the server as absolute UNIX time (seconds from epoch
+ * 1970-01-01T00:00:00).
+ * * "persist_to" how many nodes the key should be persisted to (including master).
+ * If set to 0 then persistence will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which persistence
+ * is possible (which will always contain at least the master node).
+ * * "replicate_to" how many nodes the key should be persisted to (excluding master).
+ * If set to 0 then replication will not be checked. If set to a negative
+ * number, will be set to the maximum number of nodes to which replication
+ * is possible (which may be 0 if the bucket is not configured for replicas).
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see \Couchbase\Bucket::mutateIn()
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function prepend($ids, $value, $options = []) {}
+
+ /**
+ * Removes the document.
+ *
+ * @param string|array $ids one or more IDs
+ * @param array $options options
+ * * "cas" last known document CAS, which serves for optimistic locking.
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function remove($ids, $options = []) {}
+
+ /**
+ * Unlocks previously locked document
+ *
+ * @param string|array $ids one or more IDs
+ * @param array $options options
+ * * "cas" last known document CAS, which has been returned by locking command.
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see \Couchbase\Bucket::get()
+ * @see \Couchbase\Bucket::getAndLock()
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function unlock($ids, $options = []) {}
+
+ /**
+ * Updates document's expiration time.
+ *
+ * @param string|array $ids one or more IDs
+ * @param int $expiry time after which the document will not be accessible.
+ * If larger than 30 days (60*60*24*30), it will be interpreted by the
+ * server as absolute UNIX time (seconds from epoch 1970-01-01T00:00:00).
+ * @param array $options options
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function touch($ids, $expiry, $options = []) {}
+
+ /**
+ * Increments or decrements a key (based on $delta)
+ *
+ * @param string|array $ids one or more IDs
+ * @param int $delta the number whih determines the sign (positive/negative) and the value of the increment
+ * @param array $options options
+ * * "initial" initial value of the counter if it does not exist
+ * * "expiry" time after which the document will not be accessible.
+ * If larger than 30 days (60*60*24*30), it will be interpreted by the
+ * server as absolute UNIX time (seconds from epoch 1970-01-01T00:00:00).
+ * * "groupid" override value for hashing (not recommended to use)
+ * @return \Couchbase\Document|array document or list of the documents
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/core-operations.html
+ * Overview of K/V operations
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/document-operations.html
+ * More details about K/V operations for PHP SDK
+ */
+ public function counter($ids, $delta = 1, $options = []) {}
+
+ /**
+ * Returns a builder for reading subdocument API.
+ *
+ * @param string $id The ID of the JSON document
+ * @return LookupInBuilder
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function lookupIn($id) {}
+
+ /**
+ * Retrieves specified paths in JSON document
+ *
+ * This is essentially a shortcut for `lookupIn($id)->get($paths)->execute()`.
+ *
+ * @param string $id The ID of the JSON document
+ * @param string ...$paths List of the paths inside JSON documents (see "Path syntax" section of the
+ * "Sub-Document Operations" documentation).
+ * @return \Couchbase\DocumentFragment
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function retrieveIn($id, ...$paths) {}
+
+ /**
+ * Returns a builder for writing subdocument API.
+ *
+ * @param string $id The ID of the JSON document
+ * @param string $cas Last known document CAS value for optimisti locking
+ * @return MutateInBuilder
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function mutateIn($id, $cas) {}
+
+ /**
+ * Performs a query to Couchbase Server
+ *
+ * @param N1qlQuery|ViewQuery|SpatialViewQuery|SearchQuery|AnalyticsQuery $query
+ * @param bool $jsonAsArray if true, the values in the result rows (or hits) will be represented as
+ * PHP arrays, otherwise they will be instances of the `stdClass`
+ * @return object Query-specific result object.
+ *
+ * @see \Couchbase\N1qlQuery
+ * @see \Couchbase\SearchQuery
+ * @see \Couchbase\ViewQuery
+ * @see \Couchbase\SpatialViewQuery
+ */
+ public function query($query, $jsonAsArray = false) {}
+
+ /**
+ * Returns size of the map
+ *
+ * @param string $id ID of the document
+ * @return int number of the key-value pairs
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function mapSize($id) {}
+
+ /**
+ * Add key to the map
+ *
+ * @param string $id ID of the document
+ * @param string $key key
+ * @param mixed $value value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function mapAdd($id, $key, $value) {}
+
+ /**
+ * Removes key from the map
+ *
+ * @param string $id ID of the document
+ * @param string $key key
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function mapRemove($id, $key) {}
+
+ /**
+ * Get an item from a map
+ *
+ * @param string $id ID of the document
+ * @param string $key key
+ * @return mixed value associated with the key
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function mapGet($id, $key) {}
+
+ /**
+ * Returns size of the set
+ *
+ * @param string $id ID of the document
+ * @return int number of the elements
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function setSize($id) {}
+
+ /**
+ * Add value to the set
+ *
+ * Note, that currently only primitive values could be stored in the set (strings, integers and booleans).
+ *
+ * @param string $id ID of the document
+ * @param string|int|float|bool $value new value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function setAdd($id, $value) {}
+
+ /**
+ * Check if the value exists in the set
+ *
+ * @param string $id ID of the document
+ * @param string|int|float|bool $value value to check
+ * @return bool true if the value exists in the set
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function setExists($id, $value) {}
+
+ /**
+ * Remove value from the set
+ *
+ * @param string $id ID of the document
+ * @param string|int|float|bool $value value to remove
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function setRemove($id, $value) {}
+
+ /**
+ * Returns size of the list
+ *
+ * @param string $id ID of the document
+ * @return int number of the elements
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function listSize($id) {}
+
+ /**
+ * Add an element to the end of the list
+ *
+ * @param string $id ID of the document
+ * @param mixed $value new value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function listPush($id, $value) {}
+
+ /**
+ * Add an element to the beginning of the list
+ *
+ * @param string $id ID of the document
+ * @param mixed $value new value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function listShift($id, $value) {}
+
+ /**
+ * Remove an element at the given position
+ *
+ * @param string $id ID of the document
+ * @param int $index index of the element to be removed
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function listRemove($id, $index) {}
+
+ /**
+ * Get an element at the given position
+ *
+ * @param string $id ID of the document
+ * @param int $index index of the element
+ * @return mixed the value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function listGet($id, $index) {}
+
+ /**
+ * Set an element at the given position
+ *
+ * @param string $id ID of the document
+ * @param int $index index of the element
+ * @param mixed $value new value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function listSet($id, $index, $value) {}
+
+ /**
+ * Check if the list contains specified value
+ *
+ * @param string $id ID of the document
+ * @param mixed $value value to look for
+ * @return bool true if the list contains the value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function listExists($id, $value) {}
+
+ /**
+ * Returns size of the queue
+ *
+ * @param string $id ID of the document
+ * @return int number of the elements in the queue
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function queueSize($id) {}
+
+ /**
+ * Checks if the queue contains specified value
+ *
+ * @param string $id ID of the document
+ * @param mixed $value value to look for
+ * @return bool true if the queue contains the value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function queueExists($id, $value) {}
+
+ /**
+ * Add an element to the beginning of the queue
+ *
+ * @param string $id ID of the document
+ * @param mixed $value new value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function queueAdd($id, $value) {}
+
+ /**
+ * Remove the element at the end of the queue and return it
+ *
+ * @param string $id ID of the document
+ * @return mixed removed value
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/datastructures.html
+ * More details on Data Structures
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Overview of Sub-Document Operations
+ */
+ public function queueRemove($id) {}
+
+ /**
+ * Try to reach specified services, and measure network latency.
+ *
+ * @param int $services bitwise mask of required services (and all services when zero)
+ * @param string $reportId custom identifier, which will be appended to "id" property in report
+ * @return array the report object
+ *
+ * @see \Couchbase\Bucket::PINGSVC_KV
+ * @see \Couchbase\Bucket::PINGSVC_N1QL
+ * @see \Couchbase\Bucket::PINGSVC_VIEWS
+ * @see \Couchbase\Bucket::PINGSVC_FTS
+ *
+ * @see https://github.com/couchbaselabs/sdk-rfcs/blob/master/rfc/0034-health-check.md
+ * SDK RFC #34, which describes the feature and report layout.
+ */
+ public function ping($services = 0, $reportId = null) {}
+
+ /**
+ * Collect and return information about state of internal network connections.
+ *
+ * @param string $reportId custom identifier, which will be appended to "id" property in report
+ * @return array the report object
+ *
+ * @see https://github.com/couchbaselabs/sdk-rfcs/blob/master/rfc/0034-health-check.md
+ * SDK RFC #34, which describes the feature and report layout.
+ */
+ public function diag($reportId = null) {}
+
+ /**
+ * Encrypt fields inside specified document.
+ *
+ * @param array $document document structure
+ * @param array $options specification for fields needed to be encrypted. Where 'alg' contains
+ * a string with alias of the registed crypto provider, and 'name' contains the name of the field.
+ * @param string $prefix optional prefix for modified field (when null, the library will use "__crypt")
+ *
+ * @return array where the fields encrypted
+ *
+ * @see https://github.com/couchbase/php-couchbase-encryption
+ */
+ public function encryptFields($document, $fieldOptions, $prefix = null) {}
+
+ /**
+ * Decrypt fields inside specified document.
+ *
+ * @param array $document document structure
+ * @param array $options specification for fields needed to be decrypted. Where 'alg' contains
+ * a string with alias of the registed crypto provider, and 'name' contains the name of the field.
+ * @param string $prefix optional prefix for modified field (when null, the library will use "__crypt")
+ *
+ * @return array where the fields decrypted
+ *
+ * @see https://github.com/couchbase/php-couchbase-encryption
+ */
+ public function decryptFields($document, $fieldOptions, $prefix = null) {}
+ }
+
+ /**
+ * Provides management capabilities for the Couchbase Bucket
+ */
+ class BucketManager {
+
+ final private function __construct() {}
+
+ /**
+ * Returns information about the bucket
+ *
+ * Returns an associative array of status information as seen by the cluster for
+ * this bucket. The exact structure of the returned data can be seen in the Couchbase
+ * Manual by looking at the bucket /info endpoint.
+ *
+ * @return array
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-bucket-info.html
+ * Getting Single Bucket Information
+ */
+ public function info() {}
+
+ /**
+ * Flushes the bucket (clears all data)
+ */
+ public function flush() {}
+
+ /**
+ * Returns all design documents of the bucket.
+ *
+ * @return array
+ */
+ public function listDesignDocuments() {}
+
+ /**
+ * Get design document by its name
+ *
+ * @param string $name name of the design document (without _design/ prefix)
+ * @return array
+ */
+ public function getDesignDocument($name) {}
+
+ /**
+ * Removes design document by its name
+ *
+ * @param string $name name of the design document (without _design/ prefix)
+ */
+ public function removeDesignDocument($name) {}
+
+ /**
+ * Creates or replaces design document.
+ *
+ * @param string $name name of the design document (without _design/ prefix)
+ * @param array $document
+ */
+ public function upsertDesignDocument($name, $document) {}
+
+ /**
+ * Inserts design document and fails if it is exist already.
+ *
+ * @param string $name name of the design document (without _design/ prefix)
+ * @param array $document
+ */
+ public function insertDesignDocument($name, $document) {}
+
+ /**
+ * List all N1QL indexes that are registered for the current bucket.
+ *
+ * @return array
+ */
+ public function listN1qlIndexes() {}
+
+ /**
+ * Create a primary N1QL index.
+ *
+ * @param string $customName the custom name for the primary index.
+ * @param bool $ignoreIfExist if a primary index already exists, an exception
+ * will be thrown unless this is set to true.
+ * @param bool $defer true to defer index building.
+ */
+ public function createN1qlPrimaryIndex($customName = '', $ignoreIfExist = false, $defer = false) {}
+
+ /**
+ * Create secondary N1QL index.
+ *
+ * @param string $name name of the index
+ * @param array $fields list of JSON fields to index
+ * @param string $whereClause the WHERE clause of the index.
+ * @param bool $ignoreIfExist if a secondary index already exists, an exception
+ * will be thrown unless this is set to true.
+ * @param bool $defer true to defer index building.
+ */
+ public function createN1qlIndex($name, $fields, $whereClause = '', $ignoreIfExist = false, $defer = false) {}
+
+ /**
+ * Drop the given primary index
+ *
+ * @param string $customName the custom name for the primary index
+ * @param bool $ignoreIfNotExist if a primary index does not exist, an exception
+ * will be thrown unless this is set to true.
+ */
+ public function dropN1qlPrimaryIndex($customName = '', $ignoreIfNotExist = false) {}
+
+ /**
+ * Drop the given secondary index
+ *
+ * @param string $name the index name
+ * @param bool $ignoreIfNotExist if a secondary index does not exist, an exception
+ * will be thrown unless this is set to true.
+ */
+ public function dropN1qlIndex($name, $ignoreIfNotExist = false) {}
+ }
+
+ /**
+ * Interface of authentication containers.
+ *
+ * @see \Couchbase\Cluster::authenticate()
+ * @see \Couchbase\ClassicAuthenticator
+ * @see \Couchbase\PasswordAuthenticator
+ */
+ interface Authenticator {}
+
+ /**
+ * Authenticator based on login/password credentials.
+ *
+ * This authenticator uses separate credentials for Cluster management interface
+ * as well as for each bucket.
+ *
+ *
+ *
+ * @see \Couchbase\Cluster::authenticate()
+ * @see \Couchbase\Authenticator
+ */
+ class ClassicAuthenticator implements Authenticator {
+ /**
+ * Registers cluster management credentials in the container
+ *
+ * @param string $username admin username
+ * @param string $password admin password
+ */
+ public function cluster($username, $password) {}
+
+ /**
+ * Registers bucket credentials in the container
+ *
+ * @param string $name bucket name
+ * @param string $password bucket password
+ */
+ public function bucket($name, $password) {}
+ }
+
+ /**
+ * Authenticator based on RBAC feature of Couchbase Server 5+.
+ *
+ * This authenticator uses single credentials for all operations (data and management).
+ *
+ * @see \Couchbase\Cluster::authenticate()
+ * @see \Couchbase\Authenticator
+ */
+ class PasswordAuthenticator implements Authenticator {
+ /**
+ * Sets username
+ *
+ * @param string $username username
+ * @return \Couchbase\PasswordAuthenticator
+ */
+ public function username($username) {}
+
+ /**
+ * Sets password
+ *
+ * @param string $password password
+ * @return \Couchbase\PasswordAuthenticator
+ */
+ public function password($password) {}
+ }
+
+ /**
+ * An object which contains meta information of the document needed to enforce query consistency.
+ */
+ class MutationToken {
+
+ final private function __construct() {}
+
+ /**
+ * Creates new mutation token
+ *
+ * @param string $bucketName name of the bucket
+ * @param int $vbucketId partition number
+ * @param string $vbucketUuid UUID of the partition
+ * @param string $sequenceNumber sequence number inside partition
+ */
+ public static function from($bucketName, $vbucketId, $vbucketUuid, $sequenceNumber) {}
+
+ /**
+ * Returns bucket name
+ *
+ * @return string
+ */
+ public function bucketName() {}
+
+ /**
+ * Returns partition number
+ *
+ * @return int
+ */
+ public function vbucketId() {}
+
+ /**
+ * Returns UUID of the partition
+ *
+ * @return string
+ */
+ public function vbucketUuid() {}
+
+ /**
+ * Returns the sequence number inside partition
+ *
+ * @return string
+ */
+ public function sequenceNumber() {}
+ }
+
+ /**
+ * Container for mutation tokens.
+ */
+ class MutationState {
+
+ final private function __construct() {}
+
+ /**
+ * Create container from the given mutation token holders.
+ *
+ * @param array|Document|DocumentFragment $source anything that can have attached MutationToken
+ * @return MutationState
+ *
+ * @see \Couchbase\MutationToken
+ */
+ public static function from($source) {}
+
+ /**
+ * Update container with the given mutation token holders.
+ *
+ * @param array|Document|DocumentFragment $source anything that can have attached MutationToken
+ *
+ * @see \Couchbase\MutationToken
+ */
+ public function add($source) {}
+ }
+
+ /**
+ * Common interface for all View queries
+ *
+ * @see \Couchbase\ViewQuery
+ * @see \Couchbase\SpatialViewQuery
+ */
+ interface ViewQueryEncodable {
+ /**
+ * Returns associative array, representing the View query.
+ *
+ * @return array object which is ready to be serialized.
+ */
+ function encode();
+ }
+
+ /**
+ * Represents regular Couchbase Map/Reduce View query
+ *
+ * @see \Couchbase\Bucket::query()
+ * @see \Couchbase\SpatialViewQuery
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/view-queries-with-sdk.html
+ * MapReduce Views
+ * @see https://developer.couchbase.com/documentation/server/current/architecture/querying-data-with-views.html
+ * Querying Data with Views
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-views-get.html
+ * Getting Views Information
+ */
+ class ViewQuery implements ViewQueryEncodable {
+ /** Force a view update before returning data */
+ const UPDATE_BEFORE = 1;
+ /** Allow stale views */
+ const UPDATE_NONE = 2;
+ /** Allow stale view, update view after it has been accessed. */
+ const UPDATE_AFTER = 3;
+
+ const ORDER_ASCENDING = 1;
+ const ORDER_DESCENDING = 2;
+
+
+ final private function __construct() {}
+
+ /**
+ * Creates a new Couchbase ViewQuery instance for performing a view query.
+ *
+ * @param string $designDocumentName the name of the design document to query
+ * @param string $viewName the name of the view to query
+ * @return ViewQuery
+ */
+ public static function from($designDocumentName, $viewName) {}
+
+ /**
+ * Creates a new Couchbase ViewQuery instance for performing a spatial query.
+ * @param string $designDocumentName the name of the design document to query
+ * @param string $viewName the name of the view to query
+ * @return SpatialViewQuery
+ */
+ public static function fromSpatial($designDocumentName, $viewName) {}
+
+ /**
+ * Returns associative array, representing the View query.
+ *
+ * @return array object which is ready to be serialized.
+ */
+ function encode() {}
+
+ /**
+ * Limits the result set to a specified number rows.
+ *
+ * @param int $limit maximum number of records in the response
+ * @return ViewQuery
+ */
+ public function limit($limit) {}
+
+ /**
+ * Skips a number o records rom the beginning of the result set
+ *
+ * @param int $skip number of records to skip
+ * @return ViewQuery
+ */
+ public function skip($skip) {}
+
+ /**
+ * Specifies the mode of updating to perorm before and after executing the query
+ *
+ * @param int $consistency use constants UPDATE_BEFORE, UPDATE_NONE, UPDATE_AFTER
+ * @return ViewQuery
+ *
+ * @see \Couchbase\ViewQuery::UPDATE_BEFORE
+ * @see \Couchbase\ViewQuery::UPDATE_NONE
+ * @see \Couchbase\ViewQuery::UPDATE_AFTER
+ */
+ public function consistency($consistency) {}
+
+ /**
+ * Orders the results by key as specified
+ *
+ * @param int $order use contstants ORDER_ASCENDING, ORDER_DESCENDING
+ * @return ViewQuery
+ */
+ public function order($order) {}
+
+ /**
+ * Specifies whether the reduction function should be applied to results of the query.
+ *
+ * @param bool $reduce
+ * @return ViewQuery
+ */
+ public function reduce($reduce) {}
+
+ /**
+ * Group the results using the reduce function to a group or single row.
+ *
+ * Important: this setter and groupLevel should not be used together in the
+ * same ViewQuery. It is sufficient to only set the grouping level only and
+ * use this setter in cases where you always want the highest group level
+ * implictly.
+ *
+ * @param bool $group
+ * @return ViewQuery
+ *
+ * @see \Couchbase\ViewQuery::groupLevel
+ */
+ public function group($group) {}
+
+ /**
+ * Specify the group level to be used.
+ *
+ * Important: group() and this setter should not be used together in the
+ * same ViewQuery. It is sufficient to only use this setter and use group()
+ * in cases where you always want the highest group level implictly.
+ *
+ * @param int $groupLevel the number of elements in the keys to use
+ * @return ViewQuery
+ *
+ * @see \Couchbase\ViewQuery::group
+ */
+ public function groupLevel($groupLevel) {}
+
+ /**
+ * Restict results of the query to the specified key
+ *
+ * @param mixed $key key
+ * @return ViewQuery
+ */
+ public function key($key) {}
+
+ /**
+ * Restict results of the query to the specified set of keys
+ *
+ * @param array $keys set of keys
+ * @return ViewQuery
+ */
+ public function keys($keys) {}
+
+ /**
+ * Specifies a range of the keys to return from the index.
+ *
+ * @param mixed $startKey
+ * @param mixed $endKey
+ * @param bool $inclusiveEnd
+ * @return ViewQuery
+ */
+ public function range($startKey, $endKey, $inclusiveEnd = false) {}
+
+ /**
+ * Specifies start and end document IDs in addition to range limits.
+ *
+ * This might be needed for more precise pagination with a lot of documents
+ * with the same key selected into the same page.
+ *
+ * @param string $startKeyDocumentId document ID
+ * @param string $endKeyDocumentId document ID
+ * @return ViewQuery
+ */
+ public function idRange($startKeyDocumentId, $endKeyDocumentId) {}
+
+ /**
+ * Specifies custom options to pass to the server.
+ *
+ * Note that these options are expected to be already encoded.
+ *
+ * @param array $customParameters parameters
+ * @return ViewQuery
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-views-get.html
+ * Getting Views Information
+ */
+ public function custom($customParameters) {}
+ }
+
+ /**
+ * Represents spatial Couchbase Map/Reduce View query
+ *
+ * @see \Couchbase\Bucket::query()
+ * @see \Couchbase\ViewQuery
+ * @see https://developer.couchbase.com/documentation/server/current/architecture/querying-geo-data-spatial-views.html
+ * Querying Geographic Data with Spatial Views
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-views-get.html
+ * Getting Views Information
+ * @see https://developer.couchbase.com/documentation/server/current/views/sv-query-parameters.html
+ * Querying spatial views
+ */
+ class SpatialViewQuery implements ViewQueryEncodable {
+
+ final private function __construct() {}
+
+ /**
+ * Returns associative array, representing the View query.
+ *
+ * @return array object which is ready to be serialized.
+ */
+ function encode() {}
+
+ /**
+ * Limits the result set to a specified number rows.
+ *
+ * @param int $limit maximum number of records in the response
+ * @return SpatialViewQuery
+ */
+ public function limit($limit) {}
+
+ /**
+ * Skips a number o records rom the beginning of the result set
+ *
+ * @param int $skip number of records to skip
+ * @return SpatialViewQuery
+ */
+ public function skip($skip) {}
+
+ /**
+ * Specifies the mode of updating to perorm before and after executing the query
+ *
+ * @param int $consistency use constants UPDATE_BEFORE, UPDATE_NONE, UPDATE_AFTER
+ * @return SpatialViewQuery
+ *
+ * @see \Couchbase\ViewQuery::UPDATE_BEFORE
+ * @see \Couchbase\ViewQuery::UPDATE_NONE
+ * @see \Couchbase\ViewQuery::UPDATE_AFTER
+ */
+ public function consistency($consistency) {}
+
+ /**
+ * Orders the results by key as specified
+ *
+ * @param int $order use contstants ORDER_ASCENDING, ORDER_DESCENDING
+ * @return SpatialViewQuery
+ */
+ public function order($order) {}
+
+ /**
+ * Specifies the bounding box to search within.
+ *
+ * Note, using bbox() is discouraged, startRange/endRange is more flexible and should be preferred.
+ *
+ * @param array $bbox bounding box coordinates expressed as a list of numeric values
+ * @return SpatialViewQuery
+ *
+ * @see \Couchbase\SpatialViewQuery::startRange()
+ * @see \Couchbase\SpatialViewQuery::endRange()
+ */
+ public function bbox($bbox) {}
+
+ /**
+ * Specify start range for query
+ *
+ * @param array $range
+ * @return SpatialViewQuery
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/views/sv-query-parameters.html
+ * Querying spatial views
+ */
+ public function startRange($range) {}
+
+ /**
+ * Specify end range for query
+ *
+ * @param array $range
+ * @return SpatialViewQuery
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/views/sv-query-parameters.html
+ * Querying spatial views
+ */
+ public function endRange($range) {}
+
+ /**
+ * Specifies custom options to pass to the server.
+ *
+ * Note that these options are expected to be already encoded.
+ *
+ * @param array $customParameters parameters
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/rest-api/rest-views-get.html
+ * Getting Views Information
+ * @see https://developer.couchbase.com/documentation/server/current/views/sv-query-parameters.html
+ * Querying spatial views
+ */
+ public function custom($customParameters) {}
+ }
+
+ /**
+ * Represents a N1QL query
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/n1ql-query.html
+ * Querying with N1QL
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/php/n1ql-queries-with-sdk.html
+ * N1QL from the SDKs
+ * @see https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-rest-api/index.html
+ * N1QL REST API
+ * @see https://developer.couchbase.com/documentation/server/current/performance/index-scans.html
+ * Understanding Index Scans
+ * @see https://developer.couchbase.com/documentation/server/current/performance/indexing-and-query-perf.html
+ * Indexing JSON Documents and Query Performance
+ */
+ class N1qlQuery {
+ /**
+ * This is the default (for single-statement requests).
+ * No timestamp vector is used in the index scan.
+ * This is also the fastest mode, because we avoid the cost of obtaining the vector,
+ * and we also avoid any wait for the index to catch up to the vector.
+ */
+ const NOT_BOUNDED = 1;
+ /**
+ * This implements strong consistency per request.
+ * Before processing the request, a current vector is obtained.
+ * The vector is used as a lower bound for the statements in the request.
+ * If there are DML statements in the request, RYOW is also applied within the request.
+ */
+ const REQUEST_PLUS = 2;
+ /**
+ * This implements strong consistency per statement.
+ * Before processing each statement, a current vector is obtained
+ * and used as a lower bound for that statement.
+ */
+ const STATEMENT_PLUS = 3;
+
+ /**
+ * Disables profiling. This is the default
+ */
+ const PROFILE_NONE = 'off';
+ /**
+ * Enables phase profiling.
+ */
+ const PROFILE_PHASES = 'phases';
+ /**
+ * Enables general timing profiling.
+ */
+ const PROFILE_TIMINGS = 'timings';
+
+
+ final private function __construct() {}
+
+ /**
+ * Creates new N1qlQuery instance directly from the N1QL string.
+ *
+ * @param string $statement N1QL string
+ * @return N1qlQuery
+ */
+ public static function fromString($statement) {}
+
+ /**
+ * Allows to specify if this query is adhoc or not.
+ *
+ * If it is not adhoc (so performed often), the client will try to perform optimizations
+ * transparently based on the server capabilities, like preparing the statement and
+ * then executing a query plan instead of the raw query.
+ *
+ * @param bool $adhoc if query is adhoc, default is true (plain execution)
+ * @return N1qlQuery
+ */
+ public function adhoc($adhoc) {}
+
+ /**
+ * Allows to pull credentials from the Authenticator
+ *
+ * @param bool $crossBucket if query includes joins for multiple buckets (default is false)
+ * @return N1qlQuery
+ *
+ *
+ * @see \Couchbase\Authenticator
+ * @see \Couchbase\ClassicAuthenticator
+ */
+ public function crossBucket($crossBucket) {}
+
+ /**
+ * Specify array of positional parameters
+ *
+ * Previously specified positional parameters will be replaced.
+ * Note: carefully choose type of quotes for the query string, because PHP also uses `$`
+ * (dollar sign) for variable interpolation. If you are using double quotes, make sure
+ * that N1QL parameters properly escaped.
+ *
+ * @param array $params
+ * @return N1qlQuery
+ *
+ */
+ public function positionalParams($params) {}
+
+ /**
+ * Specify associative array of named parameters
+ *
+ * The supplied array of key/value pairs will be merged with already existing named parameters.
+ * Note: carefully choose type of quotes for the query string, because PHP also uses `$`
+ * (dollar sign) for variable interpolation. If you are using double quotes, make sure
+ * that N1QL parameters properly escaped.
+ *
+ * @param array $params
+ * @return N1qlQuery
+ *
+ */
+ public function namedParams($params) {}
+
+ /**
+ * Specifies the consistency level for this query
+ *
+ * @param int $consistency consistency level
+ * @return N1qlQuery
+ *
+ * @see \Couchbase\N1qlQuery::NOT_BOUNDED
+ * @see \Couchbase\N1qlQuery::REQUEST_PLUS
+ * @see \Couchbase\N1qlQuery::STATEMENT_PLUS
+ * @see \Couchbase\N1qlQuery::consistentWith()
+ */
+ public function consistency($consistency) {}
+
+ /**
+ * Controls the profiling mode used during query execution
+ *
+ * @param string $profileType
+ * @return N1qlQuery
+ * @see \Couchbase\N1qlQuery::PROFILE_NONE
+ * @see \Couchbase\N1qlQuery::PROFILE_PHASES
+ * @see \Couchbase\N1qlQuery::PROFILE_TIMINGS
+ */
+ public function profile($profileType) {}
+ /**
+ * Sets mutation state the query should be consistent with
+ *
+ * @param MutationState $state the container of mutation tokens
+ * @return N1qlQuery
+ *
+ * @see \Couchbase\MutationState
+ *
+ */
+ public function consistentWith($state) {}
+
+ /**
+ * If set to true, it will signal the query engine on the server that only non-data modifying requests
+ * are allowed. Note that this rule is enforced on the server and not the SDK side.
+ *
+ * Controls whether a query can change a resulting record set.
+ *
+ * If readonly is true, then the following statements are not allowed:
+ * - CREATE INDEX
+ * - DROP INDEX
+ * - INSERT
+ * - MERGE
+ * - UPDATE
+ * - UPSERT
+ * - DELETE
+ *
+ * @param bool $readonly true if readonly should be forced, false is the default and will use the server side default.
+ * @return N1qlQuery
+ */
+ public function readonly($readonly) {}
+
+ /**
+ * Advanced: Maximum buffered channel size between the indexer client and the query service for index scans.
+ *
+ * This parameter controls when to use scan backfill. Use 0 or a negative number to disable.
+ *
+ * @param int $scanCap the scan_cap param, use 0 or negative number to disable.
+ * @return N1qlQuery
+ */
+ public function scanCap($scanCap) {}
+
+ /**
+ * Advanced: Controls the number of items execution operators can batch for Fetch from the KV.
+ *
+ * @param int $pipelineBatch the pipeline_batch param.
+ * @return N1qlQuery
+ */
+ public function pipelineBatch($pipelineBatch) {}
+
+ /**
+ * Advanced: Maximum number of items each execution operator can buffer between various operators.
+ *
+ * @param int $pipelineCap the pipeline_cap param.
+ * @return N1qlQuery
+ */
+ public function pipelineCap($pipelineCap) {}
+
+ /**
+ * Allows to override the default maximum parallelism for the query execution on the server side.
+ *
+ * @param int $maxParallelism the maximum parallelism for this query, 0 or negative values disable it.
+ * @return N1qlQuery
+ */
+ public function maxParallelism($maxParallelism) {}
+ }
+
+ /**
+ * Represents N1QL index definition
+ *
+ * @see https://developer.couchbase.com/documentation/server/current/performance/indexing-and-query-perf.html
+ * Indexing JSON Documents and Query Performance
+ */
+ class N1qlIndex {
+ const UNSPECIFIED = 0;
+ const GSI = 1;
+ const VIEW = 2;
+
+
+ final private function __construct() {}
+
+ /**
+ * Name of the index
+ *
+ * @var string
+ */
+ public $name;
+
+ /**
+ * Is it primary index
+ *
+ * @var boolean
+ */
+ public $isPrimary;
+
+ /**
+ * Type of the index
+ *
+ * @var int
+ *
+ * @see \Couchbase\N1qlIndex::UNSPECIFIED
+ * @see \Couchbase\N1qlIndex::GSI
+ * @see \Couchbase\N1qlIndex::VIEW
+ */
+ public $type;
+
+ /**
+ * The descriptive state of the index
+ *
+ * @var string
+ */
+ public $state;
+
+ /**
+ * The keyspace for the index, typically the bucket name
+ * @var string
+ */
+ public $keyspace;
+
+ /**
+ * The namespace for the index. A namespace is a resource pool that contains multiple keyspaces
+ * @var string
+ */
+ public $namespace;
+
+ /**
+ * The fields covered by index
+ * @var array
+ */
+ public $fields;
+
+ /**
+ * Return the string representation of the index's condition (the WHERE clause
+ * of the index), or an empty String if no condition was set.
+ *
+ * Note that the query service can present the condition in a slightly different
+ * manner from when you declared the index: for instance it will wrap expressions
+ * with parentheses and show the fields in an escaped format (surrounded by backticks).
+ *
+ * @var string
+ */
+ public $condition;
+ }
+
+ /**
+ * A builder for subdocument lookups. In order to perform the final set of operations, use the
+ * execute() method.
+ *
+ * Instances of this builder should be obtained through \Couchbase\Bucket->lookupIn()
+ *
+ * @see \Couchbase\Bucket::lookupIn
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Sub-Document Operations
+ */
+ class LookupInBuilder {
+
+ final private function __construct() {}
+
+ /**
+ * Get a value inside the JSON document.
+ *
+ * @param string $path the path inside the document where to get the value from.
+ * @param array $options the array with command modificators. Supported values are
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return LookupInBuilder
+ */
+ public function get($path, $options = []) {}
+
+ /**
+ * Get a count of values inside the JSON document.
+ *
+ * This method is only available with Couchbase Server 5.0 and later.
+ *
+ * @param string $path the path inside the document where to get the count from.
+ * @param array $options the array with command modificators. Supported values are
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return LookupInBuilder
+ */
+ public function getCount($path, $options = []) {}
+
+ /**
+ * Check if a value exists inside the document.
+ *
+ * This doesn't transmit the value on the wire if it exists, saving the corresponding byte overhead.
+ *
+ * @param string $path the path inside the document to check for existence
+ * @param array $options the array with command modificators. Supported values are
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return LookupInBuilder
+ */
+ public function exists($path, $options = []) {}
+
+ /**
+ * Perform several lookup operations inside a single existing JSON document, using a specific timeout
+ * @return DocumentFragment
+ *
+ */
+ public function execute() {}
+ }
+
+ /**
+ * A builder for subdocument mutations. In order to perform the final set of operations, use the
+ * execute() method.
+ *
+ * Instances of this builder should be obtained through \Couchbase\Bucket->mutateIn()
+ *
+ * @see \Couchbase\Bucket::mutateIn
+ * @see https://developer.couchbase.com/documentation/server/current/sdk/subdocument-operations.html
+ * Sub-Document Operations
+ */
+ class MutateInBuilder {
+ const FULLDOC_REPLACE = 0;
+ const FULLDOC_UPSERT = 1;
+ const FULLDOC_INSERT = 2;
+
+
+ final private function __construct() {}
+
+ /**
+ * Insert a fragment provided the last element of the path doesn't exists.
+ *
+ * @param string $path the path where to insert a new dictionary value.
+ * @param mixed $value the new dictionary value to insert.
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function insert($path, $value, $options = []) {}
+
+
+ /**
+ * Select mode for new full-document operations.
+ *
+ * It defines behaviour of MutateInBuilder#upsert() method. The $mode
+ * could take one of three modes:
+ * * FULLDOC_REPLACE: complain when document does not exist
+ * * FULLDOC_INSERT: complain when document does exist
+ * * FULLDOC_UPSERT: unconditionally set value for the document
+ *
+ * @param int $mode operation mode
+ */
+ public function modeDocument($mode) {}
+
+ /**
+ * Insert a fragment, replacing the old value if the path exists.
+ *
+ * When only one argument supplied, the library will handle it as full-document
+ * upsert, and treat this argument as value. See MutateInBuilder#modeDocument()
+ *
+ * @param string $path the path where to insert (or replace) a dictionary value
+ * @param mixed $value the new dictionary value to be applied.
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function upsert($path, $value, $options = []) {}
+
+ /**
+ * Replace an existing value by the given fragment
+ *
+ * @param string $path the path where the value to replace is
+ * @param mixed $value the new value
+ * @param array $options the array with command modificators. Supported values are:
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function replace($path, $value, $options = []) {}
+
+ /**
+ * Remove an entry in a JSON document.
+ *
+ * Scalar, array element, dictionary entry, whole array or dictionary, depending on the path.
+ *
+ * @param string $path the path to remove
+ * @param array $options the array with command modificators. Supported values are:
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function remove($path, $options = []) {}
+
+ /**
+ * Prepend to an existing array, pushing the value to the front/first position in the array.
+ *
+ * @param string $path the path of the array
+ * @param mixed $value the value to insert at the front of the array
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function arrayPrepend($path, $value, $options = []) {}
+
+ /**
+ * Prepend multiple values at once in an existing array.
+ *
+ * Push all values in the collection's iteration order to the front/start of the array.
+ * For example given an array [A, B, C], prepending the values X and Y yields [X, Y, A, B, C]
+ * and not [[X, Y], A, B, C].
+ *
+ * @param string $path the path of the array
+ * @param array $values the values to insert at the front of the array as individual elements
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function arrayPrependAll($path, $values, $options = []) {}
+
+ /**
+ * Append to an existing array, pushing the value to the back/last position in the array.
+ *
+ * @param string $path the path of the array
+ * @param mixed $value the value to insert at the back of the array
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function arrayAppend($path, $value, $options = []) {}
+
+ /**
+ * Append multiple values at once in an existing array.
+ *
+ * Push all values in the collection's iteration order to the back/end of the array.
+ * For example given an array [A, B, C], appending the values X and Y yields [A, B, C, X, Y]
+ * and not [A, B, C, [X, Y]].
+ *
+ * @param string $path the path of the array
+ * @param array $values the values to individually insert at the back of the array
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function arrayAppendAll($path, $values, $options = []) {}
+
+ /**
+ * Insert into an existing array at a specific position
+ *
+ * Position denoted in the path, eg. "sub.array[2]".
+ *
+ * @param string $path the path (including array position) where to insert the value
+ * @param mixed $value the value to insert in the array
+ * @param array $options the array with command modificators. Supported values are:
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function arrayInsert($path, $value, $options = []) {}
+
+ /**
+ * Insert multiple values at once in an existing array at a specified position.
+ *
+ * Position denoted in the path, eg. "sub.array[2]"), inserting all values in the collection's iteration order
+ * at the given position and shifting existing values beyond the position by the number of elements in the
+ * collection.
+ *
+ * For example given an array [A, B, C], inserting the values X and Y at position 1 yields [A, B, X, Y, C]
+ * and not [A, B, [X, Y], C].
+
+ * @param string $path the path of the array
+ * @param array $values the values to insert at the specified position of the array, each value becoming
+ * an entry at or after the insert position.
+ * @param array $options the array with command modificators. Supported values are:
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function arrayInsertAll($path, $values, $options = []) {}
+
+ /**
+ * Insert a value in an existing array only if the value
+ * isn't already contained in the array (by way of string comparison).
+ *
+ * @param string $path the path to mutate in the JSON
+ * @param mixed $value the value to insert
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function arrayAddUnique($path, $value, $options = []) {}
+
+ /**
+ * Increment/decrement a numerical fragment in a JSON document.
+ *
+ * If the value (last element of the path) doesn't exist the counter
+ * is created and takes the value of the delta.
+ *
+ * @param string $path the path to the counter (must be containing a number).
+ * @param int $delta the value to increment or decrement the counter by
+ * @param array|bool $options the array with command modificators.
+ * The boolean value, controls "createPath" option. Supported values are:
+ * * "createPath" (default: false) true to create missing intermediary nodes.
+ * * "xattr" (default: false) if true, the path refers to a location
+ * within the document's extended attributes, not the document body.
+ * @return MutateInBuilder
+ */
+ public function counter($path, $delta, $options = []) {}
+
+ /**
+ * Change the expiry of the enclosing document as part of the mutation.
+ *
+ * @param mixed $expiry the new expiry to apply (or 0 to avoid changing the expiry)
+ * @return MutateInBuilder
+ */
+ public function withExpiry($expiry) {}
+
+ /**
+ * Perform several mutation operations inside a single existing JSON document.
+ * @return DocumentFragment
+ *
+ */
+ public function execute() {}
+ }
+
+ /**
+ * Represents full text search query
+ *
+ * @see https://developer.couchbase.com/documentation/server/4.6/sdk/php/full-text-searching-with-sdk.html
+ * Searching from the SDK
+ */
+ class SearchQuery implements \JsonSerializable {
+ const HIGHLIGHT_HTML = 'html';
+ const HIGHLIGHT_ANSI = 'ansi';
+ const HIGHLIGHT_SIMPLE = 'simple';
+
+ /**
+ * Prepare boolean search query
+ *
+ * @return BooleanSearchQuery
+ */
+ public static function boolean() {}
+
+ /**
+ * Prepare date range search query
+ *
+ * @return DateRangeSearchQuery
+ */
+ public static function dateRange() {}
+
+ /**
+ * Prepare numeric range search query
+ *
+ * @return NumericRangeSearchQuery
+ */
+ public static function numericRange() {}
+
+ /**
+ * Prepare term range search query
+ *
+ * @return TermRangeSearchQuery
+ */
+ public static function termRange() {}
+
+ /**
+ * Prepare boolean field search query
+ *
+ * @param bool $value
+ * @return BooleanFieldSearchQuery
+ */
+ public static function booleanField($value) {}
+
+ /**
+ * Prepare compound conjunction search query
+ *
+ * @param SearchQueryPart ...$queries list of inner query parts
+ * @return ConjunctionSearchQuery
+ */
+ public static function conjuncts(...$queries) {}
+
+ /**
+ * Prepare compound disjunction search query
+ *
+ * @param SearchQueryPart ...$queries list of inner query parts
+ * @return DisjunctionSearchQuery
+ */
+ public static function disjuncts(...$queries) {}
+
+ /**
+ * Prepare document ID search query
+ *
+ * @param string ...$documentIds
+ * @return DocIdSearchQuery
+ */
+ public static function docId(...$documentIds) {}
+
+ /**
+ * Prepare match search query
+ *
+ * @param string $match
+ * @return MatchSearchQuery
+ */
+ public static function match($match) {}
+
+ /**
+ * Prepare match all search query
+ *
+ * @return MatchAllSearchQuery
+ */
+ public static function matchAll() {}
+
+ /**
+ * Prepare match non search query
+ *
+ * @return MatchNoneSearchQuery
+ */
+ public static function matchNone() {}
+
+ /**
+ * Prepare phrase search query
+ *
+ * @param string ...$terms
+ * @return MatchPhraseSearchQuery
+ */
+ public static function matchPhrase(...$terms) {}
+
+ /**
+ * Prepare prefix search query
+ *
+ * @param string $prefix
+ * @return PrefixSearchQuery
+ */
+ public static function prefix($prefix) {}
+
+ /**
+ * Prepare query string search query
+ *
+ * @param string $queryString
+ * @return QueryStringSearchQuery
+ */
+ public static function queryString($queryString) {}
+
+ /**
+ * Prepare regexp search query
+ *
+ * @param string $regexp
+ * @return RegexpSearchQuery
+ */
+ public static function regexp($regexp) {}
+
+ /**
+ * Prepare term search query
+ *
+ * @param string $term
+ * @return TermSearchQuery
+ */
+ public static function term($term) {}
+
+ /**
+ * Prepare wildcard search query
+ *
+ * @param string $wildcard
+ * @return WildcardSearchQuery
+ */
+ public static function wildcard($wildcard) {}
+
+ /**
+ * Prepare geo distance search query
+ *
+ * @param float $longitude
+ * @param float $latitude
+ * @param string $distance e.g. "10mi"
+ * @return GeoDistanceSearchQuery
+ */
+ public static function geoDistance($longitude, $latitude, $distance) {}
+
+ /**
+ * Prepare geo bounding box search query
+ *
+ * @param float $topLeftLongitude
+ * @param float $topLeftLatitude
+ * @param float $bottomRightLongitude
+ * @param float $bottomRightLatitude
+ * @return GeoBoundingBoxSearchQuery
+ */
+ public static function geoBoundingBox($topLeftLongitude, $topLeftLatitude, $bottomRightLongitude, $bottomRightLatitude) {}
+
+ /**
+ * Prepare term search facet
+ *
+ * @param string $field
+ * @param int $limit
+ * @return TermSearchFacet
+ */
+ public static function termFacet($field, $limit) {}
+
+ /**
+ * Prepare date range search facet
+ *
+ * @param string $field
+ * @param int $limit
+ * @return DateRangeSearchFacet
+ */
+ public static function dateRangeFacet($field, $limit) {}
+
+ /**
+ * Prepare numeric range search facet
+ *
+ * @param string $field
+ * @param int $limit
+ * @return NumericRangeSearchFacet
+ */
+ public static function numericRangeFacet($field, $limit) {}
+
+ /**
+ * Prepare an FTS SearchQuery on an index.
+ *
+ * Top level query parameters can be set after that by using the fluent API.
+ *
+ * @param string $indexName the FTS index to search in
+ * @param SearchQueryPart $queryPart the body of the FTS query (e.g. a match phrase query)
+ */
+ public function __construct($indexName, $queryPart) {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * Add a limit to the query on the number of hits it can return
+ *
+ * @param int $limit the maximum number of hits to return
+ * @return SearchQuery
+ */
+ public function limit($limit) {}
+
+ /**
+ * Set the number of hits to skip (eg. for pagination).
+ *
+ * @param int $skip the number of results to skip
+ * @return SearchQuery
+ */
+ public function skip($skip) {}
+
+ /**
+ * Activates the explanation of each result hit in the response
+ *
+ * @param bool $explain
+ * @return SearchQuery
+ */
+ public function explain($explain) {}
+
+ /**
+ * Sets the server side timeout in milliseconds
+ *
+ * @param int $serverSideTimeout the server side timeout to apply
+ * @return SearchQuery
+ */
+ public function serverSideTimeout($serverSideTimeout) {}
+
+ /**
+ * Sets the consistency to consider for this FTS query to AT_PLUS and
+ * uses the MutationState to parameterize the consistency.
+ *
+ * This replaces any consistency tuning previously set.
+ *
+ * @param MutationState $state the mutation state information to work with
+ * @return SearchQuery
+ */
+ public function consistentWith($state) {}
+
+ /**
+ * Configures the list of fields for which the whole value should be included in the response.
+ *
+ * If empty, no field values are included. This drives the inclusion of the fields in each hit.
+ * Note that to be highlighted, the fields must be stored in the FTS index.
+ *
+ * @param string ...$fields
+ * @return SearchQuery
+ */
+ public function fields(...$fields) {}
+
+ /**
+ * Configures the highlighting of matches in the response
+ *
+ * @param string $style highlight style to apply. Use constants HIGHLIGHT_HTML,
+ * HIGHLIGHT_ANSI, HIGHLIGHT_SIMPLE.
+ * @param string ...$fields the optional fields on which to highlight.
+ * If none, all fields where there is a match are highlighted.
+ * @return SearchQuery
+ *
+ * @see \Couchbase\SearchQuery::HIGHLIGHT_HTML
+ * @see \Couchbase\SearchQuery::HIGHLIGHT_ANSI
+ * @see \Couchbase\SearchQuery::HIGHLIGHT_SIMPLE
+ */
+ public function highlight($style, ...$fields) {}
+
+ /**
+ * Configures the list of fields (including special fields) which are used for sorting purposes.
+ * If empty, the default sorting (descending by score) is used by the server.
+ *
+ * The list of sort fields can include actual fields (like "firstname" but then they must be stored in the
+ * index, configured in the server side mapping). Fields provided first are considered first and in a "tie" case
+ * the next sort field is considered. So sorting by "firstname" and then "lastname" will first sort ascending by
+ * the firstname and if the names are equal then sort ascending by lastname. Special fields like "_id" and
+ * "_score" can also be used. If prefixed with "-" the sort order is set to descending.
+ *
+ * If no sort is provided, it is equal to sort("-_score"), since the server will sort it by score in descending
+ * order.
+ *
+ * @param mixed $sort the fields that should take part in the sorting.
+ * @return SearchQuery
+ */
+ public function sort(...$sort) {}
+
+ /**
+ * Adds one SearchFacet to the query
+ *
+ * This is an additive operation (the given facets are added to any facet previously requested),
+ * but if an existing facet has the same name it will be replaced.
+ *
+ * Note that to be faceted, a field's value must be stored in the FTS index.
+ *
+ * @param string $name
+ * @param SearchFacet $facet
+ * @return SearchQuery
+ *
+ * @see \Couchbase\SearchFacet
+ * @see \Couchbase\TermSearchFacet
+ * @see \Couchbase\NumericRangeSearchFacet
+ * @see \Couchbase\DateRangeSearchFacet
+ */
+ public function addFacet($name, $facet) {}
+ }
+
+ /**
+ * Common interface for all classes, which could be used as a body of SearchQuery
+ *
+ * @see \Couchbase\SearchQuery::__construct()
+ */
+ interface SearchQueryPart {}
+
+ /**
+ * A FTS query that queries fields explicitly indexed as boolean.
+ */
+ class BooleanFieldSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return BooleanFieldSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return BooleanFieldSearchQuery
+ */
+ public function field($field) {}
+ }
+
+ /**
+ * A compound FTS query that allows various combinations of sub-queries.
+ */
+ class BooleanSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return BooleanSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param SearchQueryPart ...$queries
+ * @return BooleanSearchQuery
+ */
+ public function must(...$queries) {}
+
+ /**
+ * @param SearchQueryPart ...$queries
+ * @return BooleanSearchQuery
+ */
+ public function mustNot(...$queries) {}
+
+ /**
+ * @param SearchQueryPart ...$queries
+ * @return BooleanSearchQuery
+ */
+ public function should(...$queries) {}
+ }
+
+ /**
+ * A compound FTS query that performs a logical AND between all its sub-queries (conjunction).
+ */
+ class ConjunctionSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return ConjunctionSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param SearchQueryPart ...$queries
+ * @return ConjunctionSearchQuery
+ */
+ public function every(...$queries) {}
+ }
+
+
+ /**
+ * A compound FTS query that performs a logical OR between all its sub-queries (disjunction). It requires that a
+ * minimum of the queries match. The minimum is configurable (default 1).
+ */
+ class DisjunctionSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return DisjunctionSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param SearchQueryPart ...$queries
+ * @return DisjunctionSearchQuery
+ */
+ public function either(...$queries) {}
+
+ /**
+ * @param int $min
+ * @return DisjunctionSearchQuery
+ */
+ public function min($min) {}
+
+ }
+
+ /**
+ * A FTS query that matches documents on a range of values. At least one bound is required, and the
+ * inclusiveness of each bound can be configured.
+ */
+ class DateRangeSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return DateRangeSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return DateRangeSearchQuery
+ */
+ public function field($field) {}
+
+ /**
+ * @param int|string $start The strings will be taken verbatim and supposed to be formatted with custom date
+ * time formatter (see dateTimeParser). Integers interpreted as unix timestamps and represented as RFC3339
+ * strings.
+ * @param bool $inclusive
+ * @return DateRangeSearchQuery
+ */
+ public function start($start, $inclusive = true) {}
+
+ /**
+ * @param int|string $end The strings will be taken verbatim and supposed to be formatted with custom date
+ * time formatter (see dateTimeParser). Integers interpreted as unix timestamps and represented as RFC3339
+ * strings.
+ * @param bool $inclusive
+ * @return DateRangeSearchQuery
+ */
+ public function end($end, $inclusive = false) {}
+
+ /**
+ * @param string $dateTimeParser
+ * @return DateRangeSearchQuery
+ */
+ public function dateTimeParser($dateTimeParser) {}
+ }
+
+ /**
+ * A FTS query that matches documents on a range of values. At least one bound is required, and the
+ * inclusiveness of each bound can be configured.
+ */
+ class NumericRangeSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return NumericRangeSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return NumericRangeSearchQuery
+ */
+ public function field($field) {}
+
+ /**
+ * @param float $min
+ * @param bool $inclusive
+ * @return NumericRangeSearchQuery
+ */
+ public function min($min, $inclusive = true) {}
+
+ /**
+ * @param float $max
+ * @param bool $inclusive
+ * @return NumericRangeSearchQuery
+ */
+ public function max($max, $inclusive = false) {}
+ }
+
+ /**
+ * A FTS query that matches on Couchbase document IDs. Useful to restrict the search space to a list of keys (by using
+ * this in a compound query).
+ */
+ class DocIdSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return DocIdSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return DocIdSearchQuery
+ */
+ public function field($field) {}
+
+ /**
+ * @param string ...$documentIds
+ * @return DocIdSearchQuery
+ */
+ public function docIds(...$documentIds) {}
+ }
+
+ /**
+ * A FTS query that matches all indexed documents (usually for debugging purposes).
+ */
+ class MatchAllSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return MatchAllSearchQuery
+ */
+ public function boost($boost) {}
+ }
+
+ /**
+ * A FTS query that matches 0 document (usually for debugging purposes).
+ */
+ class MatchNoneSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return MatchNoneSearchQuery
+ */
+ public function boost($boost) {}
+ }
+
+ /**
+ * A FTS query that matches several given terms (a "phrase"), applying further processing
+ * like analyzers to them.
+ */
+ class MatchPhraseSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return MatchPhraseSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return MatchPhraseSearchQuery
+ */
+ public function field($field) {}
+
+ /**
+ * @param string $analyzer
+ * @return MatchPhraseSearchQuery
+ */
+ public function analyzer($analyzer) {}
+ }
+
+ /**
+ * A FTS query that matches a given term, applying further processing to it
+ * like analyzers, stemming and even #fuzziness(int).
+ */
+ class MatchSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return MatchSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return MatchSearchQuery
+ */
+ public function field($field) {}
+
+ /**
+ * @param string $analyzer
+ * @return MatchSearchQuery
+ */
+ public function analyzer($analyzer) {}
+
+ /**
+ * @param int $prefixLength
+ * @return MatchSearchQuery
+ */
+ public function prefixLength($prefixLength) {}
+
+ /**
+ * @param int $fuzziness
+ * @return MatchSearchQuery
+ */
+ public function fuzziness($fuzziness) {}
+ }
+
+ /**
+ * A FTS query that matches several terms (a "phrase") as is. The order of the terms mater and no further processing is
+ * applied to them, so they must appear in the index exactly as provided. Usually for debugging purposes, prefer
+ * MatchPhraseQuery.
+ */
+ class PhraseSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return PhraseSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return PhraseSearchQuery
+ */
+ public function field($field) {}
+ }
+
+ /**
+ * A FTS query that allows for simple matching of regular expressions.
+ */
+ class RegexpSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return RegexpSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return RegexpSearchQuery
+ */
+ public function field($field) {}
+ }
+
+ /**
+ * A FTS query that allows for simple matching using wildcard characters (* and ?).
+ */
+ class WildcardSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return WildcardSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return WildcardSearchQuery
+ */
+ public function field($field) {}
+ }
+
+ /**
+ * A FTS query that allows for simple matching on a given prefix.
+ */
+ class PrefixSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return PrefixSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return PrefixSearchQuery
+ */
+ public function field($field) {}
+ }
+
+ /**
+ * A FTS query that performs a search according to the "string query" syntax.
+ */
+ class QueryStringSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return QueryStringSearchQuery
+ */
+ public function boost($boost) {}
+ }
+
+ /**
+ * A facet that gives the number of occurrences of the most recurring terms in all hits.
+ */
+ class TermSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return TermSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return TermSearchQuery
+ */
+ public function field($field) {}
+
+ /**
+ * @param int $prefixLength
+ * @return TermSearchQuery
+ */
+ public function prefixLength($prefixLength) {}
+
+ /**
+ * @param int $fuzziness
+ * @return TermSearchQuery
+ */
+ public function fuzziness($fuzziness) {}
+ }
+
+ /**
+ * A FTS query that matches documents on a range of values. At least one bound is required, and the
+ * inclusiveness of each bound can be configured.
+ */
+ class TermRangeSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return TermRangeSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return TermRangeSearchQuery
+ */
+ public function field($field) {}
+
+ /**
+ * @param string $min
+ * @param bool $inclusive
+ * @return TermRangeSearchQuery
+ */
+ public function min($min, $inclusive = true) {}
+
+ /**
+ * @param string $max
+ * @param bool $inclusive
+ * @return TermRangeSearchQuery
+ */
+ public function max($max, $inclusive = false) {}
+ }
+
+ /**
+ * A FTS query that finds all matches from a given location (point) within the given distance.
+ *
+ * Both the point and the distance are required.
+ */
+ class GeoDistanceSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return GeoDistanceSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return GeoDistanceSearchQuery
+ */
+ public function field($field) {}
+ }
+
+ /**
+ * A FTS query which allows to match geo bounding boxes.
+ */
+ class GeoBoundingBoxSearchQuery implements \JsonSerializable, SearchQueryPart {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param float $boost
+ * @return GeoBoundingBoxSearchQuery
+ */
+ public function boost($boost) {}
+
+ /**
+ * @param string $field
+ * @return GeoBoundingBoxSearchQuery
+ */
+ public function field($field) {}
+ }
+
+ /**
+ * Common interface for all search facets
+ *
+ * @see \Couchbase\SearchQuery::addFacet()
+ * @see \Couchbase\TermSearchFacet
+ * @see \Couchbase\DateRangeSearchFacet
+ * @see \Couchbase\NumericRangeSearchFacet
+ */
+ interface SearchFacet {}
+
+ /**
+ * A facet that gives the number of occurrences of the most recurring terms in all hits.
+ */
+ class TermSearchFacet implements \JsonSerializable, SearchFacet {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+ }
+
+ /**
+ * A facet that categorizes hits inside date ranges (or buckets) provided by the user.
+ */
+ class DateRangeSearchFacet implements \JsonSerializable, SearchFacet {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param string $name
+ * @param int|string $start
+ * @param int|string $end
+ * @return DateSearchFacet
+ */
+ public function addRange($name, $start, $end) {}
+ }
+
+ /**
+ * A facet that categorizes hits into numerical ranges (or buckets) provided by the user.
+ */
+ class NumericRangeSearchFacet implements \JsonSerializable, SearchFacet {
+
+ final private function __construct() {}
+
+ /**
+ * @return array
+ */
+ public function jsonSerialize() {}
+
+ /**
+ * @param string $name
+ * @param float $min
+ * @param float $max
+ * @return NumericSearchFacet
+ */
+ public function addRange($name, $min, $max) {}
+ }
+
+ /**
+ * Base class for all FTS sort options in querying.
+ */
+ class SearchSort {
+
+ private function __construct() {}
+
+ /**
+ * Sort by the document identifier.
+ *
+ * @return SearchSortId
+ */
+ public static function id() {}
+
+ /**
+ * Sort by the hit score.
+ *
+ * @return SearchSortScore
+ */
+ public static function score() {}
+
+ /**
+ * Sort by a field in the hits.
+ *
+ * @param string $field the field name
+ *
+ * @return SearchSortField
+ */
+ public static function field($field) {}
+
+ /**
+ * Sort by geo location.
+ *
+ * @param string $field the field name
+ * @param float $longitude the longitude of the location
+ * @param float $latitude the latitude of the location
+ *
+ * @return SearchSortGeoDistance
+ */
+ public static function geoDistance($field, $longitude, $latitude) {}
+ }
+
+ /**
+ * Sort by the document identifier.
+ */
+ class SearchSortId extends SearchSort implements \JsonSerializable {
+
+ private function __construct() {}
+
+ /**
+ * Direction of the sort
+ *
+ * @param bool $descending
+ *
+ * @return SearchSortId
+ */
+ public function descending($descending) {}
+ }
+
+ /**
+ * Sort by the hit score.
+ */
+ class SearchSortScore extends SearchSort implements \JsonSerializable {
+
+ private function __construct() {}
+
+ /**
+ * Direction of the sort
+ *
+ * @param bool $descending
+ *
+ * @return SearchSortScore
+ */
+ public function descending($descending) {}
+ }
+
+ /**
+ * Sort by a field in the hits.
+ */
+ class SearchSortField extends SearchSort implements \JsonSerializable {
+ const TYPE_AUTO = "auto";
+ const TYPE_STRING = "string";
+ const TYPE_NUMBER = "number";
+ const TYPE_DATE = "date";
+
+ const MODE_DEFAULT = "default";
+ const MODE_MIN = "min";
+ const MODE_MAX = "max";
+
+ const MISSING_FIRST = "first";
+ const MISSING_LAST = "last";
+
+
+ private function __construct() {}
+
+ /**
+ * Direction of the sort
+ *
+ * @param bool $descending
+ *
+ * @return SearchSortField
+ */
+ public function descending($descending) {}
+
+ /**
+ * Set type of the field
+ *
+ * @param string $type the type
+ *
+ * @see SearchSortField::TYPE_AUTO
+ * @see SearchSortField::TYPE_STRING
+ * @see SearchSortField::TYPE_NUMBER
+ * @see SearchSortField::TYPE_DATE
+ */
+ public function type($type) {}
+
+ /**
+ * Set mode of the sort
+ *
+ * @param string $mode the mode
+ *
+ * @see SearchSortField::MODE_MIN
+ * @see SearchSortField::MODE_MAX
+ */
+ public function mode($mode) {}
+
+ /**
+ * Set where the hits with missing field will be inserted
+ *
+ * @param string $missing strategy for hits with missing fields
+ *
+ * @see SearchSortField::MISSING_FIRST
+ * @see SearchSortField::MISSING_LAST
+ */
+ public function missing($missing) {}
+ }
+
+ /**
+ * Sort by a location and unit in the hits.
+ */
+ class SearchSortGeoDistance extends SearchSort implements \JsonSerializable {
+
+ private function __construct() {}
+
+ /**
+ * Direction of the sort
+ *
+ * @param bool $descending
+ *
+ * @return SearchSortGeoDistance
+ */
+ public function descending($descending) {}
+
+ /**
+ * Name of the units
+ *
+ * @param string $unit
+ *
+ * @return SearchSortGeoDistance
+ */
+ public function unit($unit) {}
+ }
+
+ /**
+ * Represents a Analytics query (currently experimental support).
+ *
+ * @see https://developer.couchbase.com/documentation/server/4.5/analytics/quick-start.html
+ * Analytics quick start
+ */
+ class AnalyticsQuery {
+
+ final private function __construct() {}
+
+ /**
+ * Creates new AnalyticsQuery instance directly from the string.
+ *
+ * @param string $statement statement string
+ * @return AnalyticsQuery
+ *
+ */
+ public static function fromString($statement) {}
+ }
+
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/couchbase/toplevel.php b/vendor/jetbrains/phpstorm-stubs/couchbase/toplevel.php
new file mode 100644
index 0000000000..a5980544d2
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/couchbase/toplevel.php
@@ -0,0 +1,152 @@
+
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text is either
+ * a letter or a digit, FALSE otherwise.
+ */
+#[Pure]
+function ctype_alnum (mixed $text): bool
+{}
+
+/**
+ * Check for alphabetic character(s)
+ * @link https://php.net/manual/en/function.ctype-alpha.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text is
+ * a letter from the current locale, FALSE otherwise.
+ */
+#[Pure]
+function ctype_alpha (mixed $text): bool
+{}
+
+/**
+ * Check for control character(s)
+ * @link https://php.net/manual/en/function.ctype-cntrl.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text is
+ * a control character from the current locale, FALSE otherwise.
+ */
+#[Pure]
+function ctype_cntrl (mixed $text): bool
+{}
+
+/**
+ * Check for numeric character(s)
+ * @link https://php.net/manual/en/function.ctype-digit.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in the string
+ * text is a decimal digit, FALSE otherwise.
+ */
+#[Pure]
+function ctype_digit (mixed $text): bool
+{}
+
+/**
+ * Check for lowercase character(s)
+ * @link https://php.net/manual/en/function.ctype-lower.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text is
+ * a lowercase letter in the current locale.
+ */
+#[Pure]
+function ctype_lower (mixed $text): bool
+{}
+
+/**
+ * Check for any printable character(s) except space
+ * @link https://php.net/manual/en/function.ctype-graph.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text is
+ * printable and actually creates visible output (no white space), FALSE
+ * otherwise.
+ */
+#[Pure]
+function ctype_graph (mixed $text): bool
+{}
+
+/**
+ * Check for printable character(s)
+ * @link https://php.net/manual/en/function.ctype-print.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text
+ * will actually create output (including blanks). Returns FALSE if
+ * text contains control characters or characters
+ * that do not have any output or control function at all.
+ */
+#[Pure]
+function ctype_print (mixed $text): bool
+{}
+
+/**
+ * Check for any printable character which is not whitespace or an
+ * alphanumeric character
+ * @link https://php.net/manual/en/function.ctype-punct.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text
+ * is printable, but neither letter, digit or blank, FALSE otherwise.
+ */
+#[Pure]
+function ctype_punct (mixed $text): bool
+{}
+
+/**
+ * Check for whitespace character(s)
+ * @link https://php.net/manual/en/function.ctype-space.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text
+ * creates some sort of white space, FALSE otherwise. Besides the
+ * blank character this also includes tab, vertical tab, line feed,
+ * carriage return and form feed characters.
+ */
+#[Pure]
+function ctype_space (mixed $text): bool
+{}
+
+/**
+ * Check for uppercase character(s)
+ * @link https://php.net/manual/en/function.ctype-upper.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text is
+ * an uppercase letter in the current locale.
+ */
+#[Pure]
+function ctype_upper (mixed $text): bool
+{}
+
+/**
+ * Check for character(s) representing a hexadecimal digit
+ * @link https://php.net/manual/en/function.ctype-xdigit.php
+ * @param string $text
+ * The tested string.
+ *
+ * @return bool TRUE if every character in text is
+ * a hexadecimal 'digit', that is a decimal digit or a character from
+ * [A-Fa-f] , FALSE otherwise.
+ */
+#[Pure]
+function ctype_xdigit (mixed $text): bool
+{}
diff --git a/vendor/jetbrains/phpstorm-stubs/cubrid/cubrid.php b/vendor/jetbrains/phpstorm-stubs/cubrid/cubrid.php
new file mode 100644
index 0000000000..2ac0e6b55e
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/cubrid/cubrid.php
@@ -0,0 +1,1959 @@
+
+ * Open a connection to a CUBRID Server
+ * @link https://php.net/manual/en/function.cubrid-connect.php
+ * @param string $host
+ * Host name or IP address of CUBRID CAS server.
+ *
+ * @param int $port
+ * Port number of CUBRID CAS server (BROKER_PORT configured in
+ * $CUBRID/conf/cubrid_broker.conf).
+ *
+ * @param string $dbname
+ * Name of database.
+ *
+ * @param string $userid [optional]
+ * User name for the database. Default value is 'PUBLIC'.
+ *
+ * @param string $passwd [optional]
+ * User password. Default value is empty string, i.e. no
+ * password is defined.
+ *
+ * @param bool $new_link [optional]
+ * If a second call is made to cubrid_connect()
+ * with the same arguments, no new link will be established,
+ * but instead, the connection identifier of the already
+ * opened connection will be
+ * returned. The new_link parameter modifies this
+ * behavior and makes cubrid_connect() always open
+ * a new connection, even if cubrid_connect() was called
+ * before with the same parameters.
+ *
+ * @return resource|false
+ * a CUBRID connection identifier on success or false on failure.
+ *
+ * A character string that contains server connection information.
+ * Syntax: 'CUBRID:>host<:>port<:>dbname<:>username<:>password<:?>params<'.
+ * E.g. CUBRID:127.0.0.1:33088:demodb:dba:123456:?autocommit=off&althost=10.34.63.132:33088&rctime=100
+ *
+ * @param string $userid [optional]
+ * User name for the database. Default value is 'PUBLIC'.
+ *
+ * @param string $passwd [optional]
+ * User password. Default value is empty string, i.e. no
+ * password is defined.
+ *
+ * @param bool $new_link [optional]
+ * If a second call is made to cubrid_connect()
+ * with the same arguments, no new link will be established,
+ * but instead, the connection identifier of the already
+ * opened connection will be
+ * returned. The new_link parameter modifies this
+ * behavior and makes cubrid_connect() always open
+ * a new connection, even if cubrid_connect() was called
+ * before with the same parameters.
+ *
+ * @return resource|false
+ * a CUBRID connection identifier on success or false on failure.
+ *
+ */
+function cubrid_connect_with_url ($conn_url, $userid = 'PUBLIC', $passwd = '', $new_link = false) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.1)
+ * Open a persistent connection to a CUBRID server
+ * @link https://php.net/manual/en/function.cubrid-pconnect.php
+ * @param string $host
+ * Host name or IP address of CUBRID CAS server.
+ *
+ * @param int $port
+ * Port number of CUBRID CAS server (BROKER_PORT configured in
+ * $CUBRID/conf/cubrid_broker.conf).
+ *
+ * @param string $dbname
+ * Name of database.
+ *
+ * @param string $userid [optional]
+ * User name for the database. Default value is 'PUBLIC'.
+ *
+ * @param string $passwd [optional]
+ * User password. Default value is empty string, i.e. no
+ * password is defined.
+ *
+ * @return resource|false
+ * Connection identifier, when process is successful.
+ * FALSE, when process is unsuccessful.
+ *
+ * A character string that contains server connection information.
+ * Syntax: 'CUBRID:>host<:>port<:>dbname<:>username<:>password<:?>params<'.
+ * E.g. CUBRID:127.0.0.1:33088:demodb:dba:123456:?autocommit=off&althost=10.34.63.132:33088&rctime=100
+ *
+ * @param string $userid [optional]
+ * User name for the database. Default value is 'PUBLIC'.
+ *
+ * @param string $passwd [optional]
+ * User password. Default value is empty string, i.e. no
+ * password is defined.
+ *
+ * @return resource|false
+ * Connection identifier, when process is successful.
+ * FALSE, when process is unsuccessful.
+ *
+ * The CUBRID connection identifier. If the connection
+ * identifier is not specified, the last connection
+ * opened by cubrid_connect() is assumed.
+ *
+ * @return bool
+ * TRUE, when process is successful.
+ * FALSE, when process is unsuccessful.
+ *
+ * A SQL query. Data inside the query should be properly escaped.
+ *
+ * @param resource $conn_identifier [optional]
+ * The CUBRID connection. If the connection identifier
+ * is not specified, the last connection opened by
+ * cubrid_connect() is assumed.
+ *
+ * @return resource|bool
+ * For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements
+ * returning resultset, cubrid_query() returns a resource
+ * on success, or false on error.
+ *
+ *
+ * For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc,
+ * cubrid_query() returns true on success or false on error.
+ *
+ *
+ * The returned result resource should be passed to
+ * cubrid_fetch_array(), and other functions for dealing
+ * with result tables, to access the returned data.
+ *
+ *
+ * Use cubrid_num_rows() to find out how many rows
+ * were returned for a SELECT statement.
+ *
+ *
+ * Use cubrid_affected_rows() to find out how many
+ * rows were affected by a DELETE, INSERT, REPLACE, or UPDATE
+ * statement.
+ *
+ *
+ * cubrid_query() will also fail and return false
+ * if the user does not have permission to access the table(s)
+ * referenced by the query.
+ *
+ * Request identifier as a result of cubrid_prepare().
+ *
+ * @param int $bind_index
+ * Location of binding parameters. It starts with 1.
+ *
+ * @param mixed $bind_value
+ * Actual value for binding.
+ *
+ * @param string $bind_value_type [optional]
+ * A type of the value to bind. (It is omitted by default. Thus, system
+ * internally use string by default. However, you need to specify the
+ * exact type of the value as an argument when
+ * they are NCHAR, BIT, or BLOB/CLOB).
+ *
+ *
+ * The following bind types are supported:
+ * "STRING", "NCHAR", "BIT", "NUMERIC", "NUMBER", "FLOAT", "DOUBLE",
+ * "TIME", "DATE", "TIMESTAMP", "OBJECT", "BLOB", "CLOB", "NULL".
+ *
+ * @return bool TRUE, when process is successful, otherwise FALSE.
+ */
+function cubrid_bind ($req_identifier, $bind_index, $bind_value, $bind_value_type = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Close the request handle. Same as cubrid_close_request().
+ * @link https://php.net/manual/en/function.cubrid-close-prepare.php
+ * @param resource $req_identifier
+ * Request identifier.
+ *
+ * @return bool TRUE, when process is successful, otherwise FALSE.
+ */
+function cubrid_close_prepare ($req_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Close the request handle. Same as cubrid_close_prepare().
+ * @link https://php.net/manual/en/function.cubrid-close-request.php
+ * @param resource $req_identifier
+ * Request identifier.
+ *
+ * @return bool TRUE, when process is successful, or FALSE.
+ */
+function cubrid_close_request ($req_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get contents of collection type column using OID
+ * @link https://php.net/manual/en/function.cubrid-col-get.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance that you want to read.
+ *
+ * @param string $attr_name
+ * Attribute name that you want to read from the instance.
+ *
+ * @return array
+ * Array (0-based numerical array) containing the
+ * elements requested, when process is successful;
+ *
+ *
+ * FALSE (to distinguish the error from the situation of
+ * attribute having empty collection;
+ * or NULL, in case of error, a warning message is shown;
+ * in such case you can check the error by using
+ * cubrid_error_code()), when process is unsuccessful.
+ *
+ *
+ */
+function cubrid_col_get ($conn_identifier, $oid, $attr_name) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get the number of elements in collection type column using OID
+ * @link https://php.net/manual/en/function.cubrid-col-size.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance that you want to read.
+ *
+ * @param string $attr_name
+ * Attribute name that you want to read from the instance.
+ *
+ * @return int
+ * Number of elements, when process is successful.
+ * FALSE, when process is unsuccessful.
+ *
+ */
+function cubrid_col_size ($conn_identifier, $oid, $attr_name) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Perform a query without fetching the results into memory
+ * @link https://php.net/manual/en/function.cubrid-unbuffered-query.php
+ * @param string $query
+ * The SQL query to execute.
+ *
+ * @param resource $conn_identifier [optional]
+ * The CUBRID connection. If the connection identifier is not
+ * specified, the last connection opened by cubrid_connect() is assumed.
+ *
+ * @return resource|bool
+ * For SELECT, SHOW, DESCRIBE or EXPLAIN statements,
+ * cubrid_unbuffered_query() returns a resource on success, or false on
+ * error.
+ *
+ *
+ * For other type of SQL statements, UPDATE, DELETE, DROP, etc,
+ * cubrid_unbuffered_query returns true on success
+ * or false on error.
+ *
+ */
+function cubrid_unbuffered_query ($query, $conn_identifier = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return an array with the list of all existing CUBRID databases
+ * @link https://php.net/manual/en/function.cubrid-list-dbs.php
+ * @param resource $conn_identifier [optional]
+ * The CUBRID connection.
+ *
+ * @return array
+ * a numeric array with all existing CUBRID databases on success,
+ * or false on failure.
+ *
+ */
+function cubrid_list_dbs ($conn_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.1)
+ * Get the error message. Same as cubrid_error_msg();
+ * @link https://php.net/manual/en/function.cubrid-error.php
+ * @param resource $connection [optional]
+ * The CUBRID connection.
+ *
+ * @return string
+ * Error message that occurred.
+ *
+ */
+function cubrid_error ($connection = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get last error message for the most recent function call.
+ * Same as cubrid_error();
+ * @link https://php.net/manual/en/function.cubrid-error-msg.php
+ * @return string
+ * Error message that occurred.
+ *
+ */
+function cubrid_error_msg () {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.1)
+ * Returns the numerical value of the error message from previous
+ * CUBRID operation. Same as cubrid_error_code();
+ * @link https://php.net/manual/en/function.cubrid-errno.php
+ * @param resource $conn_identifier [optional]
+ * The CUBRID connection identifier. If the connection
+ * identifier is not specified, the last connection
+ * opened by cubrid_connect() is assumed.
+ *
+ * @return int
+ * the error number from the last CUBRID function, or
+ * 0 (zero) if no error occurred.
+ *
+ */
+function cubrid_errno ($conn_identifier = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get error code for the most recent function call.
+ * Same as cubrid_errno();
+ * @link https://php.net/manual/en/function.cubrid-error-code.php
+ * @return int
+ * Error code of the error that occurred, or
+ * 0 (zero) if no error occurred.
+ *
+ */
+function cubrid_error_code () {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the number of rows affected by the last SQL statement
+ * @link https://php.net/manual/en/function.cubrid-affected-rows.php
+ * @param resource $conn_identifier [optional]
+ * The CUBRID connection. If the connection identifier is not
+ * specified, the last link opened by cubrid_connect() is assumed.
+ *
+ * @return int
+ * the number of affected rows on success,
+ * or -1, when SQL statement is not INSERT, DELETE or UPDATE,
+ * or FALSE, when the request identifier is not specified,
+ * and there is no last request.
+ *
+ */
+function cubrid_affected_rows ($conn_identifier = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the ID generated for the last updated AUTO_INCREMENT column
+ * @link https://php.net/manual/en/function.cubrid-insert-id.php
+ * @param resource $conn_identifier [optional]
+ * The connection identifier previously obtained by a call
+ * to cubrid_connect().
+ *
+ * @return string
+ * A string representing the ID generated for an AUTO_INCREMENT column
+ * by the previous query, on success. 0, if the previous query does
+ * not generate new rows. FALSE on failure.
+ *
+ */
+function cubrid_insert_id ($conn_identifier = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the value of a specific field in a specific row
+ * @link https://php.net/manual/en/function.cubrid-result.php
+ * @param resource $result
+ * @param int $row
+ * The row number from the result that's being retrieved. Row numbers
+ * start at 0.
+ *
+ * @param mixed $field [optional]
+ * The name or offset of the field being retrieved.
+ *
+ *
+ * It can be the field's offset, the field's name, or the field's table
+ * dot field name (tablename.fieldname). If the column name has been
+ * aliased ('select foo as bar from...'), use the alias instead of the
+ * column name. If undefined, the first field is retrieved.
+ *
+ * @return string
+ * Value of a specific field, on success (NULL if value if null).
+ * FALSE on failure.
+ *
+ */
+function cubrid_result ($result, $row, $field = 0) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get the number of rows in the result set
+ * @link https://php.net/manual/en/function.cubrid-num-rows.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute(),
+ * cubrid_query() and cubrid_prepare()
+ *
+ * @return int
+ * Number of rows, when process is successful.
+ * 0 when the query was done in async mode.
+ * -1, if SQL statement is not SELECT.
+ * FALSE when process is unsuccessful.
+ *
+ */
+function cubrid_num_rows ($result) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the number of columns in the result set
+ * @link https://php.net/manual/en/function.cubrid-num-cols.php
+ * @param resource $result
+ * Result.
+ *
+ * @return int
+ * Number of columns, when process is successful.
+ * FALSE, if SQL statement is not SELECT.
+ *
+ */
+function cubrid_num_cols ($result) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the number of columns in the result set
+ * @link https://php.net/manual/en/function.cubrid-num-fields.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute(),
+ * cubrid_query() and cubrid_prepare()
+ *
+ * @return int
+ * Number of columns, on success.
+ * -1 if SQL sentence is not SELECT.
+ * FALSE when process is unsuccessful.
+ *
+ */
+function cubrid_num_fields ($result) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Fetch the next row from a result set
+ * @link https://php.net/manual/en/function.cubrid-fetch.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $type [optional]
+ * Array type of the fetched result CUBRID_NUM,
+ * CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. If you want to
+ * operate the lob object, you can use CUBRID_LOB.
+ *
+ * @return mixed
+ *
+ *
array or object, when process is successful.
+ *
FALSE, when there are no more rows;
+ *
NULL, when process is unsuccessful.
+ *
+ *
+ * The result can be received either as an array or as an object,
+ * and you can decide which data type to use by setting the type
+ * argument. The type variable can be set to one of the following
+ * values:
+ *
CUBRID_OBJECT : object that has the attribute name as the
+ * column name of query result
+ *
+ *
+ * When type argument is omitted, the result will be received using
+ * CUBRID_BOTH option as default. When you want to receive query
+ * result in object data type, the column name of the result must
+ * obey the naming rules for identifiers in PHP. For example,
+ * column name such as "count(*)" cannot be received in object type.
+ *
+ */
+function cubrid_fetch ($result, $type = CUBRID_BOTH) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return a numerical array with the values of the current row
+ * @link https://php.net/manual/en/function.cubrid-fetch-row.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $type
+ * Type can only be CUBRID_LOB, this parameter will be
+ * used only when you need to operate the lob object.
+ *
+ * @return array
+ * A numerical array, when process is successful.
+ * FALSE, when there are no more rows;
+ * NULL, when process is unsuccessful.
+ *
+ */
+function cubrid_fetch_row ($result, $type = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Fetch a result row as an associative array, a numeric array, or both
+ * @link https://php.net/manual/en/function.cubrid-fetch-array.php
+ * @param resource $result
+ * @param int $type [optional]
+ * The type of array that is to be fetched. It's a constant and can
+ * take the following values: CUBRID_ASSOC, CUBRID_NUM, and CUBRID_BOTH.
+ *
+ * @return array
+ * Returns an array of strings that corresponds to the fetched row,
+ * when process is successful.
+ * FALSE, when there are no more rows;
+ * NULL, when process is unsuccessful.
+ *
+ *
+ * The type of returned array depends on how result_type is defined.
+ * By using CUBRID_BOTH (default), you'll get an array with both
+ * associative and number indices, and you can decide which data
+ * type to use by setting the type argument. The type variable can
+ * be set to one of the following values:
+ *
+ */
+function cubrid_fetch_array ($result, $type = CUBRID_BOTH) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the associative array that corresponds to the fetched row
+ * @link https://php.net/manual/en/function.cubrid-fetch-assoc.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $type [optional]
+ * Type can only be CUBRID_LOB, this parameter will be used
+ * only when you need to operate the lob object.
+ *
+ * @return array
+ * Associative array, when process is successful.
+ * FALSE, when there are no more rows;
+ * NULL, when process is unsuccessful.
+ *
+ */
+function cubrid_fetch_assoc ($result, $type = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Fetch the next row and return it as an object
+ * @link https://php.net/manual/en/function.cubrid-fetch-object.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param string $class_name [optional]
+ * The name of the class to instantiate. If not specified,
+ * a stdClass (stdClass is PHP's generic empty class that's
+ * used when casting other types to objects) object is returned.
+ *
+ * @param array $params [optional]
+ * An optional array of parameters to pass to the constructor
+ * for class_name objects.
+ *
+ * @param int $type [optional]
+ * Type can only be CUBRID_LOB, this parameter will be used
+ * only when you need to operate the lob object.
+ *
+ * @return object
+ * an object with string properties
+ * that correspond to the fetched row, or false if there
+ * are no more rows, or NULL, when process is unsuccessful.
+ *
+ * The desired row number of the new result pointer.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+function cubrid_data_seek ($result, $row_number) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return an array with the lengths of the values of
+ * each field from the current row
+ * @link https://php.net/manual/en/function.cubrid-fetch-lengths.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @return array
+ * A numerical array of lengths on success,
+ * or false on failure.
+ *
+ */
+function cubrid_fetch_lengths ($result) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.1)
+ * Get column information from a result and return as an object
+ * @link https://php.net/manual/en/function.cubrid-fetch-field.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $field_offset [optional]
+ * The numerical field offset. If the field offset is not specified, the
+ * next field that was not yet retrieved by this function is retrieved.
+ * The field_offset starts at 0.
+ *
+ * @return object
+ * an object containing field information. The properties
+ * of the object are:
+ *
+ *
+ *
name - column name
+ *
table - name of the table the column belongs to
+ *
def - default value of the column
+ *
max_length - maximum length of the column
+ *
not_null - 1 if the column cannot be NULL
+ *
primary_key - 1 if the column is a primary key
+ *
unique_key - 1 if the column is a unique key
+ *
multiple_key - 1 if the column is a non-unique key
+ *
numeric - 1 if the column is numeric
+ *
blob - 1 if the column is a BLOB
+ *
type - the type of the column
+ *
unsigned - 1 if the column is unsigned
+ *
zerofill - 1 if the column is zero-filled
+ *
+ */
+function cubrid_fetch_field ($result, $field_offset = 0) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get the column names in result
+ * @link https://php.net/manual/en/function.cubrid-column-names.php
+ * @param resource $req_identifier
+ * Request identifier.
+ *
+ * @return array
+ * Array of string which containing column names,
+ * when process is successful. FALSE, when process is unsuccessful.
+ *
+ * Array of string which containing column types,
+ * when process is successful. FALSE, when process is unsuccessful.
+ *
+ */
+function cubrid_column_types ($req_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Move the result set cursor to the specified field offset
+ * @link https://php.net/manual/en/function.cubrid-field-seek.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $field_offset
+ * The numerical field offset. The field_offset starts at 0.
+ * If field_offset does not exist, an error of level
+ * E_WARNING is also issued.
+ *
+ * @return bool
+ * Returns true on success or false on failure.
+ *
+ */
+function cubrid_field_seek ($result, $field_offset) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Free the memory occupied by the result data
+ * @link https://php.net/manual/en/function.cubrid-free-result.php
+ * @param resource $req_identifier
+ * Request identifier.
+ *
+ * @return bool
+ * Returns true on success or false on failure.
+ *
+ *
+ * Note that it can only free the client fetch buffer now,
+ * and if you want to free all the memory, use function
+ * cubrid_close_request().
+ *
+ */
+function cubrid_free_result ($req_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the name of the specified field index
+ * @link https://php.net/manual/en/function.cubrid-field-name.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $field_offset
+ * The field_offset starts at 0. If field_offset does not exist,
+ * an error of level E_WARNING is also issued.
+ *
+ * @return string
+ * The name of the specified field index on
+ * success or false on failure.
+ *
+ */
+function cubrid_field_name ($result, $field_offset) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the name of the table of the specified field
+ * @link https://php.net/manual/en/function.cubrid-field-table.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $field_offset
+ * The field_offset starts at 0. If field_offset does not exist,
+ * an error of level E_WARNING is also issued.
+ *
+ * @return string
+ * The name of the table on success,
+ * FALSE when field_offset value is invalid, or
+ * -1 if SQL sentence is not SELECT.
+ *
+ */
+function cubrid_field_table ($result, $field_offset) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get the maximum length of the specified field
+ * @link https://php.net/manual/en/function.cubrid-field-len.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $field_offset
+ * The field_offset starts at 0. If field_offset does not exist,
+ * an error of level E_WARNING is also issued.
+ *
+ * @return int
+ * Maximum length, when process is successful. FALSE on failure.
+ *
+ */
+function cubrid_field_len ($result, $field_offset) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return the type of the column corresponding to the given field offset
+ * @link https://php.net/manual/en/function.cubrid-field-type.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $field_offset
+ * The field_offset starts at 0. If field_offset does not exist,
+ * an error of level E_WARNING is also issued.
+ *
+ * @return string
+ * On success the returned field type will be one of
+ * "int", "real", "string", "blob", and others as
+ * detailed in the CUBRID documentation. Otherwise, FALSE
+ * when invalid field_offset value, or -1 if SQL sentence
+ * is not SELECT.
+ *
+ */
+function cubrid_field_type ($result, $field_offset) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Return a string with the flags of the given field offset
+ * @link https://php.net/manual/en/function.cubrid-field-flags.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute()
+ *
+ * @param int $field_offset
+ * The numerical field offset. The field_offset starts at 0.
+ * If field_offset does not exist, an error of level
+ * E_WARNING is also issued.
+ *
+ * @return string
+ * a string of flags associated with the result,
+ * or FALSE when invalid field_offset value, or -1 if SQL sentence
+ * is not SELECT.
+ *
+ *
+ * The following flags are reported, if your version of CUBRID
+ * is current enough to support them: "not_null", "primary_key",
+ * "unique_key", "foreign_key", "auto_increment", "shared",
+ * "reverse_index", "reverse_unique", and "timestamp".
+ *
+ */
+function cubrid_field_flags ($result, $field_offset) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Escapes special characters in a string for use in an SQL statement
+ * @link https://php.net/manual/en/function.cubrid-real-escape-string.php
+ * @param string $unescaped_string
+ * The string that is to be escaped.
+ *
+ * @param resource $conn_identifier [optional]
+ * The CUBRID connection. If the connection identifier is not
+ * specified, the last connection opened by cubrid_connect() is assumed.
+ *
+ * @return string
+ * Escaped string version of the given string, on success.
+ * FALSE on failure.
+ *
+ * The CUBRID connection. If the connection identifier is not
+ * specified, the last link opened by cubrid_connect() is assumed.
+ *
+ * @return string
+ * A string that represents the CUBRID connection charset; on success.
+ * FALSE on failure.
+ *
+ */
+function cubrid_client_encoding ($conn_identifier = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.1)
+ * Ping a server connection or reconnect if there is no connection
+ * @link https://php.net/manual/en/function.cubrid-ping.php
+ * @param resource $conn_identifier [optional]
+ * The CUBRID connection identifier. If the connection identifier
+ * is not specified, the last connection opened by
+ * cubrid_connect() is assumed.
+ *
+ * @return bool
+ * true if the connection to the server is working,
+ * otherwise false.
+ *
+ * The CUBRID connection. If the connection identifier is not specified,
+ * the last link opened by cubrid_connect() is assumed.
+ *
+ * @param int $param_type
+ * Database parameter type. Can be PARAM_ISOLATION_LEVEL,
+ * or PARAM_LOCK_TIMEOUT.
+ *
+ * @param int $param_value
+ * Isolation level value (1-6) or lock timeout (in seconds) value.
+ *
+ * @return bool
+ * TRUE on success. FALSE on failure.
+ *
+ */
+function cubrid_set_db_parameter ($conn_identifier, $param_type, $param_value) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.4.1)
+ * Get the query timeout value of the request
+ * @link https://php.net/manual/en/function.cubrid-get-query-timeout.php
+ * @param resource $req_identifier
+ * Request identifier.
+ *
+ * @return int
+ * Success: the query timeout value of the current request.
+ * Units of msec. Failure: FALSE
+ *
+ */
+function cubrid_get_query_timeout ($req_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.4.1)
+ * Set the query timeout value of the request
+ * @link https://php.net/manual/en/function.cubrid-set-query-timeout.php
+ * @param resource $req_identifier
+ * Request identifier.
+ *
+ * @param int $timeout
+ * Timeout time, unit of msec.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE, when
+ * process is unsuccessful.
+ *
+ */
+function cubrid_set_query_timeout ($req_identifier, $timeout) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get the class name using OID
+ * @link https://php.net/manual/en/function.cubrid-tablename.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance that you want to check the existence.
+ * To get the current OID of the request, use
+ * cubrid_current_oid() function.
+ *
+ * @return string
+ * Class name when process is successful.
+ * FALSE, when process is unsuccessful.
+ *
+ */
+function cubrid_get_class_name ($conn_identifier, $oid) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Get a column using OID
+ * @link https://php.net/manual/en/function.cubrid-get.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance that you want to read.
+ * To get the current OID of the request, use
+ * cubrid_current_oid() function.
+ *
+ * @param mixed $attr [optional]
+ * Name of the attribute that you want to read.
+ *
+ * @return mixed
+ * Content of the requested attribute,
+ * when process is successful; When attr is set with string
+ * data type, the result is returned as a string; when attr is
+ * set with array data type (0-based numerical array), then the
+ * result is returned in associative array. When attr is omitted,
+ * then all attributes are received in array form.
+ *
+ *
+ * FALSE when process is unsuccessful or result is NULL
+ * (If error occurs to distinguish empty string from NULL,
+ * then it prints the warning message. You can check the
+ * error by using cubrid_error_code()).
+ *
+ * TRUE, when process is successful.
+ * FALSE, when process is unsuccessful.
+ *
+ */
+function cubrid_lob_export ($conn_identifier, $lob_identifier, $path_name) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.1)
+ * cubrid_lob_get() is used to get BLOB/CLOB meta info from
+ * CUBRID database. CUBRID gets BLOB/CLOB by executing the SQL statement,
+ * and returns all LOBs as a resource array. Be sure that the SQL
+ * retrieves only one column and its data type is BLOB or CLOB.
+ * Remember to use cubrid_lob_close() to release the LOBs if you
+ * don't need it any more.
+ * @link https://php.net/manual/en/function.cubrid-lob-get.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $sql
+ * SQL statement to be executed.
+ *
+ * @return array
+ * Return an array of LOB resources, when process
+ * is successful. FALSE, when process is unsuccessful.
+ *
+ * Connection identifier. If the connection identifier is
+ * not specified, the last connection opened by
+ * cubrid_connect() or cubrid_connect_with_url() is assumed.
+ *
+ * @param string $type [optional]
+ * It may be "BLOB" or "CLOB", it won't be case-sensitive.
+ * The default value is "BLOB".
+ *
+ * @return resource|false
+ * Lob identifier when it is successful. FALSE on failure.
+ *
+ * Lob identifier as a result of cubrid_lob2_new() or get
+ * from the result set.
+ *
+ * @return int
+ * It will return the size of the LOB object as a string
+ * when it processes successfully. FALSE on failure.
+ *
+ */
+function cubrid_lob2_size ($lob_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.4.1)
+ * Tell the cursor position of the LOB object.
+ * @link https://php.net/manual/en/function.cubrid-lob2-tell64.php
+ * @param resource $lob_identifier
+ * Lob identifier as a result of cubrid_lob2_new() or get
+ * from the result set.
+ *
+ * @return string
+ * It will return the cursor position on the LOB object as a
+ * string when it processes successfully. FALSE on failure.
+ *
+ */
+function cubrid_lob2_tell64 ($lob_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.4.1)
+ * Tell the cursor position of the LOB object.
+ * @link https://php.net/manual/en/function.cubrid-lob2-tell.php
+ * @param resource $lob_identifier
+ * Lob identifier as a result of cubrid_lob2_new() or get
+ * from the result set.
+ *
+ * @return int
+ * It will return the cursor position on the LOB object as a
+ * string when it processes successfully. FALSE on failure.
+ *
+ */
+function cubrid_lob2_tell ($lob_identifier) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Set a read lock on the given OID
+ * @link https://php.net/manual/en/function.cubrid-lock-read.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance that you want to put read lock on.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE, when
+ * process is unsuccessful.
+ *
+ */
+function cubrid_lock_read ($conn_identifier, $oid) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Set a write lock on the given OID
+ * @link https://php.net/manual/en/function.cubrid-lock-write.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance that you want to put write lock on.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE, when
+ * process is unsuccessful.
+ *
+ */
+function cubrid_lock_write ($conn_identifier, $oid) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Move the cursor in the result
+ * @link https://php.net/manual/en/function.cubrid-move-cursor.php
+ * @param resource $req_identifier
+ * Request identifier.
+ *
+ * @param int $offset
+ * Number of units you want to move the cursor.
+ *
+ * @param int $origin [optional]
+ * Location where you want to move the cursor from
+ * CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST.
+ *
+ * @return int
+ * CUBRID_CURSOR_SUCCESS, when process is successful.
+ * CUBRID_NO_MORE_DATA, when it is not a valid cursor location.
+ * CUBRID_CURSOR_ERROR, in case of error.
+ *
+ */
+function cubrid_move_cursor ($req_identifier, $offset, $origin = CUBRID_CURSOR_CURRENT) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.4.0)
+ * Get result of next query when executing multiple SQL statements
+ * @link https://php.net/manual/en/function.cubrid-next-result.php
+ * @param resource $result
+ * result comes from a call to cubrid_execute().
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE, when
+ * process is unsuccessful.
+ *
+ * Array containing the schema information,
+ * when process is successful; FALSE, when process is
+ * unsuccessful.
+ *
+ */
+function cubrid_schema ($conn_identifier, $schema_type, $class_name = null, $attr_name = null) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Delete an element from sequence type column using OID
+ * @link https://php.net/manual/en/function.cubrid-seq-drop.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance you want to work with.
+ *
+ * @param string $attr_name
+ * Name of the attribute that you want to delete an element from.
+ *
+ * @param int $index
+ * Index of the element that you want to delete (1-based).
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE,
+ * when process is unsuccessful.
+ *
+ */
+function cubrid_seq_drop ($conn_identifier, $oid, $attr_name, $index) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Insert an element to a sequence type column using OID
+ * @link https://php.net/manual/en/function.cubrid-seq-insert.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance you want to work with.
+ *
+ * @param string $attr_name
+ * Name of the attribute you want to insert an instance to.
+ *
+ * @param int $index
+ * Location of the element, you want to insert the element to (1-based).
+ *
+ * @param string $seq_element
+ * Content of the element that you want to insert.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE,
+ * when process is unsuccessful.
+ *
+ */
+function cubrid_seq_insert ($conn_identifier, $oid, $attr_name, $index, $seq_element) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Update the element value of sequence type column using OID
+ * @link https://php.net/manual/en/function.cubrid-seq-put.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance you want to work with.
+ *
+ * @param string $attr_name
+ * Name of the attribute that you want to update an element.
+ *
+ * @param int $index
+ * Index of the element that you want to delete (1-based).
+ *
+ * @param string $seq_element
+ * New content that you want to use for the update.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE,
+ * when process is unsuccessful.
+ *
+ */
+function cubrid_seq_put ($conn_identifier, $oid, $attr_name, $index, $seq_element) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Insert a single element to set type column using OID
+ * @link https://php.net/manual/en/function.cubrid-seq-add.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance you want to work with.
+ *
+ * @param string $attr_name
+ * Name of the attribute you want to insert an element.
+ *
+ * @param string $seq_element
+ * Content of the element that you want to insert.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE,
+ * when process is unsuccessful.
+ *
+ */
+function cubrid_seq_add ($conn_identifier, $oid, $attr_name, $seq_element) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Insert a single element to set type column using OID
+ * @link https://php.net/manual/en/function.cubrid-set-add.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance you want to work with.
+ *
+ * @param string $attr_name
+ * Name of the attribute you want to insert an element.
+ *
+ * @param string $set_element
+ * Content of the element you want to insert.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE,
+ * when process is unsuccessful.
+ *
+ */
+function cubrid_set_add ($conn_identifier, $oid, $attr_name, $set_element) {}
+
+/**
+ * (PHP 5, CUBRID >= 8.3.0)
+ * Delete an element from set type column using OID
+ * @link https://php.net/manual/en/function.cubrid-set-drop.php
+ * @param resource $conn_identifier
+ * Connection identifier.
+ *
+ * @param string $oid
+ * OID of the instance you want to work with.
+ *
+ * @param string $attr_name
+ * Name of the attribute you want to delete an element from.
+ *
+ * @param string $set_element
+ * Content of the element you want to delete.
+ *
+ * @return bool
+ * TRUE, when process is successful. FALSE,
+ * when process is unsuccessful.
+ *
+ */
+function cubrid_version () {}
+
+/**
+ * Columns are returned into the array having a numerical index to the
+ * fields. This index starts with 0, the first field in the result.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_NUM', 1);
+
+/**
+ * Columns are returned into the array having the fieldname as the array
+ * index.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_ASSOC', 2);
+
+/**
+ * Columns are returned into the array having both a numerical index
+ * and the fieldname as the array index.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_BOTH', 3);
+
+/**
+ * Get query result as an object.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_OBJECT', 4);
+
+/**
+ * Determine whether to get OID during query execution.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_INCLUDE_OID', 1);
+
+/**
+ * Execute the query in asynchronous mode.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_ASYNC', 2);
+
+/**
+ * Execute the query in synchronous mode.
+ * This flag must be set when executing multiple SQL statements.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_EXEC_QUERY_ALL', 4);
+
+/**
+ * Returned value of cubrid_move_cursor() function
+ * in case of success.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_CURSOR_SUCCESS', 1);
+
+/**
+ * Returned value of cubrid_move_cursor() function in case
+ * of failure.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_NO_MORE_DATA', 0);
+
+/**
+ * Returned value of cubrid_move_cursor() function in case
+ * of failure.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_CURSOR_ERROR', -1);
+
+/**
+ * Enable the auto-commit mode.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_AUTOCOMMIT_TRUE', 1);
+
+/**
+ * Disable the auto-commit mode.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_AUTOCOMMIT_FALSE', 0);
+
+/**
+ * Move current cursor to the first position in the result.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_CURSOR_FIRST', 0);
+
+/**
+ * Move current cursor as a default value if the origin is
+ * not specified.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_CURSOR_CURRENT', 1);
+
+/**
+ * Move current cursor to the last position in the result.
+ * @link https://php.net/manual/en/cubrid.constants.php
+ */
+define ('CUBRID_CURSOR_LAST', 2);
+
+// End of cubrid v.1.0
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/curl/curl.php b/vendor/jetbrains/phpstorm-stubs/curl/curl.php
new file mode 100644
index 0000000000..ed20704bdd
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/curl/curl.php
@@ -0,0 +1,2631 @@
+Path to the file which will be uploaded.
+ * @param string $mime_type [optional]
Mimetype of the file.
+ * @param string $posted_filename [optional]
Name of the file.
+ * @since 5.5
+ */
+ function __construct($filename, $mime_type = '', $posted_filename = '') {
+ }
+
+ /**
+ * Get file name
+ * @link https://secure.php.net/manual/en/curlfile.getfilename.php
+ * @return string Returns file name.
+ * @since 5.5
+ */
+ #[Pure]
+ public function getFilename() {
+ }
+
+ /**
+ * Get MIME type
+ * @link https://secure.php.net/manual/en/curlfile.getmimetype.php
+ * @return string Returns MIME type.
+ * @since 5.5
+ */
+ #[Pure]
+ public function getMimeType() {
+ }
+
+ /**
+ * Get file name for POST
+ * @link https://secure.php.net/manual/en/curlfile.getpostfilename.php
+ * @return string Returns file name for POST.
+ * @since 5.5
+ */
+ #[Pure]
+ public function getPostFilename() {
+ }
+
+ /**
+ * Set MIME type
+ * @link https://secure.php.net/manual/en/curlfile.setmimetype.php
+ * @param string $mime_type
+ * @since 5.5
+ */
+ public function setMimeType($mime_type) {
+ }
+
+ /**
+ * Set file name for POST
+ * https://secure.php.net/manual/en/curlfile.setpostfilename.php
+ * @param string $posted_filename
+ * @since 5.5
+ */
+ public function setPostFilename($posted_filename) {
+ }
+
+ /**
+ * @link https://secure.php.net/manual/en/curlfile.wakeup.php
+ * Unserialization handler
+ * @since 5.5
+ */
+ public function __wakeup() {
+ }
+}
+/**
+ * Initialize a cURL session
+ * @link https://php.net/manual/en/function.curl-init.php
+ * @param string|null $url [optional]
+ * If provided, the CURLOPT_URL option will be set
+ * to its value. You can manually set this using the
+ * curl_setopt function.
+ *
+ * @return resource|false|CurlHandle a cURL handle on success, false on errors.
+ */
+#[LanguageLevelTypeAware(["8.0" => "CurlHandle|false"], default: "resource|false")]
+function curl_init (?string $url) {}
+
+/**
+ * Copy a cURL handle along with all of its preferences
+ * @link https://php.net/manual/en/function.curl-copy-handle.php
+ * @param CurlHandle|resource $handle
+ * @return CurlHandle|resource|false a new cURL handle.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "CurlHandle|false"], default: "resource|false")]
+function curl_copy_handle (#[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle) {}
+
+/**
+ * Gets cURL version information
+ * @link https://php.net/manual/en/function.curl-version.php
+ * @param int $age [optional] Removed since version PHP 8.0.
+ * @return array|false an associative array with the following elements:
+ *
+ * value should be a bool for the
+ * following values of the option parameter:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
Notes
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_AUTOREFERER
+ *
+ * TRUE to automatically set the Referer: field in
+ * requests where it follows a Location: redirect.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_BINARYTRANSFER
+ *
+ * TRUE to return the raw output when
+ * CURLOPT_RETURNTRANSFER is used.
+ *
+ *
+ * From PHP 5.1.3, this option has no effect: the raw output will
+ * always be returned when
+ * CURLOPT_RETURNTRANSFER is used.
+ *
+ *
+ *
+ *
+ *
CURLOPT_COOKIESESSION
+ *
+ * TRUE to mark this as a new cookie "session". It will force libcurl
+ * to ignore all cookies it is about to load that are "session cookies"
+ * from the previous session. By default, libcurl always stores and
+ * loads all cookies, independent if they are session cookies or not.
+ * Session cookies are cookies without expiry date and they are meant
+ * to be alive and existing for this "session" only.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_CERTINFO
+ *
+ * TRUE to output SSL certification information to STDERR
+ * on secure transfers.
+ *
+ *
+ * Added in cURL 7.19.1.
+ * Available since PHP 5.3.2.
+ * Requires CURLOPT_VERBOSE to be on to have an effect.
+ *
+ *
+ *
+ *
+ *
CURLOPT_CONNECT_ONLY
+ *
+ * TRUE tells the library to perform all the required proxy authentication
+ * and connection setup, but no data transfer. This option is implemented for
+ * HTTP, SMTP and POP3.
+ *
+ *
+ * Added in 7.15.2.
+ * Available since PHP 5.5.0.
+ *
+ *
+ *
+ *
+ *
CURLOPT_CRLF
+ *
+ * TRUE to convert Unix newlines to CRLF newlines
+ * on transfers.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_DNS_USE_GLOBAL_CACHE
+ *
+ * TRUE to use a global DNS cache. This option is
+ * not thread-safe and is enabled by default.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FAILONERROR
+ *
+ * TRUE to fail verbosely if the HTTP code returned
+ * is greater than or equal to 400. The default behavior is to return
+ * the page normally, ignoring the code.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FILETIME
+ *
+ * TRUE to attempt to retrieve the modification
+ * date of the remote document. This value can be retrieved using
+ * the CURLINFO_FILETIME option with
+ * {@see curl_getinfo()}.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FOLLOWLOCATION
+ *
+ * TRUE to follow any
+ * "Location: " header that the server sends as
+ * part of the HTTP header (note this is recursive, PHP will follow as
+ * many "Location: " headers that it is sent,
+ * unless CURLOPT_MAXREDIRS is set).
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FORBID_REUSE
+ *
+ * TRUE to force the connection to explicitly
+ * close when it has finished processing, and not be pooled for reuse.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FRESH_CONNECT
+ *
+ * TRUE to force the use of a new connection
+ * instead of a cached one.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTP_USE_EPRT
+ *
+ * TRUE to use EPRT (and LPRT) when doing active
+ * FTP downloads. Use FALSE to disable EPRT and LPRT and use PORT
+ * only.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTP_USE_EPSV
+ *
+ * TRUE to first try an EPSV command for FTP
+ * transfers before reverting back to PASV. Set to FALSE
+ * to disable EPSV.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTP_CREATE_MISSING_DIRS
+ *
+ * TRUE to create missing directories when an FTP operation
+ * encounters a path that currently doesn't exist.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTPAPPEND
+ *
+ * TRUE to append to the remote file instead of
+ * overwriting it.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_TCP_NODELAY
+ *
+ * TRUE to disable TCP's Nagle algorithm, which tries to minimize
+ * the number of small packets on the network.
+ *
+ *
+ * Available since PHP 5.2.1 for versions compiled with libcurl 7.11.2 or
+ * greater.
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTPASCII
+ *
+ * An alias of
+ * CURLOPT_TRANSFERTEXT. Use that instead.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTPLISTONLY
+ *
+ * TRUE to only list the names of an FTP
+ * directory.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_HEADER
+ *
+ * TRUE to include the header in the output.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLINFO_HEADER_OUT
+ *
+ * TRUE to track the handle's request string.
+ *
+ *
+ * Available since PHP 5.1.3. The CURLINFO_
+ * prefix is intentional.
+ *
+ *
+ *
+ *
+ *
CURLOPT_HTTPGET
+ *
+ * TRUE to reset the HTTP request method to GET.
+ * Since GET is the default, this is only necessary if the request
+ * method has been changed.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_HTTPPROXYTUNNEL
+ *
+ * TRUE to tunnel through a given HTTP proxy.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_MUTE
+ *
+ * TRUE to be completely silent with regards to
+ * the cURL functions.
+ *
+ *
+ * Removed in cURL 7.15.5 (You can use CURLOPT_RETURNTRANSFER instead)
+ *
+ *
+ *
+ *
+ *
CURLOPT_NETRC
+ *
+ * TRUE to scan the ~/.netrc
+ * file to find a username and password for the remote site that
+ * a connection is being established with.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_NOBODY
+ *
+ * TRUE to exclude the body from the output.
+ * Request method is then set to HEAD. Changing this to FALSE does
+ * not change it to GET.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_NOPROGRESS
+ *
+ * TRUE to disable the progress meter for cURL transfers.
+ *
Note:
+ *
+ * PHP automatically sets this option to TRUE, this should only be
+ * changed for debugging purposes.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_NOSIGNAL
+ *
+ * TRUE to ignore any cURL function that causes a
+ * signal to be sent to the PHP process. This is turned on by default
+ * in multi-threaded SAPIs so timeout options can still be used.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ *
+ *
CURLOPT_POST
+ *
+ * TRUE to do a regular HTTP POST. This POST is the
+ * normal application/x-www-form-urlencoded kind,
+ * most commonly used by HTML forms.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_PUT
+ *
+ * TRUE to HTTP PUT a file. The file to PUT must
+ * be set with CURLOPT_INFILE and
+ * CURLOPT_INFILESIZE.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_RETURNTRANSFER
+ *
+ * TRUE to return the transfer as a string of the
+ * return value of {@see curl_exec()} instead of outputting
+ * it out directly.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SAFE_UPLOAD
+ *
+ * TRUE to disable support for the @ prefix for
+ * uploading files in CURLOPT_POSTFIELDS, which
+ * means that values starting with @ can be safely
+ * passed as fields. {@see CURLFile} may be used for
+ * uploads instead.
+ *
+ *
+ * Added in PHP 5.5.0 with FALSE as the default value. PHP 5.6.0
+ * changes the default value to TRUE.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSL_VERIFYPEER
+ *
+ * FALSE to stop cURL from verifying the peer's
+ * certificate. Alternate certificates to verify against can be
+ * specified with the CURLOPT_CAINFO option
+ * or a certificate directory can be specified with the
+ * CURLOPT_CAPATH option.
+ *
+ *
+ * TRUE by default as of cURL 7.10. Default bundle installed as of
+ * cURL 7.10.
+ *
+ *
+ *
+ *
+ *
CURLOPT_TRANSFERTEXT
+ *
+ * TRUE to use ASCII mode for FTP transfers.
+ * For LDAP, it retrieves data in plain text instead of HTML. On
+ * Windows systems, it will not set STDOUT to binary
+ * mode.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_UNRESTRICTED_AUTH
+ *
+ * TRUE to keep sending the username and password
+ * when following locations (using
+ * CURLOPT_FOLLOWLOCATION), even when the
+ * hostname has changed.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_UPLOAD
+ *
+ * TRUE to prepare for an upload.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_VERBOSE
+ *
+ * TRUE to output verbose information. Writes
+ * output to STDERR, or the file specified using
+ * CURLOPT_STDERR.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * value should be an integer for the following values of the option parameter:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
Notes
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_BUFFERSIZE
+ *
+ * The size of the buffer to use for each read. There is no guarantee
+ * this request will be fulfilled, however.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ *
+ *
CURLOPT_CLOSEPOLICY
+ *
+ * One of the CURLCLOSEPOLICY_* values.
+ *
Note:
+ *
+ * This option is deprecated, as it was never implemented in cURL and
+ * never had any effect.
+ *
+ *
+ *
+ *
+ * Removed in PHP 5.6.0.
+ *
+ *
+ *
+ *
+ *
CURLOPT_CONNECTTIMEOUT
+ *
+ * The number of seconds to wait while trying to connect. Use 0 to
+ * wait indefinitely.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_CONNECTTIMEOUT_MS
+ *
+ * The number of milliseconds to wait while trying to connect. Use 0 to
+ * wait indefinitely.
+ *
+ * If libcurl is built to use the standard system name resolver, that
+ * portion of the connect will still use full-second resolution for
+ * timeouts with a minimum timeout allowed of one second.
+ *
+ *
+ * Added in cURL 7.16.2. Available since PHP 5.2.3.
+ *
+ *
+ *
+ *
+ *
CURLOPT_DNS_CACHE_TIMEOUT
+ *
+ * The number of seconds to keep DNS entries in memory. This
+ * option is set to 120 (2 minutes) by default.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTPSSLAUTH
+ *
+ * The FTP authentication method (when is activated):
+ * CURLFTPAUTH_SSL (try SSL first),
+ * CURLFTPAUTH_TLS (try TLS first), or
+ * CURLFTPAUTH_DEFAULT (let cURL decide).
+ *
+ *
+ * Added in cURL 7.12.2.
+ *
+ *
+ *
+ *
+ *
CURLOPT_HTTP_VERSION
+ *
+ * CURL_HTTP_VERSION_NONE (default, lets CURL
+ * decide which version to use),
+ * CURL_HTTP_VERSION_1_0 (forces HTTP/1.0),
+ * or CURL_HTTP_VERSION_1_1 (forces HTTP/1.1).
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_HTTPAUTH
+ *
+ *
+ * The HTTP authentication method(s) to use. The options are:
+ * CURLAUTH_BASIC,
+ * CURLAUTH_DIGEST,
+ * CURLAUTH_GSSNEGOTIATE,
+ * CURLAUTH_NTLM,
+ * CURLAUTH_ANY, and
+ * CURLAUTH_ANYSAFE.
+ *
+ *
+ * The bitwise | (or) operator can be used to combine
+ * more than one method. If this is done, cURL will poll the server to see
+ * what methods it supports and pick the best one.
+ *
+ *
+ * CURLAUTH_ANY is an alias for
+ * CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ *
+ *
+ * CURLAUTH_ANYSAFE is an alias for
+ * CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_INFILESIZE
+ *
+ * The expected size, in bytes, of the file when uploading a file to
+ * a remote site. Note that using this option will not stop libcurl
+ * from sending more data, as exactly what is sent depends on
+ * CURLOPT_READFUNCTION.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_LOW_SPEED_LIMIT
+ *
+ * The transfer speed, in bytes per second, that the transfer should be
+ * below during the count of CURLOPT_LOW_SPEED_TIME
+ * seconds before PHP considers the transfer too slow and aborts.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_LOW_SPEED_TIME
+ *
+ * The number of seconds the transfer speed should be below
+ * CURLOPT_LOW_SPEED_LIMIT before PHP considers
+ * the transfer too slow and aborts.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_MAXCONNECTS
+ *
+ * The maximum amount of persistent connections that are allowed.
+ * When the limit is reached,
+ * CURLOPT_CLOSEPOLICY is used to determine
+ * which connection to close.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_MAXREDIRS
+ *
+ * The maximum amount of HTTP redirections to follow. Use this option
+ * alongside CURLOPT_FOLLOWLOCATION.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_PORT
+ *
+ * An alternative port number to connect to.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_POSTREDIR
+ *
+ * A bitmask of 1 (301 Moved Permanently), 2 (302 Found)
+ * vand 4 (303 See Other) if the HTTP POST method should be maintained
+ * when CURLOPT_FOLLOWLOCATION is set and a
+ * specific type of redirect occurs.
+ *
+ *
+ * Added in cURL 7.19.1. Available since PHP 5.3.2.
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROTOCOLS
+ *
+ *
+ * Bitmask of CURLPROTO_* values. If used, this bitmask
+ * limits what protocols libcurl may use in the transfer. This allows you to have
+ * a libcurl built to support a wide range of protocols but still limit specific
+ * transfers to only be allowed to use a subset of them. By default libcurl will
+ * accept all protocols it supports.
+ * See also CURLOPT_REDIR_PROTOCOLS.
+ *
+ * The HTTP authentication method(s) to use for the proxy connection.
+ * Use the same bitmasks as described in
+ * CURLOPT_HTTPAUTH. For proxy authentication,
+ * only CURLAUTH_BASIC and
+ * CURLAUTH_NTLM are currently supported.
+ *
+ *
+ * Added in cURL 7.10.7.
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROXYPORT
+ *
+ * The port number of the proxy to connect to. This port number can
+ * also be set in CURLOPT_PROXY.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROXYTYPE
+ *
+ * Either CURLPROXY_HTTP (default),
+ * CURLPROXY_SOCKS4,
+ * CURLPROXY_SOCKS5,
+ * CURLPROXY_SOCKS4A or
+ * CURLPROXY_SOCKS5_HOSTNAME.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ *
+ *
CURLOPT_REDIR_PROTOCOLS
+ *
+ * Bitmask of CURLPROTO_* values. If used, this bitmask
+ * limits what protocols libcurl may use in a transfer that it follows to in
+ * a redirect when CURLOPT_FOLLOWLOCATION is enabled.
+ * This allows you to limit specific transfers to only be allowed to use a subset
+ * of protocols in redirections. By default libcurl will allow all protocols
+ * except for FILE and SCP. This is a difference compared to pre-7.19.4 versions
+ * which unconditionally would follow to all protocols supported.
+ * See also CURLOPT_PROTOCOLS for protocol constant values.
+ *
+ *
+ * Added in cURL 7.19.4.
+ *
+ *
+ *
+ *
+ *
CURLOPT_RESUME_FROM
+ *
+ * The offset, in bytes, to resume a transfer from.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSL_VERIFYHOST
+ *
+ * 1 to check the existence of a common name in the
+ * SSL peer certificate. 2 to check the existence of
+ * a common name and also verify that it matches the hostname
+ * provided. In production environments the value of this option
+ * should be kept at 2 (default value).
+ *
+ *
+ * Support for value 1 removed in cURL 7.28.1
+ *
+ * Your best bet is to not set this and let it use the default.
+ * Setting it to 2 or 3 is very dangerous given the known
+ * vulnerabilities in SSLv2 and SSLv3.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_TIMECONDITION
+ *
+ * How CURLOPT_TIMEVALUE is treated.
+ * Use CURL_TIMECOND_IFMODSINCE to return the
+ * page only if it has been modified since the time specified in
+ * CURLOPT_TIMEVALUE. If it hasn't been modified,
+ * a "304 Not Modified" header will be returned
+ * assuming CURLOPT_HEADER is TRUE.
+ * Use CURL_TIMECOND_IFUNMODSINCE for the reverse
+ * effect. CURL_TIMECOND_IFMODSINCE is the
+ * default.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_TIMEOUT
+ *
+ * The maximum number of seconds to allow cURL functions to execute.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_TIMEOUT_MS
+ *
+ * The maximum number of milliseconds to allow cURL functions to
+ * execute.
+ *
+ * If libcurl is built to use the standard system name resolver, that
+ * portion of the connect will still use full-second resolution for
+ * timeouts with a minimum timeout allowed of one second.
+ *
+ *
+ * Added in cURL 7.16.2. Available since PHP 5.2.3.
+ *
+ *
+ *
+ *
+ *
CURLOPT_TIMEVALUE
+ *
+ * The time in seconds since January 1st, 1970. The time will be used
+ * by CURLOPT_TIMECONDITION. By default,
+ * CURL_TIMECOND_IFMODSINCE is used.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_MAX_RECV_SPEED_LARGE
+ *
+ * If a download exceeds this speed (counted in bytes per second) on
+ * cumulative average during the transfer, the transfer will pause to
+ * keep the average rate less than or equal to the parameter value.
+ * Defaults to unlimited speed.
+ *
+ *
+ * Added in cURL 7.15.5. Available since PHP 5.4.0.
+ *
+ *
+ *
+ *
+ *
CURLOPT_MAX_SEND_SPEED_LARGE
+ *
+ * If an upload exceeds this speed (counted in bytes per second) on
+ * cumulative average during the transfer, the transfer will pause to
+ * keep the average rate less than or equal to the parameter value.
+ * Defaults to unlimited speed.
+ *
+ *
+ * Added in cURL 7.15.5. Available since PHP 5.4.0.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSH_AUTH_TYPES
+ *
+ * A bitmask consisting of one or more of
+ * CURLSSH_AUTH_PUBLICKEY,
+ * CURLSSH_AUTH_PASSWORD,
+ * CURLSSH_AUTH_HOST,
+ * CURLSSH_AUTH_KEYBOARD. Set to
+ * CURLSSH_AUTH_ANY to let libcurl pick one.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_IPRESOLVE
+ *
+ * Allows an application to select what kind of IP addresses to use when
+ * resolving host names. This is only interesting when using host names that
+ * resolve addresses using more than one version of IP, possible values are
+ * CURL_IPRESOLVE_WHATEVER,
+ * CURL_IPRESOLVE_V4,
+ * CURL_IPRESOLVE_V6, by default
+ * CURL_IPRESOLVE_WHATEVER.
+ *
+ *
+ * Added in cURL 7.10.8.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * value should be a string for the following values of the option parameter:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
Notes
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_CAINFO
+ *
+ * The name of a file holding one or more certificates to verify the
+ * peer with. This only makes sense when used in combination with
+ * CURLOPT_SSL_VERIFYPEER.
+ *
+ *
+ * Might require an absolute path.
+ *
+ *
+ *
+ *
+ *
CURLOPT_CAPATH
+ *
+ * A directory that holds multiple CA certificates. Use this option
+ * alongside CURLOPT_SSL_VERIFYPEER.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_COOKIE
+ *
+ * The contents of the "Cookie: " header to be
+ * used in the HTTP request.
+ * Note that multiple cookies are separated with a semicolon followed
+ * by a space (e.g., "fruit=apple; colour=red")
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_COOKIEFILE
+ *
+ * The name of the file containing the cookie data. The cookie file can
+ * be in Netscape format, or just plain HTTP-style headers dumped into
+ * a file.
+ * If the name is an empty string, no cookies are loaded, but cookie
+ * handling is still enabled.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_COOKIEJAR
+ *
+ * The name of a file to save all internal cookies to when the handle is closed,
+ * e.g. after a call to curl_close.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_CUSTOMREQUEST
+ *
+ * A custom request method to use instead of
+ * "GET" or "HEAD" when doing
+ * a HTTP request. This is useful for doing
+ * "DELETE" or other, more obscure HTTP requests.
+ * Valid values are things like "GET",
+ * "POST", "CONNECT" and so on;
+ * i.e. Do not enter a whole HTTP request line here. For instance,
+ * entering "GET /index.html HTTP/1.0\r\n\r\n"
+ * would be incorrect.
+ *
Note:
+ *
+ * Don't do this without making sure the server supports the custom
+ * request method first.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_EGDSOCKET
+ *
+ * Like CURLOPT_RANDOM_FILE, except a filename
+ * to an Entropy Gathering Daemon socket.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_ENCODING
+ *
+ * The contents of the "Accept-Encoding: " header.
+ * This enables decoding of the response. Supported encodings are
+ * "identity", "deflate", and
+ * "gzip". If an empty string, "",
+ * is set, a header containing all supported encoding types is sent.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTPPORT
+ *
+ * The value which will be used to get the IP address to use
+ * for the FTP "PORT" instruction. The "PORT" instruction tells
+ * the remote server to connect to our specified IP address. The
+ * string may be a plain IP address, a hostname, a network
+ * interface name (under Unix), or just a plain '-' to use the
+ * systems default IP address.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_INTERFACE
+ *
+ * The name of the outgoing network interface to use. This can be an
+ * interface name, an IP address or a host name.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_KEYPASSWD
+ *
+ * The password required to use the CURLOPT_SSLKEY
+ * or CURLOPT_SSH_PRIVATE_KEYFILE private key.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_KRB4LEVEL
+ *
+ * The KRB4 (Kerberos 4) security level. Any of the following values
+ * (in order from least to most powerful) are valid:
+ * "clear",
+ * "safe",
+ * "confidential",
+ * "private"..
+ * If the string does not match one of these,
+ * "private" is used. Setting this option to NULL
+ * will disable KRB4 security. Currently KRB4 security only works
+ * with FTP transactions.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_POSTFIELDS
+ *
+ *
+ * The full data to post in a HTTP "POST" operation.
+ * To post a file, prepend a filename with @ and
+ * use the full path. The filetype can be explicitly specified by
+ * following the filename with the type in the format
+ * ';type=mimetype'. This parameter can either be
+ * passed as a urlencoded string like 'para1=val1¶2=val2&...'
+ * or as an array with the field name as key and field data as value.
+ * If value is an array, the
+ * Content-Type header will be set to
+ * multipart/form-data.
+ *
+ *
+ * As of PHP 5.2.0, value must be an array if
+ * files are passed to this option with the @ prefix.
+ *
+ *
+ * As of PHP 5.5.0, the @ prefix is deprecated and
+ * files can be sent using CURLFile. The
+ * @ prefix can be disabled for safe passing of
+ * values beginning with @ by setting the
+ * CURLOPT_SAFE_UPLOAD option to TRUE.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROXY
+ *
+ * The HTTP proxy to tunnel requests through.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROXYUSERPWD
+ *
+ * A username and password formatted as
+ * "[username]:[password]" to use for the
+ * connection to the proxy.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_RANDOM_FILE
+ *
+ * A filename to be used to seed the random number generator for SSL.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_RANGE
+ *
+ * Range(s) of data to retrieve in the format
+ * "X-Y" where X or Y are optional. HTTP transfers
+ * also support several intervals, separated with commas in the format
+ * "X-Y,N-M".
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_REFERER
+ *
+ * The contents of the "Referer: " header to be used
+ * in a HTTP request.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
+ *
+ * A string containing 32 hexadecimal digits. The string should be the
+ * MD5 checksum of the remote host's public key, and libcurl will reject
+ * the connection to the host unless the md5sums match.
+ * This option is only for SCP and SFTP transfers.
+ *
+ *
+ * Added in cURL 7.17.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSH_PUBLIC_KEYFILE
+ *
+ * The file name for your public key. If not used, libcurl defaults to
+ * $HOME/.ssh/id_dsa.pub if the HOME environment variable is set,
+ * and just "id_dsa.pub" in the current directory if HOME is not set.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSH_PRIVATE_KEYFILE
+ *
+ * The file name for your private key. If not used, libcurl defaults to
+ * $HOME/.ssh/id_dsa if the HOME environment variable is set,
+ * and just "id_dsa" in the current directory if HOME is not set.
+ * If the file is password-protected, set the password with
+ * CURLOPT_KEYPASSWD.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSL_CIPHER_LIST
+ *
+ * A list of ciphers to use for SSL. For example,
+ * RC4-SHA and TLSv1 are valid
+ * cipher lists.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLCERT
+ *
+ * The name of a file containing a PEM formatted certificate.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLCERTPASSWD
+ *
+ * The password required to use the
+ * CURLOPT_SSLCERT certificate.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLCERTTYPE
+ *
+ * The format of the certificate. Supported formats are
+ * "PEM" (default), "DER",
+ * and "ENG".
+ *
+ *
+ * Added in cURL 7.9.3.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLENGINE
+ *
+ * The identifier for the crypto engine of the private SSL key
+ * specified in CURLOPT_SSLKEY.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLENGINE_DEFAULT
+ *
+ * The identifier for the crypto engine used for asymmetric crypto
+ * operations.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLKEY
+ *
+ * The name of a file containing a private SSL key.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLKEYPASSWD
+ *
+ * The secret password needed to use the private SSL key specified in
+ * CURLOPT_SSLKEY.
+ *
Note:
+ *
+ * Since this option contains a sensitive password, remember to keep
+ * the PHP script it is contained within safe.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLKEYTYPE
+ *
+ * The key type of the private SSL key specified in
+ * CURLOPT_SSLKEY. Supported key types are
+ * "PEM" (default), "DER",
+ * and "ENG".
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_URL
+ *
+ * The URL to fetch. This can also be set when initializing a
+ * session with {@see curl_init()}.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_USERAGENT
+ *
+ * The contents of the "User-Agent: " header to be
+ * used in a HTTP request.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_USERPWD
+ *
+ * A username and password formatted as
+ * "[username]:[password]" to use for the
+ * connection.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
Notes
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_CAINFO
+ *
+ * The name of a file holding one or more certificates to verify the
+ * peer with. This only makes sense when used in combination with
+ * CURLOPT_SSL_VERIFYPEER.
+ *
+ *
+ * Might require an absolute path.
+ *
+ *
+ *
+ *
+ *
CURLOPT_CAPATH
+ *
+ * A directory that holds multiple CA certificates. Use this option
+ * alongside CURLOPT_SSL_VERIFYPEER.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_COOKIE
+ *
+ * The contents of the "Cookie: " header to be
+ * used in the HTTP request.
+ * Note that multiple cookies are separated with a semicolon followed
+ * by a space (e.g., "fruit=apple; colour=red")
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_COOKIEFILE
+ *
+ * The name of the file containing the cookie data. The cookie file can
+ * be in Netscape format, or just plain HTTP-style headers dumped into
+ * a file.
+ * If the name is an empty string, no cookies are loaded, but cookie
+ * handling is still enabled.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_COOKIEJAR
+ *
+ * The name of a file to save all internal cookies to when the handle is closed,
+ * e.g. after a call to curl_close.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_CUSTOMREQUEST
+ *
+ * A custom request method to use instead of
+ * "GET" or "HEAD" when doing
+ * a HTTP request. This is useful for doing
+ * "DELETE" or other, more obscure HTTP requests.
+ * Valid values are things like "GET",
+ * "POST", "CONNECT" and so on;
+ * i.e. Do not enter a whole HTTP request line here. For instance,
+ * entering "GET /index.html HTTP/1.0\r\n\r\n"
+ * would be incorrect.
+ *
Note:
+ *
+ * Don't do this without making sure the server supports the custom
+ * request method first.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_EGDSOCKET
+ *
+ * Like CURLOPT_RANDOM_FILE, except a filename
+ * to an Entropy Gathering Daemon socket.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_ENCODING
+ *
+ * The contents of the "Accept-Encoding: " header.
+ * This enables decoding of the response. Supported encodings are
+ * "identity", "deflate", and
+ * "gzip". If an empty string, "",
+ * is set, a header containing all supported encoding types is sent.
+ *
+ *
+ * Added in cURL 7.10.
+ *
+ *
+ *
+ *
+ *
CURLOPT_FTPPORT
+ *
+ * The value which will be used to get the IP address to use
+ * for the FTP "PORT" instruction. The "PORT" instruction tells
+ * the remote server to connect to our specified IP address. The
+ * string may be a plain IP address, a hostname, a network
+ * interface name (under Unix), or just a plain '-' to use the
+ * systems default IP address.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_INTERFACE
+ *
+ * The name of the outgoing network interface to use. This can be an
+ * interface name, an IP address or a host name.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_KEYPASSWD
+ *
+ * The password required to use the CURLOPT_SSLKEY
+ * or CURLOPT_SSH_PRIVATE_KEYFILE private key.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_KRB4LEVEL
+ *
+ * The KRB4 (Kerberos 4) security level. Any of the following values
+ * (in order from least to most powerful) are valid:
+ * "clear",
+ * "safe",
+ * "confidential",
+ * "private"..
+ * If the string does not match one of these,
+ * "private" is used. Setting this option to NULL
+ * will disable KRB4 security. Currently KRB4 security only works
+ * with FTP transactions.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_POSTFIELDS
+ *
+ *
+ * The full data to post in a HTTP "POST" operation.
+ * To post a file, prepend a filename with @ and
+ * use the full path. The filetype can be explicitly specified by
+ * following the filename with the type in the format
+ * ';type=mimetype'. This parameter can either be
+ * passed as a urlencoded string like 'para1=val1¶2=val2&...'
+ * or as an array with the field name as key and field data as value.
+ * If value is an array, the
+ * Content-Type header will be set to
+ * multipart/form-data.
+ *
+ *
+ * As of PHP 5.2.0, value must be an array if
+ * files are passed to this option with the @ prefix.
+ *
+ *
+ * As of PHP 5.5.0, the @ prefix is deprecated and
+ * files can be sent using CURLFile. The
+ * @ prefix can be disabled for safe passing of
+ * values beginning with @ by setting the
+ * CURLOPT_SAFE_UPLOAD option to TRUE.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROXY
+ *
+ * The HTTP proxy to tunnel requests through.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROXYUSERPWD
+ *
+ * A username and password formatted as
+ * "[username]:[password]" to use for the
+ * connection to the proxy.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_RANDOM_FILE
+ *
+ * A filename to be used to seed the random number generator for SSL.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_RANGE
+ *
+ * Range(s) of data to retrieve in the format
+ * "X-Y" where X or Y are optional. HTTP transfers
+ * also support several intervals, separated with commas in the format
+ * "X-Y,N-M".
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_REFERER
+ *
+ * The contents of the "Referer: " header to be used
+ * in a HTTP request.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
+ *
+ * A string containing 32 hexadecimal digits. The string should be the
+ * MD5 checksum of the remote host's public key, and libcurl will reject
+ * the connection to the host unless the md5sums match.
+ * This option is only for SCP and SFTP transfers.
+ *
+ *
+ * Added in cURL 7.17.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSH_PUBLIC_KEYFILE
+ *
+ * The file name for your public key. If not used, libcurl defaults to
+ * $HOME/.ssh/id_dsa.pub if the HOME environment variable is set,
+ * and just "id_dsa.pub" in the current directory if HOME is not set.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSH_PRIVATE_KEYFILE
+ *
+ * The file name for your private key. If not used, libcurl defaults to
+ * $HOME/.ssh/id_dsa if the HOME environment variable is set,
+ * and just "id_dsa" in the current directory if HOME is not set.
+ * If the file is password-protected, set the password with
+ * CURLOPT_KEYPASSWD.
+ *
+ *
+ * Added in cURL 7.16.1.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSL_CIPHER_LIST
+ *
+ * A list of ciphers to use for SSL. For example,
+ * RC4-SHA and TLSv1 are valid
+ * cipher lists.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLCERT
+ *
+ * The name of a file containing a PEM formatted certificate.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLCERTPASSWD
+ *
+ * The password required to use the
+ * CURLOPT_SSLCERT certificate.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLCERTTYPE
+ *
+ * The format of the certificate. Supported formats are
+ * "PEM" (default), "DER",
+ * and "ENG".
+ *
+ *
+ * Added in cURL 7.9.3.
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLENGINE
+ *
+ * The identifier for the crypto engine of the private SSL key
+ * specified in CURLOPT_SSLKEY.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLENGINE_DEFAULT
+ *
+ * The identifier for the crypto engine used for asymmetric crypto
+ * operations.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLKEY
+ *
+ * The name of a file containing a private SSL key.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLKEYPASSWD
+ *
+ * The secret password needed to use the private SSL key specified in
+ * CURLOPT_SSLKEY.
+ *
Note:
+ *
+ * Since this option contains a sensitive password, remember to keep
+ * the PHP script it is contained within safe.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SSLKEYTYPE
+ *
+ * The key type of the private SSL key specified in
+ * CURLOPT_SSLKEY. Supported key types are
+ * "PEM" (default), "DER",
+ * and "ENG".
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_URL
+ *
+ * The URL to fetch. This can also be set when initializing a
+ * session with curl_init().
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_USERAGENT
+ *
+ * The contents of the "User-Agent: " header to be
+ * used in a HTTP request.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_USERPWD
+ *
+ * A username and password formatted as
+ * "[username]:[password]" to use for the
+ * connection.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * value should be an array for the following values of the option parameter:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
Notes
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_HTTP200ALIASES
+ *
+ * An array of HTTP 200 responses that will be treated as valid
+ * responses and not as errors.
+ *
+ *
+ * Added in cURL 7.10.3.
+ *
+ *
+ *
+ *
+ *
CURLOPT_HTTPHEADER
+ *
+ * An array of HTTP header fields to set, in the format
+ *
+ * array('Content-type: text/plain', 'Content-length: 100')
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_POSTQUOTE
+ *
+ * An array of FTP commands to execute on the server after the FTP
+ * request has been performed.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_QUOTE
+ *
+ * An array of FTP commands to execute on the server prior to the FTP
+ * request.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * value should be a stream resource (using {@see fopen()}, for example) for the following values of the option parameter:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_FILE
+ *
+ * The file that the transfer should be written to. The default
+ * is STDOUT (the browser window).
+ *
+ *
+ *
+ *
+ *
CURLOPT_INFILE
+ *
+ * The file that the transfer should be read from when uploading.
+ *
+ *
+ *
+ *
+ *
CURLOPT_STDERR
+ *
+ * An alternative location to output errors to instead of
+ * STDERR.
+ *
+ *
+ *
+ *
+ *
CURLOPT_WRITEHEADER
+ *
+ * The file that the header part of the transfer is written to.
+ *
+ *
+ *
+ *
+ *
+ *
+ * value should be the name of a valid function or a Closure for the following values of the option parameter:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_HEADERFUNCTION
+ *
+ * A callback accepting two parameters.
+ * The first is the cURL resource, the second is a
+ * string with the header data to be written. The header data must
+ * be written by this callback. Return the number of
+ * bytes written.
+ *
+ *
+ *
+ *
+ *
CURLOPT_PASSWDFUNCTION
+ *
+ * A callback accepting three parameters.
+ * The first is the cURL resource, the second is a
+ * string containing a password prompt, and the third is the maximum
+ * password length. Return the string containing the password.
+ *
+ *
+ *
+ *
+ *
CURLOPT_PROGRESSFUNCTION
+ *
+ *
+ * A callback accepting five parameters.
+ * The first is the cURL resource, the second is the total number of
+ * bytes expected to be downloaded in this transfer, the third is
+ * the number of bytes downloaded so far, the fourth is the total
+ * number of bytes expected to be uploaded in this transfer, and the
+ * fifth is the number of bytes uploaded so far.
+ *
+ *
Note:
+ *
+ * The callback is only called when the CURLOPT_NOPROGRESS
+ * option is set to FALSE.
+ *
+ *
+ *
+ * Return a non-zero value to abort the transfer. In which case, the
+ * transfer will set a CURLE_ABORTED_BY_CALLBACK
+ * error.
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_READFUNCTION
+ *
+ * A callback accepting three parameters.
+ * The first is the cURL resource, the second is a
+ * stream resource provided to cURL through the option
+ * CURLOPT_INFILE, and the third is the maximum
+ * amount of data to be read. The callback must return a string
+ * with a length equal or smaller than the amount of data requested,
+ * typically by reading it from the passed stream resource. It should
+ * return an empty string to signal EOF.
+ *
+ *
+ *
+ *
+ *
CURLOPT_WRITEFUNCTION
+ *
+ * A callback accepting two parameters.
+ * The first is the cURL resource, and the second is a
+ * string with the data to be written. The data must be saved by
+ * this callback. It must return the exact number of bytes written
+ * or the transfer will be aborted with an error.
+ *
+ *
+ *
+ *
+ *
+ *
+ * Other values:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLOPT_SHARE
+ *
+ * A result of {@see curl_share_init()}. Makes the cURL
+ * handle to use the data from the shared handle.
+ *
+ *
+ *
+ *
+ *
+ *
+ * @return bool true on success or false on failure.
+ */
+function curl_setopt (#[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle, int $option, mixed $value): bool
+{}
+
+/**
+ * Set multiple options for a cURL transfer
+ * @link https://php.net/manual/en/function.curl-setopt-array.php
+ * @param CurlHandle|resource $handle
+ * @param array $options
+ * An array specifying which options to set and their values.
+ * The keys should be valid curl_setopt constants or
+ * their integer equivalents.
+ *
+ * @return bool true if all options were successfully set. If an option could
+ * not be successfully set, false is immediately returned, ignoring any
+ * future options in the options array.
+ * @since 5.1.3
+ */
+function curl_setopt_array (#[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle, array $options): bool
+{}
+
+/**
+ * (PHP 5 >=5.5.0)
+ * Close a cURL share handle
+ * @link https://secure.php.net/manual/en/function.curl-share-close.php
+ * @param CurlShareHandle|resource $share_handle
+ * A cURL share handle returned by {@link https://secure.php.net/manual/en/function.curl-share-init.php curl_share_init()}
+ *
+ * A cURL share handle returned by {@link https://secure.php.net/manual/en/function.curl-share-init.php curl_share_init()}.
+ *
+ * @param int $option
+ *
+ *
+ *
+ *
Option
+ *
Description
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLSHOPT_SHARE
+ *
+ * Specifies a type of data that should be shared.
+ *
+ *
+ *
+ *
+ *
CURLSHOPT_UNSHARE
+ *
+ * Specifies a type of data that will be no longer shared.
+ *
+ *
+ *
+ *
+ *
+ *
+ * @param string $value
+ *
+ *
+ *
+ *
Value
+ *
Description
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURL_LOCK_DATA_COOKIE
+ *
+ * Shares cookie data.
+ *
+ *
+ *
+ *
+ *
CURL_LOCK_DATA_DNS
+ *
+ * Shares DNS cache. Note that when you use cURL multi handles,
+ * all handles added to the same multi handle will share DNS cache
+ * by default.
+ *
+ *
+ *
+ *
+ *
CURL_LOCK_DATA_SSL_SESSION
+ *
+ * Shares SSL session IDs, reducing the time spent on the SSL
+ * handshake when reconnecting to the same server. Note that SSL
+ * session IDs are reused within the same handle by default.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+function curl_share_setopt (#[LanguageLevelTypeAware(["8.0" => "CurlShareHandle"], default: "resource")] $share_handle, int $option, mixed $value ): bool
+{}
+
+/**
+ * (PHP 5 >=5.5.0)
+ * Return string describing the given error code
+ * @link https://secure.php.net/manual/en/function.curl-strerror.php
+ * @param int $error_code
+ * One of the {@link https://curl.haxx.se/libcurl/c/libcurl-errors.html cURL error codes} constants.
+ *
+ * @return CURLFile
+ * Returns a {@link https://secure.php.net/manual/en/class.curlfile.php CURLFile} object.
+ * @since 5.5
+ */
+#[Pure]
+function curl_file_create(string $filename, ?string $mime_type = '', ?string $posted_filename = ''): CURLFile
+{}
+
+/**
+ * Close a cURL session
+ * @link https://php.net/manual/en/function.curl-close.php
+ * @param CurlHandle|resource $handle
+ * @return void
+ */
+function curl_close (#[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle): void {}
+
+/**
+ * Returns a new cURL multi handle
+ * @link https://php.net/manual/en/function.curl-multi-init.php
+ * @return resource|CurlMultiHandle a cURL multi handle resource on success, false on failure.
+ */
+#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")]
+function curl_multi_init (): CurlMultiHandle|bool
+{}
+
+/**
+ * Add a normal cURL handle to a cURL multi handle
+ * @link https://php.net/manual/en/function.curl-multi-add-handle.php
+ * @param CurlMultiHandle|resource $multi_handle
+ * @param CurlHandle|resource $handle
+ * @return int 0 on success, or one of the CURLM_XXX errors
+ * code.
+ */
+function curl_multi_add_handle (#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")] $multi_handle, #[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle): int
+{}
+
+/**
+ * Remove a multi handle from a set of cURL handles
+ * @link https://php.net/manual/en/function.curl-multi-remove-handle.php
+ * @param CurlMultiHandle|resource $multi_handle
+ * @param CurlHandle|resource $handle
+ * @return int|false On success, returns one of the CURLM_XXX error codes, false on failure.
+ */
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function curl_multi_remove_handle (#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")] $multi_handle, #[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle)
+{}
+
+/**
+ * Wait for activity on any curl_multi connection
+ * @link https://php.net/manual/en/function.curl-multi-select.php
+ * @param CurlMultiHandle|resource $multi_handle
+ * @param float $timeout [optional]
+ * Time, in seconds, to wait for a response.
+ *
+ * @return int On success, returns the number of descriptors contained in,
+ * the descriptor sets. On failure, this function will return -1 on a select failure or timeout (from the underlying select system call).
+ */
+function curl_multi_select (#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")] $multi_handle, float $timeout = 1.0): int
+{}
+
+/**
+ * (PHP 5 >=5.5.0)
+ * Set an option for the cURL multi handle
+ * @link https://secure.php.net/manual/en/function.curl-multi-setopt.php
+ * @param CurlMultiHandle|resource $multi_handle
+ * @param int $option
+ * One of the CURLMOPT_* constants.
+ *
+ * @param mixed $value
+ * The value to be set on option.
+ *
+ *
+ * value should be an {@link https://php.net/manual/en/language.types.integer.php int} for the
+ * following values of the option parameter:
+ *
+ *
+ *
+ *
+ *
Option
+ *
Set value to
+ *
+ *
+ *
+ *
+ *
+ *
+ *
CURLMOPT_PIPELINING
+ *
+ * Pass 1 to enable or 0 to disable. Enabling pipelining on a multi
+ * handle will make it attempt to perform HTTP Pipelining as far as
+ * possible for transfers using this handle. This means that if you add
+ * a second request that can use an already existing connection, the
+ * second request will be "piped" on the same connection rather than
+ * being executed in parallel.
+ *
+ *
+ *
+ *
+ *
CURLMOPT_MAXCONNECTS
+ *
+ * Pass a number that will be used as the maximum amount of
+ * simultaneously open connections that libcurl may cache. Default is
+ * 10. When the cache is full, curl closes the oldest one in the cache
+ * to prevent the number of open connections from increasing.
+ *
A cURL handle returned by {@link https://secure.php.net/manual/en/function.curl-init.php curl_init()}.
+ * @param int $flags
One of CURLPAUSE_* constants.
+ * @return int Returns an error code (CURLE_OK for no error).
+ * @since 5.5
+ */
+function curl_pause (#[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle, int $flags): int
+{}
+
+/**
+ * (PHP 5 >=5.5.0)
+ * Reset all options of a libcurl session handle
+ * @link https://secure.php.net/manual/en/function.curl-reset.php
+ * @param CurlHandle|resource $handle
A cURL handle returned by
+ * {@link https://secure.php.net/manual/en/function.curl-init.php curl_init()}.
+ * @return void
+ * @since 5.5
+ */
+function curl_reset (#[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $handle): void {}
+
+/**
+ * Run the sub-connections of the current cURL handle
+ * @link https://php.net/manual/en/function.curl-multi-exec.php
+ * @param CurlMultiHandle|resource $multi_handle
+ * @param int &$still_running
+ * A reference to a flag to tell whether the operations are still running.
+ *
+ * @return int A cURL code defined in the cURL Predefined Constants.
+ *
+ *
+ * This only returns errors regarding the whole multi stack. There might still have
+ * occurred problems on individual transfers even when this function returns
+ * CURLM_OK.
+ */
+function curl_multi_exec (#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")] $multi_handle, &$still_running): int
+{}
+
+/**
+ * Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
+ * @link https://php.net/manual/en/function.curl-multi-getcontent.php
+ * @param CurlHandle|resource $multi_handle
+ * @return string Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set.
+ */
+#[Pure]
+function curl_multi_getcontent (#[LanguageLevelTypeAware(["8.0" => "CurlHandle"], default: "resource")] $multi_handle): ?string
+{}
+
+/**
+ * Get information about the current transfers
+ * @link https://php.net/manual/en/function.curl-multi-info-read.php
+ * @param CurlMultiHandle|resource $multi_handle
+ * @param int &$queued_messages [optional]
+ * Number of messages that are still in the queue
+ *
+ * @return array|false On success, returns an associative array for the message, false on failure.
+ */
+#[Pure]
+function curl_multi_info_read (#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")] $multi_handle, &$queued_messages): array|false
+{}
+
+/**
+ * Close a set of cURL handles
+ * @link https://php.net/manual/en/function.curl-multi-close.php
+ * @param CurlMultiHandle|resource $multi_handle
+ * @return void
+ */
+function curl_multi_close (#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")] $multi_handle): void {}
+
+/**
+ * Return the last multi curl error number
+ * @param CurlMultiHandle|resource $multi_handle
+ * @return int
+ * @since 7.1
+ */
+#[Pure]
+function curl_multi_errno(#[LanguageLevelTypeAware(["8.0" => "CurlMultiHandle"], default: "resource")] $multi_handle): int
+{}
+
+/**
+ * Return the last share curl error number
+ * @param CurlMultiHandle|resource $share_handle
+ * @return int
+ * @since 7.1
+ */
+#[Pure]
+function curl_share_errno(#[LanguageLevelTypeAware(["8.0" => "CurlShareHandle"], default: "resource")] $share_handle): int
+{}
+
+/**
+ * Return string describing the given error code
+ * @param int $error_code
+ * @return string|null
+ * @since 7.1
+ */
+#[Pure]
+function curl_share_strerror(int $error_code): ?string
+{}
+
+/**
+ * @since 8.0
+ */
+final class CurlHandle{
+ /**
+ * Cannot directly construct CurlHandle, use curl_init() instead
+ * @see curl_init()
+ */
+ private function __construct(){}
+}
+
+/**
+ * @since 8.0
+ */
+final class CurlMultiHandle{
+ /**
+ * Cannot directly construct CurlMultiHandle, use curl_multi_init() instead
+ * @see curl_multi_init()
+ */
+ private function __construct(){}
+}
+
+/**
+ * @since 8.0
+ */
+final class CurlShareHandle{
+ /**
+ * Cannot directly construct CurlShareHandle, use curl_share_init() instead
+ * @see curl_share_init()
+ */
+ private function __construct(){}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/curl/curl_d.php b/vendor/jetbrains/phpstorm-stubs/curl/curl_d.php
new file mode 100644
index 0000000000..a3f6cba4f7
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/curl/curl_d.php
@@ -0,0 +1,3833 @@
+CURLSSH_AUTH_PUBLICKEY,
+ * CURLSSH_AUTH_PASSWORD,
+ * CURLSSH_AUTH_HOST,
+ * CURLSSH_AUTH_KEYBOARD. Set to
+ * CURLSSH_AUTH_ANY to let libcurl pick one.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define('CURLOPT_SSH_AUTH_TYPES', 151);
+
+/**
+ * TRUE tells the library to perform all the required proxy authentication
+ * and connection setup, but no data transfer. This option is implemented for
+ * HTTP, SMTP and POP3.
+ * @since 5.5
+ * @link https://php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_CONNECT_ONLY', 141);
+
+/**
+ * With the CURLOPT_FOLLOWLOCATION option disabled:
+ * redirect URL found in the last transaction, that should be requested manually next.
+ * With the CURLOPT_FOLLOWLOCATION option enabled:
+ * this is empty. The redirect URL in this case is available in CURLINFO_EFFECTIVE_URL
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 5.3.7
+ */
+define('CURLINFO_REDIRECT_URL', 1048607);
+
+/**
+ * IP address of the most recent connection
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 5.4.7
+ */
+define('CURLINFO_PRIMARY_IP', 1048608);
+/**
+ * Destination port of the most recent connection
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 5.4.7
+ */
+define('CURLINFO_PRIMARY_PORT', 2097192);
+/**
+ * Local (source) IP address of the most recent connection
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 5.4.7
+ */
+define('CURLINFO_LOCAL_IP', 1048617);
+/**
+ * Local (source) port of the most recent connection
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 5.4.7
+ */
+define('CURLINFO_LOCAL_PORT', 2097194);
+/**
+ * A result of {@see curl_share_init()}. Makes the cURL handle to use the data from the shared handle.
+ * @link https://php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define ('CURLOPT_SHARE', 10100);
+/**
+ * Allows an application to select what kind of IP addresses to use when resolving host names.
+ * This is only interesting when using host names that resolve addresses using more than one version of IP,
+ * possible values are CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6, by default CURL_IPRESOLVE_WHATEVER.
+ * @link https://php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_IPRESOLVE', 113);
+/**
+ * Value for the CURLOPT_IPRESOLVE option.
+ * Default, resolves addresses to all IP versions that your system allows.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html
+ */
+define ('CURL_IPRESOLVE_WHATEVER', 0);
+/**
+ * Value for the CURLOPT_IPRESOLVE option.
+ * Resolve to IPv4 addresses.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html
+ */
+define ('CURL_IPRESOLVE_V4', 1);
+/**
+ * Value for the CURLOPT_IPRESOLVE option.
+ * Resolve to IPv6 addresses.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html
+ */
+define ('CURL_IPRESOLVE_V6', 2);
+/**
+ * TRUE to use a global DNS cache. This option is not thread-safe.
+ * It is conditionally enabled by default if PHP is built for non-threaded use (CLI, FCGI, Apache2-Prefork, etc.).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_DNS_USE_GLOBAL_CACHE', 91);
+
+/**
+ * The number of seconds to keep DNS entries in memory.
+ * This option is set to 120 (2 minutes) by default.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_DNS_CACHE_TIMEOUT', 92);
+/**
+ * An alternative port number to connect to.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PORT', 3);
+/**
+ * The file that the transfer should be written to. The default is STDOUT (the browser window).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FILE', 10001);
+/**
+ * Custom pointer passed to the read callback.
+ * If you use the CURLOPT_READFUNCTION option, this is the pointer you'll get as input in the 4th argument to the callback.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_READDATA.html
+ */
+define ('CURLOPT_READDATA', 10009);
+/**
+ * The file that the transfer should be read from when uploading.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_INFILE', 10009);
+/**
+ * The expected size, in bytes, of the file when uploading a file to a remote site.
+ * Note that using this option will not stop libcurl from sending more data, as exactly what is sent depends on CURLOPT_READFUNCTION.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_INFILESIZE', 14);
+/**
+ * The URL to fetch. This can also be set when initializing a session with {@see curl_init()}.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_URL', 10002);
+/**
+ * The HTTP proxy to tunnel requests through.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PROXY', 10004);
+/**
+ * TRUE to output verbose information.
+ * Writes output to STDERR, or the file specified using CURLOPT_STDERR.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_VERBOSE', 41);
+/**
+ * TRUE to include the header in the output.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HEADER', 42);
+/**
+ * An array of HTTP header fields to set, in the format array('Content-type: text/plain', 'Content-length: 100')
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HTTPHEADER', 10023);
+/**
+ * TRUE to disable the progress meter for cURL transfers.
+ * (PHP automatically sets this option to TRUE, this should only be changed for debugging purposes.)
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_NOPROGRESS', 43);
+
+/**
+ * A callback accepting five parameters.
+ * The first is the cURL resource,
+ * the second is the total number of bytes expected to be downloaded in this transfer,
+ * the third is the number of bytes downloaded so far,
+ * the fourth is the total number of bytes expected to be uploaded in this transfer,
+ * and the fifth is the number of bytes uploaded so far.
+ * (The callback is only called when the CURLOPT_NOPROGRESS option is set to FALSE.)
+ * Return a non-zero value to abort the transfer. In which case, the transfer will set a CURLE_ABORTED_BY_CALLBACK error.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.3
+ */
+define ('CURLOPT_PROGRESSFUNCTION', 20056);
+/**
+ * TRUE to exclude the body from the output. Request method is then set to HEAD. Changing this to FALSE does not change it to GET.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_NOBODY', 44);
+/**
+ * TRUE to fail verbosely if the HTTP code returned is greater than or equal to 400.
+ * The default behavior is to return the page normally, ignoring the code.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FAILONERROR', 45);
+/**
+ * TRUE to prepare for an upload.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_UPLOAD', 46);
+/**
+ * TRUE to do a regular HTTP POST.
+ * This POST is the normal application/x-www-form-urlencoded kind, most commonly used by HTML forms.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_POST', 47);
+/**
+ * TRUE to only list the names of an FTP directory.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FTPLISTONLY', 48);
+/**
+ * TRUE to append to the remote file instead of overwriting it.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FTPAPPEND', 50);
+/**
+ * TRUE to scan the ~/.netrc file to find a username and password for the remote site that a connection is being established with.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_NETRC', 51);
+/**
+ * A bitmask of 1 (301 Moved Permanently), 2 (302 Found) and 4 (303 See Other) if the HTTP POST method should be maintained
+ * when CURLOPT_FOLLOWLOCATION is set and a specific type of redirect occurs.
+ * @link https://secure.php.net/manual/en/function.curl-setopt.php
+ * @since 5.3.2
+ */
+define ('CURLOPT_POSTREDIR', 161);
+/**
+ * TRUE to output SSL certification information to STDERR on secure transfers.
+ * Requires CURLOPT_VERBOSE to be on to have an effect.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.3.2
+ */
+define ('CURLOPT_CERTINFO', 172);
+/**
+ * An alias of CURLOPT_TRANSFERTEXT. Use that instead.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FTPASCII', -1);
+/**
+ * TRUE to be completely silent with regards to the cURL functions.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @deprecated use CURLOPT_RETURNTRANSFER instead since cURL 7.15.5
+ */
+define ('CURLOPT_MUTE', -1);
+/**
+ * Bitmask of CURLPROTO_* values. If used, this bitmask limits what protocols libcurl may use in the transfer.
+ * This allows you to have a libcurl built to support a wide range of protocols but still limit specific transfers
+ * to only be allowed to use a subset of them.
+ * By default libcurl will accept all protocols it supports. See also CURLOPT_REDIR_PROTOCOLS.
+ * Valid protocol options are:
+ * CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP,
+ * CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP,
+ * CURLPROTO_ALL
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.2.10
+ */
+define ('CURLOPT_PROTOCOLS', 181);
+/**
+ * Bitmask of CURLPROTO_* values. If used, this bitmask limits what protocols libcurl may use in a transfer
+ * that it follows to in a redirect when CURLOPT_FOLLOWLOCATION is enabled.
+ * This allows you to limit specific transfers to only be allowed to use a subset of protocols in redirections.
+ * By default libcurl will allow all protocols except for FILE and SCP.
+ * This is a difference compared to pre-7.19.4 versions which unconditionally would follow to all protocols supported.
+ * See also CURLOPT_PROTOCOLS for protocol constant values.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.2.10
+ */
+define ('CURLOPT_REDIR_PROTOCOLS', 182);
+/**
+ * If a download exceeds this speed (counted in bytes per second) on cumulative average during the transfer,
+ * the transfer will pause to keep the average rate less than or equal to the parameter value.
+ * Defaults to unlimited speed.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.4
+ */
+define ('CURLOPT_MAX_RECV_SPEED_LARGE', 30146);
+/**
+ * If an upload exceeds this speed (counted in bytes per second) on cumulative average during the transfer,
+ * the transfer will pause to keep the average rate less than or equal to the parameter value.
+ * Defaults to unlimited speed.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.4
+ */
+define ('CURLOPT_MAX_SEND_SPEED_LARGE', 30145);
+/**
+ * A callback accepting three parameters.
+ * The first is the cURL resource, the second is a string containing a password prompt, and the third is the maximum password length.
+ * Return the string containing the password.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PASSWDFUNCTION', -1);
+
+/**
+ * TRUE to follow any "Location: " header that the server sends as part of the HTTP header
+ * (note this is recursive, PHP will follow as many "Location: " headers that it is sent, unless CURLOPT_MAXREDIRS is set).
+ * This constant is not available when open_basedir
+ * or safe_mode are enabled.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FOLLOWLOCATION', 52);
+/**
+ * TRUE to HTTP PUT a file. The file to PUT must be set with CURLOPT_INFILE and CURLOPT_INFILESIZE.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PUT', 54);
+/**
+ * A username and password formatted as "[username]:[password]" to use for the connection.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_USERPWD', 10005);
+/**
+ * A username and password formatted as "[username]:[password]" to use for the connection to the proxy.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PROXYUSERPWD', 10006);
+/**
+ * Range(s) of data to retrieve in the format "X-Y" where X or Y are optional.
+ * HTTP transfers also support several intervals, separated with commas in the format "X-Y,N-M".
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_RANGE', 10007);
+/**
+ * The maximum number of seconds to allow cURL functions to execute.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_TIMEOUT', 13);
+/**
+ * The maximum number of milliseconds to allow cURL functions to execute.
+ * If libcurl is built to use the standard system name resolver,
+ * that portion of the connect will still use full-second resolution for timeouts with a minimum timeout allowed of one second.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.2
+ */
+define ('CURLOPT_TIMEOUT_MS', 155);
+/**
+ * The full data to post in a HTTP "POST" operation.
+ * To post a file, prepend a filename with @ and use the full path.
+ * The filetype can be explicitly specified by following the filename with the type in the format ';type=mimetype'.
+ * This parameter can either be passed
+ * as a urlencoded string like 'para1=val1¶2=val2&...'
+ * or as an array with the field name as key and field data as value.
+ * If value is an array, the Content-Type header will be set to multipart/form-data.
+ * As of PHP 5.2.0, value must be an array if files are passed to this option with the @ prefix.
+ * As of PHP 5.5.0, the @ prefix is deprecated and files can be sent using CURLFile.
+ * The @ prefix can be disabled for safe passing of values beginning with @ by setting the CURLOPT_SAFE_UPLOAD option to TRUE.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_POSTFIELDS', 10015);
+/**
+ * The contents of the "Referer: " header to be used in a HTTP request.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_REFERER', 10016);
+/**
+ * A string containing 32 hexadecimal digits.
+ * The string should be the MD5 checksum of the remote host's public key, and libcurl will reject the connection to the host unless the md5sums match.
+ * This option is only for SCP and SFTP transfers.
+ * @link https://php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSH_HOST_PUBLIC_KEY_MD5', 10162);
+/**
+ * The file name for your public key. If not used, libcurl defaults to $HOME/.ssh/id_dsa.pub
+ * if the HOME environment variable is set, and just "id_dsa.pub" in the current directory if HOME is not set.
+ * @link https://php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSH_PUBLIC_KEYFILE', 10152);
+/**
+ * The file name for your private key. If not used, libcurl defaults to $HOME/.ssh/id_dsa
+ * if the HOME environment variable is set, and just "id_dsa" in the current directory if HOME is not set.
+ * If the file is password-protected, set the password with CURLOPT_KEYPASSWD.
+ * @link https://php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSH_PRIVATE_KEYFILE', 10153);
+/**
+ * The contents of the "User-Agent: " header to be used in a HTTP request.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_USERAGENT', 10018);
+/**
+ * The value which will be used to get the IP address to use for the FTP "PORT" instruction.
+ * The "PORT" instruction tells the remote server to connect to our specified IP address.
+ * The string may be a plain IP address, a hostname, a network interface name (under Unix),
+ * or just a plain '-' to use the systems default IP address.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FTPPORT', 10017);
+/**
+ * TRUE to first try an EPSV command for FTP transfers before reverting back to PASV. Set to FALSE to disable EPSV.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FTP_USE_EPSV', 85);
+/**
+ * The transfer speed, in bytes per second, that the transfer should be below during the count of CURLOPT_LOW_SPEED_TIME seconds
+ * before PHP considers the transfer too slow and aborts.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_LOW_SPEED_LIMIT', 19);
+/**
+ * The number of seconds the transfer speed should be below CURLOPT_LOW_SPEED_LIMIT
+ * before PHP considers the transfer too slow and aborts.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_LOW_SPEED_TIME', 20);
+/**
+ * The offset, in bytes, to resume a transfer from.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_RESUME_FROM', 21);
+/**
+ * The contents of the "Cookie: " header to be used in the HTTP request.
+ * Note that multiple cookies are separated with a semicolon followed by a space (e.g., "fruit=apple; colour=red")
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_COOKIE', 10022);
+
+/**
+ * TRUE to mark this as a new cookie "session".
+ * It will force libcurl to ignore all cookies it is about to load that are "session cookies" from the previous session.
+ * By default, libcurl always stores and loads all cookies, independent if they are session cookies or not.
+ * Session cookies are cookies without expiry date and they are meant to be alive and existing for this "session" only.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_COOKIESESSION', 96);
+
+/**
+ * TRUE to automatically set the Referer: field in requests where it follows a Location: redirect.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_AUTOREFERER', 58);
+/**
+ * The name of a file containing a PEM formatted certificate.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLCERT', 10025);
+/**
+ * The password required to use the CURLOPT_SSLCERT certificate.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLCERTPASSWD', 10026);
+/**
+ * The file that the header part of the transfer is written to.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_WRITEHEADER', 10029);
+/**
+ * 1 to check the existence of a common name in the SSL peer certificate. (Deprecated)
+ * 2 to check the existence of a common name and also verify that it matches the hostname provided.
+ * 0 to not check the names. In production environments the value of this option should be kept at 2 (default value).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSL_VERIFYHOST', 81);
+/**
+ * The name of the file containing the cookie data.
+ * The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file.
+ * If the name is an empty string, no cookies are loaded, but cookie handling is still enabled.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_COOKIEFILE', 10031);
+/**
+ * One of CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3),
+ * CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) or CURL_SSLVERSION_TLSv1_2 (6).
+ * The maximum TLS version can be set by using one of the CURL_SSLVERSION_MAX_* constants.
+ * It is also possible to OR one of the CURL_SSLVERSION_* constants with one of the CURL_SSLVERSION_MAX_* constants.
+ * CURL_SSLVERSION_MAX_DEFAULT (the maximum version supported by the library), CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1,
+ * CURL_SSLVERSION_MAX_TLSv1_2, or CURL_SSLVERSION_MAX_TLSv1_3.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLVERSION', 32);
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURL_SSLVERSION_DEFAULT', 0);
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURL_SSLVERSION_TLSv1',1);
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURL_SSLVERSION_SSLv2',2);
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURL_SSLVERSION_SSLv3',3);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 5.6.3
+ * @since 5.5.19
+ */
+define ('CURL_SSLVERSION_TLSv1_0',4);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 5.6.3
+ * @since 5.5.19
+ */
+define ('CURL_SSLVERSION_TLSv1_1',5);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 5.6.3
+ * @since 5.5.19
+ */
+define('CURL_SSLVERSION_TLSv1_2', 6);
+/**
+ * How CURLOPT_TIMEVALUE is treated.
+ * Use CURL_TIMECOND_IFMODSINCE to return the page only if it has been modified since the time specified in CURLOPT_TIMEVALUE.
+ * If it hasn't been modified, a "304 Not Modified" header will be returned assuming CURLOPT_HEADER is TRUE.
+ * Use CURL_TIMECOND_IFUNMODSINCE for the reverse effect.
+ * CURL_TIMECOND_IFMODSINCE is the default.
+ * * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_TIMECONDITION', 33);
+/**
+ * The time in seconds since January 1st, 1970.
+ * The time will be used by CURLOPT_TIMECONDITION. By default, CURL_TIMECOND_IFMODSINCE is used.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_TIMEVALUE', 34);
+/**
+ * A custom request method to use instead of "GET" or "HEAD" when doing a HTTP request.
+ * This is useful for doing "DELETE" or other, more obscure HTTP requests.
+ * Valid values are things like "GET", "POST", "CONNECT" and so on; i.e. Do not enter a whole HTTP request line here.
+ * For instance, entering "GET /index.html HTTP/1.0\r\n\r\n" would be incorrect.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_CUSTOMREQUEST', 10036);
+/**
+ * An alternative location to output errors to instead of STDERR.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_STDERR', 10037);
+/**
+ * TRUE to use ASCII mode for FTP transfers.
+ * For LDAP, it retrieves data in plain text instead of HTML.
+ * On Windows systems, it will not set STDOUT to binary mode.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_TRANSFERTEXT', 53);
+/**
+ * TRUE to return the transfer as a string of the return value of {@see curl_exec()} instead of outputting it directly.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_RETURNTRANSFER', 19913);
+/**
+ * An array of FTP commands to execute on the server prior to the FTP request.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_QUOTE', 10028);
+/**
+ * An array of FTP commands to execute on the server after the FTP request has been performed.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_POSTQUOTE', 10039);
+/**
+ * The name of the outgoing network interface to use. This can be an interface name, an IP address or a host name.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_INTERFACE', 10062);
+/**
+ * The KRB4 (Kerberos 4) security level.
+ * Any of the following values (in order from least to most powerful) are valid: "clear", "safe", "confidential", "private".
+ * If the string does not match one of these, "private" is used.
+ * Setting this option to NULL will disable KRB4 security. Currently KRB4 security only works with FTP transactions.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_KRB4LEVEL', 10063);
+/**
+ * TRUE to tunnel through a given HTTP proxy.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HTTPPROXYTUNNEL', 61);
+/**
+ * TRUE to attempt to retrieve the modification date of the remote document.
+ * This value can be retrieved using the CURLINFO_FILETIME option with {@see curl_getinfo()}.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FILETIME', 69);
+/**
+ * A callback accepting two parameters. The first is the cURL resource, and the second is a string with the data to be written.
+ * The data must be saved by this callback. It must return the exact number of bytes written or the transfer will be aborted with an error.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_WRITEFUNCTION', 20011);
+/**
+ * A callback accepting three parameters.
+ * The first is the cURL resource,
+ * the second is a stream resource provided to cURL through the option CURLOPT_INFILE,
+ * and the third is the maximum amount of data to be read.
+ * The callback must return a string with a length equal or smaller than the amount of data requested, typically by reading it from the passed stream resource.
+ * It should return an empty string to signal EOF.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_READFUNCTION', 20012);
+/**
+ * A callback accepting two parameters. The first is the cURL resource, the second is a string with the header data to be written.
+ * The header data must be written by this callback. Return the number of bytes written.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HEADERFUNCTION', 20079);
+/**
+ * The maximum amount of HTTP redirections to follow. Use this option alongside CURLOPT_FOLLOWLOCATION.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_MAXREDIRS', 68);
+/**
+ * The maximum amount of persistent connections that are allowed.
+ * When the limit is reached, CURLOPT_CLOSEPOLICY is used to determine which connection to close.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_MAXCONNECTS', 71);
+/**
+ * This option is deprecated, as it was never implemented in cURL and never had any effect.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @deprecated 5.6
+ */
+define ('CURLOPT_CLOSEPOLICY', 72);
+/**
+ * TRUE to force the use of a new connection instead of a cached one.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FRESH_CONNECT', 74);
+/**
+ * TRUE to force the connection to explicitly close when it has finished processing, and not be pooled for reuse.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FORBID_REUSE', 75);
+/**
+ * A filename to be used to seed the random number generator for SSL.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_RANDOM_FILE', 10076);
+/**
+ * Like CURLOPT_RANDOM_FILE, except a filename to an Entropy Gathering Daemon socket.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_EGDSOCKET', 10077);
+
+/**
+ * The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_CONNECTTIMEOUT', 78);
+
+/**
+ * The number of milliseconds to wait while trying to connect. Use 0 to wait indefinitely.
+ * If libcurl is built to use the standard system name resolver, that portion of the connect
+ * will still use full-second resolution for timeouts with a minimum timeout allowed of one second.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.2.3
+ */
+define ('CURLOPT_CONNECTTIMEOUT_MS', 156);
+/**
+ * FALSE to stop cURL from verifying the peer's certificate.
+ * Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or
+ * a certificate directory can be specified with the CURLOPT_CAPATH option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSL_VERIFYPEER', 64);
+/**
+ * The name of a file holding one or more certificates to verify the peer with.
+ * This only makes sense when used in combination with CURLOPT_SSL_VERIFYPEER.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_CAINFO', 10065);
+/**
+ * A directory that holds multiple CA certificates. Use this option alongside CURLOPT_SSL_VERIFYPEER.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_CAPATH', 10097);
+/**
+ * The name of a file to save all internal cookies to when the handle is closed, e.g. after a call to curl_close.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_COOKIEJAR', 10082);
+/**
+ * A list of ciphers to use for SSL. For example, RC4-SHA and TLSv1 are valid cipher lists.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSL_CIPHER_LIST', 10083);
+/**
+ * TRUE to return the raw output when CURLOPT_RETURNTRANSFER is used.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @deprecated 5.1.3
+ */
+define ('CURLOPT_BINARYTRANSFER', 19914);
+/**
+ * TRUE to ignore any cURL function that causes a signal to be sent to the PHP process.
+ * This is turned on by default in multi-threaded SAPIs so timeout options can still be used.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_NOSIGNAL', 99);
+/**
+ * Either CURLPROXY_HTTP (default), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A or CURLPROXY_SOCKS5_HOSTNAME.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PROXYTYPE', 101);
+/**
+ * The size of the buffer to use for each read. There is no guarantee this request will be fulfilled, however.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_BUFFERSIZE', 98);
+/**
+ * TRUE to reset the HTTP request method to GET. Since GET is the default, this is only necessary if the request method has been changed.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HTTPGET', 80);
+/**
+ * CURL_HTTP_VERSION_NONE (default, lets CURL decide which version to use),
+ * CURL_HTTP_VERSION_1_0 (forces HTTP/1.0), CURL_HTTP_VERSION_1_1 (forces HTTP/1.1), CURL_HTTP_VERSION_2_0 (attempts HTTP 2),
+ * CURL_HTTP_VERSION_2 (alias of CURL_HTTP_VERSION_2_0), CURL_HTTP_VERSION_2TLS (attempts HTTP 2 over TLS (HTTPS) only) or
+ * CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (issues non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HTTP_VERSION', 84);
+/**
+ * The name of a file containing a private SSL key.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLKEY', 10087);
+/**
+ * The key type of the private SSL key specified in CURLOPT_SSLKEY.
+ * Supported key types are "PEM" (default), "DER", and "ENG".
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLKEYTYPE', 10088);
+/**
+ * The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY.
+ * (Since this option contains a sensitive password, remember to keep the PHP script it is contained within safe)
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLKEYPASSWD', 10026);
+/**
+ * The identifier for the crypto engine of the private SSL key specified in CURLOPT_SSLKEY.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLENGINE', 10089);
+/**
+ * The identifier for the crypto engine used for asymmetric crypto operations.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLENGINE_DEFAULT', 90);
+/**
+ * The format of the certificate.
+ * Supported formats are "PEM" (default), "DER", and "ENG". As of OpenSSL 0.9.3, "P12" (for PKCS#12-encoded files) is also supported.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_SSLCERTTYPE', 10086);
+/**
+ * TRUE to convert Unix newlines to CRLF newlines on transfers.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_CRLF', 27);
+/**
+ * The contents of the "Accept-Encoding: " header. This enables decoding of the response.
+ * Supported encodings are "identity", "deflate", and "gzip".
+ * If an empty string, "", is set, a header containing all supported encoding types is sent.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_ENCODING', 10102);
+/**
+ * The port number of the proxy to connect to. This port number can also be set in CURLOPT_PROXY.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PROXYPORT', 59);
+/**
+ * TRUE to keep sending the username and password when following locations
+ * (using CURLOPT_FOLLOWLOCATION), even when the hostname has changed.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_UNRESTRICTED_AUTH', 105);
+/**
+ * TRUE to use EPRT (and LPRT) when doing active FTP downloads. Use FALSE to disable EPRT and LPRT and use PORT only.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FTP_USE_EPRT', 106);
+
+/**
+ * TRUE to disable TCP's Nagle algorithm, which tries to minimize the number of small packets on the network.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.2.1
+ */
+define ('CURLOPT_TCP_NODELAY', 121);
+/**
+ * An array of HTTP 200 responses that will be treated as valid responses and not as errors.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HTTP200ALIASES', 10104);
+/**
+ * Value for the CURLOPT_TIMECONDITION option.
+ * Return the page only if it has been modified since the time specified in CURLOPT_TIMEVALUE.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TIMECONDITION.html
+ */
+define ('CURL_TIMECOND_IFMODSINCE', 1);
+/**
+ * Value for the CURLOPT_TIMECONDITION option.
+ * Return the page if it hasn't been modified since the time specified in CURLOPT_TIMEVALUE.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TIMECONDITION.html
+ */
+define ('CURL_TIMECOND_IFUNMODSINCE', 2);
+/**
+ * Value for the CURLOPT_TIMECONDITION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURL_TIMECOND_LASTMOD', 3);
+/**
+ * The HTTP authentication method(s) to use.
+ * The options are: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY, and CURLAUTH_ANYSAFE.
+ * The bitwise | (or) operator can be used to combine more than one method.
+ * If this is done, cURL will poll the server to see what methods it supports and pick the best one.
+ * CURLAUTH_ANY is an alias for CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ * CURLAUTH_ANYSAFE is an alias for CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_HTTPAUTH', 107);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * Allows username/password authentication.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define ('CURLAUTH_BASIC', 1);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define ('CURLAUTH_DIGEST', 2);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define ('CURLAUTH_GSSNEGOTIATE', 4);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define ('CURLAUTH_NTLM', 8);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * Is an alias for CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define ('CURLAUTH_ANY', -17);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * Is an alias for CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define ('CURLAUTH_ANYSAFE', -18);
+/**
+ * The HTTP authentication method(s) to use for the proxy connection.
+ * Use the same bitmasks as described in CURLOPT_HTTPAUTH.
+ * For proxy authentication, only CURLAUTH_BASIC and CURLAUTH_NTLM are currently supported.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_PROXYAUTH', 111);
+/**
+ * TRUE to create missing directories when an FTP operation encounters a path that currently doesn't exist.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_FTP_CREATE_MISSING_DIRS', 110);
+
+/**
+ * Any data that should be associated with this cURL handle.
+ * This data can subsequently be retrieved with the CURLINFO_PRIVATE option of {@see curl_getinfo()}. cURL does nothing with this data.
+ * When using a cURL multi handle, this private data is typically a unique key to identify a standard cURL handle.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.2.4
+ */
+define ('CURLOPT_PRIVATE', 10103);
+
+/**
+ * The last response code
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_RESPONSE_CODE', 2097154);
+/**
+ * The CONNECT response code
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_HTTP_CONNECTCODE', 2097174);
+/**
+ * Bitmask indicating the authentication method(s) available according to the previous response
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_HTTPAUTH_AVAIL', 2097175);
+/**
+ * Bitmask indicating the proxy authentication method(s) available according to the previous response
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_PROXYAUTH_AVAIL', 2097176);
+/**
+ * Errno from a connect failure. The number is OS and system specific.
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_OS_ERRNO', 2097177);
+/**
+ * Number of connections curl had to create to achieve the previous transfer
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_NUM_CONNECTS', 2097178);
+/**
+ * OpenSSL crypto-engines supported
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_SSL_ENGINES', 4194331);
+/**
+ * All known cookies
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_COOKIELIST', 4194332);
+/**
+ * Entry path in FTP server
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_FTP_ENTRY_PATH', 1048606);
+/**
+ * Time in seconds it took from the start until the SSL/SSH connect/handshake to the remote host was completed
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_APPCONNECT_TIME',3145761);
+/**
+ * TLS certificate chain
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_CERTINFO', 4194338);
+/**
+ * Info on unmet time conditional
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_CONDITION_UNMET', 2097187);
+/**
+ * Next RTSP client CSeq
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_RTSP_CLIENT_CSEQ', 2097189);
+/**
+ * Recently received CSeq
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_RTSP_CSEQ_RECV', 2097191);
+/**
+ * Next RTSP server CSeq
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_RTSP_SERVER_CSEQ', 2097190);
+/**
+ * RTSP session ID
+ * @link https://php.net/manual/en/function.curl-getinfo.php
+ * @since 5.5
+ */
+define ('CURLINFO_RTSP_SESSION_ID', 1048612);
+/**
+ * Value for the CURLOPT_CLOSEPOLICY option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @deprecated it was never implemented in cURL and never had any effect.
+ */
+define ('CURLCLOSEPOLICY_LEAST_RECENTLY_USED', 2);
+/**
+ * Value for the CURLOPT_CLOSEPOLICY option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @deprecated it was never implemented in cURL and never had any effect.
+ */
+define ('CURLCLOSEPOLICY_LEAST_TRAFFIC', 3);
+/**
+ * Value for the CURLOPT_CLOSEPOLICY option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @deprecated it was never implemented in cURL and never had any effect.
+ */
+define ('CURLCLOSEPOLICY_SLOWEST', 4);
+/**
+ * Value for the CURLOPT_CLOSEPOLICY option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @deprecated it was never implemented in cURL and never had any effect.
+ */
+define ('CURLCLOSEPOLICY_CALLBACK', 5);
+/**
+ * Value for the CURLOPT_CLOSEPOLICY option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @deprecated it was never implemented in cURL and never had any effect.
+ */
+define ('CURLCLOSEPOLICY_OLDEST', 1);
+/**
+ * Last effective URL
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_EFFECTIVE_URL', 1048577);
+/**
+ * As of PHP 5.5.0 and cURL 7.10.8, this is a legacy alias of CURLINFO_RESPONSE_CODE.
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_HTTP_CODE', 2097154);
+/**
+ * Total size of all headers received
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_HEADER_SIZE', 2097163);
+/**
+ * Total size of issued requests, currently only for HTTP requests
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_REQUEST_SIZE', 2097164);
+/**
+ * Total transaction time in seconds for last transfer
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_TOTAL_TIME', 3145731);
+/**
+ * Time in seconds until name resolving was complete
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_NAMELOOKUP_TIME', 3145732);
+/**
+ * Time in seconds it took to establish the connection
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_CONNECT_TIME', 3145733);
+/**
+ * Time in seconds from start until just before file transfer begins
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_PRETRANSFER_TIME', 3145734);
+/**
+ * Total number of bytes uploaded
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_SIZE_UPLOAD', 3145735);
+/**
+ * Total number of bytes downloaded
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_SIZE_DOWNLOAD', 3145736);
+/**
+ * Average download speed
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_SPEED_DOWNLOAD', 3145737);
+/**
+ * Average upload speed
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_SPEED_UPLOAD', 3145738);
+/**
+ * Remote time of the retrieved document, with the CURLOPT_FILETIME enabled;
+ * if -1 is returned the time of the document is unknown
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_FILETIME', 2097166);
+/**
+ * Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_SSL_VERIFYRESULT', 2097165);
+/**
+ * Content length of download, read from Content-Length: field
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_CONTENT_LENGTH_DOWNLOAD', 3145743);
+/**
+ * Specified size of upload
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_CONTENT_LENGTH_UPLOAD', 3145744);
+/**
+ * Time in seconds until the first byte is about to be transferred
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_STARTTRANSFER_TIME', 3145745);
+/**
+ * Content-Type: of the requested document. NULL indicates server did not send valid Content-Type: header
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_CONTENT_TYPE', 1048594);
+/**
+ * Time in seconds of all redirection steps before final transaction was started,
+ * with the CURLOPT_FOLLOWLOCATION option enabled
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_REDIRECT_TIME', 3145747);
+/**
+ * Number of redirects, with the CURLOPT_FOLLOWLOCATION option enabled
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ */
+define ('CURLINFO_REDIRECT_COUNT', 2097172);
+
+/**
+ * TRUE to track the handle's request string
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 5.1.3
+ */
+define ('CURLINFO_HEADER_OUT', 2);
+
+/**
+ * Private data associated with this cURL handle, previously set with the CURLOPT_PRIVATE option of {@see curl_getinfo()}
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 5.2.4
+ */
+define ('CURLINFO_PRIVATE', 1048597);
+/**
+ * Supports IPv6
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_VERSION_IPV6', 1);
+/**
+ * Supports Kerberos V4 (when using FTP)
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_VERSION_KERBEROS4', 2);
+/**
+ * Supports SSL (HTTPS/FTPS)
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_VERSION_SSL', 4);
+/**
+ * Supports HTTP deflate using libz
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_VERSION_LIBZ', 8);
+/**
+ * Will be the most recent age value for the libcurl.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLVERSION_NOW', 5);
+/**
+ * All fine. Proceed as usual.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_OK', 0);
+/**
+ * The URL you passed to libcurl used a protocol that this libcurl does not support.
+ * The support might be a compile-time option that you didn't use,
+ * it can be a misspelled protocol string or just a protocol libcurl has no code for.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_UNSUPPORTED_PROTOCOL', 1);
+/**
+ * Very early initialization code failed.
+ * This is likely to be an internal error or problem,
+ * or a resource problem where something fundamental couldn't get done at init time.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FAILED_INIT', 2);
+/**
+ * The URL was not properly formatted.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_URL_MALFORMAT', 3);
+/**
+ * A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_URL_MALFORMAT_USER', 4);
+/**
+ * Couldn't resolve proxy. The given proxy host could not be resolved.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_COULDNT_RESOLVE_PROXY', 5);
+/**
+ * Couldn't resolve host. The given remote host was not resolved.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_COULDNT_RESOLVE_HOST', 6);
+/**
+ * Failed to connect to host or proxy.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_COULDNT_CONNECT', 7);
+/**
+ * The server sent data libcurl couldn't parse.
+ * This error code was known as as CURLE_FTP_WEIRD_SERVER_REPLY before 7.51.0.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_WEIRD_SERVER_REPLY', 8);
+/**
+ * We were denied access to the resource given in the URL.
+ * For FTP, this occurs while trying to change to the remote directory.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_ACCESS_DENIED', 9);
+/**
+ * While waiting for the server to connect back when an active FTP session is used,
+ * an error code was sent over the control connection or similar.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_USER_PASSWORD_INCORRECT', 10);
+/**
+ * After having sent the FTP password to the server, libcurl expects a proper reply.
+ * This error code indicates that an unexpected code was returned.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_WEIRD_PASS_REPLY', 11);
+/**
+ * During an active FTP session while waiting for the server to connect,
+ * the CURLOPT_ACCEPTTIMEOUT_MS (or the internal default) timeout expired.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_WEIRD_USER_REPLY', 12);
+/**
+ * Libcurl failed to get a sensible result back from the server as a response to either a PASV or a EPSV command.
+ * The server is flawed.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_WEIRD_PASV_REPLY', 13);
+/**
+ * FTP servers return a 227-line as a response to a PASV command.
+ * If libcurl fails to parse that line, this return code is passed back.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_WEIRD_227_FORMAT', 14);
+/**
+ * An internal failure to lookup the host used for the new connection.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_CANT_GET_HOST', 15);
+/**
+ * A problem was detected in the HTTP2 framing layer.
+ * This is somewhat generic and can be one out of several problems, see the error buffer for details.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_CANT_RECONNECT', 16);
+/**
+ * Received an error when trying to set the transfer mode to binary or ASCII.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_COULDNT_SET_BINARY', 17);
+/**
+ * A file transfer was shorter or larger than expected.
+ * This happens when the server first reports an expected transfer size, and then delivers data
+ * that doesn't match the previously given size.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_PARTIAL_FILE', 18);
+/**
+ * This was either a weird reply to a 'RETR' command or a zero byte transfer complete.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_COULDNT_RETR_FILE', 19);
+/**
+ * After a completed file transfer, the FTP server did not respond a proper
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_FTP_WRITE_ERROR', 20);
+/**
+ * When sending custom "QUOTE" commands to the remote server,
+ * one of the commands returned an error code that was 400 or higher (for FTP) or otherwise indicated unsuccessful completion of the command.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_QUOTE_ERROR', 21);
+/**
+ * This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_HTTP_NOT_FOUND', 22);
+/**
+ * An error occurred when writing received data to a local file, or an error was returned to libcurl from a write callback.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_WRITE_ERROR', 23);
+/**
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_MALFORMAT_USER', 24);
+/**
+ * Failed starting the upload. For FTP, the server typically denied the STOR command.
+ * The error buffer usually contains the server's explanation for this.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_COULDNT_STOR_FILE', 25);
+/**
+ * There was a problem reading a local file or an error returned by the read callback.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_READ_ERROR', 26);
+/**
+ * A memory allocation request failed. This is serious badness and things are severely screwed up if this ever occurs.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_OUT_OF_MEMORY', 27);
+/**
+ * Operation timeout. The specified time-out period was reached according to the conditions.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_OPERATION_TIMEOUTED', 28);
+/**
+ * libcurl failed to set ASCII transfer type (TYPE A).
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_FTP_COULDNT_SET_ASCII', 29);
+/**
+ * The FTP PORT command returned error.
+ * This mostly happens when you haven't specified a good enough address for libcurl to use. See CURLOPT_FTPPORT.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_PORT_FAILED', 30);
+/**
+ * The FTP REST command returned error. This should never happen if the server is sane.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_COULDNT_USE_REST', 31);
+/**
+ * The FTP SIZE command returned error. SIZE is not a kosher FTP command,
+ * it is an extension and not all servers support it.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_FTP_COULDNT_GET_SIZE', 32);
+/**
+ * The server does not support or accept range requests.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_HTTP_RANGE_ERROR', 33);
+/**
+ * This is an odd error that mainly occurs due to internal confusion.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_HTTP_POST_ERROR', 34);
+/**
+ * A problem occurred somewhere in the SSL/TLS handshake.
+ * You really want the error buffer and read the message there as it pinpoints the problem slightly more.
+ * Could be certificates (file formats, paths, permissions), passwords, and others.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SSL_CONNECT_ERROR', 35);
+/**
+ * The download could not be resumed because the specified offset was out of the file boundary.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_BAD_DOWNLOAD_RESUME', 36);
+/**
+ * A file given with FILE:// couldn't be opened.
+ * Most likely because the file path doesn't identify an existing file. Did you check file permissions?
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FILE_COULDNT_READ_FILE', 37);
+/**
+ * LDAP cannot bind. LDAP bind operation failed.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_LDAP_CANNOT_BIND', 38);
+/**
+ * LDAP search failed.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_LDAP_SEARCH_FAILED', 39);
+/**
+ * Library not found. The LDAP library was not found.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_LIBRARY_NOT_FOUND', 40);
+/**
+ * Function not found. A required zlib function was not found.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FUNCTION_NOT_FOUND', 41);
+/**
+ * Aborted by callback. A callback returned "abort" to libcurl.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_ABORTED_BY_CALLBACK', 42);
+/**
+ * A function was called with a bad parameter.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_BAD_FUNCTION_ARGUMENT', 43);
+/**
+ * This is never returned
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_BAD_CALLING_ORDER', 44);
+/**
+ * Interface error. A specified outgoing interface could not be used.
+ * Set which interface to use for outgoing connections' source IP address with CURLOPT_INTERFACE.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_HTTP_PORT_FAILED', 45);
+/**
+ * This is never returned
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_BAD_PASSWORD_ENTERED', 46);
+/**
+ * Too many redirects. When following redirects, libcurl hit the maximum amount.
+ * Set your limit with CURLOPT_MAXREDIRS.
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_TOO_MANY_REDIRECTS', 47);
+/**
+ * An option passed to libcurl is not recognized/known. Refer to the appropriate documentation.
+ * This is most likely a problem in the program that uses libcurl.
+ * The error buffer might contain more specific information about which exact option it concerns.
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_UNKNOWN_TELNET_OPTION', 48);
+/**
+ * A telnet option string was Illegally formatted.
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_TELNET_OPTION_SYNTAX', 49);
+/**
+ * Currently unused.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLE_OBSOLETE', 50);
+/**
+ * The remote server's SSL certificate or SSH md5 fingerprint was deemed not OK.
+ * This error code has been unified with CURLE_SSL_CACERT since 7.62.0. Its previous value was 51.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SSL_PEER_CERTIFICATE', 60);
+/**
+ * Nothing was returned from the server, and under the circumstances, getting nothing is considered an error.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_GOT_NOTHING', 52);
+/**
+ * The specified crypto engine wasn't found.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SSL_ENGINE_NOTFOUND', 53);
+/**
+ * Failed setting the selected SSL crypto engine as default!
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SSL_ENGINE_SETFAILED', 54);
+/**
+ * Failed sending network data.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SEND_ERROR', 55);
+/**
+ * Failure with receiving network data.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_RECV_ERROR', 56);
+/**
+ * The share object is currently in use.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SHARE_IN_USE', 57);
+/**
+ * Problem with the local client certificate.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SSL_CERTPROBLEM', 58);
+/**
+ * Couldn't use specified cipher.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SSL_CIPHER', 59);
+/**
+ * The remote server's SSL certificate or SSH md5 fingerprint was deemed not OK.
+ * This error code has been unified with CURLE_SSL_PEER_CERTIFICATE since 7.62.0.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_SSL_CACERT', 60);
+/**
+ * Unrecognized transfer encoding.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_BAD_CONTENT_ENCODING', 61);
+/**
+ * Invalid LDAP URL.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_LDAP_INVALID_URL', 62);
+/**
+ * Maximum file size exceeded.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FILESIZE_EXCEEDED', 63);
+/**
+ * Requested FTP SSL level failed.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLE_FTP_SSL_FAILED', 64);
+/**
+ * Value for the CURLOPT_PROXYTYPE option.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLPROXY_HTTP', 0);
+/**
+ * Value for the CURLOPT_PROXYTYPE option.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLPROXY_SOCKS4', 4);
+/**
+ * Value for the CURLOPT_PROXYTYPE option.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLPROXY_SOCKS5', 5);
+/**
+ * Value for the CURLOPT_NETRC option.
+ * The use of the ~/.netrc file is optional, and information in the URL is to be preferred.
+ * The file will be scanned for the host and user name (to find the password only) or for the host only,
+ * to find the first user name and password after that machine, which ever information is not specified.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html
+ */
+define ('CURL_NETRC_OPTIONAL', 1);
+/**
+ * Value for the CURLOPT_NETRC option.
+ * The library will ignore the ~/.netrc file. This is the default.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html
+ */
+define ('CURL_NETRC_IGNORED', 0);
+/**
+ * Value for the CURLOPT_NETRC option.
+ * The use of the ~/.netrc file is required, and information in the URL is to be ignored.
+ * The file will be scanned for the host and user name (to find the password only) or for the host only,
+ * to find the first user name and password after that machine, which ever information is not specified.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html
+ */
+define ('CURL_NETRC_REQUIRED', 2);
+/**
+ * Value for the CURLOPT_HTTP_VERSION option.
+ * Let's CURL decide which version to use.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_HTTP_VERSION_NONE', 0);
+/**
+ * Value for the CURLOPT_HTTP_VERSION option.
+ * Forces HTTP/1.0.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_HTTP_VERSION_1_0', 1);
+/**
+ * Value for the CURLOPT_HTTP_VERSION option.
+ * Forces HTTP/1.1.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_HTTP_VERSION_1_1', 2);
+/**
+ * Value for the CURLOPT_HTTP_VERSION option.
+ * Attempts HTTP 2.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURL_HTTP_VERSION_2_0', 3);
+/**
+ * This is not really an error. It means you should call {@see curl_multi_exec()} again without doing select() or similar in between.
+ * Before version 7.20.0 this could be returned by {@see curl_multi_exec()}, but in later versions this return code is never used.
+ * @link https://www.php.net/manual/en/function.curl-multi-exec.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLM_CALL_MULTI_PERFORM', -1);
+/**
+ * Things are fine.
+ * @link https://www.php.net/manual/en/function.curl-multi-exec.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLM_OK', 0);
+/**
+ * The passed-in handle is not a valid CURLM handle.
+ * @link https://www.php.net/manual/en/function.curl-multi-exec.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLM_BAD_HANDLE', 1);
+/**
+ * An easy handle was not good/valid. It could mean that it isn't an easy handle at all,
+ * or possibly that the handle already is in use by this or another multi handle.
+ * @link https://www.php.net/manual/en/function.curl-multi-exec.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLM_BAD_EASY_HANDLE', 2);
+/**
+ * Out of memory error.
+ * @link https://www.php.net/manual/en/function.curl-multi-exec.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLM_OUT_OF_MEMORY', 3);
+/**
+ * libcurl' internal error.
+ * @link https://www.php.net/manual/en/function.curl-multi-exec.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define ('CURLM_INTERNAL_ERROR', 4);
+/**
+ * The message identifies a transfer that is done, and then result contains the return code for the easy handle that just completed.
+ * Other return values are currently not available.
+ * @link https://www.php.net/manual/en/function.curl-multi-info-read.php
+ * @link https://curl.haxx.se/libcurl/c/curl_multi_info_read.html
+ */
+define ('CURLMSG_DONE', 1);
+
+/**
+ * The FTP authentication method (when is activated):
+ * CURLFTPAUTH_SSL (try SSL first), CURLFTPAUTH_TLS (try TLS first), or CURLFTPAUTH_DEFAULT (let cURL decide).
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLOPT_FTPSSLAUTH', 129);
+
+/**
+ * Value for the CURLOPT_FTPSSLAUTH option.
+ * Let cURL decide FTP authentication method.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPAUTH_DEFAULT', 0);
+
+/**
+ * Value for the CURLOPT_FTPSSLAUTH option.
+ * Try SSL first as FTP authentication method.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPAUTH_SSL', 1);
+
+/**
+ * Value for the CURLOPT_FTPSSLAUTH option.
+ * Try TLS first as FTP authentication method.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPAUTH_TLS', 2);
+
+/**
+ * @link https://php.net/manual/en/curl.constants.php
+ * @deprecated use CURLOPT_USE_SSL instead.
+ */
+define ('CURLOPT_FTP_SSL', 119);
+
+/**
+ * Value for the CURLOPT_FTP_SSL option.
+ * Don't attempt to use SSL.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPSSL_NONE', 0);
+
+/**
+ * Value for the CURLOPT_FTP_SSL option.
+ * Try using SSL, proceed as normal otherwise.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPSSL_TRY', 1);
+
+/**
+ * Value for the CURLOPT_FTP_SSL option.
+ * Require SSL for the control connection or fail.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPSSL_CONTROL', 2);
+
+/**
+ * Value for the CURLOPT_FTP_SSL option.
+ * Require SSL for all communication or fail.
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPSSL_ALL', 3);
+/**
+ * Tell curl which method to use to reach a file on a FTP(S) server.
+ * Possible values are CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD and CURLFTPMETHOD_SINGLECWD.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.3
+ */
+define ('CURLOPT_FTP_FILEMETHOD', 138);
+/**
+ * Ignore the IP address in the PASV response
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SKIP_PASV_IP.html
+ */
+define ('CURLOPT_FTP_SKIP_PASV_IP', 137);
+/**
+ * TRUE to disable support for the @ prefix for uploading files in CURLOPT_POSTFIELDS,
+ * which means that values starting with @ can be safely passed as fields.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ * @deprecated 7.0 Use CURLFile for uploads instead.
+ */
+define ('CURLOPT_SAFE_UPLOAD', -1);
+/**
+ * Value for the CURLOPT_FTP_FILEMETHOD option.
+ * libcurl does a single CWD operation for each path part in the given URL.
+ * For deep hierarchies this means many commands. This is how RFC 1738 says it should be done. This is the default but the slowest behavior.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPMETHOD_MULTICWD', 1);
+/**
+ * Value for the CURLOPT_FTP_FILEMETHOD option.
+ * libcurl does no CWD at all.
+ * libcurl will do SIZE, RETR, STOR etc and give a full path to the server for all these commands. This is the fastest behavior.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPMETHOD_NOCWD', 2);
+/**
+ * Value for the CURLOPT_FTP_FILEMETHOD option.
+ * libcurl does one CWD with the full target directory and then operates on the file "normally" (like in the multicwd case).
+ * This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define ('CURLFTPMETHOD_SINGLECWD', 3);
+
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+ define ('CURLPROTO_HTTP', 1);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_HTTPS', 2);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_FTP', 4);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_FTPS', 8);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_SCP', 16);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_SFTP', 32);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_TELNET', 64);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_LDAP', 128);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_LDAPS', 256);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_DICT', 512);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_FILE', 1024);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_TFTP', 2048);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLPROTO_ALL', -1);
+
+/**
+ * As of cURL 7.43.0, the value is a bitmask.
+ * Pass 1 to enable or 0 to disable.
+ * Enabling pipelining on a multi handle will make it attempt to perform HTTP Pipelining as far as possible for transfers
+ * using this handle. This means that if you add a second request that can use an already existing connection,
+ * the second request will be "piped" on the same connection.
+ * Pass 2 to try to multiplex the new transfer over an existing HTTP/2 connection if possible.
+ * Pass 3 instructs cURL to ask for pipelining and multiplexing independently of each other.
+ * As of cURL 7.62.0, setting the pipelining bit has no effect.
+ * Instead of integer literals, you can also use the CURLPIPE_* constants if available.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 5.5
+ */
+define ('CURLMOPT_PIPELINING', 3);
+
+/**
+ * Pass a number that will be used as the maximum amount of simultaneously open connections that libcurl may cache.
+ * By default the size will be enlarged to fit four times the number of handles added via {@see curl_multi_add_handle()}.
+ * When the cache is full, curl closes the oldest one in the cache to prevent the number of open connections from increasing.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 5.5
+ */
+define ('CURLMOPT_MAXCONNECTS', 6);
+/**
+ * Specifies a type of data that should be shared.
+ * @link https://www.php.net/manual/en/function.curl-share-setopt.php
+ */
+define ('CURLSHOPT_SHARE', 1);
+/**
+ * Specifies a type of data that will be no longer shared.
+ * @link https://www.php.net/manual/en/function.curl-share-setopt.php
+ */
+define ('CURLSHOPT_UNSHARE', 2);
+/**
+ * Value for the CURLSHOPT_SHARE option.
+ * Shares cookie data.
+ * @link https://www.php.net/manual/en/function.curl-share-setopt.php
+ */
+define ('CURL_LOCK_DATA_COOKIE', 2);
+/**
+ * Value for the CURLSHOPT_SHARE option.
+ * Shares DNS cache. Note that when you use cURL multi handles,
+ * all handles added to the same multi handle will share DNS cache by default.
+ * @link https://www.php.net/manual/en/function.curl-share-setopt.php
+ */
+define ('CURL_LOCK_DATA_DNS', 3);
+/**
+ * Value for the CURLSHOPT_SHARE option.
+ * Shares SSL session IDs, reducing the time spent on the SSL handshake when reconnecting to the same server.
+ * Note that SSL session IDs are reused within the same handle by default.
+ * @link https://www.php.net/manual/en/function.curl-share-setopt.php
+ */
+define ('CURL_LOCK_DATA_SSL_SESSION', 4);
+/**
+ * The password required to use the CURLOPT_SSLKEY or CURLOPT_SSH_PRIVATE_KEYFILE private key.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define ('CURLOPT_KEYPASSWD', 10026);
+
+
+/**
+ * Value for the CURLOPT_FTP_CREATE_MISSING_DIRS option.
+ * libcurl will attempt to create any remote directory that it fails to "move" into.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html
+ * @since 7.0.7
+ */
+define('CURLFTP_CREATE_DIR', 1);
+
+/**
+ * Value for the CURLOPT_FTP_CREATE_MISSING_DIRS option.
+ * libcurl will not attempt to create any remote directory that it fails to "move" into.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html
+ * @since 7.0.7
+ */
+define('CURLFTP_CREATE_DIR_NONE', 0);
+
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * NTLM delegating to winbind helper.
+ * Authentication is performed by a separate binary application that is executed when needed.
+ * The name of the application is specified at compile time but is typically /usr/bin/ntlm_auth.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLAUTH_NTLM_WB', 32);
+
+/**
+ * Value for the CURLOPT_HTTP_VERSION option.
+ * Alias of CURL_HTTP_VERSION_2_0
+ * Attempts HTTP 2
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_HTTP_VERSION_2', 3);
+
+/**
+ * Value for the CURLOPT_HTTP_VERSION option.
+ * Attempts HTTP 2 over TLS (HTTPS) only
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_HTTP_VERSION_2TLS', 4);
+
+/**
+ * Value for the CURLOPT_HTTP_VERSION option.
+ * Issues non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE', 5);
+
+/**
+ * TRUE to enable sending the initial response in the first packet.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_SASL_IR', 218);
+
+/**
+ * Set the name of the network interface that the DNS resolver should bind to. This must be an interface name (not an address).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_DNS_INTERFACE', 10221);
+
+/**
+ * Set the local IPv4 address that the resolver should bind to. The argument should contain a single numerical IPv4 address as a string.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_DNS_LOCAL_IP4', 10222);
+
+/**
+ * Set the local IPv6 address that the resolver should bind to. The argument should contain a single numerical IPv6 address as a string.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_DNS_LOCAL_IP6', 10223);
+
+/**
+ * Specifies the OAuth 2.0 access token.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_XOAUTH2_BEARER', 10220);
+
+/**
+ * Can be used to set protocol specific login options, such as the preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*",
+ * and should be used in conjunction with the CURLOPT_USERNAME option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_LOGIN_OPTIONS', 10224);
+
+/**
+ * The timeout for Expect: 100-continue responses in milliseconds. Defaults to 1000 milliseconds.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_EXPECT_100_TIMEOUT_MS', 227);
+
+/**
+ * FALSE to disable ALPN in the SSL handshake (if the SSL backend libcurl is built to use supports it),
+ * which can be used to negotiate http2.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_SSL_ENABLE_ALPN', 226);
+
+/**
+ * FALSE to disable NPN in the SSL handshake (if the SSL backend libcurl is built to use supports it),
+ * which can be used to negotiate http2.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_SSL_ENABLE_NPN', 225);
+
+/**
+ * Set the pinned public key. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER".
+ * The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";".
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_PINNEDPUBLICKEY', 10230);
+
+/**
+ * Enables the use of Unix domain sockets as connection endpoint and sets the path to the given string.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_UNIX_SOCKET_PATH', 10231);
+
+/**
+ * TRUE to verify the certificate's status.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_SSL_VERIFYSTATUS', 232);
+
+/**
+ * TRUE to not handle dot dot sequences.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_PATH_AS_IS', 234);
+
+/**
+ * TRUE to enable TLS false start.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_SSL_FALSESTART', 233);
+
+/**
+ * TRUE to wait for pipelining/multiplexing.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_PIPEWAIT', 237);
+
+/**
+ * The proxy authentication service name.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_PROXY_SERVICE_NAME', 10235);
+
+/**
+ * The authentication service name.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_SERVICE_NAME', 10236);
+
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * libcurl attempts to connect to ssh-agent or pageant and let the agent attempt the authentication.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLSSH_AUTH_AGENT', 16);
+
+/**
+ * Value for the CURLMOPT_PIPELINING option.
+ * Default, which means doing no attempts at pipelining or multiplexing.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html
+ * @since 7.0.7
+ */
+define('CURLPIPE_NOTHING', 0);
+
+/**
+ * Value for the CURLMOPT_PIPELINING option.
+ * If this bit is set, libcurl will try to pipeline HTTP/1.1 requests on connections that are already established and in use to hosts.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html
+ * @deprecated has no effect since version 7.62.0.
+ * @since 7.0.7
+ */
+define('CURLPIPE_HTTP1', 1);
+
+/**
+ * Value for the CURLMOPT_PIPELINING option.
+ * If this bit is set, libcurl will try to multiplex the new transfer over an existing connection if possible. This requires HTTP/2.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html
+ * @since 7.0.7
+ */
+define('CURLPIPE_MULTIPLEX', 2);
+
+/**
+ * Value for the CURLOPT_HEADEROPT option.
+ * Makes CURLOPT_HTTPHEADER headers only get sent to a server and not to a proxy.
+ * Proxy headers must be set with CURLOPT_PROXYHEADER to get used.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLHEADER_SEPARATE', 1);
+
+/**
+ * Value for the CURLOPT_HEADEROPT option.
+ * The headers specified in CURLOPT_HTTPHEADER will be used in requests both to servers and proxies.
+ * With this option enabled, CURLOPT_PROXYHEADER will not have any effect.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLHEADER_UNIFIED', 0);
+
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLPROTO_SMB', 67108864);
+
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLPROTO_SMBS', 134217728);
+
+/**
+ * How to deal with headers.
+ * One of the following constants:
+ * CURLHEADER_UNIFIED: the headers specified in CURLOPT_HTTPHEADER will be used in requests both to servers and proxies.
+ * With this option enabled, CURLOPT_PROXYHEADER will not have any effect.
+ * CURLHEADER_SEPARATE: makes CURLOPT_HTTPHEADER headers only get sent to a server and not to a proxy.
+ * Proxy headers must be set with CURLOPT_PROXYHEADER to get used.
+ * Note that if a non-CONNECT request is sent to a proxy, libcurl will send both server headers and proxy headers.
+ * When doing CONNECT, libcurl will send CURLOPT_PROXYHEADER headers only to the proxy and then CURLOPT_HTTPHEADER headers only to the server.
+ * Defaults to CURLHEADER_SEPARATE as of cURL 7.42.1, and CURLHEADER_UNIFIED before.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_HEADEROPT', 229);
+
+/**
+ * An array of custom HTTP headers to pass to proxies.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define('CURLOPT_PROXYHEADER', 10228);
+
+/**
+ * Value for the CURLOPT_POSTREDIR option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_REDIR_POST_301', 1);
+
+/**
+ * Value for the CURLOPT_POSTREDIR option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_REDIR_POST_302', 2);
+
+
+/**
+ * Value for the CURLOPT_POSTREDIR option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_REDIR_POST_303', 4);
+
+/**
+ * Value for the CURLOPT_PROXYTYPE option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLPROXY_HTTP_1_0',1);
+/**
+ * Value for the CURLOPT_POSTREDIR option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_REDIR_POST_ALL', 7);
+
+/**
+ * Pass a number that specifies the chunk length threshold for pipelining in bytes.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.0.7
+ */
+define ('CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE', 30010);
+
+/**
+ * Pass a number that specifies the size threshold for pipelining penalty in bytes.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.0.7
+ */
+define ('CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE', 30009);
+
+/**
+ * Pass a number that specifies the maximum number of connections to a single host.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.0.7
+ */
+define('CURLMOPT_MAX_HOST_CONNECTIONS', 7);
+
+/**
+ * Pass a number that specifies the maximum number of requests in a pipeline.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.0.7
+ */
+define('CURLMOPT_MAX_PIPELINE_LENGTH', 8);
+
+/**
+ * Pass a number that specifies the maximum number of simultaneously open connections.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.0.7
+ */
+define('CURLMOPT_MAX_TOTAL_CONNECTIONS', 13);
+
+/**
+ * Value for the CURLOPT_FTP_CREATE_MISSING_DIRS option.
+ * libcurl will not attempt to create any remote directory that it fails to "move" into.
+ * Tells libcurl to retry the CWD command again if the subsequent MKD command fails.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html
+ * @since 7.0.7
+ */
+define ('CURLFTP_CREATE_DIR_RETRY', 2);
+
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * HTTP Negotiate (SPNEGO) authentication
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURLAUTH_NEGOTIATE', 4);
+
+
+/**
+ * Pass a callable that will be registered to handle server pushes and should have the following signature:
+ * parent_ch
+ * The parent cURL handle (the request the client made).
+ * pushed_ch
+ * A new cURL handle for the pushed request.
+ * headers
+ * The push promise headers.
+ * The push function is supposed to return either CURL_PUSH_OK if it can handle the push,
+ * or CURL_PUSH_DENY to reject it.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.1
+ */
+define('CURLMOPT_PUSHFUNCTION', 20014);
+
+/**
+ * Returned value from the push function - can handle the push.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.1
+ */
+define('CURL_PUSH_OK', 0);
+
+/**
+ * Returned value from the push function - can't handle the push.
+ * @link https://www.php.net/manual/en/function.curl-multi-setopt.php
+ * @since 7.1
+ */
+define('CURL_PUSH_DENY',1);
+
+/**
+ * The default buffer size for CURLOPT_BUFFERSIZE
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_MAX_READ_SIZE', 524288);
+
+/**
+ * Enables the use of an abstract Unix domain socket instead of establishing a TCP connection to a host and sets the path to the given string.
+ * This option shares the same semantics as CURLOPT_UNIX_SOCKET_PATH.
+ * These two options share the same storage and therefore only one of them can be set per handle.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_ABSTRACT_UNIX_SOCKET', 10264);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_SSLVERSION_MAX_DEFAULT', 65536);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_SSLVERSION_MAX_NONE', 0);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_SSLVERSION_MAX_TLSv1_0', 262144);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_SSLVERSION_MAX_TLSv1_1', 327680);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_SSLVERSION_MAX_TLSv1_2', 393216);
+
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_SSLVERSION_MAX_TLSv1_3', 458752);
+
+/**
+ * TRUE to suppress proxy CONNECT response headers from the user callback functions
+ * CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION,
+ * when CURLOPT_HTTPPROXYTUNNEL is used and a CONNECT request is made.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_SUPPRESS_CONNECT_HEADERS', 265);
+
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * Allows GSS-API authentication.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURLAUTH_GSSAPI', 4);
+
+/**
+ * The content-length of the download. This is the value read from the Content-Type: field. -1 if the size isn't known
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_CONTENT_LENGTH_DOWNLOAD_T', 6291471);
+
+/**
+ * The specified size of the upload. -1 if the size isn't known
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_CONTENT_LENGTH_UPLOAD_T', 6291472);
+
+/**
+ * Total number of bytes that were downloaded.
+ * The number is only for the latest transfer and will be reset again for each new transfer
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_SIZE_DOWNLOAD_T', 6291464);
+
+/**
+ * Total number of bytes that were uploaded
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_SIZE_UPLOAD_T', 6291463);
+
+/**
+ * The average download speed in bytes/second that curl measured for the complete download
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_SPEED_DOWNLOAD_T', 6291465);
+
+/**
+ * The average upload speed in bytes/second that curl measured for the complete upload
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_SPEED_UPLOAD_T', 6291466);
+
+/**
+ * Specify an alternative target for this request
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_REQUEST_TARGET.html
+ * @since 7.3
+ */
+define('CURLOPT_REQUEST_TARGET', 10266);
+
+/**
+ * The SOCKS5 authentication method(s) to use. The options are: CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE.
+ * The bitwise | (or) operator can be used to combine more than one method. If this is done,
+ * cURL will poll the server to see what methods it supports and pick the best one.
+ * CURLAUTH_BASIC allows username/password authentication.
+ * CURLAUTH_GSSAPI allows GSS-API authentication.
+ * CURLAUTH_NONE allows no authentication.
+ * Defaults to CURLAUTH_BASIC|CURLAUTH_GSSAPI.
+ * Set the actual username and password with the CURLOPT_PROXYUSERPWD option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_SOCKS5_AUTH', 267);
+
+/**
+ * TRUE to enable built-in SSH compression. This is a request, not an order; the server may or may not do it.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_SSH_COMPRESSION', 268);
+
+/**
+ * libcurl was build with multiple ssh backends.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_MULTI_SSL', 4194304);
+
+/**
+ * Supports HTTP Brotli content encoding using libbrotlidec
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_BROTLI', 8388608);
+
+/**
+ * Value for the CURLSHOPT_SHARE option.
+ * Put the connection cache in the share object and make all easy handles using this share object share the connection cache.
+ * Using this, you can for example do multi-threaded libcurl use with one handle in each thread, and yet
+ * have a shared pool of unused connections and this way get way better connection re-use
+ * than if you use one separate pool in each thread.
+ * Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing only get additional transfers
+ * added to them if the existing connection is held by the same multi or easy handle.
+ * libcurl does not support doing HTTP/2 streams in different threads using a shared connection.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/curl_share_setopt.html
+ * @since 7.3
+ */
+define('CURL_LOCK_DATA_CONNECT', 5);
+
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURLSSH_AUTH_GSSAPI', 32);
+
+/**
+ * Remote time of the retrieved document (as Unix timestamp),
+ * an alternative to CURLINFO_FILETIME to allow systems with 32 bit long variables to extract dates
+ * outside of the 32bit timestamp range
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_FILETIME_T', 6291470);
+
+/**
+ * Head start for ipv6 for the happy eyeballs algorithm.
+ * Happy eyeballs attempts to connect to both IPv4 and IPv6 addresses for dual-stack hosts,
+ * preferring IPv6 first for timeout milliseconds.
+ * Defaults to CURL_HET_DEFAULT, which is currently 200 milliseconds.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS', 271);
+
+/**
+ * The time in seconds since January 1st, 1970.
+ * The time will be used by CURLOPT_TIMECONDITION. Defaults to zero.
+ * The difference between this option and CURLOPT_TIMEVALUE is the type of the argument.
+ * On systems where 'long' is only 32 bit wide, this option has to be used to set dates beyond the year 2038.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_TIMEVALUE_LARGE', 30270);
+
+/**
+ * TRUE to shuffle the order of all returned addresses so that they will be used in a random order,
+ * when a name is resolved and more than one IP address is returned.
+ * This may cause IPv4 to be used before IPv6 or vice versa.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_DNS_SHUFFLE_ADDRESSES', 275);
+
+/**
+ * TRUE to send an HAProxy PROXY protocol v1 header at the start of the connection.
+ * The default action is not to send this header.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURLOPT_HAPROXYPROTOCOL', 274);
+
+/**
+ * Value for the CURLSHOPT_SHARE option.
+ * The Public Suffix List stored in the share object is made available to all easy handle bound to the later.
+ * Since the Public Suffix List is periodically refreshed, this avoids updates in too many different contexts.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/curl_share_setopt.html
+ * @since 7.3
+ */
+define('CURL_LOCK_DATA_PSL', 6);
+
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * HTTP Bearer token authentication, used primarily in OAuth 2.0 protocol.
+ * @link https://php.net/manual/en/curl.constants.php
+ * https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ * @since 7.3
+ */
+define('CURLAUTH_BEARER', 64);
+
+/**
+ * Time, in microseconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_APPCONNECT_TIME_T', 6291512);
+
+/**
+ * Total time taken, in microseconds, from the start until the connection to the remote host (or proxy) was completed
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_CONNECT_TIME_T', 6291508);
+
+/**
+ * Time in microseconds from the start until the name resolving was completed
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_NAMELOOKUP_TIME_T', 6291507);
+
+/**
+ * Time taken from the start until the file transfer is just about to begin, in microseconds
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_PRETRANSFER_TIME_T', 6291509);
+
+/**
+ * Total time, in microseconds,
+ * it took for all redirection steps include name lookup, connect, pretransfer and transfer before final transaction was started
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_REDIRECT_TIME_T', 6291511);
+
+/**
+ * Time, in microseconds, it took from the start until the first byte is received
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_STARTTRANSFER_TIME_T', 6291510);
+
+/**
+ * Total time in microseconds for the previous transfer, including name resolving, TCP connect etc.
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_TOTAL_TIME_T', 6291506);
+
+/**
+ * TRUE to not allow URLs that include a username. Usernames are allowed by default (0).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_DISALLOW_USERNAME_IN_URL', 278);
+
+/**
+ * The list of cipher suites to use for the TLS 1.3 connection to a proxy.
+ * The list must be syntactically correct, it consists of one or more cipher suite strings separated by colons.
+ * This option is currently used only when curl is built to use OpenSSL 1.1.1 or later.
+ * If you are using a different SSL backend you can try setting TLS 1.3 cipher suites by using the CURLOPT_PROXY_SSL_CIPHER_LIST option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_TLS13_CIPHERS', 10277);
+
+/**
+ * The list of cipher suites to use for the TLS 1.3 connection.
+ * The list must be syntactically correct, it consists of one or more cipher suite strings separated by colons.
+ * This option is currently used only when curl is built to use OpenSSL 1.1.1 or later.
+ * If you are using a different SSL backend you can try setting TLS 1.3 cipher suites by using the CURLOPT_SSL_CIPHER_LIST option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_TLS13_CIPHERS', 10276);
+
+/**
+ * Time allowed to wait for FTP response.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_RESPONSE_TIMEOUT.html
+ * @since 5.5
+ */
+define ('CURLOPT_FTP_RESPONSE_TIMEOUT', 112);
+
+/**
+ * Provide a custom address for a specific host and port pair.
+ * An array of hostname, port, and IP address strings, each element separated by a colon.
+ * In the format: array("example.com:80:127.0.0.1")
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define('CURLOPT_RESOLVE', 10203);
+
+/**
+ * Enable appending to the remote file
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_APPEND.html
+ * @since 5.5
+ */
+define('CURLOPT_APPEND', 50);
+
+/**
+ * Ask for names only in a directory listing
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_DIRLISTONLY.html
+ * @since 5.5
+ */
+define('CURLOPT_DIRLISTONLY', 48);
+
+/**
+ * Permissions for remotely created directories
+ * Pass a long as a parameter, containing the value of the permissions that will be assigned to newly created directories on the remote server.
+ * The default value is 0755, but any valid value can be used.
+ * The only protocols that can use this are sftp://, scp://, and file://.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_NEW_DIRECTORY_PERMS.html
+ * @since 5.5
+ */
+define('CURLOPT_NEW_DIRECTORY_PERMS', 160);
+
+/**
+ * Permissions for remotely created files.
+ * Pass a long as a parameter, containing the value of the permissions that will be assigned to newly created files on the remote server.
+ * The default value is 0644, but any valid value can be used.
+ * The only protocols that can use this are sftp://, scp://, and file://.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_NEW_FILE_PERMS.html
+ * @since 5.5
+ */
+define('CURLOPT_NEW_FILE_PERMS', 159);
+
+/**
+ * TRUE to scan the ~/.netrc file to find a username and password for the remote site that a connection is being established with.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC_FILE.html
+ * @since 5.5
+ */
+define('CURLOPT_NETRC_FILE', 10118);
+
+/**
+ * Commands to run before an FTP transfer
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PREQUOTE.html
+ * @since 5.5
+ */
+define('CURLOPT_PREQUOTE',10093);
+
+/**
+ * Set FTP kerberos security level
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_KRBLEVEL.html
+ * @since 5.5
+ */
+define('CURLOPT_KRBLEVEL',10063);
+
+/**
+ * Maximum file size allowed to download (in bytes)
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE.html
+ * @since 5.5
+ */
+define ('CURLOPT_MAXFILESIZE', 114);
+
+/**
+ * Set account info for FTP
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ACCOUNT.html
+ * @since 5.5
+ */
+define('CURLOPT_FTP_ACCOUNT', 10134);
+
+/**
+ * A cookie string (i.e. a single line in Netscape/Mozilla format, or a regular HTTP-style Set-Cookie header) adds that single cookie to the internal cookie store.
+ * "ALL" erases all cookies held in memory.
+ * "SESS" erases all session cookies held in memory.
+ * "FLUSH" writes all known cookies to the file specified by CURLOPT_COOKIEJAR.
+ * "RELOAD" loads all cookies from the files specified by CURLOPT_COOKIEFILE.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define('CURLOPT_COOKIELIST', 10135);
+
+/**
+ * Set local port number to use for socket
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORT.html
+ * @since 5.5
+ */
+define('CURLOPT_LOCALPORT', 139);
+
+/**
+ * Number of additional local ports to try.
+ * Pass a long. The range argument is the number of attempts libcurl will make to find a working local port number.
+ * It starts with the given CURLOPT_LOCALPORT and adds one to the number for each retry.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORTRANGE.html
+ * @since 5.5
+ */
+define('CURLOPT_LOCALPORTRANGE', 140);
+
+/**
+ * Command to use instead of USER with FTP.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ALTERNATIVE_TO_USER.html
+ * @since 5.5
+ */
+define('CURLOPT_FTP_ALTERNATIVE_TO_USER', 10147);
+
+/**
+ * Enable/disable use of the SSL session-ID cache.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_SSL_SESSIONID_CACHE.html
+ * @since 5.5
+ */
+define('CURLOPT_SSL_SESSIONID_CACHE', 150);
+
+/**
+ * Switch off SSL again with FTP after auth.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html
+ * @since 5.5
+ */
+define('CURLOPT_FTP_SSL_CCC', 154);
+
+/**
+ * FALSE to get the raw HTTP response body.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define('CURLOPT_HTTP_CONTENT_DECODING', 158);
+
+/**
+ * Enable/disable HTTP transfer decoding.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_TRANSFER_DECODING.html
+ * @since 5.5
+ */
+define('CURLOPT_HTTP_TRANSFER_DECODING', 157);
+
+/**
+ * Append FTP transfer mode to URL for proxy.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TRANSFER_MODE.html
+ * @since 5.5
+ */
+define('CURLOPT_PROXY_TRANSFER_MODE', 166);
+
+/**
+ * Set scope id for IPv6 addresses.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_ADDRESS_SCOPE.html
+ * @since 5.5
+ */
+define('CURLOPT_ADDRESS_SCOPE', 171);
+
+/**
+ * Specify a Certificate Revocation List file.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_CRLFILE.html
+ * @since 5.5
+ */
+define('CURLOPT_CRLFILE', 10169);
+
+/**
+ * Issuer SSL certificate filename.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT.html
+ * @since 5.5
+ */
+define('CURLOPT_ISSUERCERT', 10170);
+
+/**
+ * The user name to use in authentication.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define('CURLOPT_USERNAME', 10173);
+
+/**
+ * Password to use in authentication.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PASSWORD.html
+ * @since 5.5
+ */
+define('CURLOPT_PASSWORD', 10174);
+
+/**
+ * User name to use for proxy authentication.
+ * @since 5.5
+ */
+define('CURLOPT_PROXYUSERNAME', 10175);
+
+/**
+ * Password to use for proxy authentication.
+ * @since 5.5
+ */
+define('CURLOPT_PROXYPASSWORD', 10176);
+
+/**
+ * Disable proxy use for specific hosts.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html
+ * @since 5.5
+ */
+define('CURLOPT_NOPROXY', 10177);
+
+/**
+ * Set socks proxy gssapi negotiation protection.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_NEC.html
+ * @since 5.5
+ */
+define('CURLOPT_SOCKS5_GSSAPI_NEC', 180);
+
+/**
+ * SOCKS5 proxy authentication service name.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_SERVICE.html
+ * @deprecated Use CURLOPT_PROXY_SERVICE_NAME instead.
+ * @since 5.5
+ */
+define('CURLOPT_SOCKS5_GSSAPI_SERVICE', 10179);
+
+/**
+ * Specify blocksize to use for TFTP data transmission.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TFTP_BLKSIZE.html
+ * @since 5.5
+ */
+define('CURLOPT_TFTP_BLKSIZE', 178);
+
+/**
+ * File name holding the SSH known hosts.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_SSH_KNOWNHOSTS.html
+ * @since 5.5
+ */
+define('CURLOPT_SSH_KNOWNHOSTS', 10183);
+
+/**
+ * Enable the PRET command.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_PRET.html
+ * @since 5.5
+ */
+define('CURLOPT_FTP_USE_PRET', 188);
+
+/**
+ * SMTP sender address.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_FROM.html
+ * @since 5.5
+ */
+define('CURLOPT_MAIL_FROM', 10186);
+
+/**
+ * List of SMTP mail recipients.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT.html
+ * @since 5.5
+ */
+define('CURLOPT_MAIL_RCPT', 10187);
+
+/**
+ * Set the RTSP client CSEQ number.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_CLIENT_CSEQ.html
+ * @since 5.5
+ */
+define('CURLOPT_RTSP_CLIENT_CSEQ', 193);
+
+/**
+ * Set the RTSP server CSEQ number.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SERVER_CSEQ.html
+ * @since 5.5
+ */
+define('CURLOPT_RTSP_SERVER_CSEQ', 194);
+
+/**
+ * Set RTSP session ID.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SESSION_ID.html
+ * @since 5.5
+ */
+define('CURLOPT_RTSP_SESSION_ID', 10190);
+
+/**
+ * Set RTSP stream URI.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_STREAM_URI.html
+ * @since 5.5
+ */
+define('CURLOPT_RTSP_STREAM_URI', 10191);
+
+/**
+ * Set RTSP Transport: header.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_TRANSPORT.html
+ * @since 5.5
+ */
+define('CURLOPT_RTSP_TRANSPORT', 10192);
+
+/**
+ * Specify RTSP request.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ * @since 5.5
+ */
+define('CURLOPT_RTSP_REQUEST', 189);
+
+/**
+ * Ignore content length.
+ * If TRUE, ignore the Content-Length header in the HTTP response and ignore asking for or relying on it for FTP transfers.
+ * This is useful for HTTP with Apache 1.x (and similar servers) which will report incorrect content length for files over 2 gigabytes.
+ * If this option is used, curl will not be able to accurately report progress, and will simply stop the download when the server ends the connection.
+ * It is also useful with FTP when for example the file is growing while the transfer is in progress
+ * which otherwise will unconditionally cause libcurl to report error.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_IGNORE_CONTENT_LENGTH.html
+ * @since 5.5
+ */
+define('CURLOPT_IGNORE_CONTENT_LENGTH', 136);
+/**
+ * Enables automatic decompression of HTTP downloads
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html
+ * @since 5.5
+ */
+define('CURLOPT_ACCEPT_ENCODING', 10102);
+
+/**
+ * Ask for HTTP Transfer Encoding.
+ * Adds a request for compressed Transfer Encoding in the outgoing HTTP request.
+ * If the server supports this and so desires, it can respond with the HTTP response sent using a compressed Transfer-Encoding
+ * that will be automatically uncompressed by libcurl on reception.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TRANSFER_ENCODING.html
+ * @since 5.5
+ */
+define('CURLOPT_TRANSFER_ENCODING', 207);
+
+/**
+ * Set preferred DNS servers: host[:port][,host[:port]]...
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SERVERS.html
+ * @since 5.5
+ */
+define('CURLOPT_DNS_SERVERS', 10211);
+
+
+/**
+ * Request using SSL / TLS for the transfer
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html
+ * @since 5.5
+ */
+define('CURLOPT_USE_SSL', 119);
+/**
+ * Custom telnet options
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TELNETOPTIONS.html
+ */
+define("CURLOPT_TELNETOPTIONS",10070);
+/**
+ * The download could not be resumed because the specified offset was out of the file boundary.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLE_BAD_DOWNLOAD_RESUME",36);
+/**
+ * A file transfer was shorter or larger than expected.
+ * This happens when the server first reports an expected transfer size, and then delivers data
+ * that doesn't match the previously given size.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLE_FTP_PARTIAL_FILE",18);
+/**
+ * This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLE_HTTP_RETURNED_ERROR",22);
+/**
+ * Operation timeout. The specified time-out period was reached according to the conditions.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLE_OPERATION_TIMEDOUT",28);
+/**
+ * Failed to match the pinned key specified with CURLOPT_PINNEDPUBLICKEY.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLE_SSL_PINNEDPUBKEYNOTMATCH",90);
+/**
+ * @link https://php.net/manual/en/curl.constants.php
+ */
+define("CURLINFO_LASTONE",57);
+/**
+ * An easy handle already added to a multi handle was attempted to get added a second time.
+ * @link https://www.php.net/manual/en/function.curl-multi-exec.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLM_ADDED_ALREADY",7);
+/**
+ * @link https://curl.haxx.se/libcurl/c/symbols-in-versions.html
+ */
+define("CURLSHOPT_NONE",0);
+/**
+ * Default value for the CURLOPT_TIMECONDITION option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TIMECONDITION.html
+ */
+define("CURL_TIMECOND_NONE",0);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * Allows no authentication.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ */
+define("CURLAUTH_NONE",0);
+/**
+ * Problem with reading the SSL CA cert (path? access rights?)
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLE_SSL_CACERT_BADFILE",77);
+/**
+ * An unspecified error occurred during the SSH session.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html
+ */
+define("CURLE_SSH",79);
+/**
+ * Value for the CURLOPT_FTP_SSL_CCC option.
+ * Initiate the shutdown and wait for a reply.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html
+ */
+define("CURLFTPSSL_CCC_ACTIVE",2);
+/**
+ * Value for the CURLOPT_FTP_SSL_CCC option.
+ * Don't attempt to use CCC.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html
+ */
+define("CURLFTPSSL_CCC_NONE",0);
+/**
+ * Value for the CURLOPT_FTP_SSL_CCC option.
+ * Do not initiate the shutdown, but wait for the server to do it. Do not send a reply.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html
+ */
+define("CURLFTPSSL_CCC_PASSIVE",1);
+/**
+ * Value for the CURLOPT_USE_SSL option.
+ * Require SSL for all communication or fail.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html
+ */
+define("CURLUSESSL_ALL",3);
+/**
+ * Value for the CURLOPT_USE_SSL option.
+ * Require SSL for the control connection or fail.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html
+ */
+define("CURLUSESSL_CONTROL",2);
+/**
+ * Value for the CURLOPT_USE_SSL option.
+ * Don't attempt to use SSL.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html
+ */
+define("CURLUSESSL_NONE",0);
+/**
+ * Value for the CURLOPT_USE_SSL option.
+ * Try using SSL, proceed as normal otherwise.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html
+ */
+define("CURLUSESSL_TRY",1);
+/**
+ * Convenience define that pauses both directions.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.5
+ */
+define("CURLPAUSE_ALL",5);
+/**
+ * Convenience define that unpauses both directions.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.5
+ */
+define("CURLPAUSE_CONT",0);
+/**
+ * Pause receiving data. There will be no data received on this connection until this function is called again without this bit set.
+ * Thus, the write callback (CURLOPT_WRITEFUNCTION) won't be called.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.5
+ */
+define("CURLPAUSE_RECV",1);
+/**
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.5
+ */
+define("CURLPAUSE_RECV_CONT",0);
+/**
+ * Pause sending data. There will be no data sent on this connection until this function is called again without this bit set.
+ * Thus, the read callback (CURLOPT_READFUNCTION) won't be called.
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.5
+ */
+define("CURLPAUSE_SEND",4);
+/**
+ * @link https://php.net/manual/en/curl.constants.php
+ * @since 5.5
+ */
+define("CURLPAUSE_SEND_CONT",0);
+/**
+ * Read callback for data uploads.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_READFUNCTION.html
+ */
+define("CURL_READFUNC_PAUSE",268435457);
+/**
+ * Set callback for writing received data.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_WRITEFUNCTION.html
+ */
+define("CURL_WRITEFUNC_PAUSE",268435457);
+/**
+ * Value for the CURLOPT_PROXYTYPE option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 5.5.23
+ */
+define("CURLPROXY_SOCKS4A",6);
+/**
+ * Value for the CURLOPT_PROXYTYPE option.
+ * Proxy resolves URL hostname.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 5.5.23
+ */
+define("CURLPROXY_SOCKS5_HOSTNAME",7);
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define("CURLSSH_AUTH_ANY",-1);
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define("CURLSSH_AUTH_DEFAULT",-1);
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define("CURLSSH_AUTH_HOST",4);
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define("CURLSSH_AUTH_KEYBOARD",8);
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define("CURLSSH_AUTH_NONE",0);
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define("CURLSSH_AUTH_PASSWORD",2);
+/**
+ * Value for the CURLOPT_SSH_AUTH_TYPES option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ */
+define("CURLSSH_AUTH_PUBLICKEY",1);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * HTTP Digest authentication with an IE flavor.
+ * Digest authentication is defined in RFC 2617 and is a more secure way to do authentication over public networks than
+ * the regular old-fashioned Basic method.
+ * The IE flavor is simply that libcurl will use a special "quirk" that IE is known to have used before version 7
+ * and that some servers require the client to use.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define("CURLAUTH_DIGEST_IE",16);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_IMAP",4096);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_IMAPS",8192);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_POP3",16384);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_POP3S",32768);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_RTSP",262144);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_SMTP",65536);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_SMTPS",131072);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * When sent by a client, this method changes the description of the session.
+ * For example, if a client is using the server to record a meeting,
+ * the client can use Announce to inform the server of all the meta-information about the session.
+ * ANNOUNCE acts like an HTTP PUT or POST
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_ANNOUNCE",3);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Used to get the low level description of a stream.
+ * The application should note what formats it understands in the 'Accept:' header.
+ * Unless set manually, libcurl will automatically fill in 'Accept: application/sdp'.
+ * Time-condition headers will be added to Describe requests if the CURLOPT_TIMECONDITION option is active.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_DESCRIBE",2);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Retrieve a parameter from the server.
+ * By default, libcurl will automatically include a Content-Type: text/parameters header on all non-empty requests
+ * unless a custom one is set. GET_PARAMETER acts just like an HTTP PUT or POST
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_GET_PARAMETER",8);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Used to retrieve the available methods of the server.
+ * The application is responsible for parsing and obeying the response.
+ * The session ID is not needed for this method.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_OPTIONS",1);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Send a Pause command to the server.
+ * Use the CURLOPT_RANGE option with a single value to indicate when the stream should be halted. (e.g. npt='25')
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_PAUSE",6);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Send a Play command to the server.
+ * Use the CURLOPT_RANGE option to modify the playback time (e.g. 'npt=10-15').
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_PLAY",5);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * This is a special request because it does not send any data to the server.
+ * The application may call this function in order to receive interleaved RTP data.
+ * It will return after processing one read buffer of data in order to give the application a chance to run.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_RECEIVE",11);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Used to tell the server to record a session. Use the CURLOPT_RANGE option to modify the record time.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_RECORD",10);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Set a parameter on the server.
+ * By default, libcurl will automatically include a Content-Type: text/parameters header unless a custom one is set.
+ * The interaction with SET_PARAMETER is much like an HTTP PUT or POST.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_SET_PARAMETER",9);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * Setup is used to initialize the transport layer for the session.
+ * The application must set the desired Transport options for a session
+ * by using the CURLOPT_RTSP_TRANSPORT option prior to calling setup.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_SETUP",4);
+/**
+ * Value for the CURLOPT_RTSP_REQUEST option.
+ * This command terminates an RTSP session.
+ * Simply closing a connection does not terminate the RTSP session since it is valid to control an RTSP session over different connections.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html
+ */
+define("CURL_RTSPREQ_TEARDOWN",7);
+/**
+ * Wildcard matching function callback.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html
+ */
+define("CURLOPT_FNMATCH_FUNCTION",20200);
+/**
+ * Enable directory wildcard transfers.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_WILDCARDMATCH.html
+ */
+define("CURLOPT_WILDCARDMATCH",197);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_RTMP",524288);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_RTMPE",2097152);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_RTMPS",8388608);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_RTMPT",1048576);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_RTMPTE",4194304);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_RTMPTS",16777216);
+/**
+ * Return value for the CURLOPT_FNMATCH_FUNCTION if an error was occurred.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html
+ */
+define("CURL_FNMATCHFUNC_FAIL",2);
+/**
+ * Return value for the CURLOPT_FNMATCH_FUNCTION if pattern matches the string.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html
+ */
+define("CURL_FNMATCHFUNC_MATCH",0);
+/**
+ * Return value for the CURLOPT_FNMATCH_FUNCTION if pattern not matches the string.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html
+ */
+define("CURL_FNMATCHFUNC_NOMATCH",1);
+/**
+ * Value for the CURLOPT_PROTOCOLS option.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html
+ */
+define("CURLPROTO_GOPHER",33554432);
+/**
+ * Value for the CURLOPT_HTTPAUTH option.
+ * This is a meta symbol.
+ * OR this value together with a single specific auth value to force libcurl to probe for un-restricted auth and if not,
+ * only that single auth algorithm is acceptable.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html
+ */
+define("CURLAUTH_ONLY",2147483648);
+/**
+ * Password to use for TLS authentication.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_PASSWORD.html
+ */
+define("CURLOPT_TLSAUTH_PASSWORD",10205);
+/**
+ * Set TLS authentication methods.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_TYPE.html
+ */
+define("CURLOPT_TLSAUTH_TYPE",10206);
+/**
+ * User name to use for TLS authentication.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_USERNAME.html
+ */
+define("CURLOPT_TLSAUTH_USERNAME",10204);
+/**
+ * Value for the CURLOPT_TLSAUTH_TYPE option.
+ * TLS-SRP authentication.
+ * Secure Remote Password authentication for TLS is defined in RFC 5054 and provides mutual authentication if both sides have a shared secret.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_TYPE.html
+ */
+define("CURL_TLSAUTH_SRP",1);
+/**
+ * Value for the CURLOPT_GSSAPI_DELEGATION option.
+ * Allow unconditional GSSAPI credential delegation.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html
+ */
+define("CURLGSSAPI_DELEGATION_FLAG",2);
+/**
+ * Value for the CURLOPT_GSSAPI_DELEGATION option.
+ * Delegate only if the OK-AS-DELEGATE flag is set in the service ticket
+ * in case this feature is supported by the GSS-API implementation.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html
+ */
+define("CURLGSSAPI_DELEGATION_POLICY_FLAG",1);
+/**
+ * Set allowed GSS-API delegation.
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html
+ */
+define("CURLOPT_GSSAPI_DELEGATION",210);
+/**
+ * Timeout waiting for FTP server to connect back
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPTTIMEOUT_MS.html
+ */
+define("CURLOPT_ACCEPTTIMEOUT_MS",212);
+/**
+ * SMTP authentication address
+ * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_AUTH.html
+ */
+define("CURLOPT_MAIL_AUTH",10217);
+/**
+ * Set SSL behavior options, which is a bitmask of any of the following constants:
+ * CURLSSLOPT_ALLOW_BEAST: do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols.
+ * CURLSSLOPT_NO_REVOKE: disable certificate revocation checks for those SSL backends where such behavior is present.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLOPT_SSL_OPTIONS",216);
+/**
+ * If set to 1, TCP keepalive probes will be sent.
+ * The delay and frequency of these probes can be controlled by the CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL options,
+ * provided the operating system supports them.
+ * If set to 0 (default) keepalive probes are disabled.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define("CURLOPT_TCP_KEEPALIVE",213);
+/**
+ * Sets the delay, in seconds, that the operating system will wait while the connection is idle before sending keepalive probes,
+ * if CURLOPT_TCP_KEEPALIVE is enabled. Not all operating systems support this option. The default is 60.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define("CURLOPT_TCP_KEEPIDLE",214);
+/**
+ * Sets the interval, in seconds, that the operating system will wait between sending keepalive probes,
+ * if CURLOPT_TCP_KEEPALIVE is enabled. Not all operating systems support this option. The default is 60.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 5.5
+ */
+define("CURLOPT_TCP_KEEPINTVL",215);
+/**
+ * Value for the CURLOPT_SSL_OPTIONS option.
+ * Do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLSSLOPT_ALLOW_BEAST",1);
+/**
+ * Supports HTTP2.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 5.5.24
+ */
+define("CURL_VERSION_HTTP2",65536);
+/**
+ * Value for the CURLOPT_SSL_OPTIONS option.
+ * Disable certificate revocation checks for those SSL backends where such behavior is present.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLSSLOPT_NO_REVOKE",2);
+/**
+ * The default protocol to use if the URL is missing a scheme name.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLOPT_DEFAULT_PROTOCOL",10238);
+/**
+ * Set the numerical stream weight (a number between 1 and 256).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLOPT_STREAM_WEIGHT",239);
+/**
+ * TRUE to not send TFTP options requests.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLOPT_TFTP_NO_OPTIONS",242);
+/**
+ * Connect to a specific host and port instead of the URL's host and port.
+ * Accepts an array of strings with the format HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLOPT_CONNECT_TO",10243);
+/**
+ * TRUE to enable TCP Fast Open.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.0.7
+ */
+define("CURLOPT_TCP_FASTOPEN",244);
+
+/**
+ * The server sent data libcurl couldn't parse.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURLE_WEIRD_SERVER_REPLY', 8);
+/**
+ * TRUE to keep sending the request body if the HTTP code returned is equal to or larger than 300.
+ * The default action would be to stop sending and close the stream or connection. Suitable for manual NTLM authentication.
+ * Most applications do not need this option.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_KEEP_SENDING_ON_ERROR', 245);
+/**
+ * Value for the CURLOPT_SSLVERSION option.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_SSLVERSION_TLSv1_3', 7);
+
+/**
+ * Supports HTTPS proxy.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_HTTPS_PROXY', 2097152);
+
+
+/**
+ * The protocol used in the last HTTP connection. The returned value will be exactly one of the CURLPROTO_* values
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_PROTOCOL', 2097200);
+
+/**
+ * Supports asynchronous name lookups.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_ASYNCHDNS', 128);
+
+/**
+ * Supports memory tracking debug capabilities.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3.6
+ */
+define('CURL_VERSION_CURLDEBUG', 8192);
+
+/**
+ * Supports character conversions.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_CONV', 4096);
+
+/**
+ * libcurl was built with debug capabilities
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_DEBUG', 64);
+
+/**
+ * Supports HTTP GSS-Negotiate.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_GSSNEGOTIATE', 32);
+
+/**
+ * Supports the IDNA.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_IDN', 1024);
+
+/**
+ * Supports large files.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_LARGEFILE', 512);
+
+/**
+ * Supports HTTP NTLM.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_NTLM', 16);
+
+/**
+ * Supports the Mozilla's Public Suffix List.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_VERSION_PSL', 1048576);
+
+/**
+ * Supports for SPNEGO authentication (RFC 2478).
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_SPNEGO', 256);
+
+/**
+ * Supports SSPI. Windows-specific.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_SSPI', 2048);
+
+/**
+ * Supports the TLS-SRP.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_TLSAUTH_SRP', 16384);
+
+/**
+ * Supports the NTLM delegation to a winbind helper.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_NTLM_WB', 32768);
+
+/**
+ * Supports the GSSAPI. This makes libcurl use provided functions for Kerberos and SPNEGO authentication.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_GSSAPI', 131072);
+
+/**
+ * Supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 proxy.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURL_VERSION_KERBEROS5', 262144);
+
+/**
+ * The path to proxy Certificate Authority (CA) bundle.
+ * Set the path as a string naming a file holding one or more certificates to verify the HTTPS proxy with.
+ * This option is for connecting to an HTTPS proxy, not an HTTPS server.
+ * Defaults set to the system path where libcurl's cacert bundle is assumed to be stored.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_CAINFO', 10246);
+
+/**
+ * The directory holding multiple CA certificates to verify the HTTPS proxy with.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define ('CURLOPT_PROXY_CAPATH', 10247);
+
+/**
+ * Set the file name with the concatenation of CRL (Certificate Revocation List) in PEM format
+ * to use in the certificate validation that occurs during the SSL exchange.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_CRLFILE', 10260);
+
+/**
+ * Set the string be used as the password required to use the CURLOPT_PROXY_SSLKEY private key.
+ * You never needed a passphrase to load a certificate but you need one to load your private key.
+ * This option is for connecting to an HTTPS proxy, not an HTTPS server.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_KEYPASSWD', 10258);
+
+/**
+ * The format of your client certificate used when connecting to an HTTPS proxy. Supported formats are "PEM" and "DER", except with Secure Transport.
+ * OpenSSL (versions 0.9.3 and later) and Secure Transport (on iOS 5 or later, or OS X 10.7 or later) also support "P12" for PKCS#12-encoded files.
+ * Defaults to "PEM".
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSLCERTTYPE', 10255);
+
+/**
+ * The format of your private key. Supported formats are "PEM", "DER" and "ENG".
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSLKEYTYPE', 10257);
+
+/**
+ * One of CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2,
+ * CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_MAX_DEFAULT, CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1,
+ * CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_3 or CURL_SSLVERSION_SSLv3.
+ * See also CURLOPT_SSLVERSION.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSLVERSION', 250);
+
+/**
+ * Tusername to use for the HTTPS proxy TLS authentication method specified with the CURLOPT_PROXY_TLSAUTH_TYPE option.
+ * Requires that the CURLOPT_PROXY_TLSAUTH_PASSWORD option to also be set.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_TLSAUTH_USERNAME' ,10251);
+/**
+ * The password to use for the TLS authentication method specified with the CURLOPT_PROXY_TLSAUTH_TYPE option.
+ * Requires that the CURLOPT_PROXY_TLSAUTH_USERNAME option to also be set.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_TLSAUTH_PASSWORD', 10252);
+
+/**
+ * The method of the TLS authentication used for the HTTPS connection. Supported method is "SRP".
+ * Secure Remote Password (SRP) authentication for TLS provides mutual authentication if both sides have a shared secret.
+ * To use TLS-SRP, you must also set the CURLOPT_PROXY_TLSAUTH_USERNAME and CURLOPT_PROXY_TLSAUTH_PASSWORD options.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_TLSAUTH_TYPE', 10253);
+
+/**
+ * Value for the CURLOPT_PROXYTYPE option.
+ * Use HTTPS Proxy.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3
+ */
+define('CURLPROXY_HTTPS', 2);
+
+/**
+ * Set the pinned public key for HTTPS proxy. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER".
+ * The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";"
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_PINNEDPUBLICKEY', 10263);
+
+/**
+ * The file name of your private key used for connecting to the HTTPS proxy.
+ * The default format is "PEM" and can be changed with CURLOPT_PROXY_SSLKEYTYPE.
+ * (iOS and Mac OS X only) This option is ignored if curl was built against Secure Transport.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSLKEY', 10256);
+
+/**
+ * The list of ciphers to use for the connection to the HTTPS proxy.
+ * The list must be syntactically correct, it consists of one or more cipher strings separated by colons.
+ * Commas or spaces are also acceptable separators but colons are normally used, !, - and + can be used as operators.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSL_CIPHER_LIST', 10259);
+
+/**
+ * Set proxy SSL behavior options, which is a bitmask of any of the following constants:
+ * CURLSSLOPT_ALLOW_BEAST: do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols.
+ * CURLSSLOPT_NO_REVOKE: disable certificate revocation checks for those SSL backends where such behavior is present. (curl >= 7.44.0)
+ * CURLSSLOPT_NO_PARTIALCHAIN: do not accept "partial" certificate chains, which it otherwise does by default. (curl >= 7.68.0)
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSL_OPTIONS', 261);
+
+/**
+ * Set to 2 to verify in the HTTPS proxy's certificate name fields against the proxy name.
+ * When set to 0 the connection succeeds regardless of the names used in the certificate.
+ * Use that ability with caution! 1 treated as a debug option in curl 7.28.0 and earlier.
+ * From curl 7.28.1 to 7.65.3 CURLE_BAD_FUNCTION_ARGUMENT is returned.
+ * From curl 7.66.0 onwards 1 and 2 is treated as the same value.
+ * In production environments the value of this option should be kept at 2 (default value).
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSL_VERIFYHOST', 249);
+
+/**
+ * FALSE to stop cURL from verifying the peer's certificate.
+ * Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or
+ * a certificate directory can be specified with the CURLOPT_CAPATH option.
+ * When set to false, the peer certificate verification succeeds regardless.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSL_VERIFYPEER', 248);
+
+/**
+ * The file name of your client certificate used to connect to the HTTPS proxy.
+ * The default format is "P12" on Secure Transport and "PEM" on other engines, and can be changed with CURLOPT_PROXY_SSLCERTTYPE.
+ * With NSS or Secure Transport, this can also be the nickname of the certificate you wish to authenticate with as it is named in the security database.
+ * If you want to use a file from the current directory, please precede it with "./" prefix, in order to avoid confusion with a nickname.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PROXY_SSLCERT', 10254);
+
+/**
+ * The URL scheme used for the most recent connection
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_SCHEME', 1048625);
+
+/**
+ * Supports UNIX sockets.
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.0.7
+ */
+define('CURL_VERSION_UNIX_SOCKETS', 524288);
+
+/**
+ * The version used in the last HTTP connection. The return value will be one of the defined
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_HTTP_VERSION', 2097198);
+/**
+ * Set a string holding the host name or dotted numerical IP address to be used as the preproxy that curl connects to before
+ * it connects to the HTTP(S) proxy specified in the CURLOPT_PROXY option for the upcoming request.
+ * The preproxy can only be a SOCKS proxy and it should be prefixed with [scheme]:// to specify which kind of socks is used.
+ * A numerical IPv6 address must be written within [brackets]. Setting the preproxy to an empty string explicitly disables the use of a preproxy.
+ * To specify port number in this string, append :[port] to the end of the host name.
+ * The proxy's port number may optionally be specified with the separate option CURLOPT_PROXYPORT.
+ * Defaults to using port 1080 for proxies if a port is not specified.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_PRE_PROXY', 10262);
+/**
+ * The result of the certificate verification that was requested (using the CURLOPT_PROXY_SSL_VERIFYPEER option).
+ * Only used for HTTPS proxies
+ * @link https://www.php.net/manual/en/function.curl-getinfo.php
+ * @since 7.3
+ */
+define('CURLINFO_PROXY_SSL_VERIFYRESULT', 2097199);
+/**
+ * Whether to allow HTTP/0.9 responses.
+ * Defaults to FALSE as of libcurl 7.66.0; formerly it defaulted to TRUE.
+ * @link https://www.php.net/manual/en/function.curl-setopt.php
+ * @since 7.3
+ */
+define('CURLOPT_HTTP09_ALLOWED', 285);
+
+/**
+ * @link https://www.php.net/manual/en/curl.constants.php
+ * @since 7.3.6
+ */
+define('CURL_VERSION_ALTSVC', 16777216);
diff --git a/vendor/jetbrains/phpstorm-stubs/date/date.php b/vendor/jetbrains/phpstorm-stubs/date/date.php
new file mode 100644
index 0000000000..82fc8d9abf
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/date/date.php
@@ -0,0 +1,1507 @@
+
+ * The string to parse. Before PHP 5.0.0, microseconds weren't allowed in
+ * the time, since PHP 5.0.0 they are allowed but ignored.
+ *
+ * @param int|null $baseTimestamp [optional]
+ * Default value: now()
+ * The timestamp which is used as a base for the calculation of relative
+ * dates.
+ *
+ * @return int|false a timestamp on success, false otherwise. Previous to PHP 5.1.0,
+ * this function would return -1 on failure.
+ */
+#[Pure]
+function strtotime (string $datetime, ?int $baseTimestamp): int|false
+{}
+
+/**
+ * Format a local time/date
+ * @link https://php.net/manual/en/function.date.php
+ * @param string $format
+ * The format of the outputted date string. See the formatting
+ * options below. There are also several
+ * predefined date constants
+ * that may be used instead, so for example DATE_RSS
+ * contains the format string 'D, d M Y H:i:s'.
+ *
+ *
+ * The following characters are recognized in the
+ * format parameter string
+ *
+ *
+ *
format character
+ *
Description
+ *
Example returned values
+ *
+ *
+ * Day
+ *
---
+ *
---
+ *
+ *
+ *
d
+ *
Day of the month, 2 digits with leading zeros
+ *
01 to 31
+ *
+ *
+ *
D
+ *
A textual representation of a day, three letters
+ *
Mon through Sun
+ *
+ *
+ *
j
+ *
Day of the month without leading zeros
+ *
1 to 31
+ *
+ *
+ *
l (lowercase 'L')
+ *
A full textual representation of the day of the week
+ *
Sunday through Saturday
+ *
+ *
+ *
N
+ *
ISO-8601 numeric representation of the day of the week (added in
+ * PHP 5.1.0)
+ *
1 (for Monday) through 7 (for Sunday)
+ *
+ *
+ *
S
+ *
English ordinal suffix for the day of the month, 2 characters
+ *
+ * st, nd, rd or
+ * th. Works well with j
+ *
+ *
+ *
+ *
w
+ *
Numeric representation of the day of the week
+ *
0 (for Sunday) through 6 (for Saturday)
+ *
+ *
+ *
z
+ *
The day of the year (starting from 0)
+ *
0 through 365
+ *
+ *
+ * Week
+ *
---
+ *
---
+ *
+ *
+ *
W
+ *
ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0)
+ *
Example: 42 (the 42nd week in the year)
+ *
+ *
+ * Month
+ *
---
+ *
---
+ *
+ *
+ *
F
+ *
A full textual representation of a month, such as January or March
+ *
January through December
+ *
+ *
+ *
m
+ *
Numeric representation of a month, with leading zeros
+ *
01 through 12
+ *
+ *
+ *
M
+ *
A short textual representation of a month, three letters
+ *
Jan through Dec
+ *
+ *
+ *
n
+ *
Numeric representation of a month, without leading zeros
+ *
1 through 12
+ *
+ *
+ *
t
+ *
Number of days in the given month
+ *
28 through 31
+ *
+ *
+ * Year
+ *
---
+ *
---
+ *
+ *
+ *
L
+ *
Whether it's a leap year
+ *
1 if it is a leap year, 0 otherwise.
+ *
+ *
+ *
o
+ *
ISO-8601 year number. This has the same value as
+ * Y, except that if the ISO week number
+ * (W) belongs to the previous or next year, that year
+ * is used instead. (added in PHP 5.1.0)
+ *
Examples: 1999 or 2003
+ *
+ *
+ *
Y
+ *
A full numeric representation of a year, 4 digits
+ *
Examples: 1999 or 2003
+ *
+ *
+ *
y
+ *
A two digit representation of a year
+ *
Examples: 99 or 03
+ *
+ *
+ * Time
+ *
---
+ *
---
+ *
+ *
+ *
a
+ *
Lowercase Ante meridiem and Post meridiem
+ *
am or pm
+ *
+ *
+ *
A
+ *
Uppercase Ante meridiem and Post meridiem
+ *
AM or PM
+ *
+ *
+ *
B
+ *
Swatch Internet time
+ *
000 through 999
+ *
+ *
+ *
g
+ *
12-hour format of an hour without leading zeros
+ *
1 through 12
+ *
+ *
+ *
G
+ *
24-hour format of an hour without leading zeros
+ *
0 through 23
+ *
+ *
+ *
h
+ *
12-hour format of an hour with leading zeros
+ *
01 through 12
+ *
+ *
+ *
H
+ *
24-hour format of an hour with leading zeros
+ *
00 through 23
+ *
+ *
+ *
i
+ *
Minutes with leading zeros
+ *
00 to 59
+ *
+ *
+ *
s
+ *
Seconds, with leading zeros
+ *
00 through 59
+ *
+ *
+ *
u
+ *
Microseconds (added in PHP 5.2.2)
+ *
Example: 654321
+ *
+ *
+ * Timezone
+ *
---
+ *
---
+ *
+ *
+ *
e
+ *
Timezone identifier (added in PHP 5.1.0)
+ *
Examples: UTC, GMT, Atlantic/Azores
+ *
+ *
+ *
I (capital i)
+ *
Whether or not the date is in daylight saving time
+ *
1 if Daylight Saving Time, 0 otherwise.
+ *
+ *
+ *
O
+ *
Difference to Greenwich time (GMT) in hours
+ *
Example: +0200
+ *
+ *
+ *
P
+ *
Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3)
+ *
Example: +02:00
+ *
+ *
+ *
T
+ *
Timezone abbreviation
+ *
Examples: EST, MDT ...
+ *
+ *
+ *
Z
+ *
Timezone offset in seconds. The offset for timezones west of UTC is always
+ * negative, and for those east of UTC is always positive.
+ *
-43200 through 50400
+ *
+ *
+ * Full Date/Time
+ *
---
+ *
---
+ *
+ *
+ *
c
+ *
ISO 8601 date (added in PHP 5)
+ *
2004-02-12T15:19:21+00:00
+ *
+ *
+ *
r
+ *
RFC 2822 formatted date
+ *
Example: Thu, 21 Dec 2000 16:01:07 +0200
+ *
+ *
+ *
U
+ *
Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
+ *
See also time
+ *
+ *
+ *
+ *
+ * Unrecognized characters in the format string will be printed
+ * as-is. The Z format will always return
+ * 0 when using gmdate.
+ *
+ *
+ * Since this function only accepts integer timestamps the
+ * u format character is only useful when using the
+ * date_format function with user based timestamps
+ * created with date_create.
+ *
+ * @param int|null $timestamp [optional] Default value: now(). The optional timestamp parameter is an integer Unix timestamp
+ * that defaults to the current local time if a timestamp is not given.
+ * @return string|false a formatted date string. If a non-numeric value is used for
+ * timestamp, false is returned and an
+ * E_WARNING level error is emitted.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function date (string $format, ?int $timestamp)
+{}
+
+/**
+ * Format a local time/date as integer
+ * @link https://php.net/manual/en/function.idate.php
+ * @param string $format
+ *
+ * The following characters are recognized in the
+ * format parameter string
+ *
+ *
format character
+ *
Description
+ *
+ *
+ *
B
+ *
Swatch Beat/Internet Time
+ *
+ *
+ *
d
+ *
Day of the month
+ *
+ *
+ *
h
+ *
Hour (12 hour format)
+ *
+ *
+ *
H
+ *
Hour (24 hour format)
+ *
+ *
+ *
i
+ *
Minutes
+ *
+ *
+ *
I (uppercase i)
+ *
returns 1 if DST is activated,
+ * 0 otherwise
+ *
+ *
+ *
L (uppercase l)
+ *
returns 1 for leap year,
+ * 0 otherwise
+ *
+ *
+ *
m
+ *
Month number
+ *
+ *
+ *
s
+ *
Seconds
+ *
+ *
+ *
t
+ *
Days in current month
+ *
+ *
+ *
U
+ *
Seconds since the Unix Epoch - January 1 1970 00:00:00 UTC -
+ * this is the same as time
+ *
+ *
+ *
w
+ *
Day of the week (0 on Sunday)
+ *
+ *
+ *
W
+ *
ISO-8601 week number of year, weeks starting on
+ * Monday
+ * As idate always returns an integer and
+ * as they can't start with a "0", idate may return
+ * fewer digits than you would expect. See the example below.
+ */
+#[Pure]
+function idate (string $format, ?int $timestamp): int|false
+{}
+
+/**
+ * Format a GMT/UTC date/time
+ * @link https://php.net/manual/en/function.gmdate.php
+ * @param string $format
+ * The format of the outputted date string. See the formatting
+ * options for the date function.
+ *
+ * @param int|null $timestamp [optional]
+ * @return string|false a formatted date string. If a non-numeric value is used for
+ * timestamp, false is returned and an
+ * E_WARNING level error is emitted.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function gmdate (string $format, ?int $timestamp)
+{}
+
+/**
+ * Get Unix timestamp for a date
+ * @link https://php.net/manual/en/function.mktime.php
+ * @param int $hour [optional]
+ * The number of the hour.
+ *
+ * @param int $minute [optional]
+ * The number of the minute.
+ *
+ * @param int $second [optional]
+ * The number of seconds past the minute.
+ *
+ * @param int $month [optional]
+ * The number of the month.
+ *
+ * @param int $day [optional]
+ * The number of the day.
+ *
+ * @param int $year [optional]
+ * The number of the year, may be a two or four digit value,
+ * with values between 0-69 mapping to 2000-2069 and 70-100 to
+ * 1970-2000. On systems where time_t is a 32bit signed integer, as
+ * most common today, the valid range for year
+ * is somewhere between 1901 and 2038. However, before PHP 5.1.0 this
+ * range was limited from 1970 to 2038 on some systems (e.g. Windows).
+ *
+ * @param int $is_dst [optional]
+ * This parameter can be set to 1 if the time is during daylight savings time (DST),
+ * 0 if it is not, or -1 (the default) if it is unknown whether the time is within
+ * daylight savings time or not. If it's unknown, PHP tries to figure it out itself.
+ * This can cause unexpected (but not incorrect) results.
+ * Some times are invalid if DST is enabled on the system PHP is running on or
+ * is_dst is set to 1. If DST is enabled in e.g. 2:00, all times
+ * between 2:00 and 3:00 are invalid and mktime returns an undefined
+ * (usually negative) value.
+ * Some systems (e.g. Solaris 8) enable DST at midnight so time 0:30 of the day when DST
+ * is enabled is evaluated as 23:30 of the previous day.
+ *
+ *
+ * As of PHP 5.1.0, this parameter became deprecated. As a result, the
+ * new timezone handling features should be used instead.
+ *
+ *
+ * This parameter has been removed in PHP 7.0.0.
+ *
+ * @return int|false mktime returns the Unix timestamp of the arguments
+ * given.
+ * If the arguments are invalid, the function returns false (before PHP 5.1
+ * it returned -1).
+ */
+#[Pure]
+function mktime ($hour = null, $minute = null, $second = null, $month = null, $day = null, $year = null, #[Deprecated('Use the new timezone handling functions instead', since: '5.3')] $is_dst = -1): int|false
+{}
+
+/**
+ * Get Unix timestamp for a GMT date
+ * @link https://php.net/manual/en/function.gmmktime.php
+ * @param int $hour [optional]
+ * The hour
+ *
+ * @param int $minute [optional]
+ * The minute
+ *
+ * @param int $second [optional]
+ * The second
+ *
+ * @param int $month [optional]
+ * The month
+ *
+ * @param int $day [optional]
+ * The day
+ *
+ * @param int $year [optional]
+ * The year
+ *
+ * @param int $is_dst [optional]
+ * Parameters always represent a GMT date so is_dst
+ * doesn't influence the result.
+ *
+ * The day is within the allowed number of days for the given
+ * month. Leap years
+ * are taken into consideration.
+ *
+ * @param int $year
+ * The year is between 1 and 32767 inclusive.
+ *
+ * @return bool true if the date given is valid; otherwise returns false.
+ */
+#[Pure]
+function checkdate (int $month, int $day, int $year): bool
+{}
+
+/**
+ * Format a local time/date according to locale settings
+ * The following characters are recognized in the
+ * format parameter string
+ *
+ *
+ *
format
+ *
Description
+ *
Example returned values
+ *
+ *
+ * Day
+ *
+ *
+ *
%a
+ *
An abbreviated textual representation of the day
+ *
Sun through Sat
+ *
+ *
+ *
%A
+ *
A full textual representation of the day
+ *
Sunday through Saturday
+ *
+ *
+ *
%d
+ *
Two-digit day of the month (with leading zeros)
+ *
01 to 31
+ *
+ *
+ *
%e
+ *
Day of the month, with a space preceding single digits
+ *
1 to 31
+ *
+ *
+ *
%j
+ *
Day of the year, 3 digits with leading zeros
+ *
001 to 366
+ *
+ *
+ *
%u
+ *
ISO-8601 numeric representation of the day of the week
+ *
1 (for Monday) though 7 (for Sunday)
+ *
+ *
+ *
%w
+ *
Numeric representation of the day of the week
+ *
0 (for Sunday) through 6 (for Saturday)
+ *
+ *
+ *
Week
+ *
+ *
+ *
%U
+ *
Week number of the given year, starting with the first
+ * Sunday as the first week
+ *
13 (for the 13th full week of the year)
+ *
+ *
+ *
%V
+ *
ISO-8601:1988 week number of the given year, starting with
+ * the first week of the year with at least 4 weekdays, with Monday
+ * being the start of the week
+ *
01 through 53 (where 53
+ * accounts for an overlapping week)
+ *
+ *
+ *
%W
+ *
A numeric representation of the week of the year, starting
+ * with the first Monday as the first week
+ *
46 (for the 46th week of the year beginning
+ * with a Monday)
+ *
+ *
+ *
Month
+ *
+ *
+ *
%b
+ *
Abbreviated month name, based on the locale
+ *
Jan through Dec
+ *
+ *
+ *
%B
+ *
Full month name, based on the locale
+ *
January through December
+ *
+ *
+ *
%h
+ *
Abbreviated month name, based on the locale (an alias of %b)
+ *
Jan through Dec
+ *
+ *
+ *
%m
+ *
Two digit representation of the month
+ *
01 (for January) through 12 (for December)
+ *
+ *
+ *
Year
+ *
+ *
+ *
%C
+ *
Two digit representation of the century (year divided by 100, truncated to an integer)
+ *
19 for the 20th Century
+ *
+ *
+ *
%g
+ *
Two digit representation of the year going by ISO-8601:1988 standards (see %V)
+ *
Example: 09 for the week of January 6, 2009
+ *
+ *
+ *
%G
+ *
The full four-digit version of %g
+ *
Example: 2008 for the week of January 3, 2009
+ *
+ *
+ *
%y
+ *
Two digit representation of the year
+ *
Example: 09 for 2009, 79 for 1979
+ *
+ *
+ *
%Y
+ *
Four digit representation for the year
+ *
Example: 2038
+ *
+ *
+ *
Time
+ *
+ *
+ *
%H
+ *
Two digit representation of the hour in 24-hour format
+ *
00 through 23
+ *
+ *
+ *
%I
+ *
Two digit representation of the hour in 12-hour format
+ *
01 through 12
+ *
+ *
+ *
%l (lower-case 'L')
+ *
Hour in 12-hour format, with a space preceding single digits
+ *
1 through 12
+ *
+ *
+ *
%M
+ *
Two digit representation of the minute
+ *
00 through 59
+ *
+ *
+ *
%p
+ *
UPPER-CASE 'AM' or 'PM' based on the given time
+ *
Example: AM for 00:31, PM for 22:23
+ *
+ *
+ *
%P
+ *
lower-case 'am' or 'pm' based on the given time
+ *
Example: am for 00:31, pm for 22:23
+ *
+ *
+ *
%r
+ *
Same as "%I:%M:%S %p"
+ *
Example: 09:34:17 PM for 21:34:17
+ *
+ *
+ *
%R
+ *
Same as "%H:%M"
+ *
Example: 00:35 for 12:35 AM, 16:44 for 4:44 PM
+ *
+ *
+ *
%S
+ *
Two digit representation of the second
+ *
00 through 59
+ *
+ *
+ *
%T
+ *
Same as "%H:%M:%S"
+ *
Example: 21:34:17 for 09:34:17 PM
+ *
+ *
+ *
%X
+ *
Preferred time representation based on locale, without the date
+ *
Example: 03:59:16 or 15:59:16
+ *
+ *
+ *
%z
+ *
Either the time zone offset from UTC or the abbreviation (depends
+ * on operating system)
+ *
Example: -0500 or EST for Eastern Time
+ *
+ *
+ *
%Z
+ *
The time zone offset/abbreviation option NOT given by %z (depends
+ * on operating system)
+ *
Example: -0500 or EST for Eastern Time
+ *
+ *
+ *
Time and Date Stamps
+ *
+ *
+ *
%c
+ *
Preferred date and time stamp based on local
+ *
Example: Tue Feb 5 00:45:10 2009 for
+ * February 4, 2009 at 12:45:10 AM
+ *
+ *
+ *
%D
+ *
Same as "%m/%d/%y"
+ *
Example: 02/05/09 for February 5, 2009
+ *
+ *
+ *
%F
+ *
Same as "%Y-%m-%d" (commonly used in database datestamps)
+ *
Example: 2009-02-05 for February 5, 2009
+ *
+ *
+ *
%s
+ *
Unix Epoch Time timestamp (same as the time
+ * function)
+ *
Example: 305815200 for September 10, 1979 08:40:00 AM
+ *
+ *
+ *
%x
+ *
Preferred date representation based on locale, without the time
+ *
Example: 02/05/09 for February 5, 2009
+ *
+ *
+ *
Miscellaneous
+ *
+ *
+ *
%n
+ *
A newline character ("\n")
+ *
---
+ *
+ *
+ *
%t
+ *
A Tab character ("\t")
+ *
---
+ *
+ *
+ *
%%
+ *
A literal percentage character ("%")
+ *
---
+ *
+ *
+ *
+ *
+ * Maximum length of this parameter is 1023 characters.
+ *
+ * Contrary to ISO-9899:1999, Sun Solaris starts with Sunday as 1.
+ * As a result, %u may not function as described in this manual.
+ * @link https://php.net/manual/en/function.strftime.php
+ * @param string $format
+ * @param int|null $timestamp [optional] defaults to the value of time()
+ * Unix timestamp that defaults to the current local time if a timestamp is not given..
+ * @return string|false a string formatted according format
+ * using the given timestamp or the current
+ * local time if no timestamp is given. Month and weekday names and
+ * other language-dependent strings respect the current locale set
+ * with setlocale.
+ */
+function strftime (string $format, ?int $timestamp): string|false
+{}
+
+/**
+ * Format a GMT/UTC time/date according to locale settings
+ * @link https://php.net/manual/en/function.gmstrftime.php
+ * @param string $format
+ * See description in strftime.
+ *
+ * @param int|null $timestamp [optional]
+ * @return string|false a string formatted according to the given format string
+ * using the given timestamp or the current
+ * local time if no timestamp is given. Month and weekday names and
+ * other language dependent strings respect the current locale set
+ * with setlocale.
+ */
+function gmstrftime (string $format, ?int $timestamp): string|false
+{}
+
+/**
+ * Return current Unix timestamp
+ * @link https://php.net/manual/en/function.time.php
+ * @return int
Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).
+ */
+function time (): int
+{}
+
+/**
+ * Get the local time
+ * @link https://php.net/manual/en/function.localtime.php
+ * @param int|null $timestamp [optional]
+ * @param bool $associative [optional]
+ * If set to false or not supplied then the array is returned as a regular,
+ * numerically indexed array. If the argument is set to true then
+ * localtime returns an associative array containing
+ * all the different elements of the structure returned by the C
+ * function call to localtime. The names of the different keys of
+ * the associative array are as follows:
+ *
+ *
+ * "tm_sec" - seconds
+ * @return array
+ */
+#[Pure]
+function localtime (?int $timestamp, bool $associative): array
+{}
+
+/**
+ * Get date/time information
+ * @link https://php.net/manual/en/function.getdate.php
+ * @param int|null $timestamp [optional]
+ * @return array an associative array of information related to
+ * the timestamp. Elements from the returned
+ * associative array are as follows:
+ *
+ *
+ *
+ * Key elements of the returned associative array
+ *
+ *
Key
+ *
Description
+ *
Example returned values
+ *
+ *
+ *
"seconds"
+ *
Numeric representation of seconds
+ *
0 to 59
+ *
+ *
+ *
"minutes"
+ *
Numeric representation of minutes
+ *
0 to 59
+ *
+ *
+ *
"hours"
+ *
Numeric representation of hours
+ *
0 to 23
+ *
+ *
+ *
"mday"
+ *
Numeric representation of the day of the month
+ *
1 to 31
+ *
+ *
+ *
"wday"
+ *
Numeric representation of the day of the week
+ *
0 (for Sunday) through 6 (for Saturday)
+ *
+ *
+ *
"mon"
+ *
Numeric representation of a month
+ *
1 through 12
+ *
+ *
+ *
"year"
+ *
A full numeric representation of a year, 4 digits
+ *
Examples: 1999 or 2003
+ *
+ *
+ *
"yday"
+ *
Numeric representation of the day of the year
+ *
0 through 365
+ *
+ *
+ *
"weekday"
+ *
A full textual representation of the day of the week
+ *
Sunday through Saturday
+ *
+ *
+ *
"month"
+ *
A full textual representation of a month, such as January or March
+ *
January through December
+ *
+ *
+ *
0
+ *
+ * Seconds since the Unix Epoch, similar to the values returned by
+ * time and used by date.
+ *
+ *
+ * System Dependent, typically -2147483648 through
+ * 2147483647.
+ *
+ * @return DateTime|false DateTime object on success or false on failure.
+ */
+#[Pure]
+function date_create (string $datetime, ?DateTimeZone $timezone ): DateTime|false
+{}
+
+/**
+ * (PHP 5.5)
+ * Alias for DateTimeImmutable::__construct()
+ * Returns new DateTimeImmutable object
+ * @link https://php.net/manual/en/function.date-create-immutable.php
+ * @see DateTimeImmutable::__construct()
+ * @param string $datetime [optional]
+ * String in a format accepted by strtotime.
+ *
+ * @param DateTimeZone|null $timezone [optional]
+ * Time zone of the time.
+ *
+ * @return DateTimeImmutable|false DateTime object on success or false on failure.
+ */
+#[Pure]
+function date_create_immutable (string $datetime, ?DateTimeZone $timezone): DateTimeImmutable|false
+{}
+
+/**
+ * Returns new DateTimeImmutable object formatted according to the specified format
+ * @link https://php.net/manual/en/function.date-create-immutable-from-format.php
+ * @param string $format
+ * @param string $datetime
+ * @param DateTimeZone|null $timezone [optional]
+ * @return DateTimeImmutable|false
+ */
+#[Pure]
+function date_create_immutable_from_format (string $format, string $datetime, ?DateTimeZone $timezone): DateTimeImmutable|false
+{}
+
+/**
+ * Alias:
+ * {@see DateTime::createFromFormat}
+ * @link https://php.net/manual/en/function.date-create-from-format.php
+ * @param string $format Format accepted by date().
+ *
If format does not contain the character ! then portions of the generated time which are not specified in format will be set to the current system time.
+ *
If format contains the character !, then portions of the generated time not provided in format, as well as values to the left-hand side of the !, will be set to corresponding values from the Unix epoch.
+ *
The Unix epoch is 1970-01-01 00:00:00 UTC.
+ * @param string $datetime String representing the time.
+ * @param DateTimeZone|null $timezone [optional] A DateTimeZone object representing the desired time zone.
+ * @return DateTime|false
Returns a new
+ * {@see DateTime} instance or FALSE on failure.
+ */
+#[Pure]
+function date_create_from_format (string $format, string $datetime, ?DateTimeZone $timezone): DateTime|false
+{}
+
+/**
+ * Returns associative array with detailed info about given date
+ * @link https://php.net/manual/en/function.date-parse.php
+ * @param string $datetime
+ * Date in format accepted by strtotime.
+ *
+ * @return array|false array with information about the parsed date
+ * on success or false on failure.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function date_parse (string $datetime): bool|array
+{}
+
+/**
+ * Get info about given date formatted according to the specified format
+ * @link https://php.net/manual/en/function.date-parse-from-format.php
+ * @param string $format
+ * Format accepted by date with some extras.
+ *
+ * @param string $datetime
+ * String representing the date.
+ *
+ * @return array associative array with detailed info about given date.
+ */
+#[Pure]
+function date_parse_from_format (string $format, string $datetime): array
+{}
+
+/**
+ * Returns the warnings and errors
+ * Alias:
+ * {@see DateTime::getLastErrors}
+ * @link https://php.net/manual/en/function.date-get-last-errors.php
+ * @return array|false
Returns array containing info about warnings and errors.
+ */
+#[Pure]
+function date_get_last_errors (): array|false
+{}
+
+/**
+ * Alias:
+ * {@see DateTime::format}
+ * @link https://php.net/manual/en/function.date-format.php
+ * @param DateTimeInterface $object
+ * @param string $format
+ * @return string|false formatted date string on success or FALSE on failure.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function date_format (DateTimeInterface $object, string $format)
+{}
+
+/**
+ * Alter the timestamp of a DateTime object by incrementing or decrementing
+ * in a format accepted by strtotime().
+ * Alias:
+ * {@see DateTime::modify}
+ * @link https://php.net/manual/en/function.date-modify.php
+ * @param DateTime $object A DateTime object returned by date_create(). The function modifies this object.
+ * @param string $modifier A date/time string. Valid formats are explained in {@link https://secure.php.net/manual/en/datetime.formats.php Date and Time Formats}.
+ * @return DateTime|false Returns the DateTime object for method chaining or FALSE on failure.
+ */
+#[Pure]
+function date_modify (DateTime $object, string $modifier): DateTime|false
+{}
+
+/**
+ * &Alias; DateTime::add
+ * @link https://php.net/manual/en/function.date-add.php
+ * @param DateTime $object
Procedural style only: A
+ * {@see DateTime} object returned by
+ * {@see date_create()}. The function modifies this object.
+ * @param DateInterval $interval
A
+ * {@see DateInterval} object
+ * @return DateTime|false
Returns the
+ * {@see DateTime} object for method chaining or FALSE on failure.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")]
+function date_add (DateTime $object, DateInterval $interval)
+{}
+
+/**
+ * Subtracts an amount of days, months, years, hours, minutes and seconds from a datetime object
+ * Alias:
+ * {@see DateTime::sub}
+ * @link https://php.net/manual/en/function.date-sub.php
+ * @param DateTime $object Procedural style only: A
+ * {@see DateTime} object returned by
+ * {@see date_create()}. The function modifies this object.
+ * @param DateInterval $interval
A
+ * {@see DateInterval} object
+ * @return DateTime|false
Returns the
+ * {@see DateTime} object for method chaining or FALSE on failure.
+ * Returns the {@see DateTime} object for method chaining or FALSE on failure.
+ *
+ */
+#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")]
+function date_isodate_set (DateTime $object, int $year, int $week, int $dayOfWeek = 1)
+{}
+
+/**
+ * Sets the date and time based on an unix timestamp
+ * Alias: {@see DateTime::setTimestamp}
+ * @link https://php.net/manual/en/function.date-timestamp-set.php
+ * @param DateTime $object
Procedural style only: A
+ * {@see DateTime} object returned by
+ * {@see date_create()}. The function modifies this object.
+ * @param int $timestamp
Unix timestamp representing the date.
+ * @return DateTime|false
+ * {@see DateTime} object for call chaining or FALSE on failure
+ */
+#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")]
+function date_timestamp_set (DateTime $object, int $timestamp): DateTime|bool
+{}
+
+/**
+ * Gets the unix timestamp
+ * Alias:
+ * {@see DateTime::getTimestamp}
+ * @link https://php.net/manual/en/function.date-timestamp-get.php
+ * @param DateTimeInterface $object
+ * @return int
The
+ * {@see DateTimeZone} for which to get a name.
+ * @return string One of the timezone names in the list of timezones.
+ */
+#[Pure]
+function timezone_name_get (DateTimeZone $object): string
+{}
+
+/**
+ * Returns the timezone name from abbreviation
+ * @link https://php.net/manual/en/function.timezone-name-from-abbr.php
+ * @param string $abbr
+ * Time zone abbreviation.
+ *
+ * @param int $utcOffset [optional]
+ * Offset from GMT in seconds. Defaults to -1 which means that first found
+ * time zone corresponding to abbr is returned.
+ * Otherwise exact offset is searched and only if not found then the first
+ * time zone with any offset is returned.
+ *
+ * @param int $isDST [optional]
+ * Daylight saving time indicator. If abbr doesn't
+ * exist then the time zone is searched solely by
+ * offset and isdst.
+ *
+ * @return string|false time zone name on success or false on failure.
+ * @since 5.1.3
+ */
+#[Pure]
+function timezone_name_from_abbr (string $abbr, int $utcOffset, int $isDST): string|false
+{}
+
+/**
+ * Alias:
+ * {@link DateTimeZone::getOffset}
+ * @link https://php.net/manual/en/function.timezone-offset-get.php
+ * @param DateTimeZone $object
Procedural style only: A
+ * {@see DateTimeZone} object
+ * returned by
+ * {@see timezone_open()}
+ * @param DateTimeInterface $datetime
DateTime that contains the date/time to compute the offset from.
+ * @return int|false
Returns time zone offset in seconds on success or FALSE on failure.
Procedural style only: A {@see DateTimeZone} object returned by {@see timezone_open()}
+ * @return array|false
Array containing location information about timezone.
+ */
+#[Pure]
+function timezone_location_get (DateTimeZone $object): array|false
+{}
+
+/**
+ * Returns a numerically indexed array containing all defined timezone identifiers
+ * Alias:
+ * {@see DateTimeZone::listIdentifiers()}
+ * @link https://php.net/manual/en/function.timezone-identifiers-list.php
+ * @param int $timezoneGroup [optional] One of DateTimeZone class constants.
+ * @param string|null $countryCode [optional] A two-letter ISO 3166-1 compatible country code.
+ * @return void Returns array on success or FALSE on failure.
+ * Note: This option is only used when what is set to DateTimeZone::PER_COUNTRY.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function timezone_identifiers_list (int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode)
+{}
+
+/**
+ * Returns associative array containing dst, offset and the timezone name
+ * Alias:
+ * {@see DateTimeZone::listAbbreviations}
+ * @link https://php.net/manual/en/function.timezone-abbreviations-list.php
+ * @return array|false Array on success or FALSE on failure.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function timezone_abbreviations_list ()
+{}
+
+/**
+ * Gets the version of the timezonedb
+ * @link https://php.net/manual/en/function.timezone-version-get.php
+ * @return string a string.
+ */
+#[Pure]
+function timezone_version_get (): string
+{}
+
+/**
+ * Alias:
+ * {@see DateInterval::createFromDateString}
+ * @link https://php.net/manual/en/function.date-interval-create-from-date-string.php
+ * @param $datetime
A date with relative parts. Specifically, the relative formats supported by the parser used for
+ * {@see strtotime()} and
+ * {@see DateTime} will be used to construct the
+ * {@see DateInterval}.
+ * The timezone identifier, like UTC or
+ * Europe/Lisbon. The list of valid identifiers is
+ * available in the .
+ *
+ * @return bool This function returns false if the
+ * timezone_identifier isn't valid, or true
+ * otherwise.
+ */
+function date_default_timezone_set (string $timezoneId): bool
+{}
+
+/**
+ * Gets the default timezone used by all date/time functions in a script
+ * @link https://php.net/manual/en/function.date-default-timezone-get.php
+ * @return string a string.
+ */
+#[Pure]
+function date_default_timezone_get (): string
+{}
+
+/**
+ * Returns time of sunrise for a given day and location
+ * @link https://php.net/manual/en/function.date-sunrise.php
+ * @param int $timestamp
+ * The timestamp of the day from which the sunrise
+ * time is taken.
+ *
+ * @param int $returnFormat [optional]
+ *
+ * format constants
+ *
+ *
constant
+ *
description
+ *
example
+ *
+ *
+ *
SUNFUNCS_RET_STRING
+ *
returns the result as string
+ *
16:46
+ *
+ *
+ *
SUNFUNCS_RET_DOUBLE
+ *
returns the result as float
+ *
16.78243132
+ *
+ *
+ *
SUNFUNCS_RET_TIMESTAMP
+ *
returns the result as integer (timestamp)
+ *
1095034606
+ *
+ *
+ *
+ * @param float|null $latitude [optional]
+ * Defaults to North, pass in a negative value for South.
+ * See also: date.default_latitude
+ *
+ * @param float|null $longitude [optional]
+ * Defaults to East, pass in a negative value for West.
+ * See also: date.default_longitude
+ *
+ * @param float|null $zenith [optional]
+ * Default: date.sunrise_zenith
+ *
+ * @param float $utcOffset [optional]
+ * @return string|int|float|false the sunrise time in a specified format on
+ * success or false on failure.
+ */
+#[Pure]
+function date_sunrise (int $timestamp, int $returnFormat, ?float $latitude, ?float $longitude, ?float $zenith, float $utcOffset): string|int|float|false
+{}
+
+/**
+ * Returns time of sunset for a given day and location
+ * @link https://php.net/manual/en/function.date-sunset.php
+ * @param int $timestamp
+ * The timestamp of the day from which the sunset
+ * time is taken.
+ *
+ * @param int $returnFormat [optional]
+ *
+ * format constants
+ *
+ *
constant
+ *
description
+ *
example
+ *
+ *
+ *
SUNFUNCS_RET_STRING
+ *
returns the result as string
+ *
16:46
+ *
+ *
+ *
SUNFUNCS_RET_DOUBLE
+ *
returns the result as float
+ *
16.78243132
+ *
+ *
+ *
SUNFUNCS_RET_TIMESTAMP
+ *
returns the result as integer (timestamp)
+ *
1095034606
+ *
+ *
+ *
+ * @param float|null $latitude [optional]
+ * Defaults to North, pass in a negative value for South.
+ * See also: date.default_latitude
+ *
+ * @param float|null $longitude [optional]
+ * Defaults to East, pass in a negative value for West.
+ * See also: date.default_longitude
+ *
+ * @param float|null $zenith [optional]
+ * Default: date.sunset_zenith
+ *
+ * @param float $utcOffset [optional]
+ * @return string|int|float|false the sunset time in a specified format on
+ * success or false on failure.
+ */
+#[Pure]
+function date_sunset (int $timestamp, int $returnFormat, ?float $latitude, ?float $longitude, ?float $zenith, float $utcOffset): string|int|float|false
+{}
+
+/**
+ * Returns an array with information about sunset/sunrise and twilight begin/end
+ * @link https://php.net/manual/en/function.date-sun-info.php
+ * @param int $timestamp
+ * Timestamp.
+ *
+ * @param float $latitude
+ * Latitude in degrees.
+ *
+ * @param float $longitude
+ * Longitude in degrees.
+ *
+ * @return array|false array on success or false on failure.
+ * @since 5.1.2
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function date_sun_info (int $timestamp, float $latitude, float $longitude)
+{}
+
+// End of date v.5.3.2-0.dotdeb.1
diff --git a/vendor/jetbrains/phpstorm-stubs/date/date_c.php b/vendor/jetbrains/phpstorm-stubs/date/date_c.php
new file mode 100644
index 0000000000..bfa346017e
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/date/date_c.php
@@ -0,0 +1,913 @@
+
+ * Returns the difference between two DateTime objects
+ * @link https://secure.php.net/manual/en/datetime.diff.php
+ * @param DateTimeInterface $datetime2
The date to compare to.
+ * @param bool $absolute
Should the interval be forced to be positive?
+ * @return DateInterval
+ * The https://secure.php.net/manual/en/class.dateinterval.php DateInterval} object representing the
+ * difference between the two dates or FALSE on failure.
+ *
+ */
+ public function diff($datetime2, $absolute = false);
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Returns date formatted according to given format
+ * @link https://secure.php.net/manual/en/datetime.format.php
+ * @param string $format
+ * Format accepted by {@link https://secure.php.net/manual/en/function.date.php date()}.
+ *
+ * @return string
+ * Returns the formatted date string on success or FALSE on failure.
+ *
+ */
+ public function format($format);
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Returns the timezone offset
+ * @return int
+ * Returns the timezone offset in seconds from UTC on success
+ * or FALSE on failure.
+ *
+ */
+ public function getOffset();
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Gets the Unix timestamp
+ * @return int
+ * Returns the Unix timestamp representing the date.
+ */
+ public function getTimestamp();
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Return time zone relative to given DateTime
+ * @link https://secure.php.net/manual/en/datetime.gettimezone.php
+ * @return DateTimeZone
+ * Returns a {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone} object on success
+ * or FALSE on failure.
+ */
+ public function getTimezone();
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * The __wakeup handler
+ * @link https://secure.php.net/manual/en/datetime.wakeup.php
+ * @return void Initializes a DateTime object.
+ */
+ public function __wakeup();
+}
+
+/**
+ * @since 5.5
+ */
+class DateTimeImmutable implements DateTimeInterface {
+ /* Methods */
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/datetimeimmutable.construct.php
+ * @param string $datetime [optional]
+ *
A date/time string. Valid formats are explained in {@link https://secure.php.net/manual/en/datetime.formats.php Date and Time Formats}.
+ *
+ * Enter NULL here to obtain the current time when using
+ * the $timezone parameter.
+ *
+ * @param DateTimeZone $timezone [optional]
+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone} object representing the
+ * timezone of $time.
+ *
+ *
+ * If $timezone is omitted,
+ * the current timezone will be used.
+ *
+ *
Note:
+ *
+ * The $timezone parameter
+ * and the current timezone are ignored when the
+ *$datetime parameter either
+ * is a UNIX timestamp (e.g. @946684800)
+ * or specifies a timezone
+ * (e.g. 2010-01-28T15:00:00+02:00).
+ *
+ * @throws Exception Emits Exception in case of an error.
+ */
+ public function __construct($datetime = "now", $timezone = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Adds an amount of days, months, years, hours, minutes and seconds
+ * @param DateInterval $interval
+ * @return static
+ */
+ public function add(DateInterval $interval) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Returns new DateTimeImmutable object formatted according to the specified format
+ * @link https://secure.php.net/manual/en/datetimeimmutable.createfromformat.php
+ * @param string $format
+ * @param string $datetime
+ * @param DateTimeZone $timezone [optional]
+ * @return DateTimeImmutable|false
+ */
+ public static function createFromFormat($format, $datetime, DateTimeZone $timezone = null) { }
+
+ /**
+ * (PHP 5 >=5.6.0)
+ * Returns new DateTimeImmutable object encapsulating the given DateTime object
+ * @link https://secure.php.net/manual/en/datetimeimmutable.createfrommutable.php
+ * @param DateTime $object The mutable DateTime object that you want to convert to an immutable version. This object is not modified, but instead a new DateTimeImmutable object is created containing the same date time and timezone information.
+ * @return DateTimeImmutable returns a new DateTimeImmutable instance.
+ */
+ public static function createFromMutable(DateTime $object) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Returns the warnings and errors
+ * @link https://secure.php.net/manual/en/datetimeimmutable.getlasterrors.php
+ * @return array|false Returns array containing info about warnings and errors.
+ */
+ public static function getLastErrors() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Alters the timestamp
+ * @link https://secure.php.net/manual/en/datetimeimmutable.modify.php
+ * @param string $modifier
A date/time string. Valid formats are explained in
+ * {@link https://secure.php.net/manual/en/datetime.formats.php Date and Time Formats}.
+ * @return static
+ * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure.
+ */
+
+ public function modify($modifier) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * The __set_state handler
+ * @link https://secure.php.net/manual/en/datetimeimmutable.set-state.php
+ * @param array $array
Initialization array.
+ * @return DateTimeImmutable
+ * Returns a new instance of a {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object.
+ */
+ public static function __set_state(array $array) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Sets the date
+ * @link https://secure.php.net/manual/en/datetimeimmutable.setdate.php
+ * @param int $year
Year of the date.
+ * @param int $month
Month of the date.
+ * @param int $day
Day of the date.
+ * @return static|false
+ * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure.
+ *
+ */
+ public function setDate($year, $month, $day) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Sets the ISO date
+ * @link https://php.net/manual/en/class.datetimeimmutable.php
+ * @param int $year
Year of the date.
+ * @param int $week
Week of the date.
+ * @param int $dayOfWeek [optional]
Offset from the first day of the week.
+ * @return static|false
+ * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure.
+ */
+ public function setISODate($year, $week, $dayOfWeek = 1) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Sets the time
+ * @link https://secure.php.net/manual/en/datetimeimmutable.settime.php
+ * @param int $hour
Hour of the time.
+ * @param int $minute
Minute of the time.
+ * @param int $second [optional]
Second of the time.
+ * @param int $microsecond [optional]
Microseconds of the time. Added since 7.1
+ * @return static|false
+ * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure.
+ */
+ public function setTime($hour, $minute, $second = 0, $microsecond = 0) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Sets the date and time based on an Unix timestamp
+ * @link https://secure.php.net/manual/en/datetimeimmutable.settimestamp.php
+ * @param int $timestamp
Unix timestamp representing the date.
+ * @return static|false
+ * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure.
+ */
+ public function setTimestamp($timestamp) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Sets the time zone
+ * @link https://secure.php.net/manual/en/datetimeimmutable.settimezone.php
+ * @param DateTimeZone $timezone
+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone} object representing the
+ * desired time zone.
+ *
+ * @return static|false
+ * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure.
+ */
+ public function setTimezone(DateTimeZone $timezone) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Subtracts an amount of days, months, years, hours, minutes and seconds
+ * @link https://secure.php.net/manual/en/datetimeimmutable.sub.php
+ * @param DateInterval $interval
+ * A {@link https://secure.php.net/manual/en/class.dateinterval.php DateInterval} object
+ *
+ * @return static|false
+ * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure.
+ */
+ public function sub(DateInterval $interval) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Returns the difference between two DateTime objects
+ * @link https://secure.php.net/manual/en/datetime.diff.php
+ * @param DateTimeInterface $targetObject
The date to compare to.
+ * @param bool $absolute [optional]
Should the interval be forced to be positive?
+ * @return DateInterval
+ * The {@link https://secure.php.net/manual/en/class.dateinterval.php DateInterval} object representing the
+ * difference between the two dates or FALSE on failure.
+ */
+ public function diff($targetObject, $absolute = false) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Returns date formatted according to given format
+ * @link https://secure.php.net/manual/en/datetime.format.php
+ * @param string $format
+ * Format accepted by {@link https://secure.php.net/manual/en/function.date.php date()}.
+ *
+ * @return string
+ * Returns the formatted date string on success or FALSE on failure.
+ *
+ */
+ public function format($format) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Returns the timezone offset
+ * @return int
+ * Returns the timezone offset in seconds from UTC on success
+ * or FALSE on failure.
+ *
+ */
+ public function getOffset() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Gets the Unix timestamp
+ * @return int
+ * Returns the Unix timestamp representing the date.
+ */
+ public function getTimestamp() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Return time zone relative to given DateTime
+ * @link https://secure.php.net/manual/en/datetime.gettimezone.php
+ * @return DateTimeZone
+ * Returns a {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone} object on success
+ * or FALSE on failure.
+ */
+ public function getTimezone() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * The __wakeup handler
+ * @link https://secure.php.net/manual/en/datetime.wakeup.php
+ * @return void Initializes a DateTime object.
+ */
+ public function __wakeup() { }
+
+ /**
+ * @return DateTimeImmutable
+ * @since 8.0
+ */
+ public static function createFromInterface(DateTimeInterface $object){}
+}
+
+
+/**
+ * Representation of date and time.
+ * @link https://php.net/manual/en/class.datetime.php
+ */
+class DateTime implements DateTimeInterface {
+ /**
+ * @removed 7.2
+ */
+ const ATOM = 'Y-m-d\TH:i:sP';
+
+ /**
+ * @removed 7.2
+ */
+ const COOKIE = 'l, d-M-Y H:i:s T';
+
+ /**
+ * @removed 7.2
+ */
+ const ISO8601 = 'Y-m-d\TH:i:sO';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC822 = 'D, d M y H:i:s O';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC850 = 'l, d-M-y H:i:s T';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC1036 = 'D, d M y H:i:s O';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC1123 = 'D, d M Y H:i:s O';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC2822 = 'D, d M Y H:i:s O';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC3339 = 'Y-m-d\TH:i:sP';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC3339_EXTENDED = 'Y-m-d\TH:i:s.vP';
+
+ /**
+ * @removed 7.2
+ */
+ const RFC7231 = 'D, d M Y H:i:s \G\M\T';
+
+ /**
+ * @removed 7.2
+ */
+ const RSS = 'D, d M Y H:i:s O';
+
+ /**
+ * @removed 7.2
+ */
+ const W3C = 'Y-m-d\TH:i:sP';
+
+ /**
+ * (PHP 5 >=5.2.0)
+ * @link https://php.net/manual/en/datetime.construct.php
+ * @param string $datetime [optional]
+ *
A date/time string. Valid formats are explained in {@link https://php.net/manual/en/datetime.formats.php Date and Time Formats}.
+ *
+ * Enter now here to obtain the current time when using
+ * the $timezone parameter.
+ *
+ * @param DateTimeZone $timezone [optional]
+ * A {@link https://php.net/manual/en/class.datetimezone.php DateTimeZone} object representing the
+ * timezone of $datetime.
+ *
+ *
+ * If $timezone is omitted,
+ * the current timezone will be used.
+ *
+ *
Note:
+ *
+ * The $timezone parameter
+ * and the current timezone are ignored when the
+ *$time parameter either
+ * is a UNIX timestamp (e.g. @946684800)
+ * or specifies a timezone
+ * (e.g. 2010-01-28T15:00:00+02:00).
+ *
+ * @throws Exception Emits Exception in case of an error.
+ */
+ public function __construct ($datetime = 'now', DateTimeZone $timezone = null) {}
+
+ /**
+ * @return void
+ * @link https://php.net/manual/en/datetime.wakeup.php
+ */
+ public function __wakeup () {}
+
+
+ /**
+ * Returns date formatted according to given format.
+ * @param string $format
+ * @return string
+ * @link https://php.net/manual/en/datetime.format.php
+ */
+ public function format ($format) {}
+
+ /**
+ * Alter the timestamp of a DateTime object by incrementing or decrementing
+ * in a format accepted by strtotime().
+ * @param string $modifier A date/time string. Valid formats are explained in Date and Time Formats.
+ * @return static|false Returns the DateTime object for method chaining or FALSE on failure.
+ * @link https://php.net/manual/en/datetime.modify.php
+ */
+ public function modify ($modifier) {}
+
+ /**
+ * Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object
+ * @param DateInterval $interval
+ * @return static
+ * @link https://php.net/manual/en/datetime.add.php
+ */
+ public function add (DateInterval $interval) {}
+
+
+ /**
+ * @since 7.3
+ * @return DateTime
+ */
+ public static function createFromImmutable(DateTimeImmutable $object) {}
+
+ /**
+ * Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
+ * @param DateInterval $interval
+ * @return static
+ * @link https://php.net/manual/en/datetime.sub.php
+ */
+ public function sub (DateInterval $interval) {}
+
+ /**
+ * Get the TimeZone associated with the DateTime
+ * @return DateTimeZone
+ * @link https://php.net/manual/en/datetime.gettimezone.php
+ */
+ public function getTimezone () {}
+
+ /**
+ * Set the TimeZone associated with the DateTime
+ * @param DateTimeZone $timezone
+ * @return static
+ * @link https://php.net/manual/en/datetime.settimezone.php
+ */
+ public function setTimezone ($timezone) {}
+
+ /**
+ * Returns the timezone offset
+ * @return int
+ * @link https://php.net/manual/en/datetime.getoffset.php
+ */
+ public function getOffset () {}
+
+ /**
+ * Sets the current time of the DateTime object to a different time.
+ * @param int $hour
+ * @param int $minute
+ * @param int $second
+ * @param int $microsecond Added since 7.1
+ * @return static|false
+ * @link https://php.net/manual/en/datetime.settime.php
+ */
+ public function setTime ($hour, $minute, $second = 0, $microsecond = 0) {}
+
+ /**
+ * Sets the current date of the DateTime object to a different date.
+ * @param int $year
+ * @param int $month
+ * @param int $day
+ * @return static
+ * @link https://php.net/manual/en/datetime.setdate.php
+ */
+ public function setDate ($year, $month, $day) {}
+
+ /**
+ * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.
+ * @param int $year
+ * @param int $week
+ * @param int $dayOfWeek
+ * @return static
+ * @link https://php.net/manual/en/datetime.setisodate.php
+ */
+ public function setISODate ($year, $week, $dayOfWeek = 1) {}
+
+ /**
+ * Sets the date and time based on a Unix timestamp.
+ * @param int $timestamp
+ * @return static
+ * @link https://php.net/manual/en/datetime.settimestamp.php
+ */
+ public function setTimestamp ($timestamp) {}
+
+ /**
+ * Gets the Unix timestamp.
+ * @return int
+ * @link https://php.net/manual/en/datetime.gettimestamp.php
+ */
+ public function getTimestamp () {}
+
+ /**
+ * Returns the difference between two DateTime objects represented as a DateInterval.
+ * @param DateTimeInterface $targetObject The date to compare to.
+ * @param bool $absolute [optional] Whether to return absolute difference.
+ * @return DateInterval|false The DateInterval object representing the difference between the two dates or FALSE on failure.
+ * @link https://php.net/manual/en/datetime.diff.php
+ */
+ public function diff ($targetObject, $absolute = false) {}
+
+
+ /**
+ * Parse a string into a new DateTime object according to the specified format
+ * @param string $format Format accepted by date().
+ * @param string $datetime String representing the time.
+ * @param DateTimeZone $timezone A DateTimeZone object representing the desired time zone.
+ * @return DateTime|false
+ * @link https://php.net/manual/en/datetime.createfromformat.php
+ */
+ public static function createFromFormat ($format, $datetime, DateTimeZone $timezone = null) {}
+
+ /**
+ * Returns an array of warnings and errors found while parsing a date/time string
+ * @return array|false
+ * @link https://php.net/manual/en/datetime.getlasterrors.php
+ */
+ public static function getLastErrors () {}
+
+ /**
+ * The __set_state handler
+ * @link https://php.net/manual/en/datetime.set-state.php
+ * @param array $array
Initialization array.
+ * @return DateTime
Returns a new instance of a DateTime object.
+ */
+ public static function __set_state ($array) {}
+
+ /**
+ * @return DateTime
+ * @since 8.0
+ */
+ public static function createFromInterface(DateTimeInterface $object){}
+}
+
+/**
+ * Representation of time zone
+ * @link https://php.net/manual/en/class.datetimezone.php
+ */
+class DateTimeZone {
+ const AFRICA = 1;
+ const AMERICA = 2;
+ const ANTARCTICA = 4;
+ const ARCTIC = 8;
+ const ASIA = 16;
+ const ATLANTIC = 32;
+ const AUSTRALIA = 64;
+ const EUROPE = 128;
+ const INDIAN = 256;
+ const PACIFIC = 512;
+ const UTC = 1024;
+ const ALL = 2047;
+ const ALL_WITH_BC = 4095;
+ const PER_COUNTRY = 4096;
+
+
+ /**
+ * @param string $timezone
+ * @link https://php.net/manual/en/datetimezone.construct.php
+ */
+ public function __construct ($timezone) {}
+
+ /**
+ * Returns the name of the timezone
+ * @return string
+ * @link https://php.net/manual/en/datetimezone.getname.php
+ */
+ public function getName () {}
+
+ /**
+ * Returns location information for a timezone
+ * @return array
+ * @link https://php.net/manual/en/datetimezone.getlocation.php
+ */
+ public function getLocation () {}
+
+ /**
+ * Returns the timezone offset from GMT
+ * @param DateTimeInterface $datetime
+ * @return int
+ * @link https://php.net/manual/en/datetimezone.getoffset.php
+ */
+ public function getOffset (DateTimeInterface $datetime) {}
+
+ /**
+ * Returns all transitions for the timezone
+ * @param int $timestampBegin [optional]
+ * @param int $timestampEnd [optional]
+ * @return array
+ * @link https://php.net/manual/en/datetimezone.gettransitions.php
+ */
+ public function getTransitions ($timestampBegin=null, $timestampEnd=null) {}
+
+
+ /**
+ * Returns associative array containing dst, offset and the timezone name
+ * @return array
+ * @link https://php.net/manual/en/datetimezone.listabbreviations.php
+ */
+ public static function listAbbreviations () {}
+
+ /**
+ * Returns a numerically indexed array with all timezone identifiers
+ * @param int $timezoneGroup
+ * @param string $countryCode
+ * @return array
+ * @link https://php.net/manual/en/datetimezone.listidentifiers.php
+ */
+ public static function listIdentifiers ($timezoneGroup = DateTimeZone::ALL, $countryCode = null) {}
+
+ /**
+ * @link https://php.net/manual/en/datetime.wakeup.php
+ */
+ public function __wakeup(){}
+
+
+ public static function __set_state($an_array) {}
+}
+
+/**
+ * Representation of date interval. A date interval stores either a fixed amount of
+ * time (in years, months, days, hours etc) or a relative time string in the format
+ * that DateTime's constructor supports.
+ * @link https://php.net/manual/en/class.dateinterval.php
+ */
+class DateInterval {
+ /**
+ * Number of years
+ * @var int
+ */
+ public $y;
+
+ /**
+ * Number of months
+ * @var int
+ */
+ public $m;
+
+ /**
+ * Number of days
+ * @var int
+ */
+ public $d;
+
+ /**
+ * Number of hours
+ * @var int
+ */
+ public $h;
+
+ /**
+ * Number of minutes
+ * @var int
+ */
+ public $i;
+
+ /**
+ * Number of seconds
+ * @var int
+ */
+ public $s;
+
+ /**
+ * Number of microseconds
+ * @since 7.1.0
+ * @var float
+ */
+ public $f;
+
+ /**
+ * Is 1 if the interval is inverted and 0 otherwise
+ * @var int
+ */
+ public $invert;
+
+ /**
+ * Total number of days the interval spans. If this is unknown, days will be FALSE.
+ * @var int|false
+ */
+ public $days;
+
+
+ /**
+ * @param string $duration
+ * @link https://php.net/manual/en/dateinterval.construct.php
+ * @throws \Exception when the $duration cannot be parsed as an interval.
+ */
+ public function __construct ($duration) {}
+
+ /**
+ * Formats the interval
+ * @param string $format
+ * @return string
+ * @link https://php.net/manual/en/dateinterval.format.php
+ */
+ public function format ($format) {}
+
+ /**
+ * Sets up a DateInterval from the relative parts of the string
+ * @param string $datetime
+ * @return DateInterval
+ * @link https://php.net/manual/en/dateinterval.createfromdatestring.php
+ */
+ public static function createFromDateString ($datetime) {}
+
+ public function __wakeup() {}
+
+ public static function __set_state($an_array) {}
+}
+
+/**
+ * Representation of date period.
+ * @link https://php.net/manual/en/class.dateperiod.php
+ */
+class DatePeriod implements IteratorAggregate {
+ const EXCLUDE_START_DATE = 1;
+
+ /**
+ * Start date
+ * @var DateTimeInterface
+ */
+ public $start;
+
+ /**
+ * Current iterator value.
+ * @var DateTimeInterface|null
+ */
+ public $current;
+
+ /**
+ * End date.
+ * @var DateTimeInterface|null
+ */
+ public $end;
+
+ /**
+ * The interval
+ * @var DateInterval
+ */
+ public $interval;
+
+ /**
+ * Number of recurrences.
+ * @var int
+ */
+ public $recurrences;
+
+ /**
+ * Start of period.
+ * @var bool
+ */
+ public $include_start_date;
+
+ /**
+ * @param DateTimeInterface $start
+ * @param DateInterval $interval
+ * @param DateTimeInterface $end
+ * @param int $options Can be set to DatePeriod::EXCLUDE_START_DATE.
+ * @link https://php.net/manual/en/dateperiod.construct.php
+ */
+ public function __construct (DateTimeInterface $start, DateInterval $interval, DateTimeInterface $end, $options = 0) {}
+
+ /**
+ * @param DateTimeInterface $start
+ * @param DateInterval $interval
+ * @param int $recurrences Number of recurrences
+ * @param int $options Can be set to DatePeriod::EXCLUDE_START_DATE.
+ * @link https://php.net/manual/en/dateperiod.construct.php
+ */
+ public function __construct (DateTimeInterface $start, DateInterval $interval, $recurrences, $options = 0) {}
+
+ /**
+ * @param string $isostr String containing the ISO interval.
+ * @param int $options Can be set to DatePeriod::EXCLUDE_START_DATE.
+ * @link https://php.net/manual/en/dateperiod.construct.php
+ */
+ public function __construct ($isostr, $options = 0) {}
+
+ /**
+ * Gets the interval
+ * @return DateInterval
+ * @link https://php.net/manual/en/dateperiod.getdateinterval.php
+ * @since 5.6.5
+ */
+ public function getDateInterval () {}
+
+ /**
+ * Gets the end date
+ * @return DateTimeInterface|null
+ * @link https://php.net/manual/en/dateperiod.getenddate.php
+ * @since 5.6.5
+ */
+ public function getEndDate () {}
+
+ /**
+ * Gets the start date
+ * @return DateTimeInterface
+ * @link https://php.net/manual/en/dateperiod.getstartdate.php
+ * @since 5.6.5
+ */
+ public function getStartDate () {}
+
+ public static function __set_state ($array){}
+
+ public function __wakeup() {}
+
+ /**
+ * Get the number of recurrences
+ * @return int
+ * @link https://php.net/manual/en/dateperiod.getrecurrences.php
+ * @since 7.2.17
+ * @since 7.3.4
+ */
+ public function getRecurrences () {}
+
+ /**
+ * @return DateTimeInterface[]
+ * @since 8.0
+ */
+ public function getIterator(){}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/date/date_d.php b/vendor/jetbrains/phpstorm-stubs/date/date_d.php
new file mode 100644
index 0000000000..d5289cc37a
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/date/date_d.php
@@ -0,0 +1,37 @@
+
+ * Commonly a regular path in your filesystem.
+ *
+ * @param string $mode
+ * It is r for read access, w for
+ * read/write access to an already existing database, c
+ * for read/write access and database creation if it doesn't currently exist,
+ * and n for create, truncate and read/write access.
+ * The database is created in BTree mode, other modes (like Hash or Queue)
+ * are not supported.
+ *
+ *
+ * Additionally you can set the database lock method with the next char.
+ * Use l to lock the database with a .lck
+ * file or d to lock the databasefile itself. It is
+ * important that all of your applications do this consistently.
+ *
+ *
+ * If you want to test the access and do not want to wait for the lock
+ * you can add t as third character. When you are
+ * absolutely sure that you do not require database locking you can do
+ * so by using - instead of l or
+ * d. When none of d,
+ * l or - is used, dba will lock
+ * on the database file as it would with d.
+ *
+ *
+ * There can only be one writer for one database file. When you use dba on
+ * a web server and more than one request requires write operations they can
+ * only be done one after another. Also read during write is not allowed.
+ * The dba extension uses locks to prevent this. See the following table:
+ *
+ * DBA locking
+ *
+ *
already open
+ *
mode = "rl"
+ *
mode = "rlt"
+ *
mode = "wl"
+ *
mode = "wlt"
+ *
mode = "rd"
+ *
mode = "rdt"
+ *
mode = "wd"
+ *
mode = "wdt"
+ *
+ *
+ *
not open
+ *
ok
+ *
ok
+ *
ok
+ *
ok
+ *
ok
+ *
ok
+ *
ok
+ *
ok
+ *
+ *
+ *
mode = "rl"
+ *
ok
+ *
ok
+ *
wait
+ *
false
+ *
illegal
+ *
illegal
+ *
illegal
+ *
illegal
+ *
+ *
+ *
mode = "wl"
+ *
wait
+ *
false
+ *
wait
+ *
false
+ *
illegal
+ *
illegal
+ *
illegal
+ *
illegal
+ *
+ *
+ *
mode = "rd"
+ *
illegal
+ *
illegal
+ *
illegal
+ *
illegal
+ *
ok
+ *
ok
+ *
wait
+ *
false
+ *
+ *
+ *
mode = "wd"
+ *
illegal
+ *
illegal
+ *
illegal
+ *
illegal
+ *
wait
+ *
false
+ *
wait
+ *
false
+ *
+ *
+ * ok: the second call will be successful.
+ * wait: the second call waits until dba_close is called for the first.
+ * false: the second call returns false.
+ * illegal: you must not mix "l" and "d" modifiers for mode parameter.
+ *
+ * @param string $handler [optional]
+ * The name of the handler which
+ * shall be used for accessing path. It is passed
+ * all optional parameters given to dba_open and
+ * can act on behalf of them.
+ *
+ * @param mixed ...$handler_params [optional]
+ * @return resource|false a positive handle on success or FALSE on failure.
+ */
+function dba_open ($path, $mode, $handler, ...$handler_params)
+{}
+
+/**
+ * Open database persistently
+ * @link https://php.net/manual/en/function.dba-popen.php
+ * @param string $path
+ * Commonly a regular path in your filesystem.
+ *
+ * @param string $mode
+ * It is r for read access, w for
+ * read/write access to an already existing database, c
+ * for read/write access and database creation if it doesn't currently exist,
+ * and n for create, truncate and read/write access.
+ *
+ * @param string $handler [optional]
+ * The name of the handler which
+ * shall be used for accessing path. It is passed
+ * all optional parameters given to dba_popen and
+ * can act on behalf of them.
+ *
+ * @param mixed ...$handler_params [optional]
+ * @return resource|false a positive handle on success or FALSE on failure.
+ */
+function dba_popen ($path, $mode, $handler, ...$handler_params)
+{}
+
+/**
+ * Close a DBA database
+ * @link https://php.net/manual/en/function.dba-close.php
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return void No value is returned.
+ */
+function dba_close ($dba): void {}
+
+/**
+ * Delete DBA entry specified by key
+ * @link https://php.net/manual/en/function.dba-delete.php
+ * @param string $key
+ * The key of the entry which is deleted.
+ *
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return bool TRUE if the key exists, FALSE otherwise.
+ */
+function dba_exists ($key, $dba): bool
+{}
+
+/**
+ * Fetch data specified by key
+ * @link https://php.net/manual/en/function.dba-fetch.php
+ * @param string $key
+ * The key the data is specified by.
+ *
+ *
+ * When working with inifiles this function accepts arrays as keys
+ * where index 0 is the group and index 1 is the value name. See:
+ * dba_key_split.
+ *
+ * @param resource $handle
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return string|false the associated string if the key/data pair is found, FALSE
+ * otherwise.
+ */
+function dba_fetch ($key, $handle): string|false
+{}
+
+/**
+ * Fetch data specified by key
+ * @link https://php.net/manual/en/function.dba-fetch.php
+ * @param string $key
+ * The key the data is specified by.
+ *
+ *
+ * When working with inifiles this function accepts arrays as keys
+ * where index 0 is the group and index 1 is the value name. See:
+ * dba_key_split.
+ *
+ * @param int $skip The number of key-value pairs to ignore when using cdb databases. This value is ignored for all other databases which do not support multiple keys with the same name.
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * The key of the entry to be inserted. If this key already exist in the
+ * database, this function will fail. Use dba_replace
+ * if you need to replace an existent key.
+ *
+ * @param string $value
+ * The value to be inserted.
+ *
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function dba_insert ($key, string $value, $dba): bool
+{}
+
+/**
+ * Replace or insert entry
+ * @link https://php.net/manual/en/function.dba-replace.php
+ * @param string $key
+ * The key of the entry to be replaced.
+ *
+ * @param string $value
+ * The value to be replaced.
+ *
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function dba_replace ($key, string $value, $dba): bool
+{}
+
+/**
+ * Fetch first key
+ * @link https://php.net/manual/en/function.dba-firstkey.php
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return string|false the key on success or FALSE on failure.
+ */
+function dba_firstkey ($dba): string|false
+{}
+
+/**
+ * Fetch next key
+ * @link https://php.net/manual/en/function.dba-nextkey.php
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return string|false the key on success or FALSE on failure.
+ */
+function dba_nextkey ($dba): string|false
+{}
+
+/**
+ * Optimize database
+ * @link https://php.net/manual/en/function.dba-optimize.php
+ * @param resource $dba
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * The database handler, returned by dba_open or
+ * dba_popen.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function dba_sync ($dba): bool
+{}
+
+/**
+ * List all the handlers available
+ * @link https://php.net/manual/en/function.dba-handlers.php
+ * @param bool $full_info [optional]
+ * Turns on/off full information display in the result.
+ *
+ * @return array an array of database handlers. If full_info
+ * is set to TRUE, the array will be associative with the handlers names as
+ * keys, and their version information as value. Otherwise, the result will be
+ * an indexed array of handlers names.
+ *
+ *
+ * When the internal cdb library is used you will see
+ * cdb and cdb_make.
+ */
+function dba_handlers (bool $full_info = false): array
+{}
+
+/**
+ * List all open database files
+ * @link https://php.net/manual/en/function.dba-list.php
+ * @return array An associative array, in the form resourceid => filename.
+ */
+function dba_list (): array
+{}
+
+/**
+ * Splits a key in string representation into array representation
+ * @link https://php.net/manual/en/function.dba-key-split.php
+ * @param string|false|null $key
+ * The key in string representation.
+ *
+ * @return array|false an array of the form array(0 => group, 1 =>
+ * value_name). This function will return FALSE if
+ * key is NULL or FALSE.
+ */
+function dba_key_split (string|false|null $key): array|false
+{}
+
+// End of dba v.
diff --git a/vendor/jetbrains/phpstorm-stubs/decimal/decimal.php b/vendor/jetbrains/phpstorm-stubs/decimal/decimal.php
new file mode 100644
index 0000000000..0fa514a8fe
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/decimal/decimal.php
@@ -0,0 +1,467 @@
+` operator.
+ *
+ * @param mixed $other
+ *
+ * @return int 0 if this decimal is considered is equal to $other,
+ * -1 if this decimal should be placed before $other,
+ * 1 if this decimal should be placed after $other.
+ */
+ public function compareTo($other): int {}
+
+ /**
+ * String representation.
+ *
+ * This method is equivalent to a cast to string, as well as `toString`.
+ *
+ * @return string the value of this decimal represented exactly, in either
+ * fixed or scientific form, depending on the value.
+ */
+ public function __toString(): string {}
+
+ /**
+ * JSON
+ *
+ * This method is only here to honour the interface, and is equivalent to
+ * `toString`. JSON does not have a decimal type so all decimals are encoded
+ * as strings in the same format as `toString`.
+ *
+ * @return string
+ */
+ public function jsonSerialize() {}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/dio/dio.php b/vendor/jetbrains/phpstorm-stubs/dio/dio.php
new file mode 100644
index 0000000000..d52a0ecbfc
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/dio/dio.php
@@ -0,0 +1,145 @@
+DOMElement object from a SimpleXMLElement object
+ * @link https://php.net/manual/en/function.dom-import-simplexml.php
+ * @param SimpleXMLElement $node
+ * The SimpleXMLElement node.
+ *
+ * @return DOMElement|null|false The DOMElement node added or FALSE if any errors occur.
+ */
+function dom_import_simplexml (object $node): ?DOMElement {}
+
+
+/**
+ * Node is a DOMElement
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_ELEMENT_NODE', 1);
+
+/**
+ * Node is a DOMAttr
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_ATTRIBUTE_NODE', 2);
+
+/**
+ * Node is a DOMText
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_TEXT_NODE', 3);
+
+/**
+ * Node is a DOMCharacterData
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_CDATA_SECTION_NODE', 4);
+
+/**
+ * Node is a DOMEntityReference
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_ENTITY_REF_NODE', 5);
+
+/**
+ * Node is a DOMEntity
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_ENTITY_NODE', 6);
+
+/**
+ * Node is a DOMProcessingInstruction
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_PI_NODE', 7);
+
+/**
+ * Node is a DOMComment
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_COMMENT_NODE', 8);
+
+/**
+ * Node is a DOMDocument
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_DOCUMENT_NODE', 9);
+
+/**
+ * Node is a DOMDocumentType
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_DOCUMENT_TYPE_NODE', 10);
+
+/**
+ * Node is a DOMDocumentFragment
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_DOCUMENT_FRAG_NODE', 11);
+
+/**
+ * Node is a DOMNotation
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('XML_NOTATION_NODE', 12);
+define ('XML_HTML_DOCUMENT_NODE', 13);
+define ('XML_DTD_NODE', 14);
+define ('XML_ELEMENT_DECL_NODE', 15);
+define ('XML_ATTRIBUTE_DECL_NODE', 16);
+define ('XML_ENTITY_DECL_NODE', 17);
+define ('XML_NAMESPACE_DECL_NODE', 18);
+define ('XML_LOCAL_NAMESPACE', 18);
+define ('XML_ATTRIBUTE_CDATA', 1);
+define ('XML_ATTRIBUTE_ID', 2);
+define ('XML_ATTRIBUTE_IDREF', 3);
+define ('XML_ATTRIBUTE_IDREFS', 4);
+define ('XML_ATTRIBUTE_ENTITY', 6);
+define ('XML_ATTRIBUTE_NMTOKEN', 7);
+define ('XML_ATTRIBUTE_NMTOKENS', 8);
+define ('XML_ATTRIBUTE_ENUMERATION', 9);
+define ('XML_ATTRIBUTE_NOTATION', 10);
+
+/**
+ * Error code not part of the DOM specification. Meant for PHP errors.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_PHP_ERR', 0);
+
+/**
+ * If index or size is negative, or greater than the allowed value.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_INDEX_SIZE_ERR', 1);
+
+/**
+ * If the specified range of text does not fit into a
+ * DOMString.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOMSTRING_SIZE_ERR', 2);
+
+/**
+ * If any node is inserted somewhere it doesn't belong
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_HIERARCHY_REQUEST_ERR', 3);
+
+/**
+ * If a node is used in a different document than the one that created it.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_WRONG_DOCUMENT_ERR', 4);
+
+/**
+ * If an invalid or illegal character is specified, such as in a name.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_INVALID_CHARACTER_ERR', 5);
+
+/**
+ * If data is specified for a node which does not support data.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_NO_DATA_ALLOWED_ERR', 6);
+
+/**
+ * If an attempt is made to modify an object where modifications are not allowed.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_NO_MODIFICATION_ALLOWED_ERR', 7);
+
+/**
+ * If an attempt is made to reference a node in a context where it does not exist.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_NOT_FOUND_ERR', 8);
+
+/**
+ * If the implementation does not support the requested type of object or operation.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_NOT_SUPPORTED_ERR', 9);
+
+/**
+ * If an attempt is made to add an attribute that is already in use elsewhere.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_INUSE_ATTRIBUTE_ERR', 10);
+
+/**
+ * If an attempt is made to use an object that is not, or is no longer, usable.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_INVALID_STATE_ERR', 11);
+
+/**
+ * If an invalid or illegal string is specified.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_SYNTAX_ERR', 12);
+
+/**
+ * If an attempt is made to modify the type of the underlying object.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_INVALID_MODIFICATION_ERR', 13);
+
+/**
+ * If an attempt is made to create or change an object in a way which is
+ * incorrect with regard to namespaces.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_NAMESPACE_ERR', 14);
+
+/**
+ * If a parameter or an operation is not supported by the underlying object.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_INVALID_ACCESS_ERR', 15);
+
+/**
+ * If a call to a method such as insertBefore or removeChild would make the Node
+ * invalid with respect to "partial validity", this exception would be raised and
+ * the operation would not be done.
+ * @link https://php.net/manual/en/dom.constants.php
+ */
+define ('DOM_VALIDATION_ERR', 16);
+
+// End of dom v.20031129
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/dom/dom_c.php b/vendor/jetbrains/phpstorm-stubs/dom/dom_c.php
new file mode 100644
index 0000000000..d6183bd95e
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/dom/dom_c.php
@@ -0,0 +1,2167 @@
+XML_xxx_NODE constants
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.nodetype
+ */
+ public $nodeType;
+
+ /**
+ * @var DOMNode|null
+ * The parent of this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.parentnode
+ */
+ public $parentNode;
+
+ /**
+ * @var DOMNodeList
+ * A DOMNodeList that contains all children of this node. If there are no children, this is an empty DOMNodeList.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.childnodes
+ */
+ public $childNodes;
+
+ /**
+ * @var DOMNode|null
+ * The first child of this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.firstchild
+ */
+ public $firstChild;
+
+ /**
+ * @var DOMNode|null
+ * The last child of this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.lastchild
+ */
+ public $lastChild;
+
+ /**
+ * @var DOMNode|null
+ * The node immediately preceding this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.previoussibling
+ */
+ public $previousSibling;
+
+ /**
+ * @var DOMNode|null
+ * The node immediately following this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.nextsibling
+ */
+ public $nextSibling;
+
+ /**
+ * @var DOMNamedNodeMap|null
+ * A DOMNamedNodeMap containing the attributes of this node (if it is a DOMElement) or NULL otherwise.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.attributes
+ */
+ public $attributes;
+
+ /**
+ * @var DOMDocument|null
+ * The DOMDocument object associated with this node, or NULL if this node is a DOMDocument.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.ownerdocument
+ */
+ public $ownerDocument;
+
+ /**
+ * @var string|null
+ * The namespace URI of this node, or NULL if it is unspecified.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.namespaceuri
+ */
+ public $namespaceURI;
+
+ /**
+ * @var string|null
+ * The namespace prefix of this node, or NULL if it is unspecified.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.prefix
+ */
+ public $prefix;
+
+ /**
+ * @var string
+ * Returns the local part of the qualified name of this node.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.localname
+ */
+ public $localName;
+
+ /**
+ * @var string|null
+ * The absolute base URI of this node or NULL if the implementation wasn't able to obtain an absolute URI.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.baseuri
+ */
+ public $baseURI;
+
+ /**
+ * @var string
+ * This attribute returns the text content of this node and its descendants.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.textcontent
+ */
+ public $textContent;
+
+ /**
+ * Adds a new child before a reference node
+ * @link https://php.net/manual/en/domnode.insertbefore.php
+ * @param DOMNode $node
+ * The new node.
+ *
+ * @param DOMNode $child [optional]
+ * The reference node. If not supplied, newnode is
+ * appended to the children.
+ *
+ * @return DOMNode The inserted node.
+ */
+ public function insertBefore (DOMNode $node, DOMNode $child = null) {}
+
+ /**
+ * Replaces a child
+ * @link https://php.net/manual/en/domnode.replacechild.php
+ * @param DOMNode $node
+ * The new node. It must be a member of the target document, i.e.
+ * created by one of the DOMDocument->createXXX() methods or imported in
+ * the document by .
+ *
+ * @param DOMNode $child
+ * The old node.
+ *
+ * @return DOMNode|false The old node or false if an error occur.
+ */
+ public function replaceChild (DOMNode $node , DOMNode $child ) {}
+
+ /**
+ * Removes child from list of children
+ * @link https://php.net/manual/en/domnode.removechild.php
+ * @param DOMNode $child
+ * The removed child.
+ *
+ * @return DOMNode If the child could be removed the functions returns the old child.
+ */
+ public function removeChild (DOMNode $child ) {}
+
+ /**
+ * Adds new child at the end of the children
+ * @link https://php.net/manual/en/domnode.appendchild.php
+ * @param DOMNode $node
+ * The appended child.
+ *
+ * @return DOMNode The node added.
+ */
+ public function appendChild (DOMNode $node) {}
+
+ /**
+ * Checks if node has children
+ * @link https://php.net/manual/en/domnode.haschildnodes.php
+ * @return bool true on success or false on failure.
+ */
+ public function hasChildNodes () {}
+
+ /**
+ * Clones a node
+ * @link https://php.net/manual/en/domnode.clonenode.php
+ * @param bool $deep [optional]
+ * Indicates whether to copy all descendant nodes. This parameter is
+ * defaulted to false.
+ *
+ * @return static The cloned node.
+ */
+ public function cloneNode ($deep = null) {}
+
+ /**
+ * Normalizes the node
+ * @link https://php.net/manual/en/domnode.normalize.php
+ * @return void
+ */
+ public function normalize () {}
+
+ /**
+ * Checks if feature is supported for specified version
+ * @link https://php.net/manual/en/domnode.issupported.php
+ * @param string $feature
+ * The feature to test. See the example of
+ * DOMImplementation::hasFeature for a
+ * list of features.
+ *
+ * @param string $version
+ * The version number of the feature to test.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function isSupported ($feature, $version) {}
+
+ /**
+ * Checks if node has attributes
+ * @link https://php.net/manual/en/domnode.hasattributes.php
+ * @return bool true on success or false on failure.
+ */
+ public function hasAttributes () {}
+
+ /**
+ * @param DOMNode $other
+ */
+ public function compareDocumentPosition (DOMNode $other) {}
+
+ /**
+ * Indicates if two nodes are the same node
+ * @link https://php.net/manual/en/domnode.issamenode.php
+ * @param DOMNode $otherNode
+ * The compared node.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function isSameNode (DOMNode $otherNode ) {}
+
+ /**
+ * Gets the namespace prefix of the node based on the namespace URI
+ * @link https://php.net/manual/en/domnode.lookupprefix.php
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @return string The prefix of the namespace.
+ */
+ public function lookupPrefix ($namespace) {}
+
+ /**
+ * Checks if the specified namespaceURI is the default namespace or not
+ * @link https://php.net/manual/en/domnode.isdefaultnamespace.php
+ * @param string $namespace
+ * The namespace URI to look for.
+ *
+ * @return bool Return true if namespaceURI is the default
+ * namespace, false otherwise.
+ */
+ public function isDefaultNamespace ($namespace) {}
+
+ /**
+ * Gets the namespace URI of the node based on the prefix
+ * @link https://php.net/manual/en/domnode.lookupnamespaceuri.php
+ * @param string $prefix
+ * The prefix of the namespace.
+ *
+ * @return string The namespace URI of the node.
+ */
+ public function lookupNamespaceURI ($prefix) {}
+
+ /**
+ * @param DOMNode $arg
+ * @return bool
+ */
+ public function isEqualNode (DOMNode $arg) {}
+
+ /**
+ * @param $feature
+ * @param $version
+ * @return mixed
+ */
+ public function getFeature ($feature, $version) {}
+
+ /**
+ * @param $key
+ * @param $data
+ * @param $handler
+ */
+ public function setUserData ($key, $data, $handler) {}
+
+ /**
+ * @param $key
+ * @return mixed
+ */
+ public function getUserData ($key) {}
+
+ /**
+ * Gets an XPath location path for the node
+ * @return string|null the XPath, or NULL in case of an error.
+ * @link https://secure.php.net/manual/en/domnode.getnodepath.php
+ */
+ public function getNodePath () {}
+
+
+ /**
+ * Get line number for a node
+ * @link https://php.net/manual/en/domnode.getlineno.php
+ * @return int Always returns the line number where the node was defined in.
+ */
+ public function getLineNo () {}
+
+ /**
+ * Canonicalize nodes to a string
+ * @param bool $exclusive [optional] Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.
+ * @param bool $withComments [optional] Retain comments in output.
+ * @param array $xpath [optional] An array of xpaths to filter the nodes by.
+ * @param array $nsPrefixes [optional] An array of namespace prefixes to filter the nodes by.
+ * @return string|false Canonicalized nodes as a string or FALSE on failure
+ */
+ public function C14N ($exclusive, $withComments, array $xpath = null, $nsPrefixes = null) {}
+
+ /**
+ * Canonicalize nodes to a file.
+ * @link https://www.php.net/manual/en/domnode.c14nfile
+ * @param string $uri Number of bytes written or FALSE on failure
+ * @param bool $exclusive [optional] Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.
+ * @param bool $withComments [optional] Retain comments in output.
+ * @param array $xpath [optional] An array of xpaths to filter the nodes by.
+ * @param array $nsPrefixes [optional] An array of namespace prefixes to filter the nodes by.
+ * @return int|false Number of bytes written or FALSE on failure
+ */
+ public function C14NFile ($uri, $exclusive, array $withComments, array $xpath = null, $nsPrefixes = null) {}
+
+
+}
+
+/**
+ * DOM operations raise exceptions under particular circumstances, i.e.,
+ * when an operation is impossible to perform for logical reasons.
+ * @link https://php.net/manual/en/class.domexception.php
+ */
+class DOMException extends Exception {
+
+ /**
+ * An integer indicating the type of error generated
+ * @link https://php.net/manual/en/class.domexception.php#domexception.props.code
+ */
+ public $code;
+}
+
+class DOMStringList {
+
+ /**
+ * @param $index
+ * @return mixed
+ */
+ public function item ($index) {}
+
+}
+
+/**
+ * @link https://php.net/manual/en/ref.dom.php
+ * @removed 8.0
+ */
+class DOMNameList {
+
+ /**
+ * @param $index
+ * @return mixed
+ */
+ public function getName ($index) {}
+
+ /**
+ * @param $index
+ * @return mixed
+ */
+ public function getNamespaceURI ($index) {}
+
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMImplementationList {
+
+ /**
+ * @param $index
+ * @return mixed
+ */
+ public function item ($index) {}
+
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMImplementationSource {
+
+ /**
+ * @param $features
+ * @return mixed
+ */
+ public function getDomimplementation ($features) {}
+
+ /**
+ * @param $features
+ * @return mixed
+ */
+ public function getDomimplementations ($features) {}
+
+}
+
+/**
+ * The DOMImplementation interface provides a number
+ * of methods for performing operations that are independent of any
+ * particular instance of the document object model.
+ * @link https://php.net/manual/en/class.domimplementation.php
+ */
+class DOMImplementation {
+
+ /**
+ * Creates a new DOMImplementation object
+ * @link https://php.net/manual/en/domimplementation.construct.php
+ */
+ public function __construct(){}
+
+ /**
+ * @param $feature
+ * @param $version
+ * @return mixed
+ */
+ public function getFeature ($feature, $version) {}
+
+ /**
+ * Test if the DOM implementation implements a specific feature
+ * @link https://php.net/manual/en/domimplementation.hasfeature.php
+ * @param string $feature
+ * The feature to test.
+ *
+ * @param string $version
+ * The version number of the feature to test. In
+ * level 2, this can be either 2.0 or
+ * 1.0.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function hasFeature ($feature, $version) {}
+
+ /**
+ * Creates an empty DOMDocumentType object
+ * @link https://php.net/manual/en/domimplementation.createdocumenttype.php
+ * @param string $qualifiedName [optional]
+ * The qualified name of the document type to create.
+ *
+ * @param string $publicId [optional]
+ * The external subset public identifier.
+ *
+ * @param string $systemId [optional]
+ * The external subset system identifier.
+ *
+ * @return DOMDocumentType A new DOMDocumentType node with its
+ * ownerDocument set to null.
+ */
+ public function createDocumentType ($qualifiedName = null, $publicId = null, $systemId = null) {}
+
+ /**
+ * Creates a DOMDocument object of the specified type with its document element
+ * @link https://php.net/manual/en/domimplementation.createdocument.php
+ * @param string $namespace [optional]
+ * The namespace URI of the document element to create.
+ *
+ * @param string $qualifiedName [optional]
+ * The qualified name of the document element to create.
+ *
+ * @return DOMDocument A new DOMDocument object. If
+ * namespaceURI, qualifiedName,
+ * and doctype are null, the returned
+ * DOMDocument is empty with no document element
+ */
+ public function createDocument ($namespace = null, $qualifiedName = null, DOMDocumentType $doctype = null) {}
+
+}
+
+
+class DOMNameSpaceNode {
+}
+
+/**
+ * The DOMDocumentFragment class
+ * @link https://php.net/manual/en/class.domdocumentfragment.php
+ */
+class DOMDocumentFragment extends DOMNode implements DOMParentNode {
+
+ public function __construct () {}
+
+ /**
+ * Append raw XML data
+ * @link https://php.net/manual/en/domdocumentfragment.appendxml.php
+ * @param string $data
+ * XML to append.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function appendXML ($data) {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function append(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function prepend(...$nodes): void {}
+}
+
+/**
+ * The DOMDocument class represents an entire HTML or XML
+ * document; serves as the root of the document tree.
+ * @link https://php.net/manual/en/class.domdocument.php
+ */
+class DOMDocument extends DOMNode implements DOMParentNode {
+
+ /**
+ * @var string
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.actualencoding
+ */
+ #[Deprecated("Actual encoding of the document, is a readonly equivalent to encoding.")]
+ public $actualEncoding;
+
+ /**
+ * @var DOMConfiguration
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.config
+ * @see DOMDocument::normalizeDocument()
+ */
+ #[Deprecated("Configuration used when DOMDocument::normalizeDocument() is invoked.")]
+ public $config;
+
+ /**
+ * @var DOMDocumentType
+ * The Document Type Declaration associated with this document.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.doctype
+ */
+ public $doctype;
+
+ /**
+ * @var DOMElement
+ * This is a convenience attribute that allows direct access to the child node
+ * that is the document element of the document.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.documentelement
+ */
+ public $documentElement;
+
+ /**
+ * @var string|null
+ * The location of the document or NULL if undefined.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.documenturi
+ */
+ public $documentURI;
+
+ /**
+ * @var string
+ * Encoding of the document, as specified by the XML declaration. This attribute is not present
+ * in the final DOM Level 3 specification, but is the only way of manipulating XML document
+ * encoding in this implementation.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.encoding
+ */
+ public $encoding ;
+
+ /**
+ * @var bool
+ * Nicely formats output with indentation and extra space.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.formatoutput
+ */
+ public $formatOutput ;
+
+ /**
+ * @var DOMImplementation
+ * The DOMImplementation object that handles this document.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.implementation
+ */
+ public $implementation ;
+
+ /**
+ * @var bool
+ * Do not remove redundant white space. Default to TRUE.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.preservewhitespace
+ */
+ public $preserveWhiteSpace = true ;
+
+ /**
+ * @var bool
+ * Proprietary. Enables recovery mode, i.e. trying to parse non-well formed documents.
+ * This attribute is not part of the DOM specification and is specific to libxml.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.recover
+ */
+ public $recover ;
+
+ /**
+ * @var bool
+ * Set it to TRUE to load external entities from a doctype declaration. This is useful for
+ * including character entities in your XML document.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.resolveexternals
+ */
+ public $resolveExternals ;
+
+ /**
+ * @var bool
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.standalone
+ */
+ #[Deprecated("Whether or not the document is standalone, as specified by the XML declaration, corresponds to xmlStandalone.")]
+ public $standalone ;
+
+ /**
+ * @var bool
+ * Throws DOMException on errors. Default to TRUE.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.stricterrorchecking
+ */
+ public $strictErrorChecking = true ;
+
+ /**
+ * @var bool
+ * Proprietary. Whether or not to substitute entities. This attribute is not part of the DOM
+ * specification and is specific to libxml.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.substituteentities
+ */
+ public $substituteEntities ;
+
+ /**
+ * @var bool
+ * Loads and validates against the DTD. Default to FALSE.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.validateonparse
+ */
+ public $validateOnParse = false ;
+
+ /**
+ * @var string
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.version
+ */
+ #[Deprecated('Version of XML, corresponds to xmlVersion')]
+ public $version ;
+
+ /**
+ * @var string
+ * An attribute specifying, as part of the XML declaration, the encoding of this document. This is NULL when
+ * unspecified or when it is not known, such as when the Document was created in memory.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.xmlencoding
+ */
+ public $xmlEncoding ;
+
+ /**
+ * @var bool
+ * An attribute specifying, as part of the XML declaration, whether this document is standalone.
+ * This is FALSE when unspecified.
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.xmlstandalone
+ */
+ public $xmlStandalone ;
+
+ /**
+ * @var string
+ * An attribute specifying, as part of the XML declaration, the version number of this document. If there is no
+ * declaration and if this document supports the "XML" feature, the value is "1.0".
+ * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.xmlversion
+ */
+ public $xmlVersion ;
+
+ /**
+ * Create new element node
+ * @link https://php.net/manual/en/domdocument.createelement.php
+ * @param string $localName
+ * The tag name of the element.
+ *
+ * @param string $value [optional]
+ * The value of the element. By default, an empty element will be created.
+ * You can also set the value later with DOMElement->nodeValue.
+ *
+ * @return DOMElement|false A new instance of class DOMElement or false
+ * if an error occurred.
+ */
+ public function createElement ($localName, $value = null) {}
+
+ /**
+ * Create new document fragment
+ * @link https://php.net/manual/en/domdocument.createdocumentfragment.php
+ * @return DOMDocumentFragment|false The new DOMDocumentFragment or false if an error occurred.
+ */
+ public function createDocumentFragment () {}
+
+ /**
+ * Create new text node
+ * @link https://php.net/manual/en/domdocument.createtextnode.php
+ * @param string $data
+ * The content of the text.
+ *
+ * @return DOMText|false The new DOMText or false if an error occurred.
+ */
+ public function createTextNode ($data) {}
+
+ /**
+ * Create new comment node
+ * @link https://php.net/manual/en/domdocument.createcomment.php
+ * @param string $data
+ * The content of the comment.
+ *
+ * @return DOMComment|false The new DOMComment or false if an error occurred.
+ */
+ public function createComment ($data) {}
+
+ /**
+ * Create new cdata node
+ * @link https://php.net/manual/en/domdocument.createcdatasection.php
+ * @param string $data
+ * The content of the cdata.
+ *
+ * @return DOMCDATASection|false The new DOMCDATASection or false if an error occurred.
+ */
+ public function createCDATASection ($data) {}
+
+ /**
+ * Creates new PI node
+ * @link https://php.net/manual/en/domdocument.createprocessinginstruction.php
+ * @param string $target
+ * The target of the processing instruction.
+ *
+ * @param string $data [optional]
+ * The content of the processing instruction.
+ *
+ * @return DOMProcessingInstruction|false The new DOMProcessingInstruction or false if an error occurred.
+ */
+ public function createProcessingInstruction ($target, $data = null) {}
+
+ /**
+ * Create new attribute
+ * @link https://php.net/manual/en/domdocument.createattribute.php
+ * @param string $localName
+ * The name of the attribute.
+ *
+ * @return DOMAttr|false The new DOMAttr or false if an error occurred.
+ */
+ public function createAttribute ($localName) {}
+
+ /**
+ * Create new entity reference node
+ * @link https://php.net/manual/en/domdocument.createentityreference.php
+ * @param string $name
+ * The content of the entity reference, e.g. the entity reference minus
+ * the leading & and the trailing
+ * ; characters.
+ *
+ * @return DOMEntityReference|false The new DOMEntityReference or false if an error
+ * occurred.
+ */
+ public function createEntityReference ($name) {}
+
+ /**
+ * Searches for all elements with given tag name
+ * @link https://php.net/manual/en/domdocument.getelementsbytagname.php
+ * @param string $qualifiedName
+ * The name of the tag to match on. The special value *
+ * matches all tags.
+ *
+ * @return DOMNodeList A new DOMNodeList object containing all the matched
+ * elements.
+ */
+ public function getElementsByTagName ($qualifiedName) {}
+
+ /**
+ * Import node into current document
+ * @link https://php.net/manual/en/domdocument.importnode.php
+ * @param DOMNode $node
+ * The node to import.
+ *
+ * @param bool $deep [optional]
+ * If set to true, this method will recursively import the subtree under
+ * the importedNode.
+ *
+ *
+ * To copy the nodes attributes deep needs to be set to true
+ *
+ * @return DOMNode|false The copied node or false, if it cannot be copied.
+ */
+ public function importNode (DOMNode $node , $deep = null) {}
+
+ /**
+ * Create new element node with an associated namespace
+ * @link https://php.net/manual/en/domdocument.createelementns.php
+ * @param string $namespace
+ * The URI of the namespace.
+ *
+ * @param string $qualifiedName
+ * The qualified name of the element, as prefix:tagname.
+ *
+ * @param string $value [optional]
+ * The value of the element. By default, an empty element will be created.
+ * You can also set the value later with DOMElement->nodeValue.
+ *
+ * @return DOMElement|false The new DOMElement or false if an error occurred.
+ */
+ public function createElementNS ($namespace, $qualifiedName, $value = null) {}
+
+ /**
+ * Create new attribute node with an associated namespace
+ * @link https://php.net/manual/en/domdocument.createattributens.php
+ * @param string $namespace
+ * The URI of the namespace.
+ *
+ * @param string $qualifiedName
+ * The tag name and prefix of the attribute, as prefix:tagname.
+ *
+ * @return DOMAttr|false The new DOMAttr or false if an error occurred.
+ */
+ public function createAttributeNS ($namespace, $qualifiedName) {}
+
+ /**
+ * Searches for all elements with given tag name in specified namespace
+ * @link https://php.net/manual/en/domdocument.getelementsbytagnamens.php
+ * @param string $namespace
+ * The namespace URI of the elements to match on.
+ * The special value * matches all namespaces.
+ *
+ * @param string $localName
+ * The local name of the elements to match on.
+ * The special value * matches all local names.
+ *
+ * @return DOMNodeList A new DOMNodeList object containing all the matched
+ * elements.
+ */
+ public function getElementsByTagNameNS ($namespace, $localName) {}
+
+ /**
+ * Searches for an element with a certain id
+ * @link https://php.net/manual/en/domdocument.getelementbyid.php
+ * @param string $elementId
+ * The unique id value for an element.
+ *
+ * @return DOMElement|null The DOMElement or null if the element is
+ * not found.
+ */
+ public function getElementById ($elementId) {}
+
+ /**
+ * @param DOMNode $node
+ */
+ public function adoptNode (DOMNode $node) {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function append(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function prepend(...$nodes): void {}
+
+ /**
+ * Normalizes the document
+ * @link https://php.net/manual/en/domdocument.normalizedocument.php
+ * @return void
+ */
+ public function normalizeDocument () {}
+
+ /**
+ * @param DOMNode $node
+ * @param $namespace
+ * @param $qualifiedName
+ */
+ public function renameNode (DOMNode $node, $namespace, $qualifiedName) {}
+
+ /**
+ * Load XML from a file
+ * @link https://php.net/manual/en/domdocument.load.php
+ * @param string $filename
+ * The path to the XML document.
+ *
+ * @param int $options [optional]
+ * Bitwise OR
+ * of the libxml option constants.
+ *
+ * @return DOMDocument|bool true on success or false on failure. If called statically, returns a
+ * DOMDocument and issues E_STRICT
+ * warning.
+ */
+ public function load ($filename, $options = null) {}
+
+ /**
+ * Dumps the internal XML tree back into a file
+ * @link https://php.net/manual/en/domdocument.save.php
+ * @param string $filename
+ * The path to the saved XML document.
+ *
+ * @param int $options [optional]
+ * Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.
+ *
+ * @return int|false the number of bytes written or false if an error occurred.
+ */
+ public function save ($filename, $options = null) {}
+
+ /**
+ * Load XML from a string
+ * @link https://php.net/manual/en/domdocument.loadxml.php
+ * @param string $source
+ * The string containing the XML.
+ *
+ * @param int $options [optional]
+ * Bitwise OR
+ * of the libxml option constants.
+ *
+ * @return DOMDocument|bool true on success or false on failure. If called statically, returns a
+ * DOMDocument and issues E_STRICT
+ * warning.
+ */
+ public function loadXML ($source, $options = null) {}
+
+ /**
+ * Dumps the internal XML tree back into a string
+ * @link https://php.net/manual/en/domdocument.savexml.php
+ * @param DOMNode $node [optional]
+ * Use this parameter to output only a specific node without XML declaration
+ * rather than the entire document.
+ *
+ * @param int $options [optional]
+ * Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.
+ *
+ * @return string|false the XML, or false if an error occurred.
+ */
+ public function saveXML (DOMNode $node = null , $options = null) {}
+
+ /**
+ * Creates a new DOMDocument object
+ * @link https://php.net/manual/en/domdocument.construct.php
+ * @param string $version [optional] The version number of the document as part of the XML declaration.
+ * @param string $encoding [optional] The encoding of the document as part of the XML declaration.
+ */
+ public function __construct ($version = '', $encoding = '') {}
+
+ /**
+ * Validates the document based on its DTD
+ * @link https://php.net/manual/en/domdocument.validate.php
+ * @return bool true on success or false on failure.
+ * If the document have no DTD attached, this method will return false.
+ */
+ public function validate () {}
+
+ /**
+ * Substitutes XIncludes in a DOMDocument Object
+ * @link https://php.net/manual/en/domdocument.xinclude.php
+ * @param int $options [optional]
+ * libxml parameters. Available
+ * since PHP 5.1.0 and Libxml 2.6.7.
+ *
+ * @return int the number of XIncludes in the document.
+ */
+ public function xinclude ($options = null) {}
+
+ /**
+ * Load HTML from a string
+ * @link https://php.net/manual/en/domdocument.loadhtml.php
+ * @param string $source
+ * The HTML string.
+ *
+ * @param int $options [optional]
+ * Since PHP 5.4.0 and Libxml 2.6.0, you may also
+ * use the options parameter to specify additional Libxml parameters.
+ *
+ * @return DOMDocument|bool true on success or false on failure. If called statically, returns a
+ * DOMDocument and issues E_STRICT
+ * warning.
+ */
+ public function loadHTML ($source, $options = 0) {}
+
+ /**
+ * Load HTML from a file
+ * @link https://php.net/manual/en/domdocument.loadhtmlfile.php
+ * @param string $filename
+ * The path to the HTML file.
+ *
+ * @param int $options [optional]
+ * Since PHP 5.4.0 and Libxml 2.6.0, you may also
+ * use the options parameter to specify additional Libxml parameters.
+ *
+ * @return DOMDocument|bool true on success or false on failure. If called statically, returns a
+ * DOMDocument and issues E_STRICT
+ * warning.
+ */
+ public function loadHTMLFile ($filename, $options = 0) {}
+
+ /**
+ * Dumps the internal document into a string using HTML formatting
+ * @link https://php.net/manual/en/domdocument.savehtml.php
+ * @param DOMNode $node [optional] parameter to output a subset of the document.
+ * @return string|false The HTML, or false if an error occurred.
+ */
+ public function saveHTML (DOMNode $node = null) {}
+
+ /**
+ * Dumps the internal document into a file using HTML formatting
+ * @link https://php.net/manual/en/domdocument.savehtmlfile.php
+ * @param string $filename
+ * The path to the saved HTML document.
+ *
+ * @return int|false the number of bytes written or false if an error occurred.
+ */
+ public function saveHTMLFile ($filename) {}
+
+ /**
+ * Validates a document based on a schema
+ * @link https://php.net/manual/en/domdocument.schemavalidate.php
+ * @param string $filename
+ * The path to the schema.
+ *
+ * @param int $options [optional]
+ * Bitwise OR
+ * of the libxml option constants.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function schemaValidate ($filename, $options = null) {}
+
+ /**
+ * Validates a document based on a schema
+ * @link https://php.net/manual/en/domdocument.schemavalidatesource.php
+ * @param string $source
+ * A string containing the schema.
+ *
+ * @param int $flags [optional]
A bitmask of Libxml schema validation flags. Currently the only supported value is LIBXML_SCHEMA_CREATE.
+ * Available since PHP 5.5.2 and Libxml 2.6.14.
+ * @return bool true on success or false on failure.
+ */
+ public function schemaValidateSource ($source, $flags) {}
+
+ /**
+ * Performs relaxNG validation on the document
+ * @link https://php.net/manual/en/domdocument.relaxngvalidate.php
+ * @param string $filename
+ * The RNG file.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function relaxNGValidate ($filename) {}
+
+ /**
+ * Performs relaxNG validation on the document
+ * @link https://php.net/manual/en/domdocument.relaxngvalidatesource.php
+ * @param string $source
+ * A string containing the RNG schema.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function relaxNGValidateSource ($source) {}
+
+ /**
+ * Register extended class used to create base node type
+ * @link https://php.net/manual/en/domdocument.registernodeclass.php
+ * @param string $baseClass
+ * The DOM class that you want to extend. You can find a list of these
+ * classes in the chapter introduction.
+ *
+ * @param string $extendedClass
+ * Your extended class name. If null is provided, any previously
+ * registered class extending baseclass will
+ * be removed.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function registerNodeClass ($baseClass, $extendedClass) {}
+
+}
+
+/**
+ * The DOMNodeList class
+ * @link https://php.net/manual/en/class.domnodelist.php
+ */
+class DOMNodeList implements IteratorAggregate, Countable {
+
+ /**
+ * @var int
+ * The number of nodes in the list. The range of valid child node indices is 0 to length - 1 inclusive.
+ * @link https://php.net/manual/en/class.domnodelist.php#domnodelist.props.length
+ */
+ public $length;
+
+ /**
+ * Retrieves a node specified by index
+ * @link https://php.net/manual/en/domnodelist.item.php
+ * @param int $index
+ * Index of the node into the collection.
+ * The range of valid child node indices is 0 to length - 1 inclusive.
+ *
+ * @return DOMNode|null The node at the indexth position in the
+ * DOMNodeList, or null if that is not a valid
+ * index.
+ */
+ public function item ($index) {}
+
+ /**
+ * @since 7.2
+ */
+ public function count() {}
+
+ /**
+ * @since 8.0
+ */
+ public function getIterator(){}
+}
+
+/**
+ * The DOMNamedNodeMap class
+ * @link https://php.net/manual/en/class.domnamednodemap.php
+ * @property-read int $length The number of nodes in the map. The range of valid child node indices is 0 to length - 1 inclusive.
+ */
+class DOMNamedNodeMap implements IteratorAggregate, Countable {
+
+ /**
+ * Retrieves a node specified by name
+ * @link https://php.net/manual/en/domnamednodemap.getnameditem.php
+ * @param string $qualifiedName
+ * The nodeName of the node to retrieve.
+ *
+ * @return DOMNode|null A node (of any type) with the specified nodeName, or
+ * null if no node is found.
+ */
+ public function getNamedItem ($qualifiedName) {}
+
+ /**
+ * @param DOMNode $arg
+ */
+ public function setNamedItem (DOMNode $arg) {}
+
+ /**
+ * @param $name [optional]
+ */
+ public function removeNamedItem ($name) {}
+
+ /**
+ * Retrieves a node specified by index
+ * @link https://php.net/manual/en/domnamednodemap.item.php
+ * @param int $index
+ * Index into this map.
+ *
+ * @return DOMNode|null The node at the indexth position in the map, or null
+ * if that is not a valid index (greater than or equal to the number of nodes
+ * in this map).
+ */
+ public function item ($index) {}
+
+ /**
+ * Retrieves a node specified by local name and namespace URI
+ * @link https://php.net/manual/en/domnamednodemap.getnameditemns.php
+ * @param string $namespace
+ * The namespace URI of the node to retrieve.
+ *
+ * @param string $localName
+ * The local name of the node to retrieve.
+ *
+ * @return DOMNode|null A node (of any type) with the specified local name and namespace URI, or
+ * null if no node is found.
+ */
+ public function getNamedItemNS ($namespace, $localName) {}
+
+ /**
+ * @param DOMNode $arg [optional]
+ */
+ public function setNamedItemNS (DOMNode $arg) {}
+
+ /**
+ * @param $namespace [optional]
+ * @param $localName [optional]
+ */
+ public function removeNamedItemNS ($namespace, $localName) {}
+
+ /**
+ * @since 7.2
+ */
+ public function count() {}
+
+ /**
+ * @since 8.0
+ */
+ public function getIterator(){}
+}
+
+/**
+ * The DOMCharacterData class represents nodes with character data.
+ * No nodes directly correspond to this class, but other nodes do inherit from it.
+ * @link https://php.net/manual/en/class.domcharacterdata.php
+ */
+class DOMCharacterData extends DOMNode implements DOMChildNode {
+
+
+ /**
+ * @var string
+ * The contents of the node.
+ * @link https://php.net/manual/en/class.domcharacterdata.php#domcharacterdata.props.data
+ */
+ public $data;
+
+ /**
+ * @var int
+ * The length of the contents.
+ * @link https://php.net/manual/en/class.domcharacterdata.php#domcharacterdata.props.length
+ */
+ public $length;
+
+ /**
+ * Extracts a range of data from the node
+ * @link https://php.net/manual/en/domcharacterdata.substringdata.php
+ * @param int $offset
+ * Start offset of substring to extract.
+ *
+ * @param int $count
+ * The number of characters to extract.
+ *
+ * @return string The specified substring. If the sum of offset
+ * and count exceeds the length, then all 16-bit units
+ * to the end of the data are returned.
+ */
+ public function substringData ($offset, $count) {}
+
+ /**
+ * Append the string to the end of the character data of the node
+ * @link https://php.net/manual/en/domcharacterdata.appenddata.php
+ * @param string $data
+ * The string to append.
+ *
+ * @return void
+ */
+ public function appendData ($data) {}
+
+ /**
+ * Insert a string at the specified 16-bit unit offset
+ * @link https://php.net/manual/en/domcharacterdata.insertdata.php
+ * @param int $offset
+ * The character offset at which to insert.
+ *
+ * @param string $data
+ * The string to insert.
+ *
+ * @return void
+ */
+ public function insertData ($offset, $data) {}
+
+ /**
+ * Remove a range of characters from the node
+ * @link https://php.net/manual/en/domcharacterdata.deletedata.php
+ * @param int $offset
+ * The offset from which to start removing.
+ *
+ * @param int $count
+ * The number of characters to delete. If the sum of
+ * offset and count exceeds
+ * the length, then all characters to the end of the data are deleted.
+ *
+ * @return void
+ */
+ public function deleteData ($offset, $count) {}
+
+ /**
+ * Replace a substring within the DOMCharacterData node
+ * @link https://php.net/manual/en/domcharacterdata.replacedata.php
+ * @param int $offset
+ * The offset from which to start replacing.
+ *
+ * @param int $count
+ * The number of characters to replace. If the sum of
+ * offset and count exceeds
+ * the length, then all characters to the end of the data are replaced.
+ *
+ * @param string $data
+ * The string with which the range must be replaced.
+ *
+ * @return void
+ */
+ public function replaceData ($offset, $count, $data) {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function remove(): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function before(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function after(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function replaceWith(...$nodes): void {}
+}
+
+/**
+ * The DOMAttr interface represents an attribute in an DOMElement object.
+ * @link https://php.net/manual/en/class.domattr.php
+ */
+class DOMAttr extends DOMNode
+{
+
+ /**
+ * @var string
+ * (PHP5)
+ * The name of the attribute
+ * @link https://php.net/manual/en/class.domattr.php#domattr.props.name
+ */
+ public $name;
+
+ /**
+ * @var DOMElement
+ * (PHP5)
+ * The element which contains the attribute
+ * @link https://php.net/manual/en/class.domattr.php#domattr.props.ownerelement
+ */
+ public $ownerElement;
+
+ /**
+ * @var bool
+ * (PHP5)
+ * Not implemented yet, always is NULL
+ * @link https://php.net/manual/en/class.domattr.php#domattr.props.schematypeinfo
+ */
+ public $schemaTypeInfo;
+
+ /**
+ * @var bool
+ * (PHP5)
+ * Not implemented yet, always is NULL
+ * @link https://php.net/manual/en/class.domattr.php#domattr.props.specified
+ */
+ public $specified;
+
+ /**
+ * @var string
+ * (PHP5)
+ * The value of the attribute
+ * @link https://php.net/manual/en/class.domattr.php#domattr.props.value
+ */
+ public $value;
+
+ /**
+ * Checks if attribute is a defined ID
+ * @link https://php.net/manual/en/domattr.isid.php
+ * @return bool true on success or false on failure.
+ */
+ public function isId() {}
+
+ /**
+ * Creates a new {@see DOMAttr} object
+ * @link https://php.net/manual/en/domattr.construct.php
+ * @param string $name
The tag name of the attribute.
+ * @param string $value [optional]
The value of the attribute.
+ */
+ public function __construct($name, $value) {}
+}
+
+/**
+ * The DOMElement class
+ * @link https://php.net/manual/en/class.domelement.php
+ */
+class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode {
+
+
+ /**
+ * @var DOMElement|null
+ * The parent of this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.parentnode
+ */
+ public $parentNode;
+
+ /**
+ * @var DOMElement|null
+ * The first child of this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.firstchild
+ */
+ public $firstChild;
+
+ /**
+ * @var DOMElement|null
+ * The last child of this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.lastchild
+ */
+ public $lastChild;
+
+ /**
+ * @var DOMElement|null
+ * The node immediately preceding this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.previoussibling
+ */
+ public $previousSibling;
+
+ /**
+ * @var DOMElement|null
+ * The node immediately following this node. If there is no such node, this returns NULL.
+ * @link https://php.net/manual/en/class.domnode.php#domnode.props.nextsibling
+ */
+ public $nextSibling;
+
+ /**
+ * @var bool
+ * Not implemented yet, always return NULL
+ * @link https://php.net/manual/en/class.domelement.php#domelement.props.schematypeinfo
+ */
+ public $schemaTypeInfo ;
+
+ /**
+ * @var string
+ * The element name
+ * @link https://php.net/manual/en/class.domelement.php#domelement.props.tagname
+ */
+ public $tagName ;
+
+ /**
+ * Returns value of attribute
+ * @link https://php.net/manual/en/domelement.getattribute.php
+ * @param string $qualifiedName
+ * The name of the attribute.
+ *
+ * @return string The value of the attribute, or an empty string if no attribute with the
+ * given name is found.
+ */
+ public function getAttribute ($qualifiedName) {}
+
+ /**
+ * Adds new attribute
+ * @link https://php.net/manual/en/domelement.setattribute.php
+ * @param string $qualifiedName
+ * The name of the attribute.
+ *
+ * @param string $value
+ * The value of the attribute.
+ *
+ * @return DOMAttr|false The new DOMAttr or false if an error occurred.
+ */
+ public function setAttribute ($qualifiedName, $value) {}
+
+ /**
+ * Removes attribute
+ * @link https://php.net/manual/en/domelement.removeattribute.php
+ * @param string $qualifiedName
+ * The name of the attribute.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function removeAttribute ($qualifiedName) {}
+
+ /**
+ * Returns attribute node
+ * @link https://php.net/manual/en/domelement.getattributenode.php
+ * @param string $qualifiedName
+ * The name of the attribute.
+ *
+ * @return DOMAttr The attribute node.
+ */
+ public function getAttributeNode ($qualifiedName) {}
+
+ /**
+ * Adds new attribute node to element
+ * @link https://php.net/manual/en/domelement.setattributenode.php
+ * @param DOMAttr $attr
+ * The attribute node.
+ *
+ * @return DOMAttr|null Old node if the attribute has been replaced or null.
+ */
+ public function setAttributeNode (DOMAttr $attr) {}
+
+ /**
+ * Removes attribute
+ * @link https://php.net/manual/en/domelement.removeattributenode.php
+ * @param DOMAttr $qualifiedName
+ * The attribute node.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function removeAttributeNode (DOMAttr $qualifiedName) {}
+
+ /**
+ * Gets elements by tagname
+ * @link https://php.net/manual/en/domelement.getelementsbytagname.php
+ * @param string $qualifiedName
+ * The tag name. Use * to return all elements within
+ * the element tree.
+ *
+ * @return DOMNodeList This function returns a new instance of the class
+ * DOMNodeList of all matched elements.
+ */
+ public function getElementsByTagName ($qualifiedName) {}
+
+ /**
+ * Returns value of attribute
+ * @link https://php.net/manual/en/domelement.getattributens.php
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @param string $localName
+ * The local name.
+ *
+ * @return string The value of the attribute, or an empty string if no attribute with the
+ * given localName and namespaceURI
+ * is found.
+ */
+ public function getAttributeNS ($namespace, $localName) {}
+
+ /**
+ * Adds new attribute
+ * @link https://php.net/manual/en/domelement.setattributens.php
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @param string $qualifiedName
+ * The qualified name of the attribute, as prefix:tagname.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function removeAttributeNS ($namespace, $localName) {}
+
+ /**
+ * Returns attribute node
+ * @link https://php.net/manual/en/domelement.getattributenodens.php
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @param string $localName
+ * The local name.
+ *
+ * @return DOMAttr The attribute node.
+ */
+ public function getAttributeNodeNS ($namespace, $localName) {}
+
+ /**
+ * Adds new attribute node to element
+ * @link https://php.net/manual/en/domelement.setattributenodens.php
+ * @param DOMAttr $attr
+ * @return DOMAttr the old node if the attribute has been replaced.
+ */
+ public function setAttributeNodeNS (DOMAttr $attr) {}
+
+ /**
+ * Get elements by namespaceURI and localName
+ * @link https://php.net/manual/en/domelement.getelementsbytagnamens.php
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @param string $localName
+ * The local name. Use * to return all elements within
+ * the element tree.
+ *
+ * @return DOMNodeList This function returns a new instance of the class
+ * DOMNodeList of all matched elements in the order in
+ * which they are encountered in a preorder traversal of this element tree.
+ */
+ public function getElementsByTagNameNS ($namespace, $localName) {}
+
+ /**
+ * Checks to see if attribute exists
+ * @link https://php.net/manual/en/domelement.hasattribute.php
+ * @param string $qualifiedName
+ * The attribute name.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function hasAttribute ($qualifiedName) {}
+
+ /**
+ * Checks to see if attribute exists
+ * @link https://php.net/manual/en/domelement.hasattributens.php
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @param string $localName
+ * The local name.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function hasAttributeNS ($namespace, $localName) {}
+
+ /**
+ * Declares the attribute specified by name to be of type ID
+ * @link https://php.net/manual/en/domelement.setidattribute.php
+ * @param string $qualifiedName
+ * The name of the attribute.
+ *
+ * @param bool $isId
+ * Set it to true if you want name to be of type
+ * ID, false otherwise.
+ *
+ * @return void
+ */
+ public function setIdAttribute ($qualifiedName, $isId) {}
+
+ /**
+ * Declares the attribute specified by local name and namespace URI to be of type ID
+ * @link https://php.net/manual/en/domelement.setidattributens.php
+ * @param string $namespace
+ * The namespace URI of the attribute.
+ *
+ * @param string $qualifiedName
+ * The local name of the attribute, as prefix:tagname.
+ *
+ * @param bool $isId
+ * Set it to true if you want name to be of type
+ * ID, false otherwise.
+ *
+ * @return void
+ */
+ public function setIdAttributeNS ($namespace, $qualifiedName, $isId) {}
+
+ /**
+ * Declares the attribute specified by node to be of type ID
+ * @link https://php.net/manual/en/domelement.setidattributenode.php
+ * @param DOMAttr $attr
+ * The attribute node.
+ *
+ * @param bool $isId
+ * Set it to true if you want name to be of type
+ * ID, false otherwise.
+ *
+ * @return void
+ */
+ public function setIdAttributeNode (DOMAttr $attr, $isId) {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function remove(): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function before(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function after(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function replaceWith(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function append(...$nodes): void {}
+
+ /**
+ * {@inheritDoc}
+ */
+ public function prepend(...$nodes): void {}
+
+ /**
+ * Creates a new DOMElement object
+ * @link https://php.net/manual/en/domelement.construct.php
+ * @param string $qualifiedName The tag name of the element. When also passing in namespaceURI, the element name may take a prefix to be associated with the URI.
+ * @param string|null $value [optional] The value of the element.
+ * @param string|null $namespace [optional] A namespace URI to create the element within a specific namespace.
+ */
+ public function __construct ($qualifiedName, $value = null, $namespace = null) {}
+
+}
+
+/**
+ * The DOMText class inherits from DOMCharacterData and represents the textual content of
+ * a DOMElement or DOMAttr.
+ * @link https://php.net/manual/en/class.domtext.php
+ */
+class DOMText extends DOMCharacterData {
+
+ /**
+ * Holds all the text of logically-adjacent (not separated by Element, Comment or Processing Instruction) Text nodes.
+ * @link https://php.net/manual/en/class.domtext.php#domtext.props.wholeText
+ */
+ public $wholeText;
+
+ /**
+ * Breaks this node into two nodes at the specified offset
+ * @link https://php.net/manual/en/domtext.splittext.php
+ * @param int $offset
+ * The offset at which to split, starting from 0.
+ *
+ * @return DOMText The new node of the same type, which contains all the content at and after the
+ * offset.
+ */
+ public function splitText ($offset) {}
+
+ /**
+ * Indicates whether this text node contains whitespace
+ * @link https://php.net/manual/en/domtext.iswhitespaceinelementcontent.php
+ * @return bool true on success or false on failure.
+ */
+ public function isWhitespaceInElementContent () {}
+
+ public function isElementContentWhitespace () {}
+
+ /**
+ * @param $content
+ */
+ public function replaceWholeText ($content) {}
+
+ /**
+ * Creates a new DOMText object
+ * @link https://php.net/manual/en/domtext.construct.php
+ * @param string $data [optional] The value of the text node. If not supplied an empty text node is created.
+ */
+ public function __construct ($data) {}
+
+}
+
+/**
+ * The DOMComment class represents comment nodes,
+ * characters delimited by lt;!-- and -->.
+ * @link https://php.net/manual/en/class.domcomment.php
+ */
+class DOMComment extends DOMCharacterData {
+
+ /**
+ * Creates a new DOMComment object
+ * @link https://php.net/manual/en/domcomment.construct.php
+ * @param string $data [optional] The value of the comment
+ */
+ public function __construct ($data) {}
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMTypeinfo {
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMUserDataHandler {
+
+ public function handle () {}
+
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMDomError {
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMErrorHandler {
+
+ /**
+ * @param DOMDomError $error
+ */
+ public function handleError (DOMDomError $error) {}
+
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMLocator {
+}
+
+/**
+ * @removed 8.0
+ */
+class DOMConfiguration {
+
+ /**
+ * @param $name
+ * @param $value
+ */
+ public function setParameter ($name, $value) {}
+
+ /**
+ * @param $name [optional]
+ */
+ public function getParameter ($name) {}
+
+ /**
+ * @param $name [optional]
+ * @param $value [optional]
+ */
+ public function canSetParameter ($name, $value) {}
+
+}
+
+/**
+ * The DOMCdataSection inherits from DOMText for textural representation of CData constructs.
+ * @link https://secure.php.net/manual/en/class.domcdatasection.php
+ */
+class DOMCdataSection extends DOMText {
+
+ /**
+ * The value of the CDATA node. If not supplied, an empty CDATA node is created.
+ * @param string $data The value of the CDATA node. If not supplied, an empty CDATA node is created.
+ * @link https://secure.php.net/manual/en/domcdatasection.construct.php
+ */
+ public function __construct ($data) {}
+}
+
+/**
+ * The DOMDocumentType class
+ * @link https://php.net/manual/en/class.domdocumenttype.php
+ */
+class DOMDocumentType extends DOMNode
+{
+
+ /**
+ * @var string
+ * The public identifier of the external subset.
+ * @link https://php.net/manual/en/class.domdocumenttype.php#domdocumenttype.props.publicid
+ */
+ public $publicId;
+
+ /**
+ * @var string
+ * The system identifier of the external subset. This may be an absolute URI or not.
+ * @link https://php.net/manual/en/class.domdocumenttype.php#domdocumenttype.props.systemid
+ */
+ public $systemId;
+
+ /**
+ * @var string
+ * The name of DTD; i.e., the name immediately following the DOCTYPE keyword.
+ * @link https://php.net/manual/en/class.domdocumenttype.php#domdocumenttype.props.name
+ */
+ public $name;
+
+ /**
+ * @var DOMNamedNodeMap
+ * A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD.
+ * @link https://php.net/manual/en/class.domdocumenttype.php#domdocumenttype.props.entities
+ */
+ public $entities;
+
+ /**
+ * @var DOMNamedNodeMap
+ * A DOMNamedNodeMap containing the notations declared in the DTD.
+ * @link https://php.net/manual/en/class.domdocumenttype.php#domdocumenttype.props.notations
+ */
+ public $notations;
+
+ /**
+ * @var string|null
+ * The internal subset as a string, or null if there is none. This is does not contain the delimiting square brackets.
+ * @link https://php.net/manual/en/class.domdocumenttype.php#domdocumenttype.props.internalsubset
+ */
+ public $internalSubset;
+}
+
+/**
+ * The DOMNotation class
+ * @link https://php.net/manual/en/class.domnotation.php
+ */
+class DOMNotation extends DOMNode{
+
+
+ /**
+ * @var string
+ *
+ * @link https://php.net/manual/en/class.domnotation.php#domnotation.props.publicid
+ */
+ public $publicId;
+
+ /**
+ * @var string
+ *
+ * @link https://php.net/manual/en/class.domnotation.php#domnotation.props.systemid
+ */
+ public $systemId;
+
+}
+
+/**
+ * The DOMEntity class represents a known entity, either parsed or unparsed, in an XML document.
+ * @link https://php.net/manual/en/class.domentity.php
+ */
+class DOMEntity extends DOMNode {
+
+ /**
+ * @var string|null
+ * The public identifier associated with the entity if specified, and NULL otherwise.
+ * @link https://php.net/manual/en/class.domentity.php#domentity.props.publicid
+ */
+ public $publicId ;
+
+ /**
+ * @var string|null
+ * The system identifier associated with the entity if specified, and NULL otherwise. This may be an
+ * absolute URI or not.
+ * @link https://php.net/manual/en/class.domentity.php#domentity.props.systemid
+ */
+ public $systemId ;
+
+ /**
+ * @var string|null
+ * For unparsed entities, the name of the notation for the entity. For parsed entities, this is NULL.
+ * @link https://php.net/manual/en/class.domentity.php#domentity.props.notationname
+ */
+ public $notationName ;
+
+ /**
+ * @var string|null
+ * An attribute specifying the encoding used for this entity at the time of parsing, when it is an external
+ * parsed entity. This is NULL if it an entity from the internal subset or if it is not known.
+ * @link https://php.net/manual/en/class.domentity.php#domentity.props.actualencoding
+ */
+ public $actualEncoding ;
+
+ /**
+ * @var string|null
+ * An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external
+ * parsed entity. This is NULL otherwise.
+ * @link https://php.net/manual/en/class.domentity.php#domentity.props.encoding
+ */
+ public $encoding ;
+
+ /**
+ * @var string|null
+ * An attribute specifying, as part of the text declaration, the version number of this entity, when it is an
+ * external parsed entity. This is NULL otherwise.
+ * @link https://php.net/manual/en/class.domentity.php#domentity.props.version
+ */
+ public $version ;
+
+}
+
+/**
+ * Extends DOMNode.
+ * @link https://php.net/manual/en/class.domentityreference.php
+ */
+class DOMEntityReference extends DOMNode {
+
+ /**
+ * Creates a new DOMEntityReference object
+ * @link https://php.net/manual/en/domentityreference.construct.php
+ * @param string $name The name of the entity reference.
+ */
+ public function __construct ($name) {}
+
+}
+
+/**
+ * The DOMProcessingInstruction class
+ * @link https://php.net/manual/en/class.domprocessinginstruction.php
+ */
+class DOMProcessingInstruction extends DOMNode {
+
+ /**
+ *
+ * @link https://php.net/manual/en/class.domprocessinginstruction.php#domprocessinginstruction.props.target
+ */
+ public $target;
+
+ /**
+ *
+ * @link https://php.net/manual/en/class.domprocessinginstruction.php#domprocessinginstruction.props.data
+ */
+ public $data;
+
+ /**
+ * Creates a new DOMProcessingInstruction object
+ * @link https://php.net/manual/en/domprocessinginstruction.construct.php
+ * @param string $name The tag name of the processing instruction.
+ * @param string $value [optional] The value of the processing instruction.
+ */
+ public function __construct ($name, $value) {}
+
+}
+
+class DOMStringExtend {
+
+ /**
+ * @param $offset32
+ */
+ public function findOffset16 ($offset32) {}
+
+ /**
+ * @param $offset16
+ */
+ public function findOffset32 ($offset16) {}
+
+}
+
+/**
+ * The DOMXPath class (supports XPath 1.0)
+ * @link https://php.net/manual/en/class.domxpath.php
+ */
+class DOMXPath {
+
+
+
+ /**
+ * @var DOMDocument
+ *
+ * @link https://php.net/manual/en/class.domxpath.php#domxpath.props.document
+ */
+ public $document;
+
+ /**
+ * Creates a new DOMXPath object
+ * @link https://php.net/manual/en/domxpath.construct.php
+ * @param DOMDocument $document The DOMDocument associated with the DOMXPath.
+ * @param bool $registerNodeNS [optional] allow global flag to configure query() or evaluate() calls. Since 8.0.
+ */
+ public function __construct (DOMDocument $document, $registerNodeNS = false) {}
+
+ /**
+ * Registers the namespace with the DOMXPath object
+ * @link https://php.net/manual/en/domxpath.registernamespace.php
+ * @param string $prefix
+ * The prefix.
+ *
+ * @param string $namespace
+ * The URI of the namespace.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function registerNamespace ($prefix, $namespace) {}
+
+ /**
+ * Evaluates the given XPath expression
+ * @link https://php.net/manual/en/domxpath.query.php
+ * @param string $expression
+ * The XPath expression to execute.
+ *
+ * @param DOMNode $contextNode [optional]
+ * The optional contextnode can be specified for
+ * doing relative XPath queries. By default, the queries are relative to
+ * the root element.
+ *
+ * @param bool $registerNodeNS [optional]
The optional registerNodeNS can be specified to
+ * disable automatic registration of the context node.
+ * @return DOMNodeList|false a DOMNodeList containing all nodes matching
+ * the given XPath expression. Any expression which does not return nodes
+ * will return an empty DOMNodeList. The return is false if the expression
+ * is malformed or the contextnode is invalid.
+ */
+ public function query ($expression, $contextNode = null, $registerNodeNS = true) {}
+
+ /**
+ * Evaluates the given XPath expression and returns a typed result if possible.
+ * @link https://php.net/manual/en/domxpath.evaluate.php
+ * @param string $expression
+ * The XPath expression to execute.
+ *
+ * @param DOMNode $contextNode [optional]
+ * The optional contextnode can be specified for
+ * doing relative XPath queries. By default, the queries are relative to
+ * the root element.
+ *
+ * @param bool $registerNodeNS [optional]
+ *
+ * The optional registerNodeNS can be specified to disable automatic registration of the context node.
+ *
+ * @return mixed a typed result if possible or a DOMNodeList
+ * containing all nodes matching the given XPath expression.
+ */
+ public function evaluate ($expression, $contextNode = null, $registerNodeNS = true) {}
+
+ /**
+ * Register PHP functions as XPath functions
+ * @link https://php.net/manual/en/domxpath.registerphpfunctions.php
+ * @param string|string[] $restrict [optional]
+ * Use this parameter to only allow certain functions to be called from XPath.
+ *
+ *
+ * This parameter can be either a string (a function name) or
+ * an array of function names.
+ *
Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-collection.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the collection.
+ */
+ public function toArray(): array;
+ }
+
+ /**
+ * Hashable is an interface which allows objects to be used as keys. It’s
+ * an alternative to spl_object_hash(), which determines an object’s hash
+ * based on its handle: this means that two objects that are considered
+ * equal by an implicit definition would not treated as equal because they
+ * are not the same instance.
+ *
+ * hash() is used to return a scalar value to be used as the object's hash
+ * value, which determines where it goes in the hash table. While this value
+ * does not have to be unique, objects which are equal must have the same
+ * hash value.
+ *
+ * equals() is used to determine if two objects are equal. It's guaranteed
+ * that the comparing object will be an instance of the same class as the
+ * subject.
+ * @package Ds
+ */
+ interface Hashable
+ {
+ /**
+ * Determines whether another object is equal to the current instance.
+ *
+ * This method allows objects to be used as keys in structures such as
+ * Ds\Map and Ds\Set, or any other lookup structure that honors this
+ * interface.
+ *
+ * Note: It's guaranteed that $obj is an instance of the same class.
+ *
+ * Caution: It's important that objects which are equal also have the
+ * same hash value.
+ * @see https://www.php.net/manual/en/ds-hashable.hash.php
+ * @link https://www.php.net/manual/en/ds-hashable.equals.php
+ * @param object $obj The object to compare the current instance to,
+ * which is always an instance of the same class.
+ *
+ * @return bool True if equal, false otherwise.
+ */
+ public function equals($obj): bool;
+
+ /**
+ * Returns a scalar value to be used as the hash value of the objects.
+ *
+ * While the hash value does not define equality, all objects that are
+ * equal according to Ds\Hashable::equals() must have the same hash
+ * value. Hash values of equal objects don't have to be unique, for
+ * example you could just return TRUE for all objects and nothing
+ * would break - the only implication would be that hash tables then
+ * turn into linked lists because all your objects will be hashed to
+ * the same bucket. It's therefore very important that you pick a good
+ * hash value, such as an ID or email address.
+ *
+ * This method allows objects to be used as keys in structures such as
+ * Ds\Map and Ds\Set, or any other lookup structure that honors this
+ * interface.
+ *
+ * Caution: Do not pick a value that might change within the object,
+ * such as a public property. Hash table lookups would fail because
+ * the hash has changed.
+ *
+ * Caution: All objects that are equal must have the same hash value.
+ *
+ * @return mixed A scalar value to be used as this object's hash value.
+ * @link https://www.php.net/manual/en/ds-hashable.hash.php
+ */
+ public function hash();
+ }
+
+ /**
+ * A Sequence describes the behaviour of values arranged in a single,
+ * linear dimension. Some languages refer to this as a "List". It’s
+ * similar to an array that uses incremental integer keys, with the
+ * exception of a few characteristics:
+ *
Values will always be indexed as [0, 1, 2, …, size - 1].
+ *
Only allowed to access values by index in the range [0, size - 1].
+ *
+ *
Use cases:
+ *
+ *
Wherever you would use an array as a list (not concerned with keys).
+ *
A more efficient alternative to SplDoublyLinkedList and SplFixedArray.
+ * @package Ds
+ */
+ interface Sequence extends Collection
+ {
+ /**
+ * Ensures that enough memory is allocated for a required capacity.
+ * This removes the need to reallocate the internal as values are added.
+ *
+ * @param int $capacity The number of values for which capacity should
+ * be allocated.
Note: Capacity will stay the same if this value is
+ * less than or equal to the current capacity.
+ * @link https://www.php.net/manual/en/ds-sequence.allocate.php
+ */
+ public function allocate(int $capacity): void;
+
+ /**
+ * Updates all values by applying a callback function to each value in
+ * the sequence.
+ * @param callable $callback A callable to apply to each value in the
+ * sequence. The callback should return what the value should be
+ * replaced by.
+ * callback ( mixed $value ) : mixed
+ * @link https://www.php.net/manual/en/ds-sequence.apply.php
+ */
+ public function apply(callable $callback): void;
+
+ /**
+ * Returns the current capacity.
+ * @return int The current capacity.
+ * @link https://www.php.net/manual/en/ds-sequence.capacity.php
+ */
+ public function capacity(): int;
+
+ /**
+ * Determines if the sequence contains all values.
+ * @param mixed $values Values to check.
+ * @return bool FALSE if any of the provided values are not in the
+ * sequence, TRUE otherwise.
+ * @link https://www.php.net/manual/en/ds-sequence.contains.php
+ */
+ public function contains(...$values): bool;
+
+ /**
+ * Creates a new sequence using a callable to determine which values
+ * to include.
+ * @param callable $callback Optional callable which returns TRUE if the
+ * value should be included, FALSE otherwise. If a callback is not
+ * provided, only values which are TRUE (see converting to boolean) will
+ * be included.
+ * callback ( mixed $value ) : bool
+ * @return Sequence A new sequence containing all the values for which
+ * either the callback returned TRUE, or all values that convert to
+ * TRUE if a callback was not provided.
+ * @link https://www.php.net/manual/en/ds-sequence.filter.php
+ */
+ public function filter(callable $callback = null);
+
+ /**
+ * Returns the index of the value, or FALSE if not found.
+ * @param mixed $value The value to find.
+ * @return int|false The index of the value, or FALSE if not found.
+ * @link https://www.php.net/manual/en/ds-sequence.find.php
+ */
+ public function find($value);
+
+ /**
+ * Returns the first value in the sequence.
+ * @return mixed The first value in the sequence.
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-sequence.first.php
+ */
+ public function first();
+
+ /**
+ * Returns the value at a given index.
+ * @param int $index The index to access, starting at 0.
+ * @return mixed The value at the requested index.
+ * @throws OutOfRangeException if the index is not valid.
+ * @link https://www.php.net/manual/en/ds-sequence.get.php
+ */
+ public function get(int $index);
+
+ /**
+ * Inserts values into the sequence at a given index.
+ *
+ * @param int $index The index at which to insert. 0 <= index <= count
+ *
Note: You can insert at the index equal to the number of values.
+ * @param mixed ...$values The value or values to insert.
+ * @throws OutOfRangeException if the index is not valid.
+ * @link https://www.php.net/manual/en/ds-sequence.insert.php
+ */
+ public function insert(int $index, ...$values): void;
+
+ /**
+ * Joins all values together as a string using an optional separator
+ * between each value.
+ * @param string $glue An optional string to separate each value.
+ * @return string All values of the sequence joined together as a
+ * string.
+ * @link https://www.php.net/manual/en/ds-sequence.join.php
+ */
+ public function join(string $glue = ''): string;
+
+ /**
+ * Returns the last value in the sequence.
+ * @return mixed The last value in the sequence.
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-sequence.last.php
+ */
+ public function last();
+
+ /**
+ * Returns the result of applying a callback function to each value in
+ * the sequence.
+ * @param callable $callback A callable to apply to each value in the
+ * sequence.
+ * The callable should return what the new value will be in the new
+ * sequence.
+ * callback ( mixed $value ) : mixed
+ * @return Sequence The result of applying a callback to each value in
+ * the sequence.
Note: The values of the current instance won't be
+ * affected.
+ * @link https://www.php.net/manual/en/ds-sequence.map.php
+ */
+ public function map(callable $callback);
+
+ /**
+ * Returns the result of adding all given values to the sequence.
+ * @param array|Traversable $values A traversable object or an array.
+ * @return Sequence The result of adding all given values to the
+ * sequence, effectively the same as adding the values to a copy,
+ * then returning that copy.
+ * @link https://www.php.net/manual/en/ds-sequence.merge.php
+ */
+ public function merge($values);
+
+ /**
+ * Removes and returns the last value.
+ * @return mixed The removed last value.
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-sequence.pop.php
+ */
+ public function pop();
+
+ /**
+ * Adds values to the end of the sequence.
+ * @param mixed ...$values The values to add.
+ */
+ public function push(...$values): void;
+
+ /**
+ * Reduces the sequence to a single value using a callback function.
+ * @param callable $callback
+ *
+ * callback ( mixed $carry , mixed $value ) : mixed
+ * $carry The return value of the previous callback, or initial if it's
+ * the first iteration.
+ * $value The value of the current iteration.
+ * @param mixed $initial The initial value of the carry value. Can be NULL.
+ * @return mixed The return value of the final callback.
+ * @link https://www.php.net/manual/en/ds-sequence.reduce.php
+ */
+ public function reduce(callable $callback, $initial = null);
+
+ /**
+ * Removes and returns a value by index.
+ * @param int $index The index of the value to remove.
+ * @return mixed The value that was removed.
+ * @link https://www.php.net/manual/en/ds-sequence.remove.php
+ */
+ public function remove(int $index);
+
+ /**
+ * Reverses the sequence in-place.
+ * @link https://www.php.net/manual/en/ds-sequence.reverse.php
+ */
+ public function reverse(): void;
+
+ /**
+ * Returns a reversed copy of the sequence.
+ * @return Sequence A reversed copy of the sequence.
+ *
Note: The current instance is not affected.
+ */
+ public function reversed();
+
+ /**
+ * Rotates the sequence by a given number of rotations, which is
+ * equivalent to successively calling
+ * $sequence->push($sequence->shift()) if the number of rotations is
+ * positive, or $sequence->unshift($sequence->pop()) if negative.
+ * @param int $rotations The number of times the sequence should be
+ * rotated.
+ * @link https://www.php.net/manual/en/ds-sequence.rotate.php
+ */
+ public function rotate(int $rotations): void;
+
+ /**
+ * Updates a value at a given index.
+ * @param int $index The index of the value to update.
+ * @param mixed $value The new value.
+ * @throws OutOfRangeException if the index is not valid.
+ * @link https://www.php.net/manual/en/ds-sequence.set.php
+ */
+ public function set(int $index, $value): void;
+
+ /**
+ * Removes and returns the first value.
+ * @return mixed
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-sequence.shift.php
+ */
+ public function shift();
+
+ /**
+ * Creates a sub-sequence of a given range.
+ * @param int $index The index at which the sub-sequence starts.
+ * If positive, the sequence will start at that index in the sequence.
+ * If negative, the sequence will start that far from the end.
+ * @param int|null $length If a length is given and is positive, the
+ * resulting sequence will have up to that many values in it. If the
+ * length results in an overflow, only values up to the end of the
+ * sequence will be included. If a length is given and is negative,
+ * the sequence will stop that many values from the end. If a length
+ * is not provided, the resulting sequence will contain all values
+ * between the index and the end of the sequence.
+ * @return Sequence A sub-sequence of the given range.
+ * @link https://www.php.net/manual/en/ds-sequence.slice.php
+ */
+ public function slice(int $index, int $length = null);
+
+ /**
+ * Sorts the sequence in-place, using an optional comparator function.
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ *
Caution: Returning non-integer values from the comparison
+ * function, such as float, will result in an internal cast to integer
+ * of the callback's return value. So values such as 0.99 and 0.1 will
+ * both be cast to an integer value of 0, which will compare such
+ * values as equal.
+ * @link https://www.php.net/manual/en/ds-sequence.sort.php
+ */
+ public function sort(?callable $comparator = null): void;
+
+ /**
+ * Returns a sorted copy, using an optional comparator function.
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ *
Caution: Returning non-integer values from the comparison
+ * function, such as float, will result in an internal cast to integer
+ * of the callback's return value. So values such as 0.99 and 0.1 will
+ * both be cast to an integer value of 0, which will compare such
+ * values as equal.
+ * @return Sequence Returns a sorted copy of the sequence.
+ * @link https://www.php.net/manual/en/ds-sequence.sort.php
+ */
+ public function sorted(?callable $comparator = null);
+
+ /**
+ * Returns the sum of all values in the sequence.
+ *
Note: Arrays and objects are considered equal to zero when
+ * calculating the sum.
+ * @return float|int The sum of all the values in the sequence as
+ * either a float or int depending on the values in the sequence.
+ */
+ public function sum(): float;
+
+ /**
+ * Adds values to the front of the sequence, moving all the current
+ * values forward to make room for the new values.
+ * @param mixed $values The values to add to the front of the sequence.
+ *
Note: Multiple values will be added in the same order that they
+ * are passed.
+ */
+ public function unshift($values): void;
+ }
+
+
+ /**
+ * A Vector is a sequence of values in a contiguous buffer that grows and
+ * shrinks automatically. It’s the most efficient sequential structure
+ * because a value’s index is a direct mapping to its index in the buffer,
+ * and the growth factor isn't bound to a specific multiple or exponent.
+ *
+ *
Strengths
+ *
Supports array syntax (square brackets).
+ *
Uses less overall memory than an array for the same number of values.
+ *
Automatically frees allocated memory when its size drops low enough.
+ *
Capacity does not have to be a power of 2.
+ *
get(), set(), push(), pop() are all O(1).
+ *
+ *
Weaknesses
+ *
shift(), unshift(), insert() and remove() are all O(n).
+ *
+ * @link https://www.php.net/manual/en/class.ds-vector.php
+ *
+ * @package Ds
+ */
+ class Vector implements Sequence
+ {
+
+ const MIN_CAPACITY = 10;
+
+ /**
+ * Creates a new instance, using either a traversable object or an array for the initial values.
+ *
+ * @param array|Traversable $values
+ */
+ public function __construct($values = null)
+ {
+ }
+
+
+ /**
+ * Ensures that enough memory is allocated for a required capacity.
+ * This removes the need to reallocate the internal as values are added.
+ * @param int $capacity The number of values for which capacity should
+ * be allocated.
+ *
Note: Capacity will stay the same if this value is less than or
+ * equal to the current capacity.
+ * @link https://www.php.net/manual/en/ds-vector.allocate.php
+ */
+ public function allocate(int $capacity): void
+ {
+ }
+
+ /**
+ * Updates all values by applying a callback function to each value in
+ * the vector.
+ * @param callable $callback
+ * callback ( mixed $value ) : mixed
+ * A callable to apply to each value in the vector. The callback should
+ * return what the value should be replaced by.
+ * @link https://www.php.net/manual/en/ds-vector.apply.php
+ */
+ public function apply(callable $callback): void
+ {
+ }
+
+ /**
+ * Returns the current capacity.
+ * @return int The current capacity.
+ * @link https://www.php.net/manual/en/ds-vector.capacity.php
+ */
+ public function capacity(): int
+ {
+ }
+
+ /**
+ * Removes all values from the vector.
+ * @link https://www.php.net/manual/en/ds-vector.clear.php
+ */
+ public function clear(): void
+ {
+ }
+
+ /**
+ * Determines if the vector contains all values.
+ * @param mixed ...$values Values to check.
+ * @return bool FALSE if any of the provided values are not in the
+ * vector, TRUE otherwise.
+ * @link https://www.php.net/manual/en/ds-vector.contains.php
+ */
+ public function contains(...$values): bool
+ {
+ }
+
+ /**
+ *Returns a shallow copy of the vector.
+ * @return Vector Returns a shallow copy of the vector.
+ */
+ public function copy(): Vector
+ {
+ }
+
+ /**
+ * Creates a new vector using a callable to determine which values to
+ * include.
+ *
+ * @param callable $callback
+ * Optional callable which returns TRUE if the value should be included,
+ * FALSE otherwise. If a callback is not provided, only values which are
+ * TRUE (see converting to boolean) will be included.
+ * callback ( mixed $value ) : bool
+ * @return Vector A new vector containing all the values for which
+ * either the callback returned TRUE, or all values that convert to
+ * TRUE if a callback was not provided.
+ * @link https://www.php.net/manual/en/ds-vector.filter.php
+ */
+ public function filter(callable $callback = null): Vector
+ {
+ }
+
+ /**
+ * Returns the index of the value, or FALSE if not found.
+ * @param mixed $value The value to find.
+ * @return mixed|false The index of the value, or FALSE if not found.
+ *
Note: Values will be compared by value and by type.
+ * @link https://www.php.net/manual/en/ds-vector.find.php
+ */
+ public function find($value)
+ {
+ }
+
+ /**
+ * Returns the first value in the vector.
+ * @return mixed
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-vector.first.php
+ */
+ public function first()
+ {
+ }
+
+ /**
+ * Returns the value at a given index.
+ * @param int $index The index to access, starting at 0.
+ * @return mixed
+ * @link https://www.php.net/manual/en/ds-vector.get.php
+ */
+ public function get(int $index)
+ {
+ }
+
+ /**
+ * Inserts values into the sequence at a given index.
+ *
+ * @param int $index The index at which to insert. 0 <= index <= count
+ * Note:
+ * You can insert at the index equal to the number of values.
+ * @param array $values The value or values to insert.
+ * @link https://www.php.net/manual/en/ds-vector.insert.php
+ */
+ public function insert(int $index, ...$values): void
+ {
+ }
+
+ /**
+ * Joins all values together as a string using an optional separator between each value.
+ *
+ * @param string|null $glue An optional string to separate each value.
+ * @return string All values of the sequence joined together as a string.
+ * @link https://www.php.net/manual/en/ds-vector.join.php
+ */
+ public function join(?string $glue = null): string
+ {
+ }
+
+ /**
+ * Returns the last value in the sequence.
+ *
+ * @return mixed The last value in the sequence.
+ * @link https://www.php.net/manual/en/ds-vector.last.php
+ */
+ public function last()
+ {
+ }
+
+ /**
+ * Returns the result of applying a callback function to each value in the sequence.
+ *
+ * @param callable $callback A callable to apply to each value in the sequence.
+ * The callable should return what the new value will be in the new sequence.
+ *
+ * @return Vector
+ * @link https://www.php.net/manual/en/ds-vector.map.php
+ */
+ public function map(callable $callback): Vector
+ {
+ }
+
+ /**
+ * Returns the result of adding all given values to the sequence.
+ *
+ * @param Traversable|array $values A traversable object or an array.
+ * @return Vector The result of adding all given values to the sequence, effectively the same as adding the
+ * values to a copy, then returning that copy.
+ * Note:
+ * The current instance won't be affected.
+ * @link https://www.php.net/manual/en/ds-vector.merge.php
+ */
+ public function merge($values): Vector
+ {
+ }
+
+ /**
+ * Removes and returns the last value.
+ *
+ * @return mixed
+ * @link https://www.php.net/manual/en/ds-vector.pop.php
+ */
+ public function pop()
+ {
+ }
+
+ /**
+ * Adds values to the end of the sequence.
+ * @param array $values
+ * @link https://www.php.net/manual/en/ds-vector.push.php
+ */
+ public function push(...$values): void
+ {
+ }
+
+ /**
+ * Reduces the sequence to a single value using a callback function.
+ * @param callable $callback
+ * callback ( mixed $carry , mixed $value ) : mixed
+ * carry The return value of the previous callback, or initial if it's the first iteration.
+ * value The value of the current iteration.
+ * @param mixed $initial The initial value of the carry value. Can be NULL.
+ *
+ * @return mixed|void The return value of the final callback.
+ *
+ * @link https://www.php.net/manual/en/ds-vector.reduce.php
+ */
+ public function reduce(callable $callback, $initial = null)
+ {
+ }
+
+ /**
+ * Removes and returns a value by index.
+ * @param int $index The index of the value to remove.
+ * @return mixed The value that was removed.
+ * @link https://www.php.net/manual/en/ds-vector.remove.php
+ */
+ public function remove(int $index)
+ {
+ }
+
+ /**
+ * Reverses the sequence in-place.
+ * @link https://www.php.net/manual/en/ds-vector.reverse.php
+ */
+ public function reverse(): void
+ {
+ }
+
+ /**
+ * Returns a reversed copy of the sequence.
+ * @return Vector A reversed copy of the sequence.
+ * Note: The current instance is not affected.
+ * @link https://www.php.net/manual/en/ds-vector.reversed.php
+ */
+ public function reversed(): Vector
+ {
+ }
+
+ /**
+ * Rotates the sequence by a given number of rotations, which is
+ * equivalent to successively calling $sequence->push($sequence->shift())
+ * if the number of rotations is positive, or $sequence->unshift($sequence->pop())
+ * if negative.
+ *
+ * @link https://www.php.net/manual/en/ds-vector.rotate.php
+ *
+ * @param int $rotations The number of times the sequence should be rotated.
+ */
+ public function rotate(int $rotations): void
+ {
+ }
+
+ /**
+ * Updates a value at a given index.
+ *
+ * @link https://www.php.net/manual/en/ds-vector.set.php
+ *
+ * @param int $index The index of the value to update.
+ * @param mixed $value The new value.
+ *
+ * @throws OutOfRangeException if the index is not valid.
+ */
+ public function set(int $index, $value): void
+ {
+ }
+
+ /**
+ * Removes and returns the first value.
+ *
+ * @link https://www.php.net/manual/en/ds-vector.shift.php
+ *
+ * @return mixed The first value, which was removed.
+ * @throws UnderflowException if empty.
+ */
+ public function shift()
+ {
+ }
+
+ /**
+ * Creates a sub-sequence of a given range.
+ * @link https://www.php.net/manual/en/ds-vector.slice.php
+ * @param int $index The index at which the sub-sequence starts. If
+ * positive, the sequence will start at that
+ * index in the sequence. If negative, the sequence will start that
+ * far from the end.
+ * @param int|null $length If a length is given and is positive, the
+ * resulting sequence will have up to that many values in it. If the
+ * length results in an overflow, only values up to the end of the
+ * sequence will be included. If a length is given and is negative,
+ * the sequence will stop that many values from the end. If a length
+ * is not provided, the resulting sequence will contain all values
+ * between the index and the end of the sequence.
+ * @return Vector
+ */
+ public function slice(int $index, int $length = null): Vector
+ {
+ }
+
+ /**
+ * Sorts the sequence in-place, using an optional comparator function.
+ * @link https://www.php.net/manual/en/ds-vector.sort.php
+ * @param callable|null $comparator The comparison function must return an
+ * integer less than, equal to, or greater
+ * than zero if the first argument is considered to be respectively less than, equal to, or greater than the
+ * second. Note that before PHP 7.0.0 this integer had to be in the
+ * range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ * Caution: Returning non-integer values from the comparison function,
+ * such as float, will result in an
+ * internal cast to integer of the callback's return value. So values
+ * such as 0.99 and 0.1 will both be cast to an integer value of 0,
+ * which will compare such values as equal.
+ */
+ public function sort(?callable $comparator = null): void
+ {
+ }
+
+ /**
+ * Returns a sorted copy, using an optional comparator function.
+ * @link https://www.php.net/manual/en/ds-vector.sorted.php
+ * @param callable|null $comparator The comparison function must return an integer less than, equal to, or
+ * greater than zero if the first argument is considered to be respectively less than, equal to, or greater
+ * than the second. Note that before PHP 7.0.0 this integer had to be in the range from -2147483648 to
+ * 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ * Caution: Returning non-integer values from the comparison function, such as float, will result in an
+ * internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to
+ * an integer value of 0, which will compare such values as equal.
+ * @return Vector Returns a sorted copy of the sequence.
+ */
+ public function sorted(?callable $comparator = null): Vector
+ {
+ }
+
+ /**
+ * Returns the sum of all values in the sequence.
+ * Note: Arrays and objects are considered equal to zero when
+ * calculating the sum.
+ * @link https://www.php.net/manual/en/ds-vector.sum.php
+ * @return float
+ */
+ public function sum(): float
+ {
+ }
+
+ /**
+ * Adds values to the front of the sequence, moving all the current
+ * values forward to make room for the new values.
+ * @param mixed $values The values to add to the front of the sequence.
+ * Note: Multiple values will be added in the same order that they are
+ * passed
+ * @link https://www.php.net/manual/en/ds-vector.unshift.php
+ */
+ public function unshift($values): void
+ {
+ }
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/ds-vector.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int
+ {
+ }
+
+ /**
+ * Returns whether the collection is empty.
+ * @link https://www.php.net/manual/en/ds-vector.isempty.php
+ * @return bool
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Converts the collection to an array.
+ *
Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-vector.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the collection.
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/ds-vector.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize()
+ {
+ }
+ }
+
+ class Deque implements Sequence
+ {
+ /**
+ * Creates a new instance, using either a traversable object or an array for the initial values.
+ * @param mixed ...$values A traversable object or an array to use for the initial values.
+ *
+ * @link https://www.php.net/manual/en/ds-deque.construct.php
+ */
+ public function __construct(...$values)
+ {
+ }
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/countable.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int
+ {
+ }
+
+ /**
+ * Removes all values from the deque.
+ * @link https://www.php.net/manual/en/ds-deque.clear.php
+ */
+ public function clear(): void
+ {
+ }
+
+ /**
+ * Returns a shallow copy of the deque.
+ * @link https://www.php.net/manual/en/ds-deque.copy.php
+ * @return Collection
+ */
+ public function copy(): Collection
+ {
+ }
+
+ /**
+ * Returns whether the deque is empty.
+ * @link https://www.php.net/manual/en/ds-deque.isempty.php
+ * @return bool
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Converts the deque to an array.
+ *
Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-deque.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the deque.
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Ensures that enough memory is allocated for a required capacity.
+ * This removes the need to reallocate the internal as values are added.
+ *
+ * @param int $capacity The number of values for which capacity should
+ * be allocated.
Note: Capacity will stay the same if this value is
+ * less than or equal to the current capacity.
+ *
Note: Capacity will always be rounded up to the nearest power of 2.
+ * @link https://www.php.net/manual/en/ds-deque.allocate.php
+ */
+ public function allocate(int $capacity): void
+ {
+ }
+
+ /**
+ * Updates all values by applying a callback function to each value in
+ * the deque.
+ * @param callable $callback A callable to apply to each value in the
+ * deque. The callback should return what the value should be
+ * replaced by.
+ * callback ( mixed $value ) : mixed
+ * @link https://www.php.net/manual/en/ds-deque.apply.php
+ */
+ public function apply(callable $callback): void
+ {
+ }
+
+ /**
+ * Returns the current capacity.
+ * @return int The current capacity.
+ * @link https://www.php.net/manual/en/ds-deque.capacity.php
+ */
+ public function capacity(): int
+ {
+ }
+
+ /**
+ * Determines if the deque contains all values.
+ * @param mixed $values Values to check.
+ * @return bool FALSE if any of the provided values are not in the
+ * deque, TRUE otherwise.
+ * @link https://www.php.net/manual/en/ds-deque.contains.php
+ */
+ public function contains(...$values): bool
+ {
+ }
+
+ /**
+ * Creates a new deque using a callable to determine which values
+ * to include.
+ * @param callable $callback Optional callable which returns TRUE if the
+ * value should be included, FALSE otherwise. If a callback is not
+ * provided, only values which are TRUE (see converting to boolean) will
+ * be included.
+ * callback ( mixed $value ) : bool
+ * @return Deque A new deque containing all the values for which
+ * either the callback returned TRUE, or all values that convert to
+ * TRUE if a callback was not provided.
+ * @link https://www.php.net/manual/en/ds-deque.filter.php
+ */
+ public function filter(callable $callback = null): Deque
+ {
+ }
+
+ /**
+ * Returns the index of the value, or FALSE if not found.
+ * @param mixed $value The value to find.
+ * @return int|false The index of the value, or FALSE if not found.
+ * @link https://www.php.net/manual/en/ds-deque.find.php
+ */
+ public function find($value)
+ {
+ }
+
+ /**
+ * Returns the first value in the deque.
+ * @return mixed The first value in the deque.
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-deque.first.php
+ */
+ public function first()
+ {
+ }
+
+ /**
+ * Returns the value at a given index.
+ * @param int $index The index to access, starting at 0.
+ * @return mixed The value at the requested index.
+ * @throws OutOfRangeException if the index is not valid.
+ * @link https://www.php.net/manual/en/ds-deque.get.php
+ */
+ public function get(int $index)
+ {
+ }
+
+ /**
+ * Inserts values into the deque at a given index.
+ *
+ * @param int $index The index at which to insert. 0 <= index <= count
+ *
Note: You can insert at the index equal to the number of values.
+ * @param mixed ...$values The value or values to insert.
+ * @throws OutOfRangeException if the index is not valid.
+ * @link https://www.php.net/manual/en/ds-deque.insert.php
+ */
+ public function insert(int $index, ...$values): void
+ {
+ }
+
+ /**
+ * Joins all values together as a string using an optional separator
+ * between each value.
+ * @param string $glue An optional string to separate each value.
+ * @return string All values of the deque joined together as a
+ * string.
+ * @link https://www.php.net/manual/en/ds-deque.join.php
+ */
+ public function join(string $glue = ''): string
+ {
+ }
+
+ /**
+ * Returns the last value in the deque.
+ * @return mixed The last value in the deque.
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-deque.last.php
+ */
+ public function last()
+ {
+ }
+
+ /**
+ * Returns the result of applying a callback function to each value in
+ * the deque.
+ * @param callable $callback A callable to apply to each value in the
+ * deque.
+ * The callable should return what the new value will be in the new
+ * deque.
+ * callback ( mixed $value ) : mixed
+ * @return Deque The result of applying a callback to each value in
+ * the deque.
Note: The values of the current instance won't be
+ * affected.
+ * @link https://www.php.net/manual/en/ds-deque.map.php
+ */
+ public function map(callable $callback): Deque
+ {
+ }
+
+ /**
+ * Returns the result of adding all given values to the deque.
+ * @param array|Traversable $values A traversable object or an array.
+ * @return Deque The result of adding all given values to the
+ * deque, effectively the same as adding the values to a copy,
+ * then returning that copy.
+ * @link https://www.php.net/manual/en/ds-deque.merge.php
+ */
+ public function merge($values): Deque
+ {
+ }
+
+ /**
+ * Removes and returns the last value.
+ * @return mixed The removed last value.
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-deque.pop.php
+ */
+ public function pop()
+ {
+ }
+
+ /**
+ * Adds values to the end of the deque.
+ * @param mixed ...$values The values to add.
+ */
+ public function push(...$values): void
+ {
+ }
+
+ /**
+ * Reduces the deque to a single value using a callback function.
+ * @param callable $callback
+ *
+ * callback ( mixed $carry , mixed $value ) : mixed
+ * $carry The return value of the previous callback, or initial if it's
+ * the first iteration.
+ * $value The value of the current iteration.
+ * @param mixed $initial The initial value of the carry value. Can be NULL.
+ * @return mixed The return value of the final callback.
+ * @link https://www.php.net/manual/en/ds-deque.reduce.php
+ */
+ public function reduce(callable $callback, $initial = null)
+ {
+ }
+
+ /**
+ * Removes and returns a value by index.
+ * @param int $index The index of the value to remove.
+ * @return mixed The value that was removed.
+ * @link https://www.php.net/manual/en/ds-deque.remove.php
+ */
+ public function remove(int $index)
+ {
+ }
+
+ /**
+ * Reverses the deque in-place.
+ * @link https://www.php.net/manual/en/ds-deque.reverse.php
+ */
+ public function reverse(): void
+ {
+ }
+
+ /**
+ * Returns a reversed copy of the deque.
+ * @return Deque A reversed copy of the deque.
+ *
Note: The current instance is not affected.
+ */
+ public function reversed(): Deque
+ {
+ }
+
+ /**
+ * Rotates the deque by a given number of rotations, which is
+ * equivalent to successively calling
+ * $deque->push($deque->shift()) if the number of rotations is
+ * positive, or $deque->unshift($deque->pop()) if negative.
+ * @param int $rotations The number of times the deque should be
+ * rotated.
+ * @link https://www.php.net/manual/en/ds-deque.rotate.php
+ */
+ public function rotate(int $rotations): void
+ {
+ }
+
+ /**
+ * Updates a value at a given index.
+ * @param int $index The index of the value to update.
+ * @param mixed $value The new value.
+ * @throws OutOfRangeException if the index is not valid.
+ * @link https://www.php.net/manual/en/ds-deque.set.php
+ */
+ public function set(int $index, $value): void
+ {
+ }
+
+ /**
+ * Removes and returns the first value.
+ * @return mixed
+ * @throws UnderflowException if empty.
+ * @link https://www.php.net/manual/en/ds-deque.shift.php
+ */
+ public function shift()
+ {
+ }
+
+ /**
+ * Creates a sub-deque of a given range.
+ * @param int $index The index at which the sub-deque starts.
+ * If positive, the deque will start at that index in the deque.
+ * If negative, the deque will start that far from the end.
+ * @param int|null $length If a length is given and is positive, the
+ * resulting deque will have up to that many values in it. If the
+ * length results in an overflow, only values up to the end of the
+ * deque will be included. If a length is given and is negative,
+ * the deque will stop that many values from the end. If a length
+ * is not provided, the resulting deque will contain all values
+ * between the index and the end of the deque.
+ * @return Deque A sub-deque of the given range.
+ * @link https://www.php.net/manual/en/ds-deque.slice.php
+ */
+ public function slice(int $index, int $length = null): Deque
+ {
+ }
+
+ /**
+ * Sorts the deque in-place, using an optional comparator function.
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ *
Caution: Returning non-integer values from the comparison
+ * function, such as float, will result in an internal cast to integer
+ * of the callback's return value. So values such as 0.99 and 0.1 will
+ * both be cast to an integer value of 0, which will compare such
+ * values as equal.
+ * @link https://www.php.net/manual/en/ds-deque.sort.php
+ */
+ public function sort(?callable $comparator = null): void
+ {
+ }
+
+ /**
+ * Returns a sorted copy, using an optional comparator function.
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ *
Caution: Returning non-integer values from the comparison
+ * function, such as float, will result in an internal cast to integer
+ * of the callback's return value. So values such as 0.99 and 0.1 will
+ * both be cast to an integer value of 0, which will compare such
+ * values as equal.
+ * @return Deque Returns a sorted copy of the deque.
+ * @link https://www.php.net/manual/en/ds-deque.sort.php
+ */
+ public function sorted(?callable $comparator = null): Deque
+ {
+ }
+
+ /**
+ * Returns the sum of all values in the deque.
+ *
Note: Arrays and objects are considered equal to zero when
+ * calculating the sum.
+ * @return float|int The sum of all the values in the deque as
+ * either a float or int depending on the values in the deque.
+ */
+ public function sum(): float
+ {
+ }
+
+ /**
+ * Adds values to the front of the deque, moving all the current
+ * values forward to make room for the new values.
+ * @param mixed $values The values to add to the front of the deque.
+ *
Note: Multiple values will be added in the same order that they
+ * are passed.
+ */
+ public function unshift($values): void
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/ds-vector.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize()
+ {
+ }
+
+
+ }
+
+ class Map implements Collection
+ {
+ /**
+ * Creates a new instance, using either a traversable object or an array for the initial values.
+ * @param mixed ...$values A traversable object or an array to use for the initial values.
+ *
+ * @link https://www.php.net/manual/en/ds-map.construct.php
+ */
+ public function __construct(...$values)
+ {
+ }
+
+ /**
+ * Allocates enough memory for a required capacity.
+ *
+ * @param int $capacity The number of values for which capacity should be allocated.
+ *
Note: Capacity will stay the same if this value is less than or equal to the current capacity.
+ * Capacity will always be rounded up to the nearest power of 2.
+ *
+ * @link https://www.php.net/manual/en/ds-map.allocate.php
+ */
+ public function allocate(int $capacity)
+ {
+ }
+
+ /**
+ * Updates all values by applying a callback function to each value in the map.
+ *
+ * @param callable $callback A callable to apply to each value in the map. The callback should return what
+ * the value should be replaced by.
+ *
+ * @link https://www.php.net/manual/en/ds-map.apply.php
+ */
+ public function apply(callable $callback)
+ {
+ }
+
+ /**
+ * Returns the current capacity.
+ *
+ * @return int
+ *
+ * @link https://www.php.net/manual/en/ds-map.capacity.php
+ */
+ public function capacity(): int
+ {
+ }
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/countable.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int
+ {
+ }
+
+ /**
+ * Removes all values from the collection.
+ * @link https://www.php.net/manual/en/ds-collection.clear.php
+ */
+ public function clear(): void
+ {
+ }
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-collection.copy.php
+ * @return Collection
+ */
+ public function copy(): Collection
+ {
+ }
+
+ /**
+ * Returns the result of removing all keys from the current instance that are present in a given map.
+ *
+ * A \ B = {x ∈ A | x ∉ B}
+ *
+ * @param Map $map The map containing the keys to exclude in the resulting map.
+ *
+ * @return Map The result of removing all keys from the current instance that are present in a given map.
+ *
+ * @link https://www.php.net/manual/en/ds-map.diff.php
+ */
+ public function diff(Map $map): Map
+ {
+ }
+
+ /**
+ * Creates a new map using a callable to determine which pairs to include
+ *
+ * @param callable $callback Optional callable which returns TRUE if the pair should be included, FALSE
+ * otherwise. If a callback is not provided, only values which are TRUE (see converting to boolean) will be included.
+ *
+ * @return Map
+ *
+ * @link https://www.php.net/manual/en/ds-map.filter.php
+ */
+ public function filter(callable $callback = null): Map
+ {
+ }
+
+ /**
+ * Returns the first pair in the map
+ *
+ * @return Pair The first pair in the map.
+ *
+ * @throws UnderflowException if empty
+ *
+ * @link https://www.php.net/manual/en/ds-map.first.php
+ */
+ public function first(): Pair
+ {
+ }
+
+ /**
+ * Returns the value for a given key, or an optional default value if the key could not be found.
+ *
+ * Note: Keys of type object are supported. If an object implements Ds\Hashable, equality will be
+ * determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.
+ *
+ * Note: You can also use array syntax to access values by key, eg. $map["key"].
+ *
+ * Caution: Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For
+ * example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.
+ *
+ * @param mixed $key The key to look up.
+ * @param mixed $default The optional default value, returned if the key could not be found.
+ *
+ * @return mixed The value mapped to the given key, or the default value if provided and the key could not be found in the map.
+ *
+ * @throws OutOfBoundsException if the key could not be found and a default value was not provided.
+ *
+ * @link https://www.php.net/manual/en/ds-map.get.php
+ */
+ public function get($key, $default = null)
+ {
+ }
+
+ /**
+ * Determines whether the map contains a given key
+ *
+ * @param mixed $key The key to look for.
+ *
+ * @return bool Returns TRUE if the key could found, FALSE otherwise.
+ *
+ * @link https://www.php.net/manual/en/ds-map.hasKey.php
+ */
+ public function hasKey($key): bool
+ {
+ }
+
+ /**
+ * Determines whether the map contains a given value
+ *
+ * @param mixed $value The value to look for.
+ *
+ * @return bool Returns TRUE if the value could found, FALSE otherwise.
+ *
+ * @link https://www.php.net/manual/en/ds-map.hasValue.php
+ */
+ public function hasValue($value): bool
+ {
+ }
+
+ /**
+ * Creates a new map containing the pairs of the current instance whose
+ * keys are also present in the given map. In other words, returns a
+ * copy of the current instance with all keys removed that are not also
+ * in the other map.
+ *
+ * A ∩ B = {x : x ∈ A ∧ x ∈ B}
+ *
+ *
+ * Note: Values from the current instance will be kept.
+ *
+ * @param Map $map The other map, containing the keys to intersect with.
+ *
+ * @return Map The key intersection of the current instance and another map.
+ *
+ * @link https://www.php.net/manual/en/ds-map.intersect.php
+ */
+ public function intersect(Map $map): Map
+ {
+ }
+
+ /**
+ * Returns whether the collection is empty.
+ *
+ * @link https://www.php.net/manual/en/ds-collection.isempty.php
+ *
+ * @return bool Returns TRUE if the map is empty, FALSE otherwise.
+ *
+ * @link https://www.php.net/manual/en/ds-map.isempty.php
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Converts the map to an array.
+ *
Note: Casting to an array is not supported yet.
+ *
Caution: Maps where non-scalar keys are can't be converted to an
+ * array.
+ *
Caution: An array will treat all numeric keys as integers, eg.
+ * "1" and 1 as keys in the map will only result in 1 being included in
+ * the array.
+ * @link https://www.php.net/manual/en/ds-map.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the map.
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Returns a set containing all the keys of the map, in the same order.
+ * @link https://www.php.net/manual/en/ds-map.keys.php
+ * @return Set A Ds\Set containing all the keys of the map.
+ */
+ public function keys(): Set
+ {
+ }
+
+ /**
+ * Sorts the map in-place by key, using an optional comparator function.
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ *
Caution: Returning non-integer values from the comparison function, such
+ * as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal.
+ * @link https://www.php.net/manual/en/ds-map.ksort.php
+ */
+ public function ksort(?callable $comparator = null)
+ {
+ }
+
+ /**
+ * Returns a copy sorted by key, using an optional comparator function.
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ *
Caution: Returning non-integer values from the comparison function, such
+ * as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal.
+ * @return Map Returns a copy of the map, sorted by key.
+ * @link https://www.php.net/manual/en/ds-map.ksorted.php
+ */
+ public function ksorted(?callable $comparator = null): Map
+ {
+ }
+
+ /**
+ * Returns the last pair of the map.
+ * @return Pair The last pair of the map.
+ * @throws UnderflowException if empty
+ * @link https://www.php.net/manual/en/ds-map.last.php
+ */
+ public function last(): Pair
+ {
+ }
+
+ /**
+ * Returns the result of applying a callback function to each value of
+ * the map.
+ * @param callable $callback A callable to apply to each value in the
+ * map. The callable should return what the key will be mapped to in the
+ * resulting map.
+ * callback ( mixed $key , mixed $value ) : mixed
+ * @return Map The result of applying a callback to each value in the
+ * map.
+ *
+ * Note: The keys and values of the current instance won't be affected.
+ *
+ * @link https://www.php.net/manual/en/ds-map.map.php
+ */
+ public function map(callable $callback): Map
+ {
+ }
+
+ /**
+ * Returns the result of associating all keys of a given traversable
+ * object or array with their corresponding values, combined with the
+ * current instance.
+ * @param array|Traversable $values A traversable object or an array.
+ * @return Map The result of associating all keys of a given traversable
+ * object or array with their corresponding values, combined with the
+ * current instance.
+ *
+ * Note: The current instance won't be affected.
+ *
+ * @link https://www.php.net/manual/en/ds-map.merge.php
+ */
+ public function merge($values): Map
+ {
+ }
+
+ /**
+ * Returns a Ds\Sequence containing all the pairs of the map.
+ *
+ * @return Sequence Ds\Sequence containing all the pairs of the map.
+ *
+ * @link https://www.php.net/manual/en/ds-map.pairs.php
+ */
+ public function pairs(): Sequence
+ {
+ }
+
+ /**
+ * Associates a key with a value, overwriting a previous association if
+ * one exists.
+ * @param mixed $key The key to associate the value with.
+ * @param mixed $value The value to be associated with the key.
+ *
+ * Note: Keys of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined by the object's equals
+ * function. If an object does not implement Ds\Hashable, objects must
+ * be references to the same instance to be considered equal.
+ *
+ * Note: You can also use array syntax to associate values by key, eg.
+ * $map["key"] = $value.
+ *
+ * Caution: Be careful when using array syntax. Scalar keys will be
+ * coerced to integers by the engine. For example, $map["1"] will
+ * attempt to access int(1), while $map->get("1") will correctly look up
+ * the string key.
+ *
+ * @link https://www.php.net/manual/en/ds-map.put.php
+ */
+ public function put($key, $value)
+ {
+ }
+
+ /**
+ * Associates all key-value pairs of a traversable object or array.
+ *
+ * Note: Keys of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined
+ * by the object's equals function. If an object does not implement
+ * Ds\Hashable, objects must be references to the same instance to be
+ * considered equal.
+ *
+ * @param array|Traversable $pairs traversable object or array.
+ *
+ * @link https://www.php.net/manual/en/ds-map.putall.php
+ */
+ public function putAll($pairs)
+ {
+ }
+
+ /**
+ * Reduces the map to a single value using a callback function.
+ *
+ * @param callable $callback
+ * callback ( mixed $carry , mixed $key , mixed $value ) : mixed
+ * carry The return value of the previous callback, or initial if
+ * it's the first iteration.
+ * key The key of the current iteration.
+ * value The value of the current iteration.
+ *
+ * @param mixed $initial The initial value of the carry value. Can be
+ * NULL.
+ *
+ * @link https://www.php.net/manual/en/ds-map.reduce.php
+ */
+ public function reduce(callable $callback, $initial)
+ {
+ }
+
+ /**
+ * Removes and returns a value by key, or return an optional default
+ * value if the key could not be found.
+ *
+ * @param mixed $key The key to remove.
+ * @param mixed $default The optional default value, returned if the key
+ * could not be found.
+ *
+ * Note: Keys of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined
+ * by the object's equals function. If an object does not implement
+ * Ds\Hashable, objects must be references to the same instance to be
+ * considered equal.
+ *
+ * Note: You can also use array syntax to access values by key, eg.
+ * $map["key"].
+ *
+ * Caution: Be careful when using array syntax. Scalar keys will be
+ * coerced to integers by the engine. For example, $map["1"] will
+ * attempt to access int(1), while $map->get("1") will correctly look up
+ * the string key.
+ *
+ * @return mixed The value that was removed, or the default value if
+ * provided and the key could not be found in the map.
+ *
+ * @throws OutOfBoundsException if the key could not be found and a
+ * default value was not provided.
+ *
+ * @link https://www.php.net/manual/en/ds-map.remove.php
+ */
+ public function remove($key, $default = null)
+ {
+ }
+
+ /**
+ * Reverses the map in-place.
+ *
+ * @link https://www.php.net/manual/en/ds-map.reverse.php
+ */
+ public function reverse()
+ {
+ }
+
+ /**
+ * Returns a reversed copy of the map.
+ *
+ * @return Map A reversed copy of the map.
+ *
+ *
Note: The current instance is not affected.
+ *
+ * @link https://www.php.net/manual/en/ds-map.reversed.php
+ */
+ public function reversed(): Map
+ {
+ }
+
+ /**
+ * Returns the pair at a given zero-based position.
+ *
+ * @param int $position The zero-based positional index to return.
+ *
+ * @return Pair Returns the Ds\Pair at the given position.
+ *
+ * @throws OutOfRangeException if the position is not valid.
+ *
+ * @link https://www.php.net/manual/en/ds-map.skip.php
+ */
+ public function skip(int $position): Pair
+ {
+ }
+
+ /**
+ * Returns a subset of the map defined by a starting index and length.
+ *
+ * @param int $index The index at which the range starts. If positive,
+ * the range will start at that index in the map. If negative, the range
+ * will start that far from the end.
+ *
+ * @param int|null $length If a length is given and is positive, the
+ * resulting map will have up to that many pairs in it. If a length is
+ * given and is negative, the range will stop that many pairs from the
+ * end. If the length results in an overflow, only pairs up to the end
+ * of the map will be included. If a length is not provided, the
+ * resulting map will contain all pairs between the index and the end of
+ * the map.
+ *
+ * @return Map A subset of the map defined by a starting index and
+ * length.
+ *
+ * @link https://www.php.net/manual/en/ds-map.slice.php
+ */
+ public function slice(int $index, ?int $length = null): Map
+ {
+ }
+
+ /**
+ * Sorts the map in-place by value, using an optional comparator
+ * function.
+ *
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ *
+ * callback ( mixed $a, mixed $b ) : int
+ *
+ * Caution: Returning non-integer values from the comparison function,
+ * such as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal.
+ *
+ * @link https://www.php.net/manual/en/ds-map.sort.php
+ */
+ public function sort(?callable $comparator = null)
+ {
+ }
+
+ /**
+ * Returns a copy, sorted by value using an optional comparator function.
+ *
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ *
+ * callback ( mixed $a, mixed $b ) : int
+ *
+ * Caution: Returning non-integer values from the comparison function,
+ * such as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal.
+ *
+ * @return Map
+ *
+ * @link https://www.php.net/manual/en/ds-map.sorted.php
+ */
+ public function sorted(?callable $comparator = null): Map
+ {
+ }
+
+ /**
+ * Returns the sum of all values in the map.
+ *
+ * Note: Arrays and objects are considered equal to zero when
+ * calculating the sum.
+ *
+ * @return float|int The sum of all the values in the map as either a
+ * float or int depending on the values in the map.
+ *
+ * @link https://www.php.net/manual/en/ds-map.sum.php
+ */
+ public function sum()
+ {
+ }
+
+ /**
+ * Creates a new map using values from the current instance and another
+ * map.
+ *
+ * A ∪ B = {x: x ∈ A ∨ x ∈ B}
+ *
+ *
Note: Values of the current instance will be overwritten by those
+ * provided where keys are equal.
+ *
+ * @param Map $map The other map, to combine with the current instance.
+ *
+ * @return Map A new map containing all the pairs of the current
+ * instance as well as another map.
+ *
+ * @link https://www.php.net/manual/en/ds-map.union.php
+ */
+ public function union(Map $map): Map
+ {
+ }
+
+ /**
+ * Returns a sequence containing all the values of the map, in the same
+ * order.
+ *
+ * @return Sequence A Ds\Sequence containing all the values of the map.
+ *
+ * @link https://www.php.net/manual/en/ds-map.values.php
+ */
+ public function values(): Sequence
+ {
+ }
+
+ /**
+ * Creates a new map containing keys of the current instance as well as
+ * another map, but not of both.
+ *
+ * A ⊖ B = {x : x ∈ (A \ B) ∪ (B \ A)}
+ *
+ * @param Map $map The other map.
+ *
+ * @return Map A new map containing keys in the current instance as well
+ * as another map, but not in both.
+ *
+ * @link https://www.php.net/manual/en/ds-map.xor.php
+ */
+ public function xor(Map $map): Map
+ {
+ }
+ }
+
+ /**
+ * A pair is used by Ds\Map to pair keys with values.
+ * @package Ds
+ */
+ class Pair implements JsonSerializable
+ {
+ /**
+ * @var mixed
+ */
+ public $key;
+
+ /**
+ * @var mixed
+ */
+ public $value;
+
+ /**
+ * Creates a new instance using a given key and value.
+ *
+ * @param mixed $key
+ * @param mixed $value
+ *
+ * @link https://php.net/manual/en/ds-pair.construct.php
+ */
+ public function __construct($key = null, $value = null)
+ {
+ }
+
+ /**
+ * Removes all values from the pair.
+ *
+ * @link https://php.net/manual/en/ds-pair.clear.php
+ */
+ public function clear()
+ {
+ }
+
+ /**
+ * Returns a shallow copy of the pair.
+ *
+ * @return Pair Returns a shallow copy of the pair.
+ *
+ * @link https://php.net/manual/en/ds-pair.copy.php
+ */
+ public function copy(): Pair
+ {
+ }
+
+ /**
+ * Returns whether the pair is empty.
+ *
+ * @return bool Returns TRUE if the pair is empty, FALSE otherwise.
+ *
+ * @link https://php.net/manual/en/ds-pair.isempty.php
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Converts the pair to an array.
+ *
+ *
Note: Casting to an array is not supported yet.
+ *
+ * @return array An array containing all the values in the same order as
+ * the pair.
+ *
+ * @link https://php.net/manual/en/ds-pair.toarray.php
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/ds-pair.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ */
+ public function jsonSerialize()
+ {
+ }
+
+ }
+
+ /**
+ * A Set is a sequence of unique values. This implementation uses the same
+ * hash table as Ds\Map, where values are used as keys and the mapped value
+ * is ignored.
+ *
+ * @link https://www.php.net/manual/en/class.ds-set.php
+ *
+ * @package Ds
+ */
+ class Set implements Collection
+ {
+ /**
+ * Creates a new instance, using either a traversable object or an array
+ * for the initial values.
+ *
+ * @param array|Traversable $values A traversable object of an array to
+ * use the initial values.
+ *
+ * @link https://php.net/manual/en/ds-set.construct.php
+ */
+ public function __construct(...$values)
+ {
+ }
+
+ /**
+ * Adds all given values to the set that haven't already been added.
+ *
+ *
Note: Values of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined by the object's equals
+ * function. If an object does not implement Ds\Hashable, objects must
+ * be references to the same instance to be considered equal.
+ *
+ *
Caution: All comparisons are strict (type and value).
+ *
+ * @param mixed ...$values Values to add to the set.
+ *
+ * @link https://php.net/manual/en/ds-set.add.php
+ */
+ public function add(...$values)
+ {
+ }
+
+ /**
+ * Allocates enough memory for a required capacity.
+ *
+ * @param int $capacity The number of values for which capacity should
+ * be allocated.
+ *
+ *
Note: Capacity will stay the same if this value is less than or
+ * equal to the current capacity.
+ *
+ *
Capacity will always be rounded up to the nearest power of 2.
+ *
+ * @link https://php.net/manual/en/ds-set.allocate.php
+ */
+ public function allocate(int $capacity)
+ {
+ }
+
+ /**
+ * Determines if the set contains all values.
+ *
+ *
Values of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined by the object's equals
+ * function. If an object does not implement Ds\Hashable, objects must
+ * be references to the same instance to be considered equal.
+ *
+ *
Caution: All comparisons are strict (type and value).
+ *
+ * @param mixed ...$values Values to check.
+ *
+ * @return bool
+ *
+ * @link https://php.net/manual/en/ds-set.contains.php
+ */
+ public function contains(...$values): bool
+ {
+ }
+
+
+ /**
+ * Returns the current capacity.
+ * @link https://www.php.net/manual/en/ds-set.capacity.php
+ *
+ * @return int
+ */
+ public function capacity(): int
+ {
+ }
+
+ /**
+ * Removes all values from the set.
+ * @link https://www.php.net/manual/en/ds-set.clear.php
+ */
+ public function clear(): void
+ {
+ }
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/ds-set.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int
+ {
+ }
+
+ /**
+ * Returns a shallow copy of the set.
+ * @link https://www.php.net/manual/en/ds-set.copy.php
+ * @return Set
+ */
+ public function copy(): Set
+ {
+ }
+
+ /**
+ * Creates a new set using values that aren't in another set.
+ *
+ * A \ B = {x ∈ A | x ∉ B}
+ *
+ * @link https://www.php.net/manual/en/ds-set.diff.php
+ *
+ * @param Set $set Set containing the values to exclude.
+ *
+ * @return Set A new set containing all values that were not in the
+ * other set.
+ */
+ public function diff(Set $set): Set
+ {
+ }
+
+ /**
+ * Creates a new set using a callable to determine which values to
+ * include
+ *
+ * @link https://www.php.net/manual/en/ds-set.filter.php
+ *
+ * @param callable $callback Optional callable which returns TRUE if the
+ * value should be included, FALSE otherwise.
+ * If a callback is not provided, only values which are TRUE (see
+ * converting to boolean) will be included.
+ *
+ * @return Set A new set containing all the values for which either the
+ * callback returned TRUE, or all values that convert to TRUE if a
+ * callback was not provided.
+ */
+ public function filter(callable $callback = null): Set
+ {
+ }
+
+ /**
+ * Returns the first value in the set.
+ *
+ * @link https://www.php.net/manual/en/ds-set.first.php
+ *
+ * @return mixed The first value in the set.
+ */
+ public function first()
+ {
+ }
+
+ /**
+ * Returns the value at a given index.
+ *
+ * @link https://www.php.net/manual/en/ds-set.get.php
+ *
+ * @param int $index The index to access, starting at 0.
+ *
+ * @return mixed The value at the requested index.
+ */
+ public function get(int $index)
+ {
+ }
+
+ /**
+ * Creates a new set using values common to both the current instance
+ * and another set. In other words, returns a copy of the current
+ * instance with all values removed that are not in the other set.
+ *
+ * A ∩ B = {x : x ∈ A ∧ x ∈ B}
+ *
+ * @link https://www.php.net/manual/en/ds-set.intersect.php
+ *
+ * @param Set $set The other set.
+ *
+ * @return Set The intersection of the current instance and another set.
+ */
+ public function intersect(Set $set): Set
+ {
+ }
+
+ /**
+ * Returns whether the set is empty.
+ * @link https://www.php.net/manual/en/ds-set.isempty.php
+ *
+ * @return bool
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Joins all values together as a string using an optional separator
+ * between each value.
+ *
+ * @link https://www.php.net/manual/en/ds-set.join.php
+ *
+ * @param string $glue An optional string to separate each value.
+ *
+ * @return string
+ */
+ public function join(?string $glue = null): string
+ {
+ }
+
+ /**
+ * Returns the result of adding all given values to the set.
+ *
+ *
Note: The current instance won't be affected.
+ *
+ * @link https://www.php.net/manual/en/ds-set.merge.php
+ *
+ * @param array|Traversable $values A traversable object or an array.
+ *
+ * @return Set The result of adding all given values to the set,
+ * effectively the same as adding the values to a copy, then returning
+ * that copy.
+ */
+ public function merge($values): Set
+ {
+ }
+
+ /**
+ * Reduces the set to a single value using a callback function.
+ *
+ * @link https://www.php.net/manual/en/ds-set.reduce.php
+ *
+ * @param callable $callback
+ * callback ( mixed $carry , mixed $value ) : mixed
+ * $carry The return value of the previous callback, or initial if
+ * it's the first iteration.
+ * $value The value of the current iteration.
+ *
+ * @param mixed|null $initial The initial value of the carry value. Can be
+ * NULL.
+ *
+ * @return mixed The return value of the final callback.
+ */
+ public function reduce(callable $callback, $initial = null)
+ {
+ }
+
+ /**
+ * Removes all given values from the set, ignoring any that are not in
+ * the set.
+ *
+ * @link https://www.php.net/manual/en/ds-set.remove.php
+ *
+ * @param mixed ...$values The values to remove.
+ */
+ public function remove(...$values)
+ {
+ }
+
+ /**
+ * Reverses the set in-place.
+ *
+ * @link https://www.php.net/manual/en/ds-set.reverse.php
+ */
+ public function reverse()
+ {
+ }
+
+ /**
+ * Returns a reversed copy of the set.
+ *
+ * @link https://www.php.net/manual/en/ds-set.reversed.php
+ *
+ *
Note: The current instance is not affected.
+ *
+ * @return Set A reversed copy of the set.
+ */
+ public function reversed(): Set
+ {
+ }
+
+ /**
+ * Returns a sub-set of a given range
+ *
+ * @param int $index The index at which the sub-set starts. If positive,
+ * the set will start at that index in
+ * the set. If negative, the set will start that far from the end.
+ *
+ * @param int|null $length If a length is given and is positive, the
+ * resulting set will have up to that many values in it. If the length
+ * results in an overflow, only values up to the end of the set will be
+ * included. If a length is given and is negative, the set will stop
+ * that many values from the end. If a length is not provided, the
+ * resulting set will contain all values between the index and the end
+ * of the set.
+ *
+ * @return Set A sub-set of the given range.
+ */
+ public function slice(int $index, ?int $length = null): Set
+ {
+ }
+
+ /**
+ * Returns the last value in the set.
+ *
+ * @link https://www.php.net/manual/en/ds-set.last.php
+ *
+ * @return mixed The last value in the set.
+ *
+ * @throws UnderflowException if empty.
+ */
+ public function last()
+ {
+ }
+
+ /**
+ * Sorts the set in-place, using an optional comparator function.
+ *
+ * @param callable|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
+ * Caution: Returning non-integer values from the comparison
+ * function, such as float, will result in an internal cast to integer
+ * of the callback's return value. So values such as 0.99 and 0.1 will
+ * both be cast to an integer value of 0, which will compare such values
+ * as equal.
+ *
+ * @link https://www.php.net/manual/en/ds-set.sort.php
+ */
+ public function sort(?callable $comparator = null)
+ {
+ }
+
+ /**
+ * Returns a sorted copy, using an optional comparator function.
+ *
+ * @link https://www.php.net/manual/en/ds-set.sorted.php
+ *
+ * @param callable $comparator The comparison function must return an
+ * integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ *
+ * callback ( mixed $a, mixed $b ) : int
+ *
+ *
Caution: Returning non-integer values from the comparison
+ * function, such as float, will result in an
+ * internal cast to integer of the callback's return value. So values
+ * such as 0.99 and 0.1 will both be cast to an integer value of 0,
+ * which will compare such values as equal.
+ *
+ * @return Set Returns a sorted copy of the set.
+ */
+ public function sorted(?callable $comparator = null): Set
+ {
+ }
+
+ /**
+ * Returns the sum of all values in the set.
+ *
+ *
Note: Arrays and objects are considered equal to zero when
+ * calculating the sum.
+ *
+ * @link https://www.php.net/manual/en/ds-set.sum.php
+ *
+ * @return float|int The sum of all the values in the set as either a
+ * float or int depending on the values in the set.
+ */
+ public function sum()
+ {
+ }
+
+ /**
+ * Creates a new set that contains the values of the current instance as
+ * well as the values of another set.
+ *
+ * A ∪ B = {x: x ∈ A ∨ x ∈ B}
+ *
+ * @link https://www.php.net/manual/en/ds-set.union.php
+ *
+ * @param Set $set The other set, to combine with the current instance.
+ *
+ * @return Set A new set containing all the values of the current
+ * instance as well as another set.
+ */
+ public function union(Set $set): Set
+ {
+ }
+
+ /**
+ * Creates a new set using values in either the current instance or in
+ * another set, but not in both.
+ *
+ * A ⊖ B = {x : x ∈ (A \ B) ∪ (B \ A)}
+ *
+ * @link https://www.php.net/manual/en/ds-set.xor.php
+ *
+ * @param Set $set The other set.
+ *
+ * @return Set A new set containing values in the current instance as
+ * well as another set, but not in both.
+ */
+ public function xor(Set $set): Set
+ {
+ }
+
+ /**
+ * Converts the set to an array.
+ *
Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-set.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the collection.
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/ds-set.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize()
+ {
+ }
+
+
+ }
+
+ /**
+ * A Stack is a “last in, first out” or “LIFO” collection that only allows
+ * access to the value at the top of the structure and iterates in that
+ * order, destructively.
+ *
+ * @package Ds
+ *
+ * @link https://www.php.net/manual/en/class.ds-stack.php
+ */
+ class Stack implements Collection
+ {
+ /**
+ * Creates a new instance, using either a traversable object or an array
+ * for the initial values.
+ *
+ * @link https://www.php.net/manual/en/ds-stack.construct.php
+ *
+ * @param array|Traversable|null $values A traversable object or an
+ * array to use for the initial values.
+ */
+ public function __construct($values = null)
+ {
+ }
+
+ /**
+ * Ensures that enough memory is allocated for a required capacity. This
+ * removes the need to reallocate the internal as values are added.
+ *
+ * @link https://www.php.net/manual/en/ds-stack.allocate.php
+ *
+ * @param int $capacity The number of values for which capacity should
+ * be allocated.
+ *
+ *
Note: Capacity will stay the same if this value is less than or
+ * equal to the current capacity.
+ */
+ public function allocate(int $capacity)
+ {
+ }
+
+ /**
+ * Returns the current capacity.
+ *
+ * @link https://www.php.net/manual/en/ds-stack.capacity.php
+ *
+ * @return int The current capacity.
+ */
+ public function capacity(): int
+ {
+ }
+
+ /**
+ * Removes all values from the stack.
+ * @link https://www.php.net/manual/en/ds-stack.clear.php
+ */
+ public function clear(): void
+ {
+ }
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/ds-stack.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int
+ {
+ }
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-stack.copy.php
+ * @return Stack
+ */
+ public function copy(): Stack
+ {
+ }
+
+ /**
+ * Returns whether the collection is empty.
+ * @link https://www.php.net/manual/en/ds-stack.isempty.php
+ * @return bool
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Converts the collection to an array.
+ *
Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-stack.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the collection.
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Returns the value at the top of the stack, but does not remove it.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.peek.php
+ *
+ * @return mixed The value at the top of the stack.
+ *
+ * @throws UnderflowException
+ */
+ public function peek()
+ {
+ }
+
+ /**
+ * Removes and returns the value at the top of the stack.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.pop.php
+ *
+ * @return mixed The removed value which was at the top of the stack.
+ *
+ * @throws UnderflowException
+ */
+ public function pop()
+ {
+ }
+
+ /**
+ * Pushes values onto the stack.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.push.php
+ *
+ * @param array $values The values to push onto the stack.
+ */
+ public function push(...$values)
+ {
+ }
+ }
+
+ /**
+ * A Queue is a “first in, first out” or “FIFO” collection that only allows
+ * access to the value at the front of the queue and iterates in that order,
+ * destructively.
+ *
+ * Uses a Ds\Vector internally.
+ *
+ * @package Ds
+ */
+ class Queue implements Collection
+ {
+ /**
+ * Creates a new instance, using either a traversable object or an array
+ * for the initial values.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.construct.php
+ *
+ * @param array|Traversable|null $values A traversable object or an
+ * array to use for the initial values.
+ */
+ public function __construct($values = null)
+ {
+ }
+
+ /**
+ * Ensures that enough memory is allocated for a required capacity. This
+ * removes the need to reallocate the internal as values are added.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.allocate.php
+ *
+ * @param int $capacity The number of values for which capacity should
+ * be allocated.
+ *
+ *
Note: Capacity will stay the same if this value is less than or
+ * equal to the current capacity.
+ */
+ public function allocate(int $capacity)
+ {
+ }
+
+ /**
+ * Returns the current capacity.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.capacity.php
+ *
+ * @return int The current capacity.
+ */
+ public function capacity(): int
+ {
+ }
+
+ /**
+ * Removes all values from the queue.
+ * @link https://www.php.net/manual/en/ds-queue.clear.php
+ */
+ public function clear(): void
+ {
+ }
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/ds-queue.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int
+ {
+ }
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-queue.copy.php
+ * @return Stack
+ */
+ public function copy(): Stack
+ {
+ }
+
+ /**
+ * Returns whether the collection is empty.
+ * @link https://www.php.net/manual/en/ds-queue.isempty.php
+ * @return bool
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Converts the collection to an array.
+ *
Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-queue.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the collection.
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Returns the value at the top of the queue, but does not remove it.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.peek.php
+ *
+ * @return mixed The value at the top of the queue.
+ *
+ * @throws UnderflowException
+ */
+ public function peek()
+ {
+ }
+
+ /**
+ * Removes and returns the value at the top of the queue.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.pop.php
+ *
+ * @return mixed The removed value which was at the top of the queue.
+ *
+ * @throws UnderflowException
+ */
+ public function pop()
+ {
+ }
+
+ /**
+ * Pushes values onto the queue.
+ *
+ * @link https://www.php.net/manual/en/ds-queue.push.php
+ *
+ * @param array $values The values to push onto the queue.
+ */
+ public function push(...$values)
+ {
+ }
+ }
+
+ /**
+ * A PriorityQueue is very similar to a Queue. Values are pushed into the
+ * queue with an assigned priority, and the value with the highest priority
+ * will always be at the front of the queue.
+ *
+ * Implemented using a max heap.
+ *
+ * @package Ds
+ *
+ * @link https://www.php.net/manual/en/class.ds-priorityqueue.php
+ */
+ class PriorityQueue implements Collection
+ {
+ const MIN_CAPACITY = 8;
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/countable.count.php
+ * @return int The custom count as an integer.
+ *
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int
+ {
+ }
+
+ /**
+ * Removes all values from the collection.
+ * @link https://www.php.net/manual/en/ds-collection.clear.php
+ */
+ public function clear(): void
+ {
+ }
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-collection.copy.php
+ * @return Collection
+ */
+ public function copy()
+ {
+ }
+
+ /**
+ * Returns whether the collection is empty.
+ * @link https://www.php.net/manual/en/ds-collection.isempty.php
+ * @return bool
+ */
+ public function isEmpty(): bool
+ {
+ }
+
+ /**
+ * Pushes a value with a given priority into the queue.
+ *
+ * @param mixed $value
+ * @param int $priority
+ */
+ public function push($value, int $priority)
+ {
+ }
+
+ /**
+ * Converts the collection to an array.
+ *
Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-collection.toarray.php
+ * @return array An array containing all the values in the same order as
+ * the collection.
+ */
+ public function toArray(): array
+ {
+ }
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize()
+ {
+ }
+
+
+ }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/enchant/enchant.php b/vendor/jetbrains/phpstorm-stubs/enchant/enchant.php
new file mode 100644
index 0000000000..7d41737af0
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/enchant/enchant.php
@@ -0,0 +1,299 @@
+
+ * create a new broker object capable of requesting
+ * @link https://php.net/manual/en/function.enchant-broker-init.php
+ * @return resource|false|EnchantBroker a broker resource on success or FALSE.
+ */
+function enchant_broker_init () {}
+
+/**
+ * Free the broker resource and its dictionaries
+ * @link https://php.net/manual/en/function.enchant-broker-free.php
+ * @param resource $broker
+ * Broker resource
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.3
+ */
+#[Deprecated(reason: "Unset the object instead")]
+function enchant_broker_free ($broker) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Returns the last error of the broker
+ * @link https://php.net/manual/en/function.enchant-broker-get-error.php
+ * @param resource $broker
+ * Broker resource.
+ *
+ * @return string Return the msg string if an error was found or FALSE
+ */
+function enchant_broker_get_error ($broker) {}
+
+/**
+ * Set the directory path for a given backend
+ * @link https://www.php.net/manual/en/function.enchant-broker-set-dict-path.php
+ * @param resource $broker
+ * @param int $dict_type
+ * @param string $value
+ */
+#[Deprecated(since: '8.0')]
+function enchant_broker_set_dict_path ($broker, int $dict_type, string $value) {}
+
+/**
+ * Get the directory path for a given backend
+ * @link https://www.php.net/manual/en/function.enchant-broker-get-dict-path.php
+ * @param resource $broker
+ * @param int $dict_type
+ */
+#[Deprecated(since: '8.0')]
+function enchant_broker_get_dict_path ($broker, $dict_type) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 1.0.1)
+ * Returns a list of available dictionaries
+ * @link https://php.net/manual/en/function.enchant-broker-list-dicts.php
+ * @param resource $broker
+ * Broker resource
+ *
+ * @return mixed TRUE on success or FALSE on failure.
+ */
+function enchant_broker_list_dicts ($broker) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * create a new dictionary using a tag
+ * @link https://php.net/manual/en/function.enchant-broker-request-dict.php
+ * @param resource $broker
+ * Broker resource
+ *
+ * @param string $tag
+ * A tag describing the locale, for example en_US, de_DE
+ *
+ * @return resource|false|EnchantDictionary a dictionary resource on success or FALSE on failure.
+ */
+function enchant_broker_request_dict ($broker, $tag) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * creates a dictionary using a PWL file
+ * @link https://php.net/manual/en/function.enchant-broker-request-pwl-dict.php
+ * @param resource $broker
+ * Broker resource
+ *
+ * @param string $filename
+ * Path to the PWL file.
+ *
+ * @return resource|false|EnchantDictionary a dictionary resource on success or FALSE on failure.
+ */
+function enchant_broker_request_pwl_dict ($broker, $filename) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Free a dictionary resource
+ * @link https://php.net/manual/en/function.enchant-broker-free-dict.php
+ * @param resource $dict
+ * Dictionary resource.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[Deprecated("Unset the object instead",since: '8.0')]
+function enchant_broker_free_dict ($dict) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Whether a dictionary exists or not. Using non-empty tag
+ * @link https://php.net/manual/en/function.enchant-broker-dict-exists.php
+ * @param resource $broker
+ * Broker resource
+ *
+ * @param string $tag
+ * non-empty tag in the LOCALE format, ex: us_US, ch_DE, etc.
+ *
+ * @return bool TRUE when the tag exist or FALSE when not.
+ */
+function enchant_broker_dict_exists ($broker, $tag) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Declares a preference of dictionaries to use for the language
+ * @link https://php.net/manual/en/function.enchant-broker-set-ordering.php
+ * @param resource $broker
+ * Broker resource
+ *
+ * @param string $tag
+ * Language tag. The special "*" tag can be used as a language tag
+ * to declare a default ordering for any language that does not
+ * explicitly declare an ordering.
+ *
+ * @return array|false
+ */
+function enchant_broker_describe ($broker) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Check whether a word is correctly spelled or not
+ * @link https://php.net/manual/en/function.enchant-dict-check.php
+ * @param resource $dict
+ * Dictionary resource
+ *
+ * @param string $word
+ * The word to check
+ *
+ * @return bool TRUE if the word is spelled correctly, FALSE if not.
+ */
+function enchant_dict_check ($dict, $word) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Will return a list of values if any of those pre-conditions are not met
+ * @link https://php.net/manual/en/function.enchant-dict-suggest.php
+ * @param resource $dict
+ * Dictionary resource
+ *
+ * @param string $word
+ * Word to use for the suggestions.
+ *
+ * @return array|false Will returns an array of suggestions if the word is bad spelled.
+ */
+function enchant_dict_suggest ($dict, $word) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * add a word to personal word list
+ * @link https://php.net/manual/en/function.enchant-dict-add-to-personal.php
+ * @param resource $dict
+ * @return void TRUE on success or FALSE on failure.
+ */
+function enchant_dict_add_to_session ($dict, $word) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * whether or not 'word' exists in this spelling-session
+ * @link https://php.net/manual/en/function.enchant-dict-is-in-session.php
+ * @param resource $dict
+ * Dictionary resource
+ *
+ * @param string $word
+ * The word to lookup
+ *
+ * @return bool TRUE if the word exists or FALSE
+ * @see enchant_dict_is_added
+ */
+#[Deprecated('Use enchant_dict_add instead')]
+function enchant_dict_is_in_session ($dict, $word) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Add a correction for a word
+ * @link https://php.net/manual/en/function.enchant-dict-store-replacement.php
+ * @param resource $dict
+ * Dictionary resource
+ *
+ * @param string $mis
+ * The work to fix
+ *
+ * @param string $cor
+ * The correct word
+ *
+ * @return void
+ */
+function enchant_dict_store_replacement ($dict, $mis, $cor) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Returns the last error of the current spelling-session
+ * @link https://php.net/manual/en/function.enchant-dict-get-error.php
+ * @param resource $dict
+ * Dictinaray resource
+ *
+ * @return string the error message as string or FALSE if no error occurred.
+ */
+function enchant_dict_get_error ($dict) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant >= 0.1.0 )
+ * Describes an individual dictionary
+ * @link https://php.net/manual/en/function.enchant-dict-describe.php
+ * @param resource $dict
+ * Dictionary resource
+ *
+ * @return mixed TRUE on success or FALSE on failure.
+ */
+function enchant_dict_describe ($dict) {}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL enchant:0.2.0-1.0.1)
+ * Check the word is correctly spelled and provide suggestions
+ * @link https://php.net/manual/en/function.enchant-dict-quick-check.php
+ * @param resource $dict
+ * Dictionary resource
+ *
+ * @param string $word
+ * The word to check
+ *
+ * @param array &$suggestions [optional]
+ * If the word is not correctly spelled, this variable will
+ * contain an array of suggestions.
+ *
+ * @return bool TRUE if the word is correctly spelled or FALSE
+ */
+function enchant_dict_quick_check ($dict, $word, array &$suggestions = null) {}
+
+/**
+ * @deprecated 8.0
+ */
+define ('ENCHANT_MYSPELL', 1);
+/**
+ * @deprecated 8.0
+ */
+define ('ENCHANT_ISPELL', 2);
+
+final class EnchantBroker
+{
+}
+
+final class EnchantDictionary
+{
+}
+// End of enchant v.1.1.0
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/event/event.php b/vendor/jetbrains/phpstorm-stubs/event/event.php
new file mode 100644
index 0000000000..185d7f6a7a
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/event/event.php
@@ -0,0 +1,2127 @@
+
+ * The location of the image file. This cannot be an URL.
+ * Since 7.2.0 this can either be a path to the file (stream wrappers are also supported as usual)
+ * or a stream resource.
+ *
+ * Is a comma separated list of sections that need to be present in file
+ * to produce a result array. If none of the requested
+ * sections could be found the return value is FALSE.
+ *
+ *
FILE
+ *
FileName, FileSize, FileDateTime, SectionsFound
+ *
+ *
+ *
COMPUTED
+ *
+ * html, Width, Height, IsColor, and more if available. Height and
+ * Width are computed the same way getimagesize
+ * does so their values must not be part of any header returned.
+ * Also, html is a height/width text string to be used inside normal
+ * HTML.
+ *
+ *
+ *
+ *
ANY_TAG
+ *
Any information that has a Tag e.g. IFD0, EXIF, ...
+ *
+ *
+ *
IFD0
+ *
+ * All tagged data of IFD0. In normal imagefiles this contains
+ * image size and so forth.
+ *
+ *
+ *
+ *
THUMBNAIL
+ *
+ * A file is supposed to contain a thumbnail if it has a second IFD.
+ * All tagged information about the embedded thumbnail is stored in
+ * this section.
+ *
+ *
+ *
+ *
COMMENT
+ *
Comment headers of JPEG images.
+ *
+ *
+ *
EXIF
+ *
+ * The EXIF section is a sub section of IFD0. It contains
+ * more detailed information about an image. Most of these entries
+ * are digital camera related.
+ *
+ *
+ *
+ * @param bool $as_arrays [optional]
+ * Specifies whether or not each section becomes an array. The
+ * sections COMPUTED,
+ * THUMBNAIL, and COMMENT
+ * always become arrays as they may contain values whose names conflict
+ * with other sections.
+ *
+ * @param bool $read_thumbnail [optional]
+ * When set to TRUE the thumbnail itself is read. Otherwise, only the
+ * tagged data is read.
+ *
+ * @return array|false It returns an associative array where the array indexes are
+ * the header names and the array values are the values associated with
+ * those headers. If no data can be returned,
+ * exif_read_data will return FALSE.
+ */
+function exif_read_data ($file, ?string $required_sections, bool $as_arrays = false, bool $read_thumbnail = false): array|false
+{}
+
+/**
+ * Alias of exif_read_data
+ * @link https://php.net/manual/en/function.read-exif-data.php
+ * @param $filename
+ * @param $sections [optional]
+ * @param $arrays [optional]
+ * @param $thumbnail [optional]
+ * @removed 8.0
+ */
+#[Deprecated(replacement: "exif_read_data(%parametersList%)", since: "7.2")]
+function read_exif_data ($filename, $sections = null, $arrays = false, $thumbnail = false) {}
+
+/**
+ * Get the header name for an index
+ * @link https://php.net/manual/en/function.exif-tagname.php
+ * @param int $index
+ * The Tag ID for which a Tag Name will be looked up.
+ *
+ * @return string|false the header name, or FALSE if index is
+ * not a defined EXIF tag id.
+ */
+function exif_tagname (int $index): string|false {}
+
+/**
+ * Retrieve the embedded thumbnail of a TIFF or JPEG image
+ * @link https://php.net/manual/en/function.exif-thumbnail.php
+ * @param string|resource $file
+ * The location of the image file. This cannot be an URL.
+ * Since 7.2.0 this can either be a path to the file (stream wrappers are also supported as usual)
+ * or a stream resource.
+ *
+ * @param int &$width [optional]
+ * The return width of the returned thumbnail.
+ *
+ * @param int &$height [optional]
+ * The returned height of the returned thumbnail.
+ *
+ * @param int &$image_type [optional]
+ * The returned image type of the returned thumbnail. This is either
+ * TIFF or JPEG.
+ *
+ * @return string|false the embedded thumbnail, or FALSE if the image contains no
+ * thumbnail.
+ */
+function exif_thumbnail ($file, &$width, &$height, &$image_type): string|false {}
+
+/**
+ * Determine the type of an image
+ * @link https://php.net/manual/en/function.exif-imagetype.php
+ * @param string $filename The image being checked.
+ * @return int|false When a correct signature is found, the appropriate constant value will be
+ * returned otherwise the return value is FALSE. The return value is the
+ * same value that getimagesize returns in index 2 but
+ * exif_imagetype is much faster.
+ *
+ *
+ * exif_imagetype will emit an E_NOTICE
+ * and return FALSE if it is unable to read enough bytes from the file to
+ * determine the image type.
+ */
+function exif_imagetype (string $filename): int|false {}
+
+define ('EXIF_USE_MBSTRING', 1);
+
+// End of exif v.1.4 $Id$
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/expect/expect.php b/vendor/jetbrains/phpstorm-stubs/expect/expect.php
new file mode 100644
index 0000000000..aa865c3d7e
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/expect/expect.php
@@ -0,0 +1,99 @@
+expect_expectl(), when EOF is reached.
+ * @link https://www.php.net/manual/en/expect.constants.php
+ */
+const EXP_EOF = -11;
+/**
+ * Value, returned by expect_expectl() upon timeout of seconds, specified in value of expect.timeout
+ * @link https://www.php.net/manual/en/expect.constants.php
+ */
+const EXP_TIMEOUT = -2;
+/**
+ * Value, returned by expect_expectl() if no pattern have been matched.
+ * @link https://www.php.net/manual/en/expect.constants.php
+ */
+const EXP_FULLBUFFER = -5;
+
+/**
+ * Execute command via Bourne shell, and open the PTY stream to the process
+ *
+ * @param string $command Command to execute.
+ * @return resource|false Returns an open PTY stream to the processes stdio, stdout, and stderr.
+ * On failure this function returns FALSE.
+ * @since PECL expect >= 0.1.0
+ * @link https://www.php.net/manual/en/function.expect-popen.php
+ */
+function expect_popen(string $command)
+{
+ unset($command);
+ return false;
+}
+
+/**
+ * Waits until the output from a process matches one of the patterns, a specified time period has passed,
+ * or an EOF is seen.
+ *
+ * If match is provided, then it is filled with the result of search. The matched string can be found in match[0].
+ * The match substrings (according to the parentheses) in the original pattern can be found in match[1], match[2],
+ * and so on, up to match[9] (the limitation of libexpect).
+ *
+ * @param resource $expect An Expect stream, previously opened with expect_popen()
+ * @param array $cases
An array of expect cases. Each expect case is an indexed array, as described in the following table:
+ *
+ *
+ *
Index Key
+ *
Value Type
+ *
Description
+ *
Is Mandatory
+ *
Default Value
+ *
+ *
+ *
0
+ *
string
+ *
pattern, that will be matched against the output from the stream
+ *
Yes
+ *
+ *
+ *
+ *
1
+ *
mixed
+ *
value, that will be returned by this function, if the pattern matches
+ *
Yes
+ *
+ *
+ *
+ *
2
+ *
integer
+ *
pattern type, one of: EXP_GLOB, EXP_EXACT or EXP_REGEXP
+ *
No
+ *
EXP_GLOB
+ *
+ *
+ * @param array &$match
+ *
+ * @return int Returns value associated with the pattern that was matched.
+ * On failure this function returns: EXP_EOF, EXP_TIMEOUT or EXP_FULLBUFFER
+ * @since PECL expect >= 0.1.0
+ * @link https://www.php.net/manual/en/function.expect-expectl.php
+ */
+function expect_expectl($expect, array $cases, array &$match = array()): int
+{
+ unset ($expect, $cases, $match);
+ return 0;
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/fann/fann.php b/vendor/jetbrains/phpstorm-stubs/fann/fann.php
new file mode 100644
index 0000000000..8b9826b78c
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/fann/fann.php
@@ -0,0 +1,1934 @@
+
+ * Set libmagic configuration options
+ * @link https://php.net/manual/en/function.finfo-set-flags.php
+ * @param int $flags
+ * One or disjunction of more Fileinfo
+ * constants.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function set_flags ($flags) {}
+
+ /**
+ * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
+ * Return information about a file
+ * @link https://php.net/manual/en/function.finfo-file.php
+ * @param string $filename [optional]
+ * Name of a file to be checked.
+ *
+ * @param int $flags [optional]
+ * One or disjunction of more Fileinfo
+ * constants.
+ *
+ * @param resource $context [optional]
+ * For a description of contexts, refer to .
+ *
+ * @return string a textual description of the contents of the
+ * filename argument, or FALSE if an error occurred.
+ */
+ #[Pure]
+ public function file ($filename = null, $flags = FILEINFO_NONE, $context = null) {}
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL fileinfo >= 0.1.0)
+ * Return information about a string buffer
+ * @link https://php.net/manual/en/function.finfo-buffer.php
+ * @param string $string [optional]
+ * Content of a file to be checked.
+ *
+ * @param int $flags [optional]
+ * One or disjunction of more Fileinfo
+ * constants.
+ *
+ * @param resource $context [optional]
+ * @return string a textual description of the string
+ * argument, or FALSE if an error occurred.
+ */
+ #[Pure]
+ public function buffer ($string = null, $flags = FILEINFO_NONE, $context = null) {}
+
+}
+
+/**
+ * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
+ * Create a new fileinfo resource
+ * @link https://php.net/manual/en/function.finfo-open.php
+ * @param int $flags [optional]
+ * One or disjunction of more Fileinfo
+ * constants.
+ *
+ * @param string $magic_database [optional]
+ * Name of a magic database file, usually something like
+ * /path/to/magic.mime. If not specified,
+ * the MAGIC environment variable is used. If this variable
+ * is not set either, /usr/share/misc/magic is used by default.
+ * A .mime and/or .mgc suffix is added if
+ * needed.
+ *
+ * @return resource|false a magic database resource on success or FALSE on failure.
+ */
+function finfo_open (int $flags, string $magic_database)
+{}
+
+/**
+ * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
+ * Close fileinfo resource
+ * @link https://php.net/manual/en/function.finfo-close.php
+ * @param resource $finfo
+ * One or disjunction of more Fileinfo
+ * constants.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function finfo_set_flags ($finfo, int $flags): bool
+{}
+
+/**
+ * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
+ * Return information about a file
+ * @link https://php.net/manual/en/function.finfo-file.php
+ * @param resource $finfo
+ * Fileinfo resource returned by finfo_open.
+ *
+ * @param string $filename
+ * Name of a file to be checked.
+ *
+ * @param int $flags [optional]
+ * One or disjunction of more Fileinfo
+ * constants.
+ *
+ * @param resource $context [optional]
+ * For a description of contexts, refer to .
+ *
+ * @return string|false a textual description of the contents of the
+ * filename argument, or FALSE if an error occurred.
+ */
+function finfo_file ($finfo, string $filename, int $flags, $context): string|false
+{}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL fileinfo >= 0.1.0)
+ * Return information about a string buffer
+ * @link https://php.net/manual/en/function.finfo-buffer.php
+ * @param resource $finfo
+ * Fileinfo resource returned by finfo_open.
+ *
+ * @param string $string
+ * Content of a file to be checked.
+ *
+ * @param int $flags [optional]
+ * One or disjunction of more Fileinfo
+ * constants.
+ *
+ * @param resource $context [optional]
+ *
+ * @param string $string
+ * @param int $flags [optional] One or disjunction of more
+ * Fileinfo constants.
+ * @param resource $context [optional]
+ * @return string|false a textual description of the string
+ * argument, or FALSE if an error occurred.
+ */
+function finfo_buffer ($finfo , string $string, int $flags = FILEINFO_NONE, $context): string|false
+{}
+
+/**
+ * Detect MIME Content-type for a file
+ * @link https://php.net/manual/en/function.mime-content-type.php
+ * @param string $filename
+ * Path to the tested file.
+ *
+ * @return string|false the content type in MIME format, like
+ * text/plain or application/octet-stream.
+ */
+function mime_content_type ($filename): string|false
+{}
+
+
+/**
+ * No special handling.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_NONE', 0);
+
+/**
+ * Follow symlinks.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_SYMLINK', 2);
+
+/**
+ * Return the mime type and mime encoding as defined by RFC 2045.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_MIME', 1040);
+
+/**
+ * Return the mime type.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_MIME_TYPE', 16);
+
+/**
+ * Return the mime encoding of the file.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_MIME_ENCODING', 1024);
+
+/**
+ * Look at the contents of blocks or character special devices.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_DEVICES', 8);
+
+/**
+ * Return all matches, not just the first.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_CONTINUE', 32);
+
+/**
+ * If possible preserve the original access time.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_PRESERVE_ATIME', 128);
+
+/**
+ * Don't translate unprintable characters to a \ooo octal
+ * representation.
+ * @link https://php.net/manual/en/fileinfo.constants.php
+ */
+define ('FILEINFO_RAW', 256);
+
+/**
+ * Returns the file extension appropriate for a the MIME type detected in the file.
+ * For types that commonly have multiple file extensions, such as JPEG images, then the return value is multiple extensions speparated by a forward slash e.g.: "jpeg/jpg/jpe/jfif".
+ * For unknown types not available in the magic.mime database, then return value is "???". Available since PHP 7.2.0.
+ * @since 7.2
+ */
+define('FILEINFO_EXTENSION', 2097152);
+
+// End of fileinfo v.1.0.5
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/filter/filter.php b/vendor/jetbrains/phpstorm-stubs/filter/filter.php
new file mode 100644
index 0000000000..2e05354b7f
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/filter/filter.php
@@ -0,0 +1,534 @@
+
+ * One of INPUT_GET, INPUT_POST,
+ * INPUT_COOKIE, INPUT_SERVER, or
+ * INPUT_ENV.
+ *
+ * @param string $var_name
+ * Name of a variable to get.
+ *
+ * @param int $filter [optional]
+ * The ID of the filter to apply. The
+ * manual page lists the available filters.
+ *
+ * @param array|int $options [optional]
+ * Associative array of options or bitwise disjunction of flags. If filter
+ * accepts options, flags can be provided in "flags" field of array.
+ *
+ * @return mixed Value of the requested variable on success, FALSE if the filter fails,
+ * or NULL if the variable_name variable is not set.
+ * If the flag FILTER_NULL_ON_FAILURE is used, it
+ * returns FALSE if the variable is not set and NULL if the filter fails.
+ */
+#[Pure]
+function filter_input (int $type, string $var_name, int $filter = FILTER_DEFAULT, array|int $options): mixed
+{}
+
+/**
+ * Filters a variable with a specified filter
+ * @link https://php.net/manual/en/function.filter-var.php
+ * @param mixed $value
+ * Value to filter.
+ *
+ * @param int $filter [optional]
+ * The ID of the filter to apply. The
+ * manual page lists the available filters.
+ *
+ * @param array|int $options [optional]
+ * Associative array of options or bitwise disjunction of flags. If filter
+ * accepts options, flags can be provided in "flags" field of array. For
+ * the "callback" filter, callable type should be passed. The
+ * callback must accept one argument, the value to be filtered, and return
+ * the value after filtering/sanitizing it.
+ *
+ *
+ *
+ * // for filters that accept options, use this format
+ * $options = array(
+ * 'options' => array(
+ * 'default' => 3, // value to return if the filter fails
+ * // other options here
+ * 'min_range' => 0
+ * ),
+ * 'flags' => FILTER_FLAG_ALLOW_OCTAL,
+ * );
+ * $var = filter_var('0755', FILTER_VALIDATE_INT, $options);
+ * // for filter that only accept flags, you can pass them directly
+ * $var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
+ * // for filter that only accept flags, you can also pass as an array
+ * $var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
+ * array('flags' => FILTER_NULL_ON_FAILURE));
+ * // callback validate filter
+ * function foo($value)
+ * {
+ * // Expected format: Surname, GivenNames
+ * if (strpos($value, ", ") === false) return false;
+ * list($surname, $givennames) = explode(", ", $value, 2);
+ * $empty = (empty($surname) || empty($givennames));
+ * $notstrings = (!is_string($surname) || !is_string($givennames));
+ * if ($empty || $notstrings) {
+ * return false;
+ * } else {
+ * return $value;
+ * }
+ * }
+ * $var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
+ *
+ *
+ * @return mixed the filtered data, or FALSE if the filter fails.
+ */
+#[Pure]
+function filter_var (mixed $value, int $filter = FILTER_DEFAULT, array|int $options): mixed
+{}
+
+/**
+ * Gets external variables and optionally filters them
+ * @link https://php.net/manual/en/function.filter-input-array.php
+ * @param int $type
+ * One of INPUT_GET, INPUT_POST,
+ * INPUT_COOKIE, INPUT_SERVER, or
+ * INPUT_ENV.
+ *
+ * @param array|int $options [optional]
+ * An array defining the arguments. A valid key is a string
+ * containing a variable name and a valid value is either a filter type, or an array
+ * optionally specifying the filter, flags and options. If the value is an
+ * array, valid keys are filter which specifies the
+ * filter type,
+ * flags which specifies any flags that apply to the
+ * filter, and options which specifies any options that
+ * apply to the filter. See the example below for a better understanding.
+ *
+ *
+ * This parameter can be also an integer holding a filter constant. Then all values in the
+ * input array are filtered by this filter.
+ *
+ * @param bool $add_empty [optional]
+ * Add missing keys as NULL to the return value.
+ *
+ * @return array|false|null An array containing the values of the requested variables on success, or FALSE
+ * on failure. An array value will be FALSE if the filter fails, or NULL if
+ * the variable is not set. Or if the flag FILTER_NULL_ON_FAILURE
+ * is used, it returns FALSE if the variable is not set and NULL if the filter
+ * fails.
+ */
+#[Pure]
+function filter_input_array (int $type, array|int $options, bool $add_empty = true): array|false|null
+{}
+
+/**
+ * Gets multiple variables and optionally filters them
+ * @link https://php.net/manual/en/function.filter-var-array.php
+ * @param array $array
+ * An array with string keys containing the data to filter.
+ *
+ * @param array|int $options [optional]
+ * An array defining the arguments. A valid key is a string
+ * containing a variable name and a valid value is either a
+ * filter type, or an
+ * array optionally specifying the filter, flags and options.
+ * If the value is an array, valid keys are filter
+ * which specifies the filter type,
+ * flags which specifies any flags that apply to the
+ * filter, and options which specifies any options that
+ * apply to the filter. See the example below for a better understanding.
+ *
+ *
+ * This parameter can be also an integer holding a filter constant. Then all values in the
+ * input array are filtered by this filter.
+ *
+ * @param bool $add_empty [optional]
+ * Add missing keys as NULL to the return value.
+ *
+ * @return array|false|null An array containing the values of the requested variables on success, or FALSE
+ * on failure. An array value will be FALSE if the filter fails, or NULL if
+ * the variable is not set.
+ */
+#[Pure]
+function filter_var_array (array $array, array|int $options, bool $add_empty = true): array|false|null
+{}
+
+/**
+ * Returns a list of all supported filters
+ * @link https://php.net/manual/en/function.filter-list.php
+ * @return array an array of names of all supported filters, empty array if there
+ * are no such filters. Indexes of this array are not filter IDs, they can be
+ * obtained with filter_id from a name instead.
+ */
+#[Pure]
+function filter_list (): array
+{}
+
+/**
+ * Checks if variable of specified type exists
+ * @link https://php.net/manual/en/function.filter-has-var.php
+ * @param int $input_type
+ * One of INPUT_GET, INPUT_POST,
+ * INPUT_COOKIE, INPUT_SERVER, or
+ * INPUT_ENV.
+ *
+ * @param string $var_name
+ * Name of a variable to check.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[Pure]
+function filter_has_var (int $input_type, string $var_name): bool
+{}
+
+/**
+ * Returns the filter ID belonging to a named filter
+ * @link https://php.net/manual/en/function.filter-id.php
+ * @param string $name
+ * Name of a filter to get.
+ *
+ * @return int|false ID of a filter on success or FALSE if filter doesn't exist.
+ */
+#[Pure]
+function filter_id (string $name): int|false
+{}
+
+
+/**
+ * POST variables.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('INPUT_POST', 0);
+
+/**
+ * GET variables.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('INPUT_GET', 1);
+
+/**
+ * COOKIE variables.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('INPUT_COOKIE', 2);
+
+/**
+ * ENV variables.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('INPUT_ENV', 4);
+
+/**
+ * SERVER variables.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('INPUT_SERVER', 5);
+
+/**
+ * SESSION variables.
+ * (not implemented yet)
+ * @link https://php.net/manual/en/filter.constants.php
+ * @removed 8.0
+ */
+define ('INPUT_SESSION', 6);
+
+/**
+ * REQUEST variables.
+ * (not implemented yet)
+ * @link https://php.net/manual/en/filter.constants.php
+ * @removed 8.0
+ */
+define ('INPUT_REQUEST', 99);
+
+/**
+ * No flags.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_NONE', 0);
+
+/**
+ * Flag used to require scalar as input
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_REQUIRE_SCALAR', 33554432);
+
+/**
+ * Require an array as input.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_REQUIRE_ARRAY', 16777216);
+
+/**
+ * Always returns an array.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FORCE_ARRAY', 67108864);
+
+/**
+ * Use NULL instead of FALSE on failure.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_NULL_ON_FAILURE', 134217728);
+
+/**
+ * ID of "int" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_INT', 257);
+
+/**
+ * ID of "boolean" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_BOOLEAN', 258);
+/**
+ * ID of "boolean" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_BOOL', 258);
+
+/**
+ * ID of "float" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_FLOAT', 259);
+
+/**
+ * ID of "validate_regexp" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_REGEXP', 272);
+
+define('FILTER_VALIDATE_DOMAIN', 277);
+
+/**
+ * ID of "validate_url" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_URL', 273);
+
+/**
+ * ID of "validate_email" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_EMAIL', 274);
+
+/**
+ * ID of "validate_ip" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_VALIDATE_IP', 275);
+define ('FILTER_VALIDATE_MAC', 276);
+
+/**
+ * ID of default ("string") filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_DEFAULT', 516);
+
+/**
+ * @since 7.3
+ */
+define('FILTER_SANITIZE_ADD_SLASHES', 523);
+
+/**
+ * ID of "unsafe_raw" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_UNSAFE_RAW', 516);
+
+/**
+ * ID of "string" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_STRING', 513);
+
+/**
+ * ID of "stripped" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_STRIPPED', 513);
+
+/**
+ * ID of "encoded" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_ENCODED', 514);
+
+/**
+ * ID of "special_chars" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_SPECIAL_CHARS', 515);
+define ('FILTER_SANITIZE_FULL_SPECIAL_CHARS', 522);
+
+/**
+ * ID of "email" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_EMAIL', 517);
+
+/**
+ * ID of "url" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_URL', 518);
+
+/**
+ * ID of "number_int" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_NUMBER_INT', 519);
+
+/**
+ * ID of "number_float" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_SANITIZE_NUMBER_FLOAT', 520);
+
+/**
+ * ID of "magic_quotes" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ * @deprecated 7.4
+ * @removed 8.0
+ */
+define ('FILTER_SANITIZE_MAGIC_QUOTES', 521);
+
+/**
+ * ID of "callback" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_CALLBACK', 1024);
+
+/**
+ * Allow octal notation (0[0-7]+) in "int" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ALLOW_OCTAL', 1);
+
+/**
+ * Allow hex notation (0x[0-9a-fA-F]+) in "int" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ALLOW_HEX', 2);
+
+/**
+ * Strip characters with ASCII value less than 32.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_STRIP_LOW', 4);
+
+/**
+ * Strip characters with ASCII value greater than 127.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_STRIP_HIGH', 8);
+define ('FILTER_FLAG_STRIP_BACKTICK', 512);
+
+/**
+ * Encode characters with ASCII value less than 32.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ENCODE_LOW', 16);
+
+/**
+ * Encode characters with ASCII value greater than 127.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ENCODE_HIGH', 32);
+
+/**
+ * Encode &.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ENCODE_AMP', 64);
+
+/**
+ * Don't encode ' and ".
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_NO_ENCODE_QUOTES', 128);
+
+/**
+ * (No use for now.)
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_EMPTY_STRING_NULL', 256);
+
+/**
+ * Allow fractional part in "number_float" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ALLOW_FRACTION', 4096);
+
+/**
+ * Allow thousand separator (,) in "number_float" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ALLOW_THOUSAND', 8192);
+
+/**
+ * Allow scientific notation (e, E) in
+ * "number_float" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_ALLOW_SCIENTIFIC', 16384);
+
+/**
+ * Require scheme in "validate_url" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ * @deprecated 7.3
+ * @removed 8.0
+ */
+define ('FILTER_FLAG_SCHEME_REQUIRED', 65536);
+
+/**
+ * Require host in "validate_url" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ * @deprecated 7.3
+ * @removed 8.0
+ */
+define ('FILTER_FLAG_HOST_REQUIRED', 131072);
+
+/**
+ * Require path in "validate_url" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_PATH_REQUIRED', 262144);
+
+/**
+ * Require query in "validate_url" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_QUERY_REQUIRED', 524288);
+
+/**
+ * Allow only IPv4 address in "validate_ip" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_IPV4', 1048576);
+
+/**
+ * Allow only IPv6 address in "validate_ip" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_IPV6', 2097152);
+
+/**
+ * Deny reserved addresses in "validate_ip" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_NO_RES_RANGE', 4194304);
+
+/**
+ * Deny private addresses in "validate_ip" filter.
+ * @link https://php.net/manual/en/filter.constants.php
+ */
+define ('FILTER_FLAG_NO_PRIV_RANGE', 8388608);
+
+define('FILTER_FLAG_HOSTNAME', 1048576);
+define('FILTER_FLAG_EMAIL_UNICODE', 1048576);
+// End of filter v.0.11.0
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/fpm/fpm.php b/vendor/jetbrains/phpstorm-stubs/fpm/fpm.php
new file mode 100644
index 0000000000..5d4a4e9095
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/fpm/fpm.php
@@ -0,0 +1,16 @@
+
+ * The FTP server address. This parameter shouldn't have any trailing
+ * slashes and shouldn't be prefixed with ftp://.
+ *
+ * @param int $port [optional]
+ * This parameter specifies an alternate port to connect to. If it is
+ * omitted or set to zero, then the default FTP port, 21, will be used.
+ *
+ * @param int $timeout [optional]
+ * This parameter specifies the timeout for all subsequent network operations.
+ * If omitted, the default value is 90 seconds. The timeout can be changed and
+ * queried at any time with ftp_set_option and
+ * ftp_get_option.
+ *
+ * @return resource|false a FTP stream on success or FALSE on error.
+ */
+function ftp_connect (string $hostname, int $port = 21, int $timeout = 90)
+{}
+
+/**
+ * Opens a Secure SSL-FTP connection
+ * @link https://php.net/manual/en/function.ftp-ssl-connect.php
+ * @param string $hostname
+ * The FTP server address. This parameter shouldn't have any trailing
+ * slashes and shouldn't be prefixed with ftp://.
+ *
+ * @param int $port [optional]
+ * This parameter specifies an alternate port to connect to. If it is
+ * omitted or set to zero, then the default FTP port, 21, will be used.
+ *
+ * @param int $timeout [optional]
+ * This parameter specifies the timeout for all subsequent network operations.
+ * If omitted, the default value is 90 seconds. The timeout can be changed and
+ * queried at any time with ftp_set_option and
+ * ftp_get_option.
+ *
+ * @return resource|false a SSL-FTP stream on success or FALSE on error.
+ */
+function ftp_ssl_connect (string $hostname, int $port = 21, int $timeout = 90)
+{}
+
+/**
+ * Logs in to an FTP connection
+ * @link https://php.net/manual/en/function.ftp-login.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $username
+ * The username (USER).
+ *
+ * @param string $password
+ * The password (PASS).
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * If login fails, PHP will also throw a warning.
+ */
+function ftp_login ($ftp, string $username, string $password): bool
+{}
+
+/**
+ * Returns the current directory name
+ * @link https://php.net/manual/en/function.ftp-pwd.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @return string|false the current directory name or FALSE on error.
+ */
+function ftp_pwd ($ftp): string|false
+{}
+
+/**
+ * Changes to the parent directory
+ * @link https://php.net/manual/en/function.ftp-cdup.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_cdup ($ftp): bool
+{}
+
+/**
+ * Changes the current directory on a FTP server
+ * @link https://php.net/manual/en/function.ftp-chdir.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $directory
+ * The target directory.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * If changing directory fails, PHP will also throw a warning.
+ */
+function ftp_chdir ($ftp, string $directory): bool
+{}
+
+/**
+ * Requests execution of a command on the FTP server
+ * @link https://php.net/manual/en/function.ftp-exec.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $command
+ * The command to execute.
+ *
+ * @return bool TRUE if the command was successful (server sent response code:
+ * 200); otherwise returns FALSE.
+ */
+function ftp_exec ($ftp, string $command): bool
+{}
+
+/**
+ * Sends an arbitrary command to an FTP server
+ * @link https://php.net/manual/en/function.ftp-raw.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $command
+ * The command to execute.
+ *
+ * @return string[] the server's response as an array of strings.
+ * No parsing is performed on the response string, nor does
+ * ftp_raw determine if the command succeeded.
+ */
+function ftp_raw ($ftp, string $command): array
+{}
+
+/**
+ * Creates a directory
+ * @link https://php.net/manual/en/function.ftp-mkdir.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $directory
+ * The name of the directory that will be created.
+ *
+ * @return string|false the newly created directory name on success or FALSE on error.
+ */
+function ftp_mkdir ($ftp, string $directory): string|false
+{}
+
+/**
+ * Removes a directory
+ * @link https://php.net/manual/en/function.ftp-rmdir.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $directory
+ * The directory to delete. This must be either an absolute or relative
+ * path to an empty directory.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_rmdir ($ftp, string $directory): bool
+{}
+
+/**
+ * Set permissions on a file via FTP
+ * @link https://php.net/manual/en/function.ftp-chmod.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param int $permissions
+ * The new permissions, given as an octal value.
+ *
+ * @param string $filename
+ * The remote file.
+ *
+ * @return int|false the new file permissions on success or FALSE on error.
+ */
+function ftp_chmod ($ftp, int $permissions, string $filename): int|false
+{}
+
+/**
+ * Allocates space for a file to be uploaded
+ * @link https://php.net/manual/en/function.ftp-alloc.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param int $size
+ * The number of bytes to allocate.
+ *
+ * @param string &$response [optional]
+ * A textual representation of the servers response will be returned by
+ * reference in result if a variable is provided.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_alloc ($ftp, int $size, &$response): bool
+{}
+
+/**
+ * Returns a list of files in the given directory
+ * @link https://php.net/manual/en/function.ftp-nlist.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $directory
+ * The directory to be listed. This parameter can also include arguments, eg.
+ * ftp_nlist($conn_id, "-la /your/dir");
+ * Note that this parameter isn't escaped so there may be some issues with
+ * filenames containing spaces and other characters.
+ *
+ * @return array|false an array of filenames from the specified directory on success or
+ * FALSE on error.
+ */
+function ftp_nlist ($ftp, string $directory): array|false
+{}
+
+/**
+ * Returns a detailed list of files in the given directory
+ * @link https://php.net/manual/en/function.ftp-rawlist.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $directory
+ * The directory path. May include arguments for the LIST
+ * command.
+ *
+ * @param bool $recursive [optional]
+ * If set to TRUE, the issued command will be LIST -R.
+ *
+ * @return array|false an array where each element corresponds to one line of text.
+ *
+ *
+ * The output is not parsed in any way. The system type identifier returned by
+ * ftp_systype can be used to determine how the results
+ * should be interpreted.
+ */
+function ftp_rawlist ($ftp, string $directory, bool $recursive = false): array|false
+{}
+
+/**
+ * Returns the system type identifier of the remote FTP server
+ * @link https://php.net/manual/en/function.ftp-systype.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @return string|false the remote system type, or FALSE on error.
+ */
+function ftp_systype ($ftp): string|false
+{}
+
+/**
+ * Turns passive mode on or off
+ * @link https://php.net/manual/en/function.ftp-pasv.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param bool $enable
+ * If TRUE, the passive mode is turned on, else it's turned off.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_pasv ($ftp, bool $enable): bool
+{}
+
+/**
+ * Downloads a file from the FTP server
+ * @link https://php.net/manual/en/function.ftp-get.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $local_filename
+ * The local file path (will be overwritten if the file already exists).
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
+ * The position in the remote file to start downloading from.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_get ($ftp, string $local_filename, string $remote_filename, int $mode = FTP_BINARY, int $offset = 0): bool
+{}
+
+/**
+ * Downloads a file from the FTP server and saves to an open file
+ * @link https://php.net/manual/en/function.ftp-fget.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param resource $stream
+ * An open file pointer in which we store the data.
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
+ * The position in the remote file to start downloading from.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_fget ($ftp, $stream, string $remote_filename, int $mode = FTP_BINARY, int $offset = 0): bool
+{}
+
+/**
+ * Uploads a file to the FTP server
+ * @link https://php.net/manual/en/function.ftp-put.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param string $local_filename
+ * The local file path.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
The position in the remote file to start uploading to.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_put ($ftp, string $remote_filename, string $local_filename, int $mode = FTP_BINARY, int $offset = 0): bool
+{}
+
+/**
+ * Uploads from an open file to the FTP server
+ * @link https://php.net/manual/en/function.ftp-fput.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param resource $stream
+ * An open file pointer on the local file. Reading stops at end of file.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
The position in the remote file to start uploading to.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_fput ($ftp, string $remote_filename, $stream, int $mode = FTP_BINARY, int $offset = 0): bool
+{}
+
+/**
+ * Returns the size of the given file
+ * @link https://php.net/manual/en/function.ftp-size.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $filename
+ * The remote file.
+ *
+ * @return int the file size on success, or -1 on error.
+ */
+function ftp_size ($ftp, string $filename): int
+{}
+
+/**
+ * Returns the last modified time of the given file
+ * @link https://php.net/manual/en/function.ftp-mdtm.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $filename
+ * The file from which to extract the last modification time.
+ *
+ * @return int the last modified time as a Unix timestamp on success, or -1 on
+ * error.
+ */
+function ftp_mdtm ($ftp, string $filename): int
+{}
+
+/**
+ * Renames a file or a directory on the FTP server
+ * @link https://php.net/manual/en/function.ftp-rename.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $from
+ * The old file/directory name.
+ *
+ * @param string $to
+ * The new name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_rename ($ftp, string $from, string $to): bool
+{}
+
+/**
+ * Deletes a file on the FTP server
+ * @link https://php.net/manual/en/function.ftp-delete.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $filename
+ * The file to delete.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_delete ($ftp, string $filename): bool
+{}
+
+/**
+ * Sends a SITE command to the server
+ * @link https://php.net/manual/en/function.ftp-site.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $command
+ * The SITE command. Note that this parameter isn't escaped so there may
+ * be some issues with filenames containing spaces and other characters.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_site ($ftp, string $command): bool
+{}
+
+/**
+ * Closes an FTP connection
+ * @link https://php.net/manual/en/function.ftp-close.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ftp_close ($ftp): bool
+{}
+
+/**
+ * Set miscellaneous runtime FTP options
+ * @link https://php.net/manual/en/function.ftp-set-option.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param int $option
+ * Currently, the following options are supported:
+ *
+ * Supported runtime FTP options
+ *
+ *
FTP_TIMEOUT_SEC
+ *
+ * Changes the timeout in seconds used for all network related
+ * functions. value must be an integer that
+ * is greater than 0. The default timeout is 90 seconds.
+ *
+ *
+ *
+ *
FTP_AUTOSEEK
+ *
+ * When enabled, GET or PUT requests with a
+ * resumepos or startpos
+ * parameter will first seek to the requested position within the file.
+ * This is enabled by default.
+ *
+ *
+ *
+ *
+ * @param mixed $value
+ * This parameter depends on which option is chosen
+ * to be altered.
+ *
+ * @return bool TRUE if the option could be set; FALSE if not. A warning
+ * message will be thrown if the option is not
+ * supported or the passed value doesn't match the
+ * expected value for the given option.
+ */
+function ftp_set_option ($ftp, int $option, $value): bool
+{}
+
+/**
+ * Retrieves various runtime behaviours of the current FTP stream
+ * @link https://php.net/manual/en/function.ftp-get-option.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param int $option
+ * Currently, the following options are supported:
+ *
+ * Supported runtime FTP options
+ *
+ *
FTP_TIMEOUT_SEC
+ *
+ * Returns the current timeout used for network related operations.
+ *
+ *
+ *
+ *
FTP_AUTOSEEK
+ *
+ * Returns TRUE if this option is on, FALSE otherwise.
+ *
+ *
+ *
+ *
+ * @return int|bool the value on success or FALSE if the given
+ * option is not supported. In the latter case, a
+ * warning message is also thrown.
+ */
+function ftp_get_option ($ftp, int $option): int|bool
+{}
+
+/**
+ * Retrieves a file from the FTP server and writes it to an open file (non-blocking)
+ * @link https://php.net/manual/en/function.ftp-nb-fget.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param resource $stream
+ * An open file pointer in which we store the data.
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
The position in the remote file to start downloading from.
+ * @return int FTP_FAILED or FTP_FINISHED
+ * or FTP_MOREDATA.
+ */
+function ftp_nb_fget ($ftp, $stream, string $remote_filename, int $mode = FTP_BINARY, int $offset = 0): int
+{}
+
+/**
+ * Retrieves a file from the FTP server and writes it to a local file (non-blocking)
+ * @link https://php.net/manual/en/function.ftp-nb-get.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $local_filename
+ * The local file path (will be overwritten if the file already exists).
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
The position in the remote file to start downloading from.
+ * @return int FTP_FAILED or FTP_FINISHED
+ * or FTP_MOREDATA.
+ */
+function ftp_nb_get ($ftp, string $local_filename, string $remote_filename, int $mode = FTP_BINARY, int $offset = 0): int
+{}
+
+/**
+ * Continues retrieving/sending a file (non-blocking)
+ * @link https://php.net/manual/en/function.ftp-nb-continue.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @return int FTP_FAILED or FTP_FINISHED
+ * or FTP_MOREDATA.
+ */
+function ftp_nb_continue ($ftp): int
+{}
+
+/**
+ * Stores a file on the FTP server (non-blocking)
+ * @link https://php.net/manual/en/function.ftp-nb-put.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param string $local_filename
+ * The local file path.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
The position in the remote file to start uploading to.
+ * @return int|false FTP_FAILED or FTP_FINISHED
+ * or FTP_MOREDATA.
+ */
+function ftp_nb_put ($ftp, string $remote_filename, string $local_filename, int $mode = FTP_BINARY, int $offset = 0): int|false
+{}
+
+/**
+ * Stores a file from an open file to the FTP server (non-blocking)
+ * @link https://php.net/manual/en/function.ftp-nb-fput.php
+ * @param resource $ftp
+ * The link identifier of the FTP connection.
+ *
+ * @param string $remote_filename
+ * The remote file path.
+ *
+ * @param resource $stream
+ * An open file pointer on the local file. Reading stops at end of file.
+ *
+ * @param int $mode [optional]
+ * The transfer mode. Must be either FTP_ASCII or
+ * FTP_BINARY.
+ *
+ * @param int $offset [optional]
The position in the remote file to start uploading to.
+ * @link https://php.net/manual/en/ftp.constants.php
+ */
+define ('FTP_MOREDATA', 2);
+
+// End of ftp v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/gd/gd.php b/vendor/jetbrains/phpstorm-stubs/gd/gd.php
new file mode 100644
index 0000000000..8c53c74a7f
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/gd/gd.php
@@ -0,0 +1,3058 @@
+
+ *
+ *
+ * Elements of array returned by gd_info
+ *
+ *
Attribute
+ *
Meaning
+ *
+ *
+ *
GD Version
+ *
string value describing the installed
+ * libgd version.
+ *
+ *
+ *
FreeType Support
+ *
boolean value. TRUE
+ * if FreeType Support is installed.
+ *
+ *
+ *
FreeType Linkage
+ *
string value describing the way in which
+ * FreeType was linked. Expected values are: 'with freetype',
+ * 'with TTF library', and 'with unknown library'. This element will
+ * only be defined if FreeType Support evaluated to
+ * TRUE.
+ *
+ *
+ *
T1Lib Support
+ *
boolean value. TRUE
+ * if T1Lib support is included.
+ *
+ *
+ *
GIF Read Support
+ *
boolean value. TRUE
+ * if support for reading GIF
+ * images is included.
+ *
+ *
+ *
GIF Create Support
+ *
boolean value. TRUE
+ * if support for creating GIF
+ * images is included.
+ *
+ *
+ *
JPEG Support
+ *
boolean value. TRUE
+ * if JPEG support is included.
+ *
+ *
+ *
PNG Support
+ *
boolean value. TRUE
+ * if PNG support is included.
+ *
+ *
+ *
WBMP Support
+ *
boolean value. TRUE
+ * if WBMP support is included.
+ *
+ *
+ *
XBM Support
+ *
boolean value. TRUE
+ * if XBM support is included.
+ *
+ *
+ *
WebP Support
+ *
boolean value. TRUE
+ * if WebP support is included.
+ *
+ *
+ *
+ *
+ * Previous to PHP 5.3.0, the JPEG Support attribute was named
+ * JPG Support.
+ */
+#[Pure]
+function gd_info () {}
+
+/**
+ * Draws an arc
+ * @link https://php.net/manual/en/function.imagearc.php
+ * @param resource|GdImage $image
+ * @param int $cx
+ * x-coordinate of the center.
+ *
+ * @param int $cy
+ * y-coordinate of the center.
+ *
+ * @param int $width
+ * The arc width.
+ *
+ * @param int $height
+ * The arc height.
+ *
+ * @param int $start
+ * The arc start angle, in degrees.
+ *
+ * @param int $end
+ * The arc end angle, in degrees.
+ * 0° is located at the three-o'clock position, and the arc is drawn
+ * clockwise.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imagearc ($image, $cx, $cy, $width, $height, $start, $end, $color) {}
+
+/**
+ * Draw an ellipse
+ * @link https://php.net/manual/en/function.imageellipse.php
+ * @param resource|GdImage $image
+ * @param int $cx
+ * x-coordinate of the center.
+ *
+ * @param int $cy
+ * y-coordinate of the center.
+ *
+ * @param int $width
+ * The ellipse width.
+ *
+ * @param int $height
+ * The ellipse height.
+ *
+ * @param int $color
+ * The color of the ellipse. A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imageellipse ($image, $cx, $cy, $width, $height, $color) {}
+
+/**
+ * Draw a character horizontally
+ * @link https://php.net/manual/en/function.imagechar.php
+ * @param resource|GdImage $image
+ * @param int $font
+ * @param int $x
+ * x-coordinate of the start.
+ *
+ * @param int $y
+ * y-coordinate of the start.
+ *
+ * @param string $c
+ * The character to draw.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imagechar ($image, $font, $x, $y, $c, $color) {}
+
+/**
+ * Draw a character vertically
+ * @link https://php.net/manual/en/function.imagecharup.php
+ * @param resource|GdImage $image
+ * @param int $font
+ * @param int $x
+ * x-coordinate of the start.
+ *
+ * @param int $y
+ * y-coordinate of the start.
+ *
+ * @param string $c
+ * The character to draw.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imagecharup ($image, $font, $x, $y, $c, $color) {}
+
+/**
+ * Get the index of the color of a pixel
+ * @link https://php.net/manual/en/function.imagecolorat.php
+ * @param resource|GdImage $image
+ * @param int $x
+ * x-coordinate of the point.
+ *
+ * @param int $y
+ * y-coordinate of the point.
+ *
+ * @return int|false the index of the color or FALSE on failure
+ */
+#[Pure]
+function imagecolorat ($image, $x, $y) {}
+
+/**
+ * Allocate a color for an image
+ * @link https://php.net/manual/en/function.imagecolorallocate.php
+ * @param resource|GdImage $image
+ * @param int $red
Value of red component.
+ * @param int $green
Value of green component.
+ * @param int $blue
Value of blue component.
+ * @return int|false A color identifier or FALSE if the allocation failed.
+ */
+function imagecolorallocate ($image, $red, $green, $blue) {}
+
+/**
+ * Copy the palette from one image to another
+ * @link https://php.net/manual/en/function.imagepalettecopy.php
+ * @param resource|GdImage $destination
+ * The destination image resource.
+ *
+ * @param resource|GdImage $source
+ * The source image resource.
+ *
+ * @return void No value is returned.
+ */
+function imagepalettecopy ($destination, $source) {}
+
+/**
+ * Create a new image from the image stream in the string
+ * @link https://php.net/manual/en/function.imagecreatefromstring.php
+ * @param string $image
+ * A string containing the image data.
+ *
+ * @return resource|GdImage|false An image resource will be returned on success. FALSE is returned if
+ * the image type is unsupported, the data is not in a recognised format,
+ * or the image is corrupt and cannot be loaded.
+ */
+#[Pure]
+function imagecreatefromstring ($image) {}
+
+/**
+ * Get the index of the closest color to the specified color
+ * @link https://php.net/manual/en/function.imagecolorclosest.php
+ * @param resource|GdImage $image
+ * @param int $red
Value of red component.
+ * @param int $green
Value of green component.
+ * @param int $blue
Value of blue component.
+ * @return int|false the index of the closest color, in the palette of the image, to
+ * the specified one or FALSE on failure
+ */
+#[Pure]
+function imagecolorclosest ($image, $red, $green, $blue) {}
+
+/**
+ * Get the index of the color which has the hue, white and blackness
+ * @link https://php.net/manual/en/function.imagecolorclosesthwb.php
+ * @param resource|GdImage $image
+ * @param int $red
Value of red component.
+ * @param int $green
Value of green component.
+ * @param int $blue
Value of blue component.
+ * @return int|false an integer with the index of the color which has
+ * the hue, white and blackness nearest the given color or FALSE on failure
+ */
+#[Pure]
+function imagecolorclosesthwb ($image, $red, $green, $blue) {}
+
+/**
+ * De-allocate a color for an image
+ * @link https://php.net/manual/en/function.imagecolordeallocate.php
+ * @param resource|GdImage $image
+ * @param int $color
+ * The color identifier.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imagecolordeallocate ($image, $color) {}
+
+/**
+ * Get the index of the specified color or its closest possible alternative
+ * @link https://php.net/manual/en/function.imagecolorresolve.php
+ * @param resource|GdImage $image
+ * @param int $red
Value of red component.
+ * @param int $green
Value of green component.
+ * @param int $blue
Value of blue component.
+ * @return int|false a color index or FALSE on failure
+ */
+#[Pure]
+function imagecolorresolve ($image, $red, $green, $blue) {}
+
+/**
+ * Get the index of the specified color
+ * @link https://php.net/manual/en/function.imagecolorexact.php
+ * @param resource|GdImage $image
+ * @param int $red
Value of red component.
+ * @param int $green
Value of green component.
+ * @param int $blue
Value of blue component.
+ * @return int|false the index of the specified color in the palette, -1 if the
+ * color does not exist, or FALSE on failure
+ */
+#[Pure]
+function imagecolorexact ($image, $red, $green, $blue) {}
+
+/**
+ * Set the color for the specified palette index
+ * @link https://php.net/manual/en/function.imagecolorset.php
+ * @param resource|GdImage $image
+ * @param int $index
+ * An index in the palette.
+ *
+ * @param int $red
Value of red component.
+ * @param int $green
Value of green component.
+ * @param int $blue
Value of blue component.
+ * @param int $alpha [optional]
+ * Value of alpha component.
+ *
+ * @return void No value is returned.
+ */
+function imagecolorset ($image, $index, $red, $green, $blue, $alpha = 0) {}
+
+/**
+ * Define a color as transparent
+ * @link https://php.net/manual/en/function.imagecolortransparent.php
+ * @param resource|GdImage $image
+ * @param int $color [optional]
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return int|false The identifier of the new (or current, if none is specified)
+ * transparent color is returned. If color
+ * is not specified, and the image has no transparent color, the
+ * returned identifier will be -1. If an error occurs, FALSE is returned.
+ */
+function imagecolortransparent ($image, $color = null) {}
+
+/**
+ * Find out the number of colors in an image's palette
+ * @link https://php.net/manual/en/function.imagecolorstotal.php
+ * @param resource|GdImage $image
+ * An image resource, returned by one of the image creation functions, such
+ * as imagecreatefromgif.
+ *
+ * @return int|false the number of colors in the specified image's palette, 0 for
+ * truecolor images, or FALSE on failure
+ */
+#[Pure]
+function imagecolorstotal ($image) {}
+
+/**
+ * Get the colors for an index
+ * @link https://php.net/manual/en/function.imagecolorsforindex.php
+ * @param resource|GdImage $image
+ * @param int $index
+ * The color index.
+ *
+ * @return array|false an associative array with red, green, blue and alpha keys that
+ * contain the appropriate values for the specified color index or FALSE on failure
+ */
+#[Pure]
+function imagecolorsforindex ($image, $index) {}
+
+/**
+ * Copy part of an image
+ * @link https://php.net/manual/en/function.imagecopy.php
+ * @param resource|GdImage $dst_im
+ * Destination image link resource.
+ *
+ * @param resource|GdImage $src_im
+ * Source image link resource.
+ *
+ * @param int $dst_x
+ * x-coordinate of destination point.
+ *
+ * @param int $dst_y
+ * y-coordinate of destination point.
+ *
+ * @param int $src_x
+ * x-coordinate of source point.
+ *
+ * @param int $src_y
+ * y-coordinate of source point.
+ *
+ * @param int $src_w
+ * Source width.
+ *
+ * @param int $src_h
+ * Source height.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagecopy ($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h) {}
+
+/**
+ * Copy and merge part of an image
+ * @link https://php.net/manual/en/function.imagecopymerge.php
+ * @param resource|GdImage $dst_im
+ * Destination image link resource.
+ *
+ * @param resource|GdImage $src_im
+ * Source image link resource.
+ *
+ * @param int $dst_x
+ * x-coordinate of destination point.
+ *
+ * @param int $dst_y
+ * y-coordinate of destination point.
+ *
+ * @param int $src_x
+ * x-coordinate of source point.
+ *
+ * @param int $src_y
+ * y-coordinate of source point.
+ *
+ * @param int $src_w
+ * Source width.
+ *
+ * @param int $src_h
+ * Source height.
+ *
+ * @param int $pct
+ * The two images will be merged according to pct
+ * which can range from 0 to 100. When pct = 0,
+ * no action is taken, when 100 this function behaves identically
+ * to imagecopy for pallete images, while it
+ * implements alpha transparency for true colour images.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagecopymerge ($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) {}
+
+/**
+ * Copy and merge part of an image with gray scale
+ * @link https://php.net/manual/en/function.imagecopymergegray.php
+ * @param resource|GdImage $dst_im
+ * Destination image link resource.
+ *
+ * @param resource|GdImage $src_im
+ * Source image link resource.
+ *
+ * @param int $dst_x
+ * x-coordinate of destination point.
+ *
+ * @param int $dst_y
+ * y-coordinate of destination point.
+ *
+ * @param int $src_x
+ * x-coordinate of source point.
+ *
+ * @param int $src_y
+ * y-coordinate of source point.
+ *
+ * @param int $src_w
+ * Source width.
+ *
+ * @param int $src_h
+ * Source height.
+ *
+ * @param int $pct
+ * The src_im will be changed to grayscale according
+ * to pct where 0 is fully grayscale and 100 is
+ * unchanged. When pct = 100 this function behaves
+ * identically to imagecopy for pallete images, while
+ * it implements alpha transparency for true colour images.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagecopymergegray ($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) {}
+
+/**
+ * Copy and resize part of an image
+ * @link https://php.net/manual/en/function.imagecopyresized.php
+ * @param resource|GdImage $dst_image
+ * @param resource|GdImage $src_image
+ * @param int $dst_x
+ * x-coordinate of destination point.
+ *
+ * @param int $dst_y
+ * y-coordinate of destination point.
+ *
+ * @param int $src_x
+ * x-coordinate of source point.
+ *
+ * @param int $src_y
+ * y-coordinate of source point.
+ *
+ * @param int $dst_w
+ * Destination width.
+ *
+ * @param int $dst_h
+ * Destination height.
+ *
+ * @param int $src_w
+ * Source width.
+ *
+ * @param int $src_h
+ * Source height.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagecopyresized ($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) {}
+
+/**
+ * Create a new palette based image
+ * @link https://php.net/manual/en/function.imagecreate.php
+ * @param int $width
+ * The image width.
+ *
+ * @param int $height
+ * The image height.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+#[Pure]
+function imagecreate ($width, $height) {}
+
+/**
+ * Create a new true color image
+ * @link https://php.net/manual/en/function.imagecreatetruecolor.php
+ * @param int $width
+ * Image width.
+ *
+ * @param int $height
+ * Image height.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+#[Pure]
+function imagecreatetruecolor ($width, $height) {}
+
+/**
+ * Finds whether an image is a truecolor image
+ * @link https://php.net/manual/en/function.imageistruecolor.php
+ * @param resource|GdImage $image
+ * @return bool true if the image is truecolor, false
+ * otherwise.
+ */
+#[Pure]
+function imageistruecolor ($image) {}
+
+/**
+ * Convert a true color image to a palette image
+ * @link https://php.net/manual/en/function.imagetruecolortopalette.php
+ * @param resource|GdImage $image
+ * @param bool $dither
+ * Indicates if the image should be dithered - if it is true then
+ * dithering will be used which will result in a more speckled image but
+ * with better color approximation.
+ *
+ * @param int $ncolors
+ * Sets the maximum number of colors that should be retained in the palette.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagetruecolortopalette ($image, $dither, $ncolors) {}
+
+/**
+ * Set the thickness for line drawing
+ * @link https://php.net/manual/en/function.imagesetthickness.php
+ * @param resource|GdImage $image
+ * @param int $thickness
+ * Thickness, in pixels.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagesetthickness ($image, $thickness) {}
+
+/**
+ * Draw a partial arc and fill it
+ * @link https://php.net/manual/en/function.imagefilledarc.php
+ * @param resource|GdImage $image
+ * @param int $cx
+ * x-coordinate of the center.
+ *
+ * @param int $cy
+ * y-coordinate of the center.
+ *
+ * @param int $width
+ * The arc width.
+ *
+ * @param int $height
+ * The arc height.
+ *
+ * @param int $start
+ * The arc start angle, in degrees.
+ *
+ * @param int $end
+ * The arc end angle, in degrees.
+ * 0° is located at the three-o'clock position, and the arc is drawn
+ * clockwise.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @param int $style
+ * A bitwise OR of the following possibilities:
+ * IMG_ARC_PIE
+ * @return bool true on success or false on failure.
+ */
+function imagefilledarc ($image, $cx, $cy, $width, $height, $start, $end, $color, $style) {}
+
+/**
+ * Draw a filled ellipse
+ * @link https://php.net/manual/en/function.imagefilledellipse.php
+ * @param resource|GdImage $image
+ * @param int $cx
+ * x-coordinate of the center.
+ *
+ * @param int $cy
+ * y-coordinate of the center.
+ *
+ * @param int $width
+ * The ellipse width.
+ *
+ * @param int $height
+ * The ellipse height.
+ *
+ * @param int $color
+ * The fill color. A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagefilledellipse ($image, $cx, $cy, $width, $height, $color) {}
+
+/**
+ * Set the blending mode for an image
+ * @link https://php.net/manual/en/function.imagealphablending.php
+ * @param resource|GdImage $image
+ * @param bool $blendmode
+ * Whether to enable the blending mode or not. On true color images
+ * the default value is true otherwise the default value is false
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagealphablending ($image, $blendmode) {}
+
+/**
+ * Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images
+ * @link https://php.net/manual/en/function.imagesavealpha.php
+ * @param resource|GdImage $image
+ * @param bool $saveflag
+ * Whether to save the alpha channel or not. Default to false.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagesavealpha ($image, $saveflag) {}
+
+/**
+ * Allocate a color for an image
+ * @link https://php.net/manual/en/function.imagecolorallocatealpha.php
+ * @param resource|GdImage $image
+ * @param int $red
+ * Value of red component.
+ *
+ * @param int $green
+ * Value of green component.
+ *
+ * @param int $blue
+ * Value of blue component.
+ *
+ * @param int $alpha
+ * A value between 0 and 127.
+ * 0 indicates completely opaque while
+ * 127 indicates completely transparent.
+ *
+ * @return int|false A color identifier or false if the allocation failed.
+ */
+function imagecolorallocatealpha ($image, $red, $green, $blue, $alpha) {}
+
+/**
+ * Get the index of the specified color + alpha or its closest possible alternative
+ * @link https://php.net/manual/en/function.imagecolorresolvealpha.php
+ * @param resource|GdImage $image
+ * @param int $red
+ * Value of red component.
+ *
+ * @param int $green
+ * Value of green component.
+ *
+ * @param int $blue
+ * Value of blue component.
+ *
+ * @param int $alpha
+ * A value between 0 and 127.
+ * 0 indicates completely opaque while
+ * 127 indicates completely transparent.
+ *
+ * @return int|false a color index or FALSE on failure
+ */
+#[Pure]
+function imagecolorresolvealpha ($image, $red, $green, $blue, $alpha) {}
+
+/**
+ * Get the index of the closest color to the specified color + alpha
+ * @link https://php.net/manual/en/function.imagecolorclosestalpha.php
+ * @param resource|GdImage $image
+ * @param int $red
+ * Value of red component.
+ *
+ * @param int $green
+ * Value of green component.
+ *
+ * @param int $blue
+ * Value of blue component.
+ *
+ * @param int $alpha
+ * A value between 0 and 127.
+ * 0 indicates completely opaque while
+ * 127 indicates completely transparent.
+ *
+ * @return int|false the index of the closest color in the palette or
+ * FALSE on failure
+ */
+#[Pure]
+function imagecolorclosestalpha ($image, $red, $green, $blue, $alpha) {}
+
+/**
+ * Get the index of the specified color + alpha
+ * @link https://php.net/manual/en/function.imagecolorexactalpha.php
+ * @param resource|GdImage $image
+ * @param int $red
+ * Value of red component.
+ *
+ * @param int $green
+ * Value of green component.
+ *
+ * @param int $blue
+ * Value of blue component.
+ *
+ * @param int $alpha
+ * A value between 0 and 127.
+ * 0 indicates completely opaque while
+ * 127 indicates completely transparent.
+ *
+ * @return int|false the index of the specified color+alpha in the palette of the
+ * image, -1 if the color does not exist in the image's palette, or FALSE
+ * on failure
+ */
+#[Pure]
+function imagecolorexactalpha ($image, $red, $green, $blue, $alpha) {}
+
+/**
+ * Copy and resize part of an image with resampling
+ * @link https://php.net/manual/en/function.imagecopyresampled.php
+ * @param resource|GdImage $dst_image
+ * @param resource|GdImage $src_image
+ * @param int $dst_x
+ * x-coordinate of destination point.
+ *
+ * @param int $dst_y
+ * y-coordinate of destination point.
+ *
+ * @param int $src_x
+ * x-coordinate of source point.
+ *
+ * @param int $src_y
+ * y-coordinate of source point.
+ *
+ * @param int $dst_w
+ * Destination width.
+ *
+ * @param int $dst_h
+ * Destination height.
+ *
+ * @param int $src_w
+ * Source width.
+ *
+ * @param int $src_h
+ * Source height.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagecopyresampled ($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) {}
+
+/**
+ * Rotate an image with a given angle
+ * @link https://php.net/manual/en/function.imagerotate.php
+ * @param resource|GdImage $image
+ * @param float $angle
+ * Rotation angle, in degrees.
+ *
+ * @param int $bgd_color
+ * Specifies the color of the uncovered zone after the rotation
+ *
+ * @param int $ignore_transparent [optional]
+ * If set and non-zero, transparent colors are ignored (otherwise kept).
+ *
+ * @return resource|GdImage|false the rotated image or FALSE on failure
+ */
+function imagerotate ($image, $angle, $bgd_color, $ignore_transparent = null) {}
+
+/**
+ * Should antialias functions be used or not.
+ * Before 7.2.0 it's only available if PHP iscompiled with the bundled version of the GD library.
+ * @link https://php.net/manual/en/function.imageantialias.php
+ * @param resource|GdImage $image
+ * @param bool $enabled
+ * Whether to enable antialiasing or not.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imageantialias ($image, $enabled) {}
+
+/**
+ * Set the tile image for filling
+ * @link https://php.net/manual/en/function.imagesettile.php
+ * @param resource|GdImage $image
+ * @param resource|GdImage $tile
+ * The image resource to be used as a tile.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagesettile ($image, $tile) {}
+
+/**
+ * Set the brush image for line drawing
+ * @link https://php.net/manual/en/function.imagesetbrush.php
+ * @param resource|GdImage $image
+ * @param resource|GdImage $brush
+ * An image resource.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagesetbrush ($image, $brush) {}
+
+/**
+ * Set the style for line drawing
+ * @link https://php.net/manual/en/function.imagesetstyle.php
+ * @param resource|GdImage $image
+ * @param int[] $style
+ * An array of pixel colors. You can use the
+ * IMG_COLOR_TRANSPARENT constant to add a
+ * transparent pixel.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagesetstyle ($image, array $style) {}
+
+/**
+ * Create a new image from file or URL
+ * @link https://php.net/manual/en/function.imagecreatefrompng.php
+ * @param string $filename
+ * Path to the PNG image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefrompng ($filename) {}
+
+/**
+ * Create a new image from file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromgif.php
+ * @param string $filename
+ * Path to the GIF image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromgif ($filename) {}
+
+/**
+ * Create a new image from file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromjpeg.php
+ * @param string $filename
+ * Path to the JPEG image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromjpeg ($filename) {}
+
+/**
+ * Create a new image from file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromwbmp.php
+ * @param string $filename
+ * Path to the WBMP image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromwbmp ($filename) {}
+
+/**
+ * Create a new image from file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromwebp.php
+ * @param string $filename
+ * Path to the WebP image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ * @since 5.4
+ */
+function imagecreatefromwebp ($filename) {}
+
+/**
+ * Create a new image from file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromxbm.php
+ * @param string $filename
+ * Path to the XBM image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromxbm ($filename) {}
+
+/**
+ * Create a new image from file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromxpm.php
+ * @param string $filename
+ * Path to the XPM image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromxpm ($filename) {}
+
+/**
+ * Create a new image from GD file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromgd.php
+ * @param string $filename
+ * Path to the GD file.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromgd ($filename) {}
+
+/**
+ * Create a new image from GD2 file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromgd2.php
+ * @param string $filename
+ * Path to the GD2 image.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromgd2 ($filename) {}
+
+/**
+ * Create a new image from a given part of GD2 file or URL
+ * @link https://php.net/manual/en/function.imagecreatefromgd2part.php
+ * @param string $filename
+ * Path to the GD2 image.
+ *
+ * @param int $srcX
+ * x-coordinate of source point.
+ *
+ * @param int $srcY
+ * y-coordinate of source point.
+ *
+ * @param int $width
+ * Source width.
+ *
+ * @param int $height
+ * Source height.
+ *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors.
+ */
+function imagecreatefromgd2part ($filename, $srcX, $srcY, $width, $height) {}
+
+/**
+ * Output a PNG image to either the browser or a file
+ * @link https://php.net/manual/en/function.imagepng.php
+ * @param resource|GdImage $image
+ * @param string $filename [optional]
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ *
+ * null is invalid if the quality and
+ * filters arguments are not used.
+ *
+ * @param int $quality [optional]
+ * Compression level: from 0 (no compression) to 9.
+ *
+ * @param int $filters [optional]
+ * Allows reducing the PNG file size. It is a bitmask field which may be
+ * set to any combination of the PNG_FILTER_XXX
+ * constants. PNG_NO_FILTER or
+ * PNG_ALL_FILTERS may also be used to respectively
+ * disable or activate all filters.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagepng ($image, $filename = null, $quality = null, $filters = null) {}
+
+/**
+ * Output a WebP image to browser or file
+ * @link https://php.net/manual/en/function.imagewebp.php
+ * @param resource|GdImage $image
+ * @param string $to [optional]
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ * @param int $quality [optional]
+ * quality ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file).
+ *
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagegif ($image, $filename = null) {}
+
+/**
+ * Output image to browser or file
+ * @link https://php.net/manual/en/function.imagejpeg.php
+ * @param resource|GdImage $image
+ * @param string $filename [optional]
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ *
+ * To skip this argument in order to provide the
+ * quality parameter, use null.
+ *
+ * @param int $quality [optional]
+ * quality is optional, and ranges from 0 (worst
+ * quality, smaller file) to 100 (best quality, biggest file). The
+ * default is the default IJG quality value (about 75).
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagejpeg ($image, $filename = null, $quality = null) {}
+
+/**
+ * Output image to browser or file
+ * @link https://php.net/manual/en/function.imagewbmp.php
+ * @param resource|GdImage $image
+ * @param string $filename [optional]
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ * @param int $foreground [optional]
+ * You can set the foreground color with this parameter by setting an
+ * identifier obtained from imagecolorallocate.
+ * The default foreground color is black.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagewbmp ($image, $filename = null, $foreground = null) {}
+
+/**
+ * Output GD image to browser or file.
+ * Since 7.2.0 allows to output truecolor images.
+ * @link https://php.net/manual/en/function.imagegd.php
+ * @param resource|GdImage $image
+ * @param string $filename [optional]
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagegd ($image, $filename = null) {}
+
+/**
+ * Output GD2 image to browser or file
+ * @link https://php.net/manual/en/function.imagegd2.php
+ * @param resource|GdImage $image
+ * @param string $filename [optional]
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ * @param int $chunk_size [optional]
+ * Chunk size.
+ *
+ * @param int $type [optional]
+ * Either IMG_GD2_RAW or
+ * IMG_GD2_COMPRESSED. Default is
+ * IMG_GD2_RAW.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagegd2 ($image, $filename = null, $chunk_size = null, $type = null) {}
+
+/**
+ * Destroy an image
+ * @link https://php.net/manual/en/function.imagedestroy.php
+ * @param resource|GdImage $image
+ * @return bool true on success or false on failure.
+ */
+function imagedestroy ($image) {}
+
+/**
+ * Apply a gamma correction to a GD image
+ * @link https://php.net/manual/en/function.imagegammacorrect.php
+ * @param resource|GdImage $image
+ * @param float $inputgamma
+ * The input gamma.
+ *
+ * @param float $outputgamma
+ * The output gamma.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagegammacorrect ($image, $inputgamma, $outputgamma) {}
+
+/**
+ * Flood fill
+ * @link https://php.net/manual/en/function.imagefill.php
+ * @param resource|GdImage $image
+ * @param int $x
+ * x-coordinate of start point.
+ *
+ * @param int $y
+ * y-coordinate of start point.
+ *
+ * @param int $color
+ * The fill color. A color identifier created with
+ * imagecolorallocate.
+ *
+ * An array containing the x and y
+ * coordinates of the polygons vertices consecutively.
+ *
+ * @param int $num_points [optional]
+ * Total number of vertices, which must be at least 3.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagefilledpolygon ($image, array $points, $num_points, $color) {}
+
+/**
+ * Draw a filled rectangle
+ * @link https://php.net/manual/en/function.imagefilledrectangle.php
+ * @param resource|GdImage $image
+ * @param int $x1
+ * x-coordinate for point 1.
+ *
+ * @param int $y1
+ * y-coordinate for point 1.
+ *
+ * @param int $x2
+ * x-coordinate for point 2.
+ *
+ * @param int $y2
+ * y-coordinate for point 2.
+ *
+ * @param int $color
+ * The fill color. A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagefilledrectangle ($image, $x1, $y1, $x2, $y2, $color) {}
+
+/**
+ * Flood fill to specific color
+ * @link https://php.net/manual/en/function.imagefilltoborder.php
+ * @param resource|GdImage $image
+ * @param int $x
+ * x-coordinate of start.
+ *
+ * @param int $y
+ * y-coordinate of start.
+ *
+ * @param int $border
+ * The border color. A color identifier created with
+ * imagecolorallocate.
+ *
+ * @param int $color
+ * The fill color. A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagefilltoborder ($image, $x, $y, $border, $color) {}
+
+/**
+ * Get font width
+ * @link https://php.net/manual/en/function.imagefontwidth.php
+ * @param int $font
+ * @return int the width of the pixel
+ */
+#[Pure]
+function imagefontwidth ($font) {}
+
+/**
+ * Get font height
+ * @link https://php.net/manual/en/function.imagefontheight.php
+ * @param int $font
+ * @return int the height of the pixel.
+ */
+#[Pure]
+function imagefontheight ($font) {}
+
+/**
+ * Enable or disable interlace
+ * @link https://php.net/manual/en/function.imageinterlace.php
+ * @param resource|GdImage $image
+ * @param int $interlace [optional]
+ * If non-zero, the image will be interlaced, else the interlace bit is
+ * turned off.
+ *
+ * @return int|false 1 if the interlace bit is set for the image,
+ * 0 if it is not, or FALSE on failure
+ */
+function imageinterlace ($image, $interlace = null) {}
+
+/**
+ * Draw a line
+ * @link https://php.net/manual/en/function.imageline.php
+ * @param resource|GdImage $image
+ * @param int $x1
+ * x-coordinate for first point.
+ *
+ * @param int $y1
+ * y-coordinate for first point.
+ *
+ * @param int $x2
+ * x-coordinate for second point.
+ *
+ * @param int $y2
+ * y-coordinate for second point.
+ *
+ * @param int $color
+ * The line color. A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imageline ($image, $x1, $y1, $x2, $y2, $color) {}
+
+/**
+ * Load a new font
+ * @link https://php.net/manual/en/function.imageloadfont.php
+ * @param string $file
+ * The font file format is currently binary and architecture
+ * dependent. This means you should generate the font files on the
+ * same type of CPU as the machine you are running PHP on.
+ *
+ *
+ *
+ * Font file format
+ *
+ *
byte position
+ *
C data type
+ *
description
+ *
+ *
+ *
byte 0-3
+ *
int
+ *
number of characters in the font
+ *
+ *
+ *
byte 4-7
+ *
int
+ *
+ * value of first character in the font (often 32 for space)
+ *
+ *
+ *
+ *
byte 8-11
+ *
int
+ *
pixel width of each character
+ *
+ *
+ *
byte 12-15
+ *
int
+ *
pixel height of each character
+ *
+ *
+ *
byte 16-
+ *
char
+ *
+ * array with character data, one byte per pixel in each
+ * character, for a total of (nchars*width*height) bytes.
+ *
+ *
+ *
+ *
+ * @return int|false The font identifier which is always bigger than 5 to avoid conflicts with
+ * built-in fonts or false on errors.
+ */
+function imageloadfont ($file) {}
+
+/**
+ * Draws a polygon
+ * @link https://php.net/manual/en/function.imagepolygon.php
+ * @param resource|GdImage $image
+ * @param int[] $points
+ * An array containing the polygon's vertices, e.g.:
+ *
+ *
points[0]
+ *
= x0
+ *
+ *
+ *
points[1]
+ *
= y0
+ *
+ *
+ *
points[2]
+ *
= x1
+ *
+ *
+ *
points[3]
+ *
= y1
+ *
+ *
+ * @param int $num_points [optional]
+ * Total number of points (vertices).
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagepolygon ($image, array $points, $num_points, $color) {}
+
+/**
+ * Draw a rectangle
+ * @link https://php.net/manual/en/function.imagerectangle.php
+ * @param resource|GdImage $image
+ * @param int $x1
+ * Upper left x coordinate.
+ *
+ * @param int $y1
+ * Upper left y coordinate
+ * 0, 0 is the top left corner of the image.
+ *
+ * @param int $x2
+ * Bottom right x coordinate.
+ *
+ * @param int $y2
+ * Bottom right y coordinate.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagerectangle ($image, $x1, $y1, $x2, $y2, $color) {}
+
+/**
+ * Set a single pixel
+ * @link https://php.net/manual/en/function.imagesetpixel.php
+ * @param resource|GdImage $image
+ * @param int $x
+ * x-coordinate.
+ *
+ * @param int $y
+ * y-coordinate.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagesetpixel ($image, $x, $y, $color) {}
+
+/**
+ * Draw a string horizontally
+ * @link https://php.net/manual/en/function.imagestring.php
+ * @param resource|GdImage $image
+ * @param int $font
+ * @param int $x
+ * x-coordinate of the upper left corner.
+ *
+ * @param int $y
+ * y-coordinate of the upper left corner.
+ *
+ * @param string $string
+ * The string to be written.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagestring ($image, $font, $x, $y, $string, $color) {}
+
+/**
+ * Draw a string vertically
+ * @link https://php.net/manual/en/function.imagestringup.php
+ * @param resource|GdImage $image
+ * @param int $font
+ * @param int $x
+ * x-coordinate of the upper left corner.
+ *
+ * @param int $y
+ * y-coordinate of the upper left corner.
+ *
+ * @param string $string
+ * The string to be written.
+ *
+ * @param int $color
+ * A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagestringup ($image, $font, $x, $y, $string, $color) {}
+
+/**
+ * Get image width
+ * @link https://php.net/manual/en/function.imagesx.php
+ * @param resource|GdImage $image
+ * @return int|false Return the width of the image or false on
+ * errors.
+ */
+#[Pure]
+function imagesx ($image) {}
+
+/**
+ * Get image height
+ * @link https://php.net/manual/en/function.imagesy.php
+ * @param resource|GdImage $image
+ * @return int|false Return the height of the image or false on
+ * errors.
+ */
+#[Pure]
+function imagesy ($image) {}
+
+/**
+ * Draw a dashed line
+ * @link https://php.net/manual/en/function.imagedashedline.php
+ * @param resource|GdImage $image
+ * @param int $x1
+ * Upper left x coordinate.
+ *
+ * @param int $y1
+ * Upper left y coordinate 0, 0 is the top left corner of the image.
+ *
+ * @param int $x2
+ * Bottom right x coordinate.
+ *
+ * @param int $y2
+ * Bottom right y coordinate.
+ *
+ * @param int $color
+ * The fill color. A color identifier created with
+ * imagecolorallocate.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @see imagesetstyle()
+ * @see imageline()
+ */
+#[Deprecated("Use combination of imagesetstyle() and imageline() instead")]
+function imagedashedline ($image, $x1, $y1, $x2, $y2, $color) {}
+
+/**
+ * Give the bounding box of a text using TrueType fonts
+ * @link https://php.net/manual/en/function.imagettfbbox.php
+ * @param float $size
+ * The font size. Depending on your version of GD, this should be
+ * specified as the pixel size (GD1) or point size (GD2).
+ *
+ * @param float $angle
+ * Angle in degrees in which text will be measured.
+ *
+ * @param string $fontfile
+ * The name of the TrueType font file (can be a URL). Depending on
+ * which version of the GD library that PHP is using, it may attempt to
+ * search for files that do not begin with a leading '/' by appending
+ * '.ttf' to the filename and searching along a library-defined font path.
+ *
+ * @param string $text
+ * The string to be measured.
+ *
+ * @return array|false imagettfbbox returns an array with 8
+ * elements representing four points making the bounding box of the
+ * text on success and false on error.
+ *
+ *
key
+ *
contents
+ *
+ *
+ *
0
+ *
lower left corner, X position
+ *
+ *
+ *
1
+ *
lower left corner, Y position
+ *
+ *
+ *
2
+ *
lower right corner, X position
+ *
+ *
+ *
3
+ *
lower right corner, Y position
+ *
+ *
+ *
4
+ *
upper right corner, X position
+ *
+ *
+ *
5
+ *
upper right corner, Y position
+ *
+ *
+ *
6
+ *
upper left corner, X position
+ *
+ *
+ *
7
+ *
upper left corner, Y position
+ *
+ *
+ *
+ * The points are relative to the text regardless of the
+ * angle, so "upper left" means in the top left-hand
+ * corner seeing the text horizontally.
+ */
+#[Pure]
+function imagettfbbox ($size, $angle, $fontfile, $text) {}
+
+/**
+ * Write text to the image using TrueType fonts
+ * @link https://php.net/manual/en/function.imagettftext.php
+ * @param resource|GdImage $image
+ * @param float $size
+ * The font size. Depending on your version of GD, this should be
+ * specified as the pixel size (GD1) or point size (GD2).
+ *
+ * @param float $angle
+ * The angle in degrees, with 0 degrees being left-to-right reading text.
+ * Higher values represent a counter-clockwise rotation. For example, a
+ * value of 90 would result in bottom-to-top reading text.
+ *
+ * @param int $x
+ * The coordinates given by x and
+ * y will define the basepoint of the first
+ * character (roughly the lower-left corner of the character). This
+ * is different from the imagestring, where
+ * x and y define the
+ * upper-left corner of the first character. For example, "top left"
+ * is 0, 0.
+ *
+ * @param int $y
+ * The y-ordinate. This sets the position of the fonts baseline, not the
+ * very bottom of the character.
+ *
+ * @param int $color
+ * The color index. Using the negative of a color index has the effect of
+ * turning off antialiasing. See imagecolorallocate.
+ *
+ * @param string $fontfile
+ * The path to the TrueType font you wish to use.
+ *
+ *
+ * Depending on which version of the GD library PHP is using, when
+ * fontfile does not begin with a leading
+ * / then .ttf will be appended
+ * to the filename and the library will attempt to search for that
+ * filename along a library-defined font path.
+ *
+ *
+ * When using versions of the GD library lower than 2.0.18, a space character,
+ * rather than a semicolon, was used as the 'path separator' for different font files.
+ * Unintentional use of this feature will result in the warning message:
+ * Warning: Could not find/open font. For these affected versions, the
+ * only solution is moving the font to a path which does not contain spaces.
+ *
+ *
+ * In many cases where a font resides in the same directory as the script using it
+ * the following trick will alleviate any include problems.
+ *
+ *
+ *
+ *
+ *
+ * Note:
+ * open_basedir does not apply to fontfile.
+ *
+ * @param string $text
+ * The text string in UTF-8 encoding.
+ *
+ *
+ * May include decimal numeric character references (of the form:
+ * €) to access characters in a font beyond position 127.
+ * The hexadecimal format (like ©) is supported.
+ * Strings in UTF-8 encoding can be passed directly.
+ *
+ * If a character is used in the string which is not supported by the
+ * font, a hollow rectangle will replace the character.
+ *
+ * @return array|false an array with 8 elements representing four points making the
+ * bounding box of the text. The order of the points is lower left, lower
+ * right, upper right, upper left. The points are relative to the text
+ * regardless of the angle, so "upper left" means in the top left-hand
+ * corner when you see the text horizontally.
+ * Returns false on error.
+ */
+function imagettftext ($image, $size, $angle, $x, $y, $color, $fontfile, $text) {}
+
+/**
+ * Give the bounding box of a text using fonts via freetype2
+ * @link https://php.net/manual/en/function.imageftbbox.php
+ * @param float $size
+ * The font size. Depending on your version of GD, this should be
+ * specified as the pixel size (GD1) or point size (GD2).
+ *
+ * @param float $angle
+ * Angle in degrees in which text will be
+ * measured.
+ *
+ * @param string $fontfile
+ * The name of the TrueType font file (can be a URL). Depending on
+ * which version of the GD library that PHP is using, it may attempt to
+ * search for files that do not begin with a leading '/' by appending
+ * '.ttf' to the filename and searching along a library-defined font path.
+ *
+ * @param string $text
+ * The string to be measured.
+ *
+ * @param array $extrainfo [optional]
+ *
+ * Possible array indexes for extrainfo
+ *
+ *
Key
+ *
Type
+ *
Meaning
+ *
+ *
+ *
linespacing
+ *
float
+ *
Defines drawing linespacing
+ *
+ *
+ *
+ * @return array|false imageftbbox returns an array with 8
+ * elements representing four points making the bounding box of the
+ * text:
+ *
+ *
0
+ *
lower left corner, X position
+ *
+ *
+ *
1
+ *
lower left corner, Y position
+ *
+ *
+ *
2
+ *
lower right corner, X position
+ *
+ *
+ *
3
+ *
lower right corner, Y position
+ *
+ *
+ *
4
+ *
upper right corner, X position
+ *
+ *
+ *
5
+ *
upper right corner, Y position
+ *
+ *
+ *
6
+ *
upper left corner, X position
+ *
+ *
+ *
7
+ *
upper left corner, Y position
+ *
+ *
+ *
+ * The points are relative to the text regardless of the
+ * angle, so "upper left" means in the top left-hand
+ * corner seeing the text horizontally.
+ * Returns false on error.
+ */
+#[Pure]
+function imageftbbox ($size, $angle, $fontfile, $text, $extrainfo = null ) {}
+
+/**
+ * Write text to the image using fonts using FreeType 2
+ * @link https://php.net/manual/en/function.imagefttext.php
+ * @param resource|GdImage $image
+ * @param float $size
+ * The font size to use in points.
+ *
+ * @param float $angle
+ * The angle in degrees, with 0 degrees being left-to-right reading text.
+ * Higher values represent a counter-clockwise rotation. For example, a
+ * value of 90 would result in bottom-to-top reading text.
+ *
+ * @param int $x
+ * The coordinates given by x and
+ * y will define the basepoint of the first
+ * character (roughly the lower-left corner of the character). This
+ * is different from the imagestring, where
+ * x and y define the
+ * upper-left corner of the first character. For example, "top left"
+ * is 0, 0.
+ *
+ * @param int $y
+ * The y-ordinate. This sets the position of the fonts baseline, not the
+ * very bottom of the character.
+ *
+ * @param int $color
+ * The index of the desired color for the text, see
+ * imagecolorexact.
+ *
+ * @param string $fontfile
+ * The path to the TrueType font you wish to use.
+ *
+ *
+ * Depending on which version of the GD library PHP is using, when
+ * fontfile does not begin with a leading
+ * / then .ttf will be appended
+ * to the filename and the library will attempt to search for that
+ * filename along a library-defined font path.
+ *
+ *
+ * When using versions of the GD library lower than 2.0.18, a space character,
+ * rather than a semicolon, was used as the 'path separator' for different font files.
+ * Unintentional use of this feature will result in the warning message:
+ * Warning: Could not find/open font. For these affected versions, the
+ * only solution is moving the font to a path which does not contain spaces.
+ *
+ *
+ * In many cases where a font resides in the same directory as the script using it
+ * the following trick will alleviate any include problems.
+ *
+ *
+ *
+ *
+ *
+ * Note:
+ * open_basedir does not apply to fontfile.
+ *
+ * @param string $text
+ * Text to be inserted into image.
+ *
+ * @param array $extrainfo [optional]
+ *
+ * Possible array indexes for extrainfo
+ *
+ *
Key
+ *
Type
+ *
Meaning
+ *
+ *
+ *
linespacing
+ *
float
+ *
Defines drawing linespacing
+ *
+ *
+ *
+ * @return array|false This function returns an array defining the four points of the box, starting in the lower left and moving counter-clockwise:
+ *
+ *
0
+ *
lower left x-coordinate
+ *
+ *
+ *
1
+ *
lower left y-coordinate
+ *
+ *
+ *
2
+ *
lower right x-coordinate
+ *
+ *
+ *
3
+ *
lower right y-coordinate
+ *
+ *
+ *
4
+ *
upper right x-coordinate
+ *
+ *
+ *
5
+ *
upper right y-coordinate
+ *
+ *
+ *
6
+ *
upper left x-coordinate
+ *
+ *
+ *
7
+ *
upper left y-coordinate
+ *
+ * Returns false on error.
+ */
+function imagefttext ($image, $size, $angle, $x, $y, $color, $fontfile, $text, $extrainfo = null ) {}
+
+/**
+ * Load a PostScript Type 1 font from file
+ * @link https://php.net/manual/en/function.imagepsloadfont.php
+ * @param string $filename
+ * Path to the Postscript font file.
+ *
+ * @return resource|GdImage|false In the case everything went right, a valid font index will be returned and
+ * can be used for further purposes. Otherwise the function returns false.
+ * @removed 7.0 This function was REMOVED in PHP 7.0.0.
+ */
+function imagepsloadfont ($filename) {}
+
+/**
+ * Free memory used by a PostScript Type 1 font
+ * @link https://php.net/manual/en/function.imagepsfreefont.php
+ * @param resource|GdImage $font_index
+ * A font resource, returned by imagepsloadfont.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function imagepsfreefont ($font_index) {}
+
+/**
+ * Change the character encoding vector of a font
+ * @link https://php.net/manual/en/function.imagepsencodefont.php
+ * @param resource|GdImage $font_index
+ * A font resource, returned by imagepsloadfont.
+ *
+ * @param string $encodingfile
+ * The exact format of this file is described in T1libs documentation.
+ * T1lib comes with two ready-to-use files,
+ * IsoLatin1.enc and
+ * IsoLatin2.enc.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function imagepsencodefont ($font_index, $encodingfile) {}
+
+/**
+ * Extend or condense a font
+ * @link https://php.net/manual/en/function.imagepsextendfont.php
+ * @param resource|GdImage $font_index
+ * A font resource, returned by imagepsloadfont.
+ *
+ * @param float $extend
+ * Extension value, must be greater than 0.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function imagepsextendfont ($font_index, $extend) {}
+
+/**
+ * Slant a font
+ * @link https://php.net/manual/en/function.imagepsslantfont.php
+ * @param resource|GdImage $font_index
+ * A font resource, returned by imagepsloadfont.
+ *
+ * @param float $slant
+ * Slant level.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0 This function was REMOVED in PHP 7.0.0.
+ */
+function imagepsslantfont ($font_index, $slant) {}
+
+/**
+ * Draws a text over an image using PostScript Type1 fonts
+ * @link https://php.net/manual/en/function.imagepstext.php
+ * @param resource|GdImage $image
+ * @param string $text
+ * The text to be written.
+ *
+ * @param resource|GdImage $font_index
+ * A font resource, returned by imagepsloadfont.
+ *
+ * @param int $size
+ * size is expressed in pixels.
+ *
+ * @param int $foreground
+ * The color in which the text will be painted.
+ *
+ * @param int $background
+ * The color to which the text will try to fade in with antialiasing.
+ * No pixels with the color background are
+ * actually painted, so the background image does not need to be of solid
+ * color.
+ *
+ * @param int $x
+ * x-coordinate for the lower-left corner of the first character.
+ *
+ * @param int $y
+ * y-coordinate for the lower-left corner of the first character.
+ *
+ * @param int $space [optional]
+ * Allows you to change the default value of a space in a font. This
+ * amount is added to the normal value and can also be negative.
+ * Expressed in character space units, where 1 unit is 1/1000th of an
+ * em-square.
+ *
+ * @param int $tightness [optional]
+ * tightness allows you to control the amount
+ * of white space between characters. This amount is added to the
+ * normal character width and can also be negative.
+ * Expressed in character space units, where 1 unit is 1/1000th of an
+ * em-square.
+ *
+ * @param float $angle [optional]
+ * angle is in degrees.
+ *
+ * @param int $antialias_steps [optional]
+ * Allows you to control the number of colours used for antialiasing
+ * text. Allowed values are 4 and 16. The higher value is recommended
+ * for text sizes lower than 20, where the effect in text quality is
+ * quite visible. With bigger sizes, use 4. It's less computationally
+ * intensive.
+ *
+ * @return array|false This function returns an array containing the following elements:
+ *
+ *
0
+ *
lower left x-coordinate
+ *
+ *
+ *
1
+ *
lower left y-coordinate
+ *
+ *
+ *
2
+ *
upper right x-coordinate
+ *
+ *
+ *
3
+ *
upper right y-coordinate
+ *
+ * Returns false on error.
+ * @removed 7.0 This function was REMOVED in PHP 7.0.0.
+ */
+function imagepstext ($image, $text, $font_index, $size, $foreground, $background, $x, $y, $space = null, $tightness = null, $angle = null, $antialias_steps = null) {}
+
+/**
+ * Give the bounding box of a text rectangle using PostScript Type1 fonts
+ * @link https://php.net/manual/en/function.imagepsbbox.php
+ * @param string $text
+ * The text to be written.
+ *
+ * @param resource|GdImage $font
+ * @param int $size
+ * size is expressed in pixels.
+ *
+ * @return array|false an array containing the following elements:
+ *
+ *
0
+ *
left x-coordinate
+ *
+ *
+ *
1
+ *
upper y-coordinate
+ *
+ *
+ *
2
+ *
right x-coordinate
+ *
+ *
+ *
3
+ *
lower y-coordinate
+ *
+ * Returns false on error.
+ * @removed 7.0
+ */
+function imagepsbbox ($text, $font, $size) {}
+
+/**
+ * Return the image types supported by this PHP build
+ * @link https://php.net/manual/en/function.imagetypes.php
+ * @return int a bit-field corresponding to the image formats supported by the
+ * version of GD linked into PHP. The following bits are returned,
+ * IMG_BMP | IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM | IMG_WEBP
+ */
+#[Pure]
+function imagetypes () {}
+
+/**
+ * Convert JPEG image file to WBMP image file
+ * @link https://php.net/manual/en/function.jpeg2wbmp.php
+ * @param string $jpegname
+ * Path to JPEG file.
+ *
+ * @param string $wbmpname
+ * Path to destination WBMP file.
+ *
+ * @param int $dest_height
+ * Destination image height.
+ *
+ * @param int $dest_width
+ * Destination image width.
+ *
+ * @param int $threshold
+ * Threshold value, between 0 and 8 (inclusive).
+ *
+ * Path to the saved file. If not given, the raw image stream will be
+ * outputted directly.
+ *
+ * @param int $threshold [optional]
+ * Threshold value, between 0 and 255 (inclusive).
+ *
+ * @return bool true on success or false on failure.
+ * @removed 8.0
+ * @see imagewbmp()
+ */
+#[Deprecated(replacement: "imagewbmp(%parametersList%)", since: "7.3")]
+function image2wbmp ($image, $filename = null, $threshold = null) {}
+
+/**
+ * Set the alpha blending flag to use the bundled libgd layering effects
+ * @link https://php.net/manual/en/function.imagelayereffect.php
+ * @param resource|GdImage $image
+ * @param int $effect
+ * One of the following constants:
+ * IMG_EFFECT_REPLACE
+ * Use pixel replacement (equivalent of passing true to
+ * imagealphablending)
+ * @return bool true on success or false on failure.
+ */
+function imagelayereffect ($image, $effect) {}
+
+/**
+ * Makes the colors of the palette version of an image more closely match the true color version
+ * @link https://php.net/manual/en/function.imagecolormatch.php
+ * @param resource|GdImage $image1
+ * A truecolor image link resource.
+ *
+ * @param resource|GdImage $image2
+ * A palette image link resource pointing to an image that has the same
+ * size as image1.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagecolormatch ($image1, $image2) {}
+
+/**
+ * Output XBM image to browser or file
+ * @link https://php.net/manual/en/function.imagexbm.php
+ * @param resource|GdImage $image
+ * @param string $filename
+ * The path to save the file to. If not set or null, the raw image stream
+ * will be outputted directly.
+ *
+ * @param int $foreground [optional]
+ * You can set the foreground color with this parameter by setting an
+ * identifier obtained from imagecolorallocate.
+ * The default foreground color is black.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imagexbm ($image, $filename, $foreground = null) {}
+
+/**
+ * Applies a filter to an image
+ * @link https://php.net/manual/en/function.imagefilter.php
+ * @param resource|GdImage $image
+ * @param int $filtertype
+ * filtertype can be one of the following:
+ * IMG_FILTER_NEGATE: Reverses all colors of
+ * the image.
+ * @param int $arg1 [optional]
+ * IMG_FILTER_COLORIZE: Value of green component.
+ * @param int $arg3 [optional]
+ * IMG_FILTER_COLORIZE: Value of blue component.
+ * @param int $arg4 [optional]
+ * IMG_FILTER_COLORIZE: Alpha channel, A value
+ * between 0 and 127. 0 indicates completely opaque while 127 indicates
+ * completely transparent.
+ * @return bool true on success or false on failure.
+ */
+function imagefilter ($image, $filtertype, $arg1 = null, $arg2 = null, $arg3 = null, $arg4 = null) {}
+
+/**
+ * Apply a 3x3 convolution matrix, using coefficient and offset
+ * @link https://php.net/manual/en/function.imageconvolution.php
+ * @param resource|GdImage $image
+ * @param array $matrix
+ * A 3x3 matrix: an array of three arrays of three floats.
+ *
+ * @param float $div
+ * The divisor of the result of the convolution, used for normalization.
+ *
+ * @param float $offset
+ * Color offset.
+ *
+ * @return bool true on success or false on failure.
+ */
+function imageconvolution ($image, array $matrix, $div, $offset) {}
+
+/**
+ * @param resource|GdImage $im An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}.
+ * @param int $res_x [optional] The horizontal resolution in DPI.
+ * @param int $res_y [optional] The vertical resolution in DPI.
+ * @return array|bool When used as getter (that is without the optional parameters), it returns TRUE on success, or FALSE on failure. When used as setter (that is with one or both optional parameters given), it returns an indexed array of the horizontal and vertical resolution on success, or FALSE on failure.
+ * @link https://php.net/manual/en/function.imageresolution.php
+ * @since 7.2
+ */
+function imageresolution ($im, $res_x = 96, $res_y = 96) {}
+
+
+/**
+ * imagesetclip() sets the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.
+ * @param resource|GdImage $im An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}.
+ * @param int $x1 The x-coordinate of the upper left corner.
+ * @param int $y1 The y-coordinate of the upper left corner.
+ * @param int $x2 The x-coordinate of the lower right corner.
+ * @param int $y2 The y-coordinate of the lower right corner.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @link https://php.net/manual/en/function.imagesetclip.php
+ * @see imagegetclip()
+ * @since 7.2
+ */
+function imagesetclip ($im, $x1, $y1, $x2, $y2) {}
+
+/**
+ * imagegetclip() retrieves the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.
+ * @param resource|GdImage $im An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}
+ * @return array|false an indexed array with the coordinates of the clipping rectangle which has the following entries:
+ *
+ *
x-coordinate of the upper left corner
+ *
y-coordinate of the upper left corner
+ *
x-coordinate of the lower right corner
+ *
y-coordinate of the lower right corner
+ *
+ * Returns FALSE on error.
+ * @link https://php.net/manual/en/function.imagegetclip.php
+ * @see imagesetclip()
+ * @since 7.2
+ */
+function imagegetclip ($im) {}
+
+/**
+ * imageopenpolygon() draws an open polygon on the given image. Contrary to {@see imagepolygon()}, no line is drawn between the last and the first point.
+ * @param resource|GdImage $image An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}.
+ * @param int[] $points An array containing the polygon's vertices, e.g.:
+ *
+ * @param int $num_points [optional] Total number of points (vertices).
+ * @param int $color A color identifier created with {@see imagecolorallocate()}.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @link https://php.net/manual/en/function.imageopenpolygon.php
+ * @since 7.2
+ * @see imageplygon()
+ */
+function imageopenpolygon ($image , $points, $num_points, $color) {}
+
+/**
+ * imagecreatefrombmp() returns an image identifier representing the image obtained from the given filename.
+ * TIP A URL can be used as a filename with this function if the fopen wrappers have been enabled. See {@see fopen()} for more details on how to specify the filename. See the Supported Protocols and Wrappers for links to information about what abilities the various wrappers have, notes on their usage, and information on any predefined variables they may provide.
+ * @param string $filename Path to the BMP image.
+ * @return resource|GdImage|false Returns an image resource identifier on success, FALSE on errors.
+ * @link https://php.net/manual/en/function.imagecreatefrombmp.php
+ * @since 7.2
+ */
+function imagecreatefrombmp($filename){}
+
+/**
+ * Outputs or saves a BMP version of the given image.
+ * @param resource|GdImage $image An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}.
+ * @param mixed $to The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly.
+ *
+ * Note:NULL is invalid if the compressed arguments is not used.
+ * @param bool $compressed Whether the BMP should be compressed with run-length encoding (RLE), or not.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ *
+ * Caution However, if libgd fails to output the image, this function returns TRUE.
+ * @link https://php.net/manual/en/function.imagebmp.php
+ * @since 7.2
+ */
+function imagebmp ($image, $to = null, $compressed = true) {}
+
+/**
+ * @param string $filename
+ * @return resource|GdImage|false
+ */
+function imagecreatefromtga($filename) {}
+
+/**
+ * Captures the whole screen
+ *
+ * https://www.php.net/manual/en/function.imagegrabscreen.php
+ *
+ * @return resource|GdImage|false
+ */
+#[Pure]
+function imagegrabscreen() {}
+
+/**
+ * Captures a window
+ *
+ * @link https://www.php.net/manual/en/function.imagegrabwindow.php
+ *
+ * @param int $handle
+ * @param int|null $client_area
+ * @return resource|GdImage|false
+ */
+#[Pure]
+function imagegrabwindow($handle, $client_area = null) {}
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-gif
+ */
+define ('IMG_GIF', 1);
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-jpg
+ */
+define ('IMG_JPG', 2);
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ *
+ * This constant has the same value as {@see IMG_JPG}
+ *
+ * @link https://php.net/manual/en/image.constants.php#constant.img-jpeg
+ */
+define ('IMG_JPEG', 2);
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-png
+ */
+define ('IMG_PNG', 4);
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-wbmp
+ */
+define ('IMG_WBMP', 8);
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-xpm
+ */
+define ('IMG_XPM', 16);
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ * @since 5.6.25
+ * @since 7.0.10
+ * @link https://php.net/manual/en/image.constants.php#constant.img-webp
+ */
+define('IMG_WEBP', 32);
+
+/**
+ * Used as a return value by {@see imagetypes()}
+ * @since 7.2
+ * @link https://php.net/manual/en/image.constants.php#constant.img-bmp
+ */
+define('IMG_BMP', 64);
+
+/**
+ * Special color option which can be used instead of color allocated with
+ * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-color-tiled
+ */
+define ('IMG_COLOR_TILED', -5);
+
+/**
+ * Special color option which can be used instead of color allocated with
+ * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-color-styled
+ */
+define ('IMG_COLOR_STYLED', -2);
+
+/**
+ * Special color option which can be used instead of color allocated with
+ * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-color-brushed
+ */
+define ('IMG_COLOR_BRUSHED', -3);
+
+/**
+ * Special color option which can be used instead of color allocated with
+ * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-color-styledbrushed
+ */
+define ('IMG_COLOR_STYLEDBRUSHED', -4);
+
+/**
+ * Special color option which can be used instead of color allocated with
+ * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()}
+ * @link https://php.net/manual/en/image.constants.php#constant.img-color-transparent
+ */
+define ('IMG_COLOR_TRANSPARENT', -6);
+
+/**
+ * A style constant used by the {@see imagefilledarc()} function.
+ *
+ * This constant has the same value as {@see IMG_ARC_PIE}
+ *
+ * @link https://php.net/manual/en/image.constants.php#constant.img-arc-rounded
+ */
+define ('IMG_ARC_ROUNDED', 0);
+
+/**
+ * A style constant used by the {@see imagefilledarc()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-arc-pie
+ */
+define ('IMG_ARC_PIE', 0);
+
+/**
+ * A style constant used by the {@see imagefilledarc()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-arc-chord
+ */
+define ('IMG_ARC_CHORD', 1);
+
+/**
+ * A style constant used by the {@see imagefilledarc()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-arc-nofill
+ */
+define ('IMG_ARC_NOFILL', 2);
+
+/**
+ * A style constant used by the {@see imagefilledarc()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-arc-edged
+ */
+define ('IMG_ARC_EDGED', 4);
+
+/**
+ * A type constant used by the {@see imagegd2()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-gd2-raw
+ */
+define ('IMG_GD2_RAW', 1);
+
+/**
+ * A type constant used by the {@see imagegd2()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-gd2-compressed
+ */
+define ('IMG_GD2_COMPRESSED', 2);
+
+/**
+ * Alpha blending effect used by the {@see imagelayereffect()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-effect-replace
+ */
+define ('IMG_EFFECT_REPLACE', 0);
+
+/**
+ * Alpha blending effect used by the {@see imagelayereffect()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-effect-alphablend
+ */
+define ('IMG_EFFECT_ALPHABLEND', 1);
+
+/**
+ * Alpha blending effect used by the {@see imagelayereffect()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-effect-normal
+ */
+define ('IMG_EFFECT_NORMAL', 2);
+
+/**
+ * Alpha blending effect used by the {@see imagelayereffect()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-effect-overlay
+ */
+define ('IMG_EFFECT_OVERLAY', 3);
+
+/**
+ * Alpha blending effect used by the {@see imagelayereffect()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-effect-multiply
+ * @since 7.2
+ */
+define ('IMG_EFFECT_MULTIPLY', 4);
+
+/**
+ * When the bundled version of GD is used this is 1 otherwise
+ * it's set to 0.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define ('GD_BUNDLED', 1);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-negate
+ */
+define ('IMG_FILTER_NEGATE', 0);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-grayscale
+ */
+define ('IMG_FILTER_GRAYSCALE', 1);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-brightness
+ */
+define ('IMG_FILTER_BRIGHTNESS', 2);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-contrast
+ */
+define ('IMG_FILTER_CONTRAST', 3);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-colorize
+ */
+define ('IMG_FILTER_COLORIZE', 4);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-edgedetect
+ */
+define ('IMG_FILTER_EDGEDETECT', 5);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-gaussian-blur
+ */
+define ('IMG_FILTER_GAUSSIAN_BLUR', 7);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-selective-blur
+ */
+define ('IMG_FILTER_SELECTIVE_BLUR', 8);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-emboss
+ */
+define ('IMG_FILTER_EMBOSS', 6);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-mean-removal
+ */
+define ('IMG_FILTER_MEAN_REMOVAL', 9);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-smooth
+ */
+define ('IMG_FILTER_SMOOTH', 10);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-pixelate
+ */
+define ('IMG_FILTER_PIXELATE', 11);
+
+/**
+ * Special GD filter used by the {@see imagefilter()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-filter-scatter
+ * @since 7.4
+ */
+define ('IMG_FILTER_SCATTER', 12);
+
+/**
+ * The GD version PHP was compiled against.
+ * @since 5.2.4
+ * @link https://php.net/manual/en/image.constants.php#constant.gd-version
+ */
+define ('GD_VERSION', "2.0.35");
+
+/**
+ * The GD major version PHP was compiled against.
+ * @since 5.2.4
+ * @link https://php.net/manual/en/image.constants.php#constant.gd-major-version
+ */
+define ('GD_MAJOR_VERSION', 2);
+
+/**
+ * The GD minor version PHP was compiled against.
+ * @since 5.2.4
+ * @link https://php.net/manual/en/image.constants.php#constant.gd-minor-version
+ */
+define ('GD_MINOR_VERSION', 0);
+
+/**
+ * The GD release version PHP was compiled against.
+ * @since 5.2.4
+ * @link https://php.net/manual/en/image.constants.php#constant.gd-release-version
+ */
+define ('GD_RELEASE_VERSION', 35);
+
+/**
+ * The GD "extra" version (beta/rc..) PHP was compiled against.
+ * @since 5.2.4
+ * @link https://php.net/manual/en/image.constants.php#constant.gd-extra-version
+ */
+define ('GD_EXTRA_VERSION', "");
+
+
+/**
+ * A special PNG filter, used by the {@see imagepng()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.png-no-filter
+ */
+define ('PNG_NO_FILTER', 0);
+
+/**
+ * A special PNG filter, used by the {@see imagepng()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.png-filter-none
+ */
+define ('PNG_FILTER_NONE', 8);
+
+/**
+ * A special PNG filter, used by the {@see imagepng()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.png-filter-sub
+ */
+define ('PNG_FILTER_SUB', 16);
+
+/**
+ * A special PNG filter, used by the {@see imagepng()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.png-filter-up
+ */
+define ('PNG_FILTER_UP', 32);
+
+/**
+ * A special PNG filter, used by the {@see imagepng()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.png-filter-avg
+ */
+define ('PNG_FILTER_AVG', 64);
+
+/**
+ * A special PNG filter, used by the {@see imagepng()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.png-filter-paeth
+ */
+define ('PNG_FILTER_PAETH', 128);
+
+/**
+ * A special PNG filter, used by the {@see imagepng()} function.
+ * @link https://php.net/manual/en/image.constants.php#constant.png-all-filters
+ */
+define ('PNG_ALL_FILTERS', 248);
+
+/**
+ * An affine transformation type constant used by the {@see imageaffinematrixget()} function.
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-affine-translate
+ */
+define('IMG_AFFINE_TRANSLATE', 0);
+
+/**
+ * An affine transformation type constant used by the {@see imageaffinematrixget()} function.
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-affine-scale
+ */
+define('IMG_AFFINE_SCALE', 1);
+
+/**
+ * An affine transformation type constant used by the {@see imageaffinematrixget()} function.
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-affine-rotate
+ */
+define('IMG_AFFINE_ROTATE', 2);
+
+/**
+ * An affine transformation type constant used by the {@see imageaffinematrixget()} function.
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-affine-shear-horizontal
+ */
+define('IMG_AFFINE_SHEAR_HORIZONTAL', 3);
+
+/**
+ * An affine transformation type constant used by the {@see imageaffinematrixget()} function.
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-affine-shear-vertical
+ */
+define('IMG_AFFINE_SHEAR_VERTICAL', 4);
+
+/**
+ * Same as {@see IMG_CROP_TRANSPARENT}. Before PHP 7.4.0, the bundled libgd fell back to
+ * {@see IMG_CROP_SIDES}, if the image had no transparent color.
+ * Used together with {@see imagecropauto()}.
+ * @since 5.5
+ */
+define('IMG_CROP_DEFAULT', 0);
+
+/**
+ * Crops out a transparent background.
+ * Used together with {@see imagecropauto()}.
+ * @since 5.5
+ */
+define('IMG_CROP_TRANSPARENT', 1);
+
+/**
+ * Crops out a black background.
+ * Used together with {@see imagecropauto()}.
+ * @since 5.5
+ */
+define('IMG_CROP_BLACK', 2);
+
+/**
+ * Crops out a white background.
+ * Used together with {@see imagecropauto()}.
+ * @since 5.5
+ */
+define('IMG_CROP_WHITE', 3);
+
+/**
+ * Uses the 4 corners of the image to attempt to detect the background to crop.
+ * Used together with {@see imagecropauto()}.
+ * @since 5.5
+ */
+define('IMG_CROP_SIDES', 4);
+
+/**
+ * Crops an image using the given threshold and color.
+ * Used together with {@see imagecropauto()}.
+ * @since 5.5
+ */
+define('IMG_CROP_THRESHOLD', 5);
+
+/**
+ * Used together with {@see imageflip()}
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-flip-both
+ */
+define('IMG_FLIP_BOTH', 3);
+
+/**
+ * Used together with {@see imageflip()}
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-flip-horizontal
+ */
+define('IMG_FLIP_HORIZONTAL', 1);
+
+/**
+ * Used together with {@see imageflip()}
+ * @since 5.5
+ * @link https://php.net/manual/en/image.constants.php#constant.img-flip-vertical
+ */
+define('IMG_FLIP_VERTICAL', 2);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-bell
+ * @since 5.5
+ */
+define('IMG_BELL', 1);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-bessel
+ * @since 5.5
+ */
+define('IMG_BESSEL', 2);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-bicubic
+ * @since 5.5
+ */
+define('IMG_BICUBIC', 4);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-bicubic-fixed
+ * @since 5.5
+ */
+define('IMG_BICUBIC_FIXED', 5);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-bilinear-fixed
+ * @since 5.5
+ */
+define('IMG_BILINEAR_FIXED', 3);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-blackman
+ * @since 5.5
+ */
+define('IMG_BLACKMAN', 6);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-box
+ * @since 5.5
+ */
+define('IMG_BOX', 7);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-bspline
+ * @since 5.5
+ */
+define('IMG_BSPLINE', 8);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-catmullrom
+ * @since 5.5
+ */
+define('IMG_CATMULLROM', 9);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-gaussian
+ * @since 5.5
+ */
+define('IMG_GAUSSIAN', 10);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-generalized-cubic
+ * @since 5.5
+ */
+define('IMG_GENERALIZED_CUBIC', 11);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-hermite
+ * @since 5.5
+ */
+define('IMG_HERMITE', 12);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-hamming
+ * @since 5.5
+ */
+define('IMG_HAMMING', 13);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-hanning
+ * @since 5.5
+ */
+define('IMG_HANNING', 14);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-mitchell
+ * @since 5.5
+ */
+define('IMG_MITCHELL', 15);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-power
+ * @since 5.5
+ */
+define('IMG_POWER', 17);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-quadratic
+ * @since 5.5
+ */
+define('IMG_QUADRATIC', 18);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-sinc
+ * @since 5.5
+ */
+define('IMG_SINC', 19);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-nearest-neighbour
+ * @since 5.5
+ */
+define('IMG_NEAREST_NEIGHBOUR', 16);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-weighted4
+ * @since 5.5
+ */
+define('IMG_WEIGHTED4', 21);
+
+/**
+ * Used together with {@see imagesetinterpolation()}.
+ * @link https://php.net/manual/en/image.constants.php#constant.img-triangle
+ * @since 5.5
+ */
+define('IMG_TRIANGLE', 20);
+
+define('IMG_TGA', 128);
+
+/**
+ * Return an image containing the affine tramsformed src image, using an optional clipping area
+ * @link https://secure.php.net/manual/en/function.imageaffine.php
+ * @param resource|GdImage $image
An image resource, returned by one of the image creation functions,
+ * such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ * @param array $affine
Array with keys 0 to 5.
+ * @param array $clip [optional]
Array with keys "x", "y", "width" and "height".
+ * @return resource|GdImage|false Return affined image resource on success or FALSE on failure.
+ */
+function imageaffine($image, $affine, $clip = null) {}
+
+/**
+ * Concat two matrices (as in doing many ops in one go)
+ * @link https://secure.php.net/manual/en/function.imageaffinematrixconcat.php
+ * @param array $m1
Array with keys 0 to 5.
+ * @param array $m2
Array with keys 0 to 5.
+ * @return array|bool Array with keys 0 to 5 and float values or FALSE on failure.
+ * @since 5.5
+ */
+function imageaffinematrixconcat(array $m1, array $m2) {}
+
+/**
+ * Return an image containing the affine tramsformed src image, using an optional clipping area
+ * @link https://secure.php.net/manual/en/function.imageaffinematrixget.php
+ * @param int $type
One of IMG_AFFINE_* constants.
+ * @param mixed $options [optional]
+ * @return array|bool Array with keys 0 to 5 and float values or FALSE on failure.
+ * @since 5.5
+ */
+function imageaffinematrixget ($type, $options = null) {}
+
+/**
+ * Crop an image using the given coordinates and size, x, y, width and height
+ * @link https://secure.php.net/manual/en/function.imagecrop.php
+ * @param resource|GdImage $image
+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ *
+ * @param array $rect
Array with keys "x", "y", "width" and "height".
+ * @return resource|GdImage|false Return cropped image resource on success or FALSE on failure.
+ * @since 5.5
+ */
+function imagecrop ($image, $rect) {}
+
+/**
+ * Crop an image automatically using one of the available modes
+ * @link https://secure.php.net/manual/en/function.imagecropauto.php
+ * @param resource|GdImage $image
+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ *
+ * @param int $mode [optional]
+ * One of IMG_CROP_* constants.
+ *
+ * @param float $threshold [optional]
+ * Used IMG_CROP_THRESHOLD mode.
+ *
+ * @param int $color [optional]
+ *
+ * Used in IMG_CROP_THRESHOLD mode.
+ *
+ * @return resource|GdImage|bool Return cropped image resource on success or FALSE on failure.
+ * @since 5.5
+ */
+function imagecropauto ($image, $mode = IMG_CROP_DEFAULT, $threshold = .5, $color = -1) {}
+
+/**
+ * Flips an image using a given mode
+ * @link https://secure.php.net/manual/en/function.imageflip.php
+ * @param resource|GdImage $image
+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ *
+ * @param int $mode
+ * Flip mode, this can be one of the IMG_FLIP_* constants:
+ *
+ *
+ *
+ *
+ *
Constant
+ *
Meaning
+ *
+ *
+ *
+ *
IMG_FLIP_HORIZONTAL
+ *
+ * Flips the image horizontally.
+ *
+ *
+ *
+ *
IMG_FLIP_VERTICAL
+ *
+ * Flips the image vertically.
+ *
+ *
+ *
+ *
IMG_FLIP_BOTH
+ *
+ * Flips the image both horizontally and vertically.
+ *
+ *
+ *
+ *
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+function imageflip ($image, $mode) {}
+
+/**
+ * Converts a palette based image to true color
+ * @link https://secure.php.net/manual/en/function.imagepalettetotruecolor.php
+ * @param resource|GdImage $image
+ * An image resource, returnd by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ *
+ * @return bool Returns TRUE if the convertion was complete, or if the source image already is a true color image, otherwise FALSE is returned.
+ * @since 5.5
+ */
+function imagepalettetotruecolor ($image) {}
+
+/**
+ * @since 5.5
+ * Scale an image using the given new width and height
+ * @link https://secure.php.net/manual/en/function.imagescale.php
+ * @param resource|GdImage $image
+ * An image resource, returnd by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ *
+ * @param int $new_width
+ * @param int $new_height [optional]
+ * @param int $mode [optional] One of IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED or anything else (will use two pass).
+ * @return resource|GdImage|false Return scaled image resource on success or FALSE on failure.
+ */
+
+function imagescale ($image, $new_width, $new_height = -1, $mode = IMG_BILINEAR_FIXED) {}
+
+/**
+ * Set the interpolation method
+ * @link https://secure.php.net/manual/en/function.imagesetinterpolation.php
+ * @param resource|GdImage $image
+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ *
+ * @param int $method
+ * The interpolation method, which can be one of the following:
+ *
+ *
+ * IMG_BELL: Bell filter.
+ *
+ *
+ * IMG_BESSEL: Bessel filter.
+ *
+ *
+ * IMG_BICUBIC: Bicubic interpolation.
+ *
+ *
+ * IMG_BICUBIC_FIXED: Fixed point implementation of the bicubic interpolation.
+ *
+ *
+ * IMG_BILINEAR_FIXED: Fixed point implementation of the bilinear interpolation (default (also on image creation)).
+ *
+ * The database type as an integer. You can use the
+ * various constants defined with
+ * this extension (ie: GEOIP_*_EDITION).
+ *
+ * @return string|null the corresponding database version, or NULL on error.
+ */
+#[Pure]
+function geoip_database_info ($database = GEOIP_COUNTRY_EDITION) {}
+
+/**
+ * (PECL geoip >= 0.2.0)
+ * Get the two letter country code
+ * @link https://php.net/manual/en/function.geoip-country-code-by-name.php
+ * @param string $hostname
+ * The hostname or IP address whose location is to be looked-up.
+ *
+ * @return string|false the two letter ISO country code on success, or FALSE
+ * if the address cannot be found in the database.
+ */
+#[Pure]
+function geoip_country_code_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 0.2.0)
+ * Get the three letter country code
+ * @link https://php.net/manual/en/function.geoip-country-code3-by-name.php
+ * @param string $hostname
+ * The hostname or IP address whose location is to be looked-up.
+ *
+ * @return string|false the three letter country code on success, or FALSE
+ * if the address cannot be found in the database.
+ */
+#[Pure]
+function geoip_country_code3_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 0.2.0)
+ * Get the full country name
+ * @link https://php.net/manual/en/function.geoip-country-name-by-name.php
+ * @param string $hostname
+ * The hostname or IP address whose location is to be looked-up.
+ *
+ * @return string|false the country name on success, or FALSE if the address cannot
+ * be found in the database.
+ */
+#[Pure]
+function geoip_country_name_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 1.0.3)
+ * Get the two letter continent code
+ * @link https://php.net/manual/en/function.geoip-continent-code-by-name.php
+ * @param string $hostname
+ * The hostname or IP address whose location is to be looked-up.
+ *
+ * @return string|false the two letter continent code on success, or FALSE if the
+ * address cannot be found in the database.
+ */
+#[Pure]
+function geoip_continent_code_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 0.2.0)
+ * Get the organization name
+ * @link https://php.net/manual/en/function.geoip-org-by-name.php
+ * @param string $hostname
+ * The hostname or IP address.
+ *
+ * @return string|false the organization name on success, or FALSE if the address
+ * cannot be found in the database.
+ */
+#[Pure]
+function geoip_org_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 0.2.0)
+ * Returns the detailed City information found in the GeoIP Database
+ * @link https://php.net/manual/en/function.geoip-record-by-name.php
+ * @param string $hostname
+ * The hostname or IP address whose record is to be looked-up.
+ *
+ * @return array|false the associative array on success, or FALSE if the address
+ * cannot be found in the database.
+ */
+#[Pure]
+function geoip_record_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 0.2.0)
+ * Get the Internet connection type
+ * @link https://php.net/manual/en/function.geoip-id-by-name.php
+ * @param string $hostname
+ * The hostname or IP address whose connection type is to be looked-up.
+ *
+ * @return int the connection type.
+ */
+#[Pure]
+function geoip_id_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 0.2.0)
+ * Get the country code and region
+ * @link https://php.net/manual/en/function.geoip-region-by-name.php
+ * @param string $hostname
+ * The hostname or IP address whose region is to be looked-up.
+ *
+ * @return array|false the associative array on success, or FALSE if the address
+ * cannot be found in the database.
+ */
+#[Pure]
+function geoip_region_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 1.0.2)
+ * Get the Internet Service Provider (ISP) name
+ * @link https://php.net/manual/en/function.geoip-isp-by-name.php
+ * @param string $hostname
+ * The hostname or IP address.
+ *
+ * @return string|false the ISP name on success, or FALSE if the address
+ * cannot be found in the database.
+ */
+#[Pure]
+function geoip_isp_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 1.0.1)
+ * Determine if GeoIP Database is available
+ * @link https://php.net/manual/en/function.geoip-db-avail.php
+ * @param int $database
+ * The database type as an integer. You can use the
+ * various constants defined with
+ * this extension (ie: GEOIP_*_EDITION).
+ *
+ * @return bool|null TRUE is database exists, FALSE if not found, or NULL on error.
+ */
+#[Pure]
+function geoip_db_avail ($database) {}
+
+/**
+ * (PECL geoip >= 1.0.1)
+ * Returns detailed information about all GeoIP database types
+ * @link https://php.net/manual/en/function.geoip-db-get-all-info.php
+ * @return array the associative array.
+ */
+#[Pure]
+function geoip_db_get_all_info () {}
+
+/**
+ * (PECL geoip >= 1.0.1)
+ * Returns the filename of the corresponding GeoIP Database
+ * @link https://php.net/manual/en/function.geoip-db-filename.php
+ * @param int $database
+ * The database type as an integer. You can use the
+ * various constants defined with
+ * this extension (ie: GEOIP_*_EDITION).
+ *
+ * @return string|null the filename of the corresponding database, or NULL on error.
+ */
+#[Pure]
+function geoip_db_filename ($database) {}
+
+/**
+ * (PECL geoip >= 1.0.4)
+ * Returns the region name for some country and region code combo
+ * @link https://php.net/manual/en/function.geoip-region-name-by-code.php
+ * @param string $country_code
+ * The two-letter country code (see
+ * geoip_country_code_by_name)
+ *
+ * @param string $region_code
+ * The two-letter (or digit) region code (see
+ * geoip_region_by_name)
+ *
+ * @return string|false the region name on success, or FALSE if the country and region code
+ * combo cannot be found.
+ */
+#[Pure]
+function geoip_region_name_by_code ($country_code, $region_code) {}
+
+/**
+ * (PECL geoip >= 1.0.4)
+ * Returns the time zone for some country and region code combo
+ * @link https://php.net/manual/en/function.geoip-time-zone-by-country-and-region.php
+ * @param string $country_code
+ * The two-letter country code (see
+ * geoip_country_code_by_name)
+ *
+ * @param string $region_code [optional]
+ * The two-letter (or digit) region code (see
+ * geoip_region_by_name)
+ *
+ * @return string|false the time zone on success, or FALSE if the country and region code
+ * combo cannot be found.
+ */
+#[Pure]
+function geoip_time_zone_by_country_and_region ($country_code, $region_code = null) {}
+
+define ('GEOIP_COUNTRY_EDITION', 1);
+define ('GEOIP_REGION_EDITION_REV0', 7);
+define ('GEOIP_CITY_EDITION_REV0', 6);
+define ('GEOIP_ORG_EDITION', 5);
+define ('GEOIP_ISP_EDITION', 4);
+define ('GEOIP_CITY_EDITION_REV1', 2);
+define ('GEOIP_REGION_EDITION_REV1', 3);
+define ('GEOIP_PROXY_EDITION', 8);
+define ('GEOIP_ASNUM_EDITION', 9);
+define ('GEOIP_NETSPEED_EDITION', 10);
+define ('GEOIP_DOMAIN_EDITION', 11);
+define ('GEOIP_UNKNOWN_SPEED', 0);
+define ('GEOIP_DIALUP_SPEED', 1);
+define ('GEOIP_CABLEDSL_SPEED', 2);
+define ('GEOIP_CORPORATE_SPEED', 3);
+
+/**
+ * (PECL geoip >= 1.1.0)
+ *
+ * The geoip_asnum_by_name() function will return the Autonomous System Numbers (ASN) associated with an IP address.
+ *
+ * @link https://secure.php.net/manual/en/function.geoip-asnum-by-name.php
+ * @param string $hostname The hostname or IP address
+ *
+ * @return string|false Returns the ASN on success, or FALSE if the address cannot be found in the database.
+ * @since 1.1.0
+ */
+function geoip_asnum_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 1.1.0)
+ *
+ * The geoip_netspeedcell_by_name() function will return the Internet connection type and speed corresponding to a hostname or an IP address.
+ *
+ * This function is only available if using GeoIP Library version 1.4.8 or newer.
+ *
+ * This function is currently only available to users who have bought a commercial GeoIP NetSpeedCell Edition. A warning will be issued if the proper database cannot be located.
+ *
+ * The return value is a string, common values are:
+ * - Cable/DSL
+ * - Dialup
+ * - Cellular
+ * - Corporate
+ *
+ * @link https://secure.php.net/manual/en/function.geoip-netspeedcell-by-name.php
+ * @param string $hostname The hostname or IP address
+ *
+ * @return string|false Returns the connection speed on success, or FALSE if the address cannot be found in the database.
+ * @since 1.1.0
+ */
+function geoip_netspeedcell_by_name ($hostname) {}
+
+/**
+ * (PECL geoip >= 1.1.0)
+ *
+ * The geoip_setup_custom_directory() function will change the default directory of the GeoIP database. This is equivalent to changing geoip.custom_directory
+ *
+ * @link https://secure.php.net/manual/en/function.geoip-setup-custom-directory.php
+ * @param string $path The full path of where the GeoIP database is on disk.
+ *
+ * @return void
+ * @since 1.1.0
+ */
+function geoip_setup_custom_directory ($path) {}
+
+// End of geoip v.1.1.0
diff --git a/vendor/jetbrains/phpstorm-stubs/geos/geos.php b/vendor/jetbrains/phpstorm-stubs/geos/geos.php
new file mode 100644
index 0000000000..657bd8f4b4
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/geos/geos.php
@@ -0,0 +1,745 @@
+ 8,
+ 'endcap' => GEOSBUF_CAP_ROUND,
+ 'join' => GEOSBUF_JOIN_ROUND,
+ 'mitre_limit' => 5.0,
+ 'single_sided' => false
+ ]): GEOSGeometry {}
+
+ /**
+ * @param float $distance
+ * @param array $styleArray
+ * Keys supported:
+ * 'quad_segs'
+ * Type: int
+ * Number of segments used to approximate
+ * a quarter circle (defaults to 8).
+ * 'join'
+ * Type: long
+ * Join style (defaults to GEOSBUF_JOIN_ROUND)
+ * 'mitre_limit'
+ * Type: double
+ * mitre ratio limit (only affects joins with GEOSBUF_JOIN_MITRE style)
+ * 'miter_limit' is also accepted as a synonym for 'mitre_limit'.
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function offsetCurve(float $distance, array $styleArray = [
+ 'quad_segs' => 8,
+ 'join' => GEOSBUF_JOIN_ROUND,
+ 'mitre_limit' => 5.0
+ ]): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function envelope(): GEOSGeometry {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function intersection(GEOSGeometry $geom): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function convexHull(): GEOSGeometry {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function difference(GEOSGeometry $geom): GEOSGeometry {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function symDifference(GEOSGeometry $geom): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function boundary(): GEOSGeometry {}
+
+ /**
+ * @param GEOSGeometry|null $geom
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function union(GEOSGeometry $geom = null): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function pointOnSurface(): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function centroid(): GEOSGeometry {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @param string|null $pattern
+ * @return bool|string
+ * @throws Exception
+ */
+ public function relate(GEOSGeometry $geom, string $pattern = null) {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @param int $rule
+ * @return string
+ * @throws Exception
+ */
+ public function relateBoundaryNodeRule(GEOSGeometry $geom, int $rule = GEOSRELATE_BNR_OGC): string {}
+
+ /**
+ * @param float $tolerance
+ * @param bool $preserveTopology
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function simplify(float $tolerance, bool $preserveTopology = false): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function normalize(): GEOSGeometry {}
+
+ /**
+ * @param float $gridSize
+ * @param int $flags
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function setPrecision(float $gridSize, int $flags = 0): GEOSGeometry {}
+
+ /**
+ * @return float
+ */
+ public function getPrecision(): float {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function extractUniquePoints(): GEOSGeometry {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function disjoint(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function touches(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function intersects(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function crosses(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function within(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function contains(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function overlaps(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function covers(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function coveredBy(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return bool
+ * @throws Exception
+ */
+ public function equals(GEOSGeometry $geom): bool {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @param float $tolerance
+ * @return bool
+ * @throws Exception
+ */
+ public function equalsExact(GEOSGeometry $geom, float $tolerance = 0): bool {}
+
+ /**
+ * @return bool
+ * @throws Exception
+ */
+ public function isEmpty(): bool {}
+
+ /**
+ * @return array
+ * @throws Exception
+ */
+ public function checkValidity(): array {}
+
+ /**
+ * @return bool
+ * @throws Exception
+ */
+ public function isSimple(): bool {}
+
+ /**
+ * @return bool
+ * @throws Exception
+ */
+ public function isRing(): bool {}
+
+ /**
+ * @return bool
+ * @throws Exception
+ */
+ public function hasZ(): bool {}
+
+ /**
+ * @return bool
+ * @throws Exception
+ */
+ public function isClosed(): bool {}
+
+ /**
+ * @return string
+ * @throws Exception
+ */
+ public function typeName(): string {}
+
+ /**
+ * @return int
+ * @throws Exception
+ */
+ public function typeId(): int {}
+
+ /**
+ * @return int
+ */
+ public function getSRID(): int {}
+
+ /**
+ * @param int $srid
+ * @throws Exception
+ */
+ public function setSRID(int $srid): void {}
+
+ /**
+ * @return int
+ * @throws Exception
+ */
+ public function numGeometries(): int {}
+
+ /**
+ * @param int $n
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function geometryN(int $n): GEOSGeometry {}
+
+ /**
+ * @return int
+ * @throws Exception
+ */
+ public function numInteriorRings(): int {}
+
+ /**
+ * @return int
+ * @throws Exception
+ */
+ public function numPoints(): int {}
+
+ /**
+ * @return float
+ * @throws Exception
+ */
+ public function getX(): float {}
+
+ /**
+ * @return float
+ * @throws Exception
+ */
+ public function getY(): float {}
+
+ /**
+ * @param int $n
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function interiorRingN(int $n): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function exteriorRing(): GEOSGeometry {}
+
+ /**
+ * @return int
+ * @throws Exception
+ */
+ public function numCoordinates(): int {}
+
+ /**
+ * @return int
+ * @throws Exception
+ */
+ public function dimension(): int {}
+
+ /**
+ * @return int
+ * @throws Exception
+ */
+ public function coordinateDimension(): int {}
+
+ /**
+ * @param int $n
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function pointN(int $n): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function startPoint(): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function endPoint(): GEOSGeometry {}
+
+ /**
+ * @return float
+ * @throws Exception
+ */
+ public function area(): float {}
+
+ /**
+ * @return float
+ * @throws Exception
+ */
+ public function length(): float {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return float
+ * @throws Exception
+ */
+ public function distance(GEOSGeometry $geom): float {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return float
+ * @throws Exception
+ */
+ public function hausdorffDistance(GEOSGeometry $geom): float {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @param float $tolerance
+ * @return GEOSGeometry
+ */
+ public function snapTo(GEOSGeometry $geom, float $tolerance): GEOSGeometry {}
+
+ /**
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function node(): GEOSGeometry {}
+
+ /**
+ * @param float $tolerance Snapping tolerance to use for improved robustness
+ * @param bool $onlyEdges if true, will return a MULTILINESTRING,
+ * otherwise (the default) it will return a GEOMETRYCOLLECTION containing triangular POLYGONs.
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function delaunayTriangulation(float $tolerance = 0.0, bool $onlyEdges = false): GEOSGeometry {}
+
+ /**
+ * @param float $tolerance Snapping tolerance to use for improved robustness
+ * @param bool $onlyEdges If true will return a MULTILINESTRING,
+ * otherwise (the default) it will return a GEOMETRYCOLLECTION containing POLYGONs.
+ * @param GEOSGeometry|null $extent Clip returned diagram by the extent of the given geometry
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function voronoiDiagram(float $tolerance = 0.0, bool $onlyEdges = false, GEOSGeometry $extent = null): GEOSGeometry {}
+
+ /**
+ * @param float $xmin
+ * @param float $ymin
+ * @param float $xmax
+ * @param float $ymax
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function clipByRect(float $xmin, float $ymin, float $xmax, float $ymax): GEOSGeometry {}
+
+}
+
+/**
+ * Class GEOSWKBWriter
+ * @see https://github.com/libgeos/php-geos/blob/master/tests/004_WKBWriter.phpt
+ */
+class GEOSWKBWriter
+{
+
+ /**
+ * GEOSWKBWriter constructor.
+ */
+ public function __construct() {}
+
+ /**
+ * @return int
+ */
+ public function getOutputDimension(): int {}
+
+ /**
+ * @param int $dimension
+ * @throws Exception
+ */
+ public function setOutputDimension(int $dimension): void {}
+
+ /**
+ * @return int
+ */
+ public function getByteOrder(): int {}
+
+ /**
+ * @param int $byteOrder
+ * @throws Exception
+ */
+ public function setByteOrder(int $byteOrder): void {}
+
+ /**
+ * @return int
+ */
+ public function getIncludeSRID(): int {}
+
+ /**
+ * @param int $srid
+ * @throws Exception
+ */
+ public function setIncludeSRID(int $srid): void {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return string
+ * @throws Exception
+ */
+ public function write(GEOSGeometry $geom): string {}
+
+ /**
+ * @param GEOSGeometry $geom
+ * @return string
+ * @throws Exception
+ */
+ public function writeHEX(GEOSGeometry $geom): string {}
+
+}
+
+/**
+ * Class GEOSWKBReader
+ * @see https://github.com/libgeos/php-geos/blob/master/tests/005_WKBReader.phpt
+ */
+class GEOSWKBReader
+{
+
+ /**
+ * GEOSWKBReader constructor.
+ */
+ public function __construct() {}
+
+ /**
+ * @param string $wkb
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function read(string $wkb): GEOSGeometry {}
+
+ /**
+ * @param string $wkb
+ * @return GEOSGeometry
+ * @throws Exception
+ */
+ public function readHEX(string $wkb): GEOSGeometry {}
+
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/gettext/gettext.php b/vendor/jetbrains/phpstorm-stubs/gettext/gettext.php
new file mode 100644
index 0000000000..3b4d6e7a02
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/gettext/gettext.php
@@ -0,0 +1,150 @@
+
+ * The new message domain, or NULL to get the current setting without
+ * changing it
+ *
+ * @return string If successful, this function returns the current message
+ * domain, after possibly changing it.
+ */
+function textdomain (?string $domain): string
+{}
+
+/**
+ * Lookup a message in the current domain
+ * @link https://php.net/manual/en/function.gettext.php
+ * @param string $message
+ * The message being translated.
+ *
+ * @return string a translated string if one is found in the
+ * translation table, or the submitted message if not found.
+ */
+#[Pure]
+function _ (string $message): string
+{}
+
+/**
+ * Lookup a message in the current domain
+ * @link https://php.net/manual/en/function.gettext.php
+ * @param string $message
+ * The message being translated.
+ *
+ * @return string a translated string if one is found in the
+ * translation table, or the submitted message if not found.
+ */
+#[Pure]
+function gettext (string $message): string
+{}
+
+/**
+ * Override the current domain
+ * @link https://php.net/manual/en/function.dgettext.php
+ * @param string $domain
+ * The domain
+ *
+ * @param string $message
+ * The message
+ *
+ * @return string A string on success.
+ */
+function dgettext (string $domain, string $message): string
+{}
+
+/**
+ * Overrides the domain for a single lookup
+ * @link https://php.net/manual/en/function.dcgettext.php
+ * @param string $domain
+ * The domain
+ *
+ * @param string $message
+ * The message
+ *
+ * @param int $category
+ * The category
+ *
+ * @return string A string on success.
+ */
+function dcgettext (string $domain, string $message, int $category): string
+{}
+
+/**
+ * Sets the path for a domain
+ * @link https://php.net/manual/en/function.bindtextdomain.php
+ * @param string $domain
+ * The domain
+ *
+ * @param string $directory
+ * The directory path
+ *
+ * @return string|false The full pathname for the domain currently being set.
+ */
+function bindtextdomain (string $domain, string $directory): string|false
+{}
+
+/**
+ * Plural version of gettext
+ * @link https://php.net/manual/en/function.ngettext.php
+ * @param string $singular
+ * @param string $plural
+ * @param int $count
+ * @return string correct plural form of message identified by
+ * msgid1 and msgid2
+ * for count n.
+ */
+#[Pure]
+function ngettext (string $singular, string $plural, int $count): string
+{}
+
+/**
+ * Plural version of dgettext
+ * @link https://php.net/manual/en/function.dngettext.php
+ * @param string $domain
+ * The domain
+ *
+ * @param string $singular
+ * @param string $plural
+ * @param int $count
+ * @return string A string on success.
+ */
+#[Pure]
+function dngettext (string $domain, string $singular, string $plural, int $count): string
+{}
+
+/**
+ * Plural version of dcgettext
+ * @link https://php.net/manual/en/function.dcngettext.php
+ * @param string $domain
+ * The domain
+ *
+ * @param string $singular
+ * @param string $plural
+ * @param int $count
+ * @param int $category
+ * @return string A string on success.
+ */
+#[Pure]
+function dcngettext (string $domain, string $singular, string $plural, int $count, int $category): string
+{}
+
+/**
+ * Specify the character encoding in which the messages from the DOMAIN message catalog will be returned
+ * @link https://php.net/manual/en/function.bind-textdomain-codeset.php
+ * @param string $domain
+ * The domain
+ *
+ * @param string $codeset
+ * The code set
+ *
+ * @return string|false A string on success.
+ */
+function bind_textdomain_codeset (string $domain, string $codeset): string|false
+{}
+
+// End of gettext v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/gmagick/gmagick.php b/vendor/jetbrains/phpstorm-stubs/gmagick/gmagick.php
new file mode 100644
index 0000000000..11868c9207
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/gmagick/gmagick.php
@@ -0,0 +1,3150 @@
+
+ * An integer or a string. The string representation can be decimal,
+ * hexadecimal or octal.
+ *
+ * @param int $base [optional]
+ * The base.
+ *
+ *
+ * The base may vary from 2 to 36. If base is 0 (default value), the
+ * actual base is determined from the leading characters: if the first
+ * two characters are 0x or 0X,
+ * hexadecimal is assumed, otherwise if the first character is "0",
+ * octal is assumed, otherwise decimal is assumed.
+ *
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_init ($number, $base = 0) {}
+
+/**
+ * Convert GMP number to integer
+ * @link https://php.net/manual/en/function.gmp-intval.php
+ * @param resource|string|GMP $gmpnumber
+ * A GMP number.
+ *
+ * @return int An integer value of gmpnumber.
+ */
+#[Pure]
+function gmp_intval ($gmpnumber) {}
+
+/**
+ * Sets the RNG seed
+ * @param resource|string|GMP $seed
+ * The seed to be set for the {@see gmp_random()}, {@see gmp_random_bits()}, and {@see gmp_random_range()} functions.
+ *
+ * Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 and later, or a numeric string provided that it is possible to convert the latter to a number.
+ * @return null|false Returns NULL on success.
+ * @since 7.0
+ */
+function gmp_random_seed ($seed ) {}
+/**
+ * Convert GMP number to string
+ * @link https://php.net/manual/en/function.gmp-strval.php
+ * @param resource|string|GMP $gmpnumber
+ * The GMP number that will be converted to a string.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $base [optional]
+ * The base of the returned number. The default base is 10.
+ * Allowed values for the base are from 2 to 62 and -2 to -36.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b
+ * A number that will be added.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number representing the sum of the arguments.
+ */
+#[Pure]
+function gmp_add ($a, $b) {}
+
+/**
+ * Subtract numbers
+ * @link https://php.net/manual/en/function.gmp-sub.php
+ * @param resource|string|GMP $a
+ * The number being subtracted from.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b
+ * The number subtracted from a.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_sub ($a, $b) {}
+
+/**
+ * Multiply numbers
+ * @link https://php.net/manual/en/function.gmp-mul.php
+ * @param resource|string|GMP $a
+ * A number that will be multiplied by b.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b
+ * A number that will be multiplied by a.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_mul ($a, $b) {}
+
+/**
+ * Divide numbers and get quotient and remainder
+ * @link https://php.net/manual/en/function.gmp-div-qr.php
+ * @param resource|string|GMP $n
+ * The number being divided.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $d
+ * The number that n is being divided by.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $round [optional]
+ * See the gmp_div_q function for description
+ * of the round argument.
+ *
+ * @return array an array, with the first
+ * element being [n/d] (the integer result of the
+ * division) and the second being (n - [n/d] * d)
+ * (the remainder of the division).
+ */
+#[Pure]
+function gmp_div_qr ($n, $d, $round = GMP_ROUND_ZERO) {}
+
+/**
+ * Divide numbers
+ * @link https://php.net/manual/en/function.gmp-div-q.php
+ * @param resource|string|GMP $a
+ * The number being divided.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b
+ * The number that a is being divided by.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $round [optional]
+ * The result rounding is defined by the
+ * round, which can have the following
+ * values:
+ * GMP_ROUND_ZERO: The result is truncated
+ * towards 0.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_div_q ($a, $b, $round = GMP_ROUND_ZERO) {}
+
+/**
+ * Remainder of the division of numbers
+ * @link https://php.net/manual/en/function.gmp-div-r.php
+ * @param resource|string|GMP $n
+ * The number being divided.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $d
+ * The number that n is being divided by.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $round [optional]
+ * See the gmp_div_q function for description
+ * of the round argument.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b
+ * The number that a is being divided by.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $round [optional]
+ * The result rounding is defined by the
+ * round, which can have the following
+ * values:
+ * GMP_ROUND_ZERO: The result is truncated
+ * towards 0.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_div ($a, $b, $round = GMP_ROUND_ZERO) {}
+
+/**
+ * Modulo operation
+ * @link https://php.net/manual/en/function.gmp-mod.php
+ * @param resource|string|GMP $n It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $d
+ * The modulo that is being evaluated.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_mod ($n, $d) {}
+
+/**
+ * Exact division of numbers
+ * @link https://php.net/manual/en/function.gmp-divexact.php
+ * @param resource|string|GMP $n
+ * The number being divided.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $d
+ * The number that a is being divided by.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_divexact ($n, $d) {}
+
+/**
+ * Negate number
+ * @link https://php.net/manual/en/function.gmp-neg.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP -a, as a GMP number.
+ */
+#[Pure]
+function gmp_neg ($a) {}
+
+/**
+ * Absolute value
+ * @link https://php.net/manual/en/function.gmp-abs.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP the absolute value of a, as a GMP number.
+ */
+#[Pure]
+function gmp_abs ($a) {}
+
+/**
+ * Factorial
+ * @link https://php.net/manual/en/function.gmp-fact.php
+ * @param resource|string|GMP $a
+ * The factorial number.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_fact ($a) {}
+
+/**
+ * Calculate square root
+ * @link https://php.net/manual/en/function.gmp-sqrt.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP The integer portion of the square root, as a GMP number.
+ */
+#[Pure]
+function gmp_sqrt ($a) {}
+
+/**
+ * Square root with remainder
+ * @link https://php.net/manual/en/function.gmp-sqrtrem.php
+ * @param resource|string|GMP $a
+ * The number being square rooted.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return array array where first element is the integer square root of
+ * a and the second is the remainder
+ * (i.e., the difference between a and the
+ * first element squared).
+ */
+#[Pure]
+function gmp_sqrtrem ($a) {}
+
+/**
+ * Raise number into power
+ * @link https://php.net/manual/en/function.gmp-pow.php
+ * @param resource|string|GMP $base
+ * The base number.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $exp
+ * The positive power to raise the base.
+ *
+ * @return resource|GMP The new (raised) number, as a GMP number. The case of
+ * 0^0 yields 1.
+ */
+#[Pure]
+function gmp_pow ($base, $exp) {}
+
+/**
+ * Raise number into power with modulo
+ * @link https://php.net/manual/en/function.gmp-powm.php
+ * @param resource|string|GMP $base
+ * The base number.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $exp
+ * The positive power to raise the base.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $mod
+ * The modulo.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP The new (raised) number, as a GMP number.
+ */
+#[Pure]
+function gmp_powm ($base, $exp, $mod) {}
+
+/**
+ * Perfect square check
+ * @link https://php.net/manual/en/function.gmp-perfect-square.php
+ * @param resource|string|GMP $a
+ * The number being checked as a perfect square.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return bool TRUE if a is a perfect square,
+ * FALSE otherwise.
+ */
+#[Pure]
+function gmp_perfect_square ($a) {}
+
+/**
+ * Check if number is "probably prime"
+ * @link https://php.net/manual/en/function.gmp-prob-prime.php
+ * @param resource|string|GMP $a
+ * The number being checked as a prime.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $reps [optional]
+ * Reasonable values
+ * of reps vary from 5 to 10 (default being
+ * 10); a higher value lowers the probability for a non-prime to
+ * pass as a "probable" prime.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return int If this function returns 0, a is
+ * definitely not prime. If it returns 1, then
+ * a is "probably" prime. If it returns 2,
+ * then a is surely prime.
+ */
+#[Pure]
+function gmp_prob_prime ($a, $reps = 10) {}
+
+/**
+ * Random number
+ * @link https://php.net/manual/en/function.gmp-random-bits.php
+ * @param int $bits
The number of bits. Either a GMP number resource in PHP 5.5 and earlier,
+ * a GMP object in PHP 5.6 and later,
+ * or a numeric string provided that it is possible to convert the latter to a number.
+ * @return GMP A random GMP number.
+ */
+#[Pure]
+function gmp_random_bits($bits) {}
+
+/**
+ * Random number
+ * @link https://php.net/manual/en/function.gmp-random-range.php
+ * @param GMP $min
A GMP number representing the lower bound for the random number
+ * @param GMP $max
A GMP number representing the upper bound for the random number
+ * @return GMP A random GMP number.
+ */
+#[Pure]
+function gmp_random_range(GMP $min, GMP $max) {}
+
+/**
+ * Calculate GCD
+ * @link https://php.net/manual/en/function.gmp-gcd.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A positive GMP number that divides into both
+ * a and b.
+ */
+#[Pure]
+function gmp_gcd ($a, $b) {}
+
+/**
+ * Calculate GCD and multipliers
+ * @link https://php.net/manual/en/function.gmp-gcdext.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return array An array of GMP numbers.
+ */
+#[Pure]
+function gmp_gcdext ($a, $b) {}
+
+/**
+ * Inverse by modulo
+ * @link https://php.net/manual/en/function.gmp-invert.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP|false A GMP number on success or FALSE if an inverse does not exist.
+ */
+#[Pure]
+function gmp_invert ($a, $b) {}
+
+/**
+ * Jacobi symbol
+ * @link https://php.net/manual/en/function.gmp-jacobi.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $p It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ *
+ * Should be odd and must be positive.
+ *
+ * @return int A GMP number resource.
+ */
+#[Pure]
+function gmp_jacobi ($a, $p) {}
+
+/**
+ * Legendre symbol
+ * @link https://php.net/manual/en/function.gmp-legendre.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $p It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ *
+ * Should be odd and must be positive.
+ *
+ * @return int A GMP number resource.
+ */
+#[Pure]
+function gmp_legendre ($a, $p) {}
+
+/**
+ * Compare numbers
+ * @link https://php.net/manual/en/function.gmp-cmp.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return int a positive value if a > b, zero if
+ * a = b and a negative value if a <
+ * b.
+ */
+#[Pure]
+function gmp_cmp ($a, $b) {}
+
+/**
+ * Sign of number
+ * @link https://php.net/manual/en/function.gmp-sign.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return int 1 if a is positive,
+ * -1 if a is negative,
+ * and 0 if a is zero.
+ */
+#[Pure]
+function gmp_sign ($a) {}
+
+/**
+ * Random number
+ * @link https://php.net/manual/en/function.gmp-random.php
+ * @param int $limiter [optional]
+ * The limiter.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A random GMP number.
+ * @see gmp_random_bits()
+ * @see gmp_random_range()
+ * @removed 8.0
+ */
+
+#[Deprecated(reason: "Use see gmp_random_bits() or see gmp_random_range() instead", since: "7.2")]
+#[Pure]
+function gmp_random ($limiter = 20) {}
+
+/**
+ * Bitwise AND
+ * @link https://php.net/manual/en/function.gmp-and.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number representing the bitwise AND comparison.
+ */
+#[Pure]
+function gmp_and ($a, $b) {}
+
+/**
+ * Bitwise OR
+ * @link https://php.net/manual/en/function.gmp-or.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_or ($a, $b) {}
+
+/**
+ * Calculates one's complement
+ * @link https://php.net/manual/en/function.gmp-com.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP the one's complement of a, as a GMP number.
+ */
+#[Pure]
+function gmp_com ($a) {}
+
+/**
+ * Bitwise XOR
+ * @link https://php.net/manual/en/function.gmp-xor.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource.
+ */
+#[Pure]
+function gmp_xor ($a, $b) {}
+
+/**
+ * Set bit
+ * @link https://php.net/manual/en/function.gmp-setbit.php
+ * @param resource|string|GMP &$a
+ * The number being set to.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $index
+ * The set bit.
+ *
+ * @param bool $set_clear [optional]
+ * Defines if the bit is set to 0 or 1. By default the bit is set to
+ * 1. Index starts at 0.
+ *
+ * @return void A GMP number resource.
+ */
+function gmp_setbit (&$a, $index, $set_clear = true) {}
+
+/**
+ * Clear bit
+ * @link https://php.net/manual/en/function.gmp-clrbit.php
+ * @param resource|string|GMP &$a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $index It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return void A GMP number resource.
+ */
+function gmp_clrbit (&$a, $index) {}
+
+/**
+ * Scan for 0
+ * @link https://php.net/manual/en/function.gmp-scan0.php
+ * @param resource|string|GMP $a
+ * The number to scan.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $start
+ * The starting bit.
+ *
+ * @return int the index of the found bit, as an integer. The
+ * index starts from 0.
+ */
+#[Pure]
+function gmp_scan0 ($a, $start) {}
+
+/**
+ * Scan for 1
+ * @link https://php.net/manual/en/function.gmp-scan1.php
+ * @param resource|string|GMP $a
+ * The number to scan.
+ *
+ * It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $start
+ * The starting bit.
+ *
+ * @return int the index of the found bit, as an integer.
+ * If no set bit is found, -1 is returned.
+ */
+#[Pure]
+function gmp_scan1 ($a, $start) {}
+
+/**
+ * Tests if a bit is set
+ * @link https://php.net/manual/en/function.gmp-testbit.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @param int $index
+ * The bit to test
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[Pure]
+function gmp_testbit ($a, $index) {}
+
+/**
+ * Population count
+ * @link https://php.net/manual/en/function.gmp-popcount.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return int The population count of a, as an integer.
+ */
+#[Pure]
+function gmp_popcount ($a) {}
+
+/**
+ * Hamming distance
+ * @link https://php.net/manual/en/function.gmp-hamdist.php
+ * @param resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ *
+ * It should be positive.
+ *
+ * @param resource|string|GMP $b It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ *
+ * It should be positive.
+ *
+ * @return int A GMP number resource.
+ */
+#[Pure]
+function gmp_hamdist ($a, $b) {}
+
+/**
+ * Import from a binary string
+ * @link https://php.net/manual/en/function.gmp-import.php
+ * @param string $data The binary string being imported
+ * @param integer $word_size Default value is 1. The number of bytes in each chunk of binary
+ * data. This is mainly used in conjunction with the options parameter.
+ * @param integer $options Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.
+ * @return GMP|false Returns a GMP number or FALSE on failure.
+ * @since 5.6.1
+ */
+#[Pure]
+function gmp_import ($data, $word_size = 1, $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN) {}
+
+/**
+ * Export to a binary string
+ * @link https://php.net/manual/en/function.gmp-export.php
+ * @param GMP $gmpnumber The GMP number being exported
+ * @param integer $word_size Default value is 1. The number of bytes in each chunk of binary
+ * data. This is mainly used in conjunction with the options parameter.
+ * @param integer $options Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.
+ * @return string|false Returns a string or FALSE on failure.
+ * @since 5.6.1
+ */
+#[Pure]
+function gmp_export (GMP $gmpnumber, $word_size = 1, $options = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN) {}
+
+/**
+ * Takes the nth root of a and returns the integer component of the result.
+ * @link https://php.net/manual/en/function.gmp-root.php
+ * @param GMP $a Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6
+ * and later, or a numeric string provided that it is possible to convert the latter to a number.
+ * @param integer $nth The positive root to take of a.
+ * @return GMP The integer component of the resultant root, as a GMP number.
+ * @since 5.6
+ */
+#[Pure]
+function gmp_root (GMP $a, $nth) {}
+
+/**
+ * Takes the nth root of a and returns the integer component and remainder of the result.
+ * @link https://php.net/manual/en/function.gmp-rootrem.php
+ * @param GMP $a Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6
+ * and later, or a numeric string provided that it is possible to convert the latter to a number.
+ * @param integer $nth The positive root to take of a.
+ * @return array|GMP[] A two element array, where the first element is the integer component of
+ * the root, and the second element is the remainder, both represented as GMP numbers.
+ * @since 5.6
+ */
+#[Pure]
+function gmp_rootrem (GMP $a, $nth) {}
+
+/**
+ * Find next prime number
+ * @link https://php.net/manual/en/function.gmp-nextprime.php
+ * @param int|resource|string|GMP $a It can be either a GMP number resource, or a
+ * numeric string given that it is possible to convert the latter to a number.
+ * @return resource Return the next prime number greater than a,
+ * as a GMP number.
+ */
+#[Pure]
+function gmp_nextprime ($a) {}
+
+/**
+ * Calculates binomial coefficient
+ *
+ * @link https://www.php.net/manual/en/function.gmp-binomial.php
+ *
+ * @param GMP|string|float|int $a
+ * @param int $b
+ * @return GMP|false
+ *
+ * @since 7.3
+ */
+#[Pure]
+function gmp_binomial($a, $b) {}
+
+/**
+ * Computes the Kronecker symbol
+ *
+ * @link https://www.php.net/manual/en/function.gmp-kronecker.php
+ *
+ * @param GMP|string|float|int $a
+ * @param GMP|string|float|int $b
+ * @return int
+ *
+ * @since 7.3
+ */
+#[Pure]
+function gmp_kronecker($a, $b) {}
+
+/**
+ * Computes the least common multiple of A and B
+ *
+ * @link https://www.php.net/manual/en/function.gmp-lcm.php
+ *
+ * @param GMP|string|float|int $a
+ * @param GMP|string|float|int $b
+ * @return GMP
+ *
+ * @since 7.3
+ */
+#[Pure]
+function gmp_lcm($a, $b) {}
+
+/**
+ * Perfect power check
+ *
+ * @link https://www.php.net/manual/en/function.gmp-perfect-power.php
+ *
+ * @param GMP|string|float|int $a
+ * @return bool
+ *
+ * @since 7.3
+ */
+#[Pure]
+function gmp_perfect_power($a) {}
+
+define ('GMP_ROUND_ZERO', 0);
+define ('GMP_ROUND_PLUSINF', 1);
+define ('GMP_ROUND_MINUSINF', 2);
+define ('GMP_MSW_FIRST', 1);
+define ('GMP_LSW_FIRST', 2);
+define ('GMP_LITTLE_ENDIAN', 4);
+define ('GMP_BIG_ENDIAN', 8);
+define ('GMP_NATIVE_ENDIAN', 16);
+
+/**
+ * The GMP library version
+ * @link https://php.net/manual/en/gmp.constants.php
+ */
+define ('GMP_VERSION', "");
+
+define ('GMP_MPIR_VERSION', '3.0.0');
+
+class GMP implements Serializable {
+
+ /**
+ * String representation of object
+ * @link https://php.net/manual/en/serializable.serialize.php
+ * @return string the string representation of the object or null
+ */
+ public function serialize() {}
+
+ /**
+ * Constructs the object
+ * @link https://php.net/manual/en/serializable.unserialize.php
+ * @param string $serialized
+ * The string representation of the object.
+ *
+ * @return void
+ */
+ public function unserialize($serialized) {}
+}
+// End of gmp v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/gnupg/gnupg.php b/vendor/jetbrains/phpstorm-stubs/gnupg/gnupg.php
new file mode 100644
index 0000000000..9e013aeba9
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/gnupg/gnupg.php
@@ -0,0 +1,295 @@
+
+ * @link https://github.com/iMega/grpc-phpdoc
+ */
+/**
+ * Grpc
+ * @see https://grpc.io
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+namespace Grpc
+{
+ /**
+ * Register call error constants
+ */
+
+ /**
+ * everything went ok
+ */
+ const CALL_OK = 0;
+
+ /**
+ * something failed, we don't know what
+ */
+ const CALL_ERROR = 1;
+
+ /**
+ * this method is not available on the server
+ */
+ const CALL_ERROR_NOT_ON_SERVER = 2;
+
+ /**
+ * this method is not available on the client
+ */
+ const CALL_ERROR_NOT_ON_CLIENT = 3;
+
+ /**
+ * this method must be called before server_accept
+ */
+ const CALL_ERROR_ALREADY_ACCEPTED = 4;
+
+ /**
+ * this method must be called before invoke
+ */
+ const CALL_ERROR_ALREADY_INVOKED = 5;
+
+ /**
+ * this method must be called after invoke
+ */
+ const CALL_ERROR_NOT_INVOKED = 6;
+
+ /**
+ * this call is already finished
+ * (writes_done or write_status has already been called)
+ */
+ const CALL_ERROR_ALREADY_FINISHED = 7;
+
+ /**
+ * there is already an outstanding read/write operation on the call
+ */
+ const CALL_ERROR_TOO_MANY_OPERATIONS = 8;
+
+ /**
+ * the flags value was illegal for this call
+ */
+ const CALL_ERROR_INVALID_FLAGS = 9;
+
+ /**
+ * invalid metadata was passed to this call
+ */
+ const CALL_ERROR_INVALID_METADATA = 10;
+
+ /**
+ * invalid message was passed to this call
+ */
+ const CALL_ERROR_INVALID_MESSAGE = 11;
+
+ /**
+ * completion queue for notification has not been registered with the
+ * server
+ */
+ const CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE = 12;
+
+ /**
+ * this batch of operations leads to more operations than allowed
+ */
+ const CALL_ERROR_BATCH_TOO_BIG = 13;
+
+ /**
+ * payload type requested is not the type registered
+ */
+ const CALL_ERROR_PAYLOAD_TYPE_MISMATCH = 14;
+
+ /**
+ * Register write flags
+ */
+
+ /**
+ * Hint that the write may be buffered and need not go out on the wire
+ * immediately. GRPC is free to buffer the message until the next non-buffered
+ * write, or until writes_done, but it need not buffer completely or at all.
+ */
+ const WRITE_BUFFER_HINT = 1;
+
+ /**
+ * Force compression to be disabled for a particular write
+ * (start_write/add_metadata). Illegal on invoke/accept.
+ */
+ const WRITE_NO_COMPRESS = 2;
+
+ /**
+ * Register status constants
+ */
+
+ /**
+ * Not an error; returned on success
+ */
+ const STATUS_OK = 0;
+
+ /**
+ * The operation was cancelled (typically by the caller).
+ */
+ const STATUS_CANCELLED = 1;
+
+ /**
+ * Unknown error. An example of where this error may be returned is
+ * if a Status value received from another address space belongs to
+ * an error-space that is not known in this address space. Also
+ * errors raised by APIs that do not return enough error information
+ * may be converted to this error.
+ */
+ const STATUS_UNKNOWN = 2;
+
+ /**
+ * Client specified an invalid argument. Note that this differs
+ * from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments
+ * that are problematic regardless of the state of the system
+ * (e.g., a malformed file name).
+ */
+ const STATUS_INVALID_ARGUMENT = 3;
+
+ /**
+ * Deadline expired before operation could complete. For operations
+ * that change the state of the system, this error may be returned
+ * even if the operation has completed successfully. For example, a
+ * successful response from a server could have been delayed long
+ * enough for the deadline to expire.
+ */
+ const STATUS_DEADLINE_EXCEEDED = 4;
+
+ /**
+ * Some requested entity (e.g., file or directory) was not found.
+ */
+ const STATUS_NOT_FOUND = 5;
+
+ /* Some entity that we attempted to create (e.g., file or directory)
+ * already exists.
+ */
+ const STATUS_ALREADY_EXISTS = 6;
+
+ /**
+ * The caller does not have permission to execute the specified
+ * operation. PERMISSION_DENIED must not be used for rejections
+ * caused by exhausting some resource (use RESOURCE_EXHAUSTED
+ * instead for those errors). PERMISSION_DENIED must not be
+ * used if the caller can not be identified (use UNAUTHENTICATED
+ * instead for those errors).
+ */
+ const STATUS_PERMISSION_DENIED = 7;
+
+ /**
+ * The request does not have valid authentication credentials for the
+ * operation.
+ */
+ const STATUS_UNAUTHENTICATED = 16;
+
+ /**
+ * Some resource has been exhausted, perhaps a per-user quota, or
+ * perhaps the entire file system is out of space.
+ */
+ const STATUS_RESOURCE_EXHAUSTED = 8;
+
+ /**
+ * Operation was rejected because the system is not in a state
+ * required for the operation's execution. For example, directory
+ * to be deleted may be non-empty, an rmdir operation is applied to
+ * a non-directory, etc.
+ *
+ * A litmus test that may help a service implementor in deciding
+ * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:
+ * (a) Use UNAVAILABLE if the client can retry just the failing call.
+ * (b) Use ABORTED if the client should retry at a higher-level
+ * (e.g., restarting a read-modify-write sequence).
+ * (c) Use FAILED_PRECONDITION if the client should not retry until
+ * the system state has been explicitly fixed. E.g., if an "rmdir"
+ * fails because the directory is non-empty, FAILED_PRECONDITION
+ * should be returned since the client should not retry unless
+ * they have first fixed up the directory by deleting files from it.
+ * (d) Use FAILED_PRECONDITION if the client performs conditional
+ * REST Get/Update/Delete on a resource and the resource on the
+ * server does not match the condition. E.g., conflicting
+ * read-modify-write on the same resource.
+ */
+ const STATUS_FAILED_PRECONDITION = 9;
+
+ /**
+ * The operation was aborted, typically due to a concurrency issue
+ * like sequencer check failures, transaction aborts, etc.
+ *
+ * See litmus test above for deciding between FAILED_PRECONDITION,
+ * ABORTED, and UNAVAILABLE.
+ */
+ const STATUS_ABORTED = 10;
+
+ /**
+ * Operation was attempted past the valid range. E.g., seeking or
+ * reading past end of file.
+ *
+ * Unlike INVALID_ARGUMENT, this error indicates a problem that may
+ * be fixed if the system state changes. For example, a 32-bit file
+ * system will generate INVALID_ARGUMENT if asked to read at an
+ * offset that is not in the range [0,2^32-1], but it will generate
+ * OUT_OF_RANGE if asked to read from an offset past the current
+ * file size.
+ *
+ * There is a fair bit of overlap between FAILED_PRECONDITION and
+ * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific
+ * error) when it applies so that callers who are iterating through
+ * a space can easily look for an OUT_OF_RANGE error to detect when
+ * they are done.
+ */
+ const STATUS_OUT_OF_RANGE = 11;
+
+ /**
+ * Operation is not implemented or not supported/enabled in this service.
+ */
+ const STATUS_UNIMPLEMENTED = 12;
+
+ /**
+ * Internal errors. Means some invariants expected by underlying
+ * system has been broken. If you see one of these errors,
+ * something is very broken.
+ */
+ const STATUS_INTERNAL = 13;
+
+ /**
+ * The service is currently unavailable. This is a most likely a
+ * transient condition and may be corrected by retrying with
+ * a backoff.
+ *
+ * See litmus test above for deciding between FAILED_PRECONDITION,
+ * ABORTED, and UNAVAILABLE.
+ */
+ const STATUS_UNAVAILABLE = 14;
+
+ /**
+ * Unrecoverable data loss or corruption.
+ */
+ const STATUS_DATA_LOSS = 15;
+
+ /**
+ * Register op type constants
+ */
+
+ /**
+ * Send initial metadata: one and only one instance MUST be sent for each
+ * call, unless the call was cancelled - in which case this can be skipped.
+ * This op completes after all bytes of metadata have been accepted by
+ * outgoing flow control.
+ */
+ const OP_SEND_INITIAL_METADATA = 0;
+
+ /**
+ * Send a message: 0 or more of these operations can occur for each call.
+ * This op completes after all bytes for the message have been accepted by
+ * outgoing flow control.
+ */
+ const OP_SEND_MESSAGE = 1;
+
+ /** Send a close from the client: one and only one instance MUST be sent from
+ * the client, unless the call was cancelled - in which case this can be
+ * skipped.
+ * This op completes after all bytes for the call (including the close)
+ * have passed outgoing flow control.
+ */
+ const OP_SEND_CLOSE_FROM_CLIENT = 2;
+
+ /**
+ * Send status from the server: one and only one instance MUST be sent from
+ * the server unless the call was cancelled - in which case this can be
+ * skipped.
+ * This op completes after all bytes for the call (including the status)
+ * have passed outgoing flow control.
+ */
+ const OP_SEND_STATUS_FROM_SERVER = 3;
+
+ /**
+ * Receive initial metadata: one and only one MUST be made on the client,
+ * must not be made on the server.
+ * This op completes after all initial metadata has been read from the
+ * peer.
+ */
+ const OP_RECV_INITIAL_METADATA = 4;
+
+ /**
+ * Receive a message: 0 or more of these operations can occur for each call.
+ * This op completes after all bytes of the received message have been
+ * read, or after a half-close has been received on this call.
+ */
+ const OP_RECV_MESSAGE = 5;
+
+ /**
+ * Receive status on the client: one and only one must be made on the client.
+ * This operation always succeeds, meaning ops paired with this operation
+ * will also appear to succeed, even though they may not have. In that case
+ * the status will indicate some failure.
+ * This op completes after all activity on the call has completed.
+ */
+ const OP_RECV_STATUS_ON_CLIENT = 6;
+
+ /**
+ * Receive close on the server: one and only one must be made on the
+ * server.
+ * This op completes after the close has been received by the server.
+ * This operation always succeeds, meaning ops paired with this operation
+ * will also appear to succeed, even though they may not have.
+ */
+ const OP_RECV_CLOSE_ON_SERVER = 7;
+
+ /**
+ * Register connectivity state constants
+ */
+
+ /**
+ * channel is idle
+ */
+ const CHANNEL_IDLE = 0;
+
+ /**
+ * channel is connecting
+ */
+ const CHANNEL_CONNECTING = 1;
+
+ /**
+ * channel is ready for work
+ */
+ const CHANNEL_READY = 2;
+
+ /**
+ * channel has seen a failure but expects to recover
+ */
+ const CHANNEL_TRANSIENT_FAILURE = 3;
+
+ /**
+ * channel has seen a failure that it cannot recover from
+ */
+ const CHANNEL_SHUTDOWN = 4;
+ const CHANNEL_FATAL_FAILURE = 4;
+
+ /**
+ * Class Server
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+ class Server
+ {
+ /**
+ * Constructs a new instance of the Server class
+ *
+ * @param array $args The arguments to pass to the server (optional)
+ */
+ public function __construct(array $args) {}
+
+ /**
+ * Request a call on a server. Creates a single GRPC_SERVER_RPC_NEW event.
+ *
+ * @param int $tag_new The tag to associate with the new request
+ * @param int $tag_cancel The tag to use if the call is cancelled
+ */
+ public function requestCall($tag_new, $tag_cancel) {}
+
+ /**
+ * Add a http2 over tcp listener.
+ *
+ * @param string $addr The address to add
+ *
+ * @return bool true on success, false on failure
+ */
+ public function addHttp2Port($addr) {}
+
+ /**
+ * Add a secure http2 over tcp listener.
+ *
+ * @param string $addr The address to add
+ * @param ServerCredentials $creds_obj
+ *
+ * @return bool true on success, false on failure
+ */
+ public function addSecureHttp2Port($addr, $creds_obj) {}
+
+ /**
+ * Start a server - tells all listeners to start listening
+ */
+ public function start() {}
+ }
+
+ /**
+ * Class ServerCredentials
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+ class ServerCredentials
+ {
+ /**
+ * Create SSL credentials.
+ *
+ * @param string $pem_root_certs PEM encoding of the server root certificates
+ * @param string $pem_private_key PEM encoding of the client's private key
+ * @param string $pem_cert_chain PEM encoding of the client's certificate chain
+ *
+ * @return object Credentials The new SSL credentials object
+ * @throws \InvalidArgumentException
+ */
+ public static function createSsl(
+ $pem_root_certs,
+ $pem_private_key,
+ $pem_cert_chain
+ ) {}
+ }
+
+ /**
+ * Class Channel
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+ class Channel
+ {
+ /**
+ * Construct an instance of the Channel class. If the $args array contains a
+ * "credentials" key mapping to a ChannelCredentials object, a secure channel
+ * will be created with those credentials.
+ *
+ * @param string $target The hostname to associate with this channel
+ * @param array $args The arguments to pass to the Channel (optional)
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function __construct($target, $args = array()) {}
+
+ /**
+ * Get the endpoint this call/stream is connected to
+ *
+ * @return string The URI of the endpoint
+ */
+ public function getTarget() {}
+
+ /**
+ * Get the connectivity state of the channel
+ *
+ * @param bool $try_to_connect try to connect on the channel
+ *
+ * @return int The grpc connectivity state
+ * @throws \InvalidArgumentException
+ */
+ public function getConnectivityState($try_to_connect = false) {}
+
+ /**
+ * Watch the connectivity state of the channel until it changed
+ *
+ * @param int $last_state The previous connectivity state of the channel
+ * @param Timeval $deadline_obj The deadline this function should wait until
+ *
+ * @return bool If the connectivity state changes from last_state
+ * before deadline
+ * @throws \InvalidArgumentException
+ */
+ public function watchConnectivityState($last_state, Timeval $deadline_obj) {}
+
+ /**
+ * Close the channel
+ */
+ public function close() {}
+ }
+
+ /**
+ * Class ChannelCredentials
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+ class ChannelCredentials
+ {
+ /**
+ * Set default roots pem.
+ *
+ * @param string $pem_roots PEM encoding of the server root certificates
+ *
+ * @throws \InvalidArgumentException
+ */
+ public static function setDefaultRootsPem($pem_roots) {}
+
+ /**
+ * Create a default channel credentials object.
+ *
+ * @return ChannelCredentials The new default channel credentials object
+ */
+ public static function createDefault() {}
+
+ /**
+ * Create SSL credentials.
+ *
+ * @param string $pem_root_certs PEM encoding of the server root certificates
+ * @param string $pem_private_key PEM encoding of the client's private key
+ * @param string $pem_cert_chain PEM encoding of the client's certificate chain
+ *
+ * @return ChannelCredentials The new SSL credentials object
+ * @throws \InvalidArgumentException
+ */
+ public static function createSsl(
+ $pem_root_certs = '',
+ $pem_private_key = '',
+ $pem_cert_chain = ''
+ ) {}
+
+ /**
+ * Create composite credentials from two existing credentials.
+ *
+ * @param ChannelCredentials $cred1 The first credential
+ * @param CallCredentials $cred2 The second credential
+ *
+ * @return ChannelCredentials The new composite credentials object
+ * @throws \InvalidArgumentException
+ */
+ public static function createComposite(
+ ChannelCredentials $cred1,
+ CallCredentials $cred2
+ ) {}
+
+ /**
+ * Create insecure channel credentials
+ *
+ * @return null
+ */
+ public static function createInsecure() {}
+ }
+
+ /**
+ * Class Call
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+ class Call
+ {
+ /**
+ * Constructs a new instance of the Call class.
+ *
+ * @param Channel $channel The channel to associate the call with.
+ * Must not be closed.
+ * @param string $method The method to call
+ * @param Timeval $absolute_deadline The deadline for completing the call
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function __construct(
+ Channel $channel,
+ $method,
+ Timeval $absolute_deadline,
+ $host_override = null
+ ) {}
+
+ /**
+ * Start a batch of RPC actions.
+ *
+ * @param array $batch Array of actions to take
+ *
+ * @return object Object with results of all actions
+ * @throws \InvalidArgumentException
+ * @throws \LogicException
+ */
+ public function startBatch(array $batch) {}
+
+ /**
+ * Set the CallCredentials for this call.
+ *
+ * @param CallCredentials $creds_obj The CallCredentials object
+ *
+ * @return int The error code
+ * @throws \InvalidArgumentException
+ */
+ public function setCredentials(CallCredentials $creds_obj) {}
+
+ /**
+ * Get the endpoint this call/stream is connected to
+ *
+ * @return string The URI of the endpoint
+ */
+ public function getPeer() {}
+
+ /**
+ * Cancel the call. This will cause the call to end with STATUS_CANCELLED if it
+ * has not already ended with another status.
+ */
+ public function cancel() {}
+ }
+
+ /**
+ * Class CallCredentials
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+ class CallCredentials
+ {
+ /**
+ * Create composite credentials from two existing credentials.
+ *
+ * @param CallCredentials $cred1 The first credential
+ * @param CallCredentials $cred2 The second credential
+ *
+ * @return CallCredentials The new composite credentials object
+ * @throws \InvalidArgumentException
+ */
+ public static function createComposite(
+ CallCredentials $cred1,
+ CallCredentials $cred2
+ ) {}
+
+ /**
+ * Create a call credentials object from the plugin API
+ *
+ * @param \Closure $callback The callback function
+ *
+ * @return CallCredentials The new call credentials object
+ * @throws \InvalidArgumentException
+ */
+ public static function createFromPlugin(\Closure $callback) {}
+ }
+
+ /**
+ * Class Timeval
+ *
+ * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc
+ */
+ class Timeval
+ {
+ /**
+ * Constructs a new instance of the Timeval class
+ *
+ * @param int $usec The number of microseconds in the interval
+ */
+ public function __construct($usec) {}
+
+ /**
+ * Adds another Timeval to this one and returns the sum. Calculations saturate
+ * at infinities.
+ *
+ * @param Timeval $other The other Timeval object to add
+ *
+ * @return Timeval A new Timeval object containing the sum
+ * @throws \InvalidArgumentException
+ */
+ public function add(Timeval $other) {}
+
+ /**
+ * Return negative, 0, or positive according to whether a < b, a == b, or a > b
+ * respectively.
+ *
+ * @param Timeval $a The first time to compare
+ * @param Timeval $b The second time to compare
+ *
+ * @return int
+ * @throws \InvalidArgumentException
+ */
+ public static function compare(Timeval $a, Timeval $b) {}
+
+ /**
+ * Returns the infinite future time value as a timeval object
+ *
+ * @return Timeval Infinite future time value
+ */
+ public static function infFuture() {}
+
+ /**
+ * Returns the infinite past time value as a timeval object
+ *
+ * @return Timeval Infinite past time value
+ */
+ public static function infPast() {}
+
+ /**
+ * Returns the current time as a timeval object
+ *
+ * @return Timeval The current time
+ */
+ public static function now() {}
+
+ /**
+ * Checks whether the two times are within $threshold of each other
+ *
+ * @param Timeval $a The first time to compare
+ * @param Timeval $b The second time to compare
+ * @param Timeval $threshold The threshold to check against
+ *
+ * @return bool True if $a and $b are within $threshold, False otherwise
+ * @throws \InvalidArgumentException
+ */
+ public static function similar(Timeval $a, Timeval $b, Timeval $threshold) {}
+
+ /**
+ * Sleep until this time, interpreted as an absolute timeout
+ */
+ public function sleepUntil() {}
+
+ /**
+ * Subtracts another Timeval from this one and returns the difference.
+ * Calculations saturate at infinities.
+ *
+ * @param Timeval $other The other Timeval object to subtract
+ *
+ * @return Timeval A new Timeval object containing the sum
+ * @throws \InvalidArgumentException
+ */
+ public function subtract(Timeval $other) {}
+
+ /**
+ * Returns the zero time interval as a timeval object
+ *
+ * @return Timeval Zero length time interval
+ */
+ public static function zero() {}
+ }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/hash/hash.php b/vendor/jetbrains/phpstorm-stubs/hash/hash.php
new file mode 100644
index 0000000000..fdfe5a6acb
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/hash/hash.php
@@ -0,0 +1,444 @@
+
+ * Generate a hash value (message digest)
+ * @link https://php.net/manual/en/function.hash.php
+ * @param string $algo
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)
+ *
+ * @param string $data
+ * Message to be hashed.
+ *
+ * @param bool $binary [optional]
+ * When set to TRUE, outputs raw binary data.
+ * FALSE outputs lowercase hexits.
+ *
+ * @return string|false a string containing the calculated message digest as lowercase hexits
+ * unless raw_output is set to true in which case the raw
+ * binary representation of the message digest is returned.
+ */
+#[Pure]
+function hash (string $algo, string $data, bool $binary = false): string|false
+{}
+
+/**
+ * Timing attack safe string comparison
+ * @link https://php.net/manual/en/function.hash-equals.php
+ * @param string $known_string
The string of known length to compare against
+ * @param string $user_string
The user-supplied string
+ * @return bool
Returns TRUE when the two strings are equal, FALSE otherwise.
+ * @since 5.6
+ */
+#[Pure]
+function hash_equals(string $known_string, string $user_string): bool
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Generate a hash value using the contents of a given file
+ * @link https://php.net/manual/en/function.hash-file.php
+ * @param string $algo
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..)
+ *
+ * @param string $filename
+ * URL describing location of file to be hashed; Supports fopen wrappers.
+ *
+ * @param bool $binary [optional]
+ * When set to TRUE, outputs raw binary data.
+ * FALSE outputs lowercase hexits.
+ *
+ * @return string|false a string containing the calculated message digest as lowercase hexits
+ * unless raw_output is set to true in which case the raw
+ * binary representation of the message digest is returned.
+ */
+#[Pure]
+function hash_file (string $algo, string $filename, bool $binary = false): string|false
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Generate a keyed hash value using the HMAC method
+ * @link https://php.net/manual/en/function.hash-hmac.php
+ * @param string $algo
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_algos for a list of supported algorithms.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * @param string $data
+ * Message to be hashed.
+ *
+ * @param string $key
+ * Shared secret key used for generating the HMAC variant of the message digest.
+ *
+ * @param bool $binary [optional]
+ * When set to TRUE, outputs raw binary data.
+ * FALSE outputs lowercase hexits.
+ *
+ * @return string|false a string containing the calculated message digest as lowercase hexits
+ * unless raw_output is set to true in which case the raw
+ * binary representation of the message digest is returned.
+ */
+#[Pure]
+function hash_hmac (string $algo, string $data, string $key, bool $binary = false): string|false
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Generate a keyed hash value using the HMAC method and the contents of a given file
+ * @link https://php.net/manual/en/function.hash-hmac-file.php
+ * @param string $algo
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_algos for a list of supported algorithms.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * @param string $data
+ * URL describing location of file to be hashed; Supports fopen wrappers.
+ *
+ * @param string $key
+ * Shared secret key used for generating the HMAC variant of the message digest.
+ *
+ * @param bool $binary [optional]
+ * When set to TRUE, outputs raw binary data.
+ * FALSE outputs lowercase hexits.
+ *
+ * @return string|false a string containing the calculated message digest as lowercase hexits
+ * unless raw_output is set to true in which case the raw
+ * binary representation of the message digest is returned.
+ */
+#[Pure]
+function hash_hmac_file (string $algo, string $data, string $key, bool $binary = false): string|false
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Initialize an incremental hashing context
+ * @link https://php.net/manual/en/function.hash-init.php
+ * @param string $algo
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..). For a list of supported algorithms see hash_algos.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * @param int $flags [optional]
+ * Optional settings for hash generation, currently supports only one option:
+ * HASH_HMAC. When specified, the key
+ * must be specified.
+ *
+ * @param string $key [optional]
+ * When HASH_HMAC is specified for options,
+ * a shared secret key to be used with the HMAC hashing method must be supplied in this
+ * parameter.
+ *
+ * @return HashContext|resource a Hashing Context resource for use with hash_update,
+ * hash_update_stream, hash_update_file,
+ * and hash_final.
+ */
+#[Pure]
+function hash_init (string $algo, int $flags = 0, string $key): HashContext
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Pump data into an active hashing context
+ * @link https://php.net/manual/en/function.hash-update.php
+ * @param HashContext|resource $context
+ * Hashing context returned by {@see hash_init}.
+ *
+ * @param string $data
+ * Message to be included in the hash digest.
+ *
+ * @return bool TRUE.
+ */
+function hash_update (#[LanguageLevelTypeAware(["8.0" => "HashContext"], default: "resource")] $context, string $data): bool
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Pump data into an active hashing context from an open stream
+ * @link https://php.net/manual/en/function.hash-update-stream.php
+ * @param HashContext|resource $context
+ * Hashing context returned by {@see hash_init}.
+ *
+ * @param resource $stream
+ * Open file handle as returned by any stream creation function.
+ *
+ * @param int $length [optional]
+ * Maximum number of characters to copy from handle
+ * into the hashing context.
+ *
+ * @return int Actual number of bytes added to the hashing context from handle.
+ */
+function hash_update_stream (#[LanguageLevelTypeAware(["8.0" => "HashContext"], default: "resource")] $context, $stream, int $length = -1): int
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Pump data into an active hashing context from a file
+ * @link https://php.net/manual/en/function.hash-update-file.php
+ * @param HashContext|resource $context
+ * Hashing context returned by hash_init.
+ *
+ * @param string $filename
+ * URL describing location of file to be hashed; Supports fopen wrappers.
+ *
+ * @param resource $stream_context [optional]
+ * Stream context as returned by stream_context_create.
+ *
+ * Hashing context returned by {@see hash_init}.
+ *
+ * @param bool $binary [optional]
+ * When set to TRUE, outputs raw binary data.
+ * FALSE outputs lowercase hexits.
+ *
+ * @return string a string containing the calculated message digest as lowercase hexits
+ * unless raw_output is set to true in which case the raw
+ * binary representation of the message digest is returned.
+ */
+function hash_final (#[LanguageLevelTypeAware(["8.0" => "HashContext"], default: "resource")] $context, bool $binary = false): string
+{}
+
+/**
+ * Copy hashing context
+ * @link https://php.net/manual/en/function.hash-copy.php
+ * @param HashContext|resource $context
+ * Hashing context returned by {@see hash_init}.
+ *
+ * @return HashContext|resource a copy of Hashing Context resource.
+ */
+#[Pure]
+function hash_copy (#[LanguageLevelTypeAware(["8.0" => "HashContext"], default: "resource")] $context): HashContext
+{}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Return a list of registered hashing algorithms
+ * @link https://php.net/manual/en/function.hash-algos.php
+ * @return array a numerically indexed array containing the list of supported
+ * hashing algorithms.
+ */
+#[Pure]
+function hash_algos (): array
+{}
+
+
+/**
+ * Generate a hkdf key derivation of a supplied key input
+ * @param string $algo Name of selected hashing algorithm (i.e. "sha256", "sha512", "haval160,4", etc..)
+ * See {@see hash_algos()} for a list of supported algorithms.
+ *
+ *
Note
+ *
+ * Non-cryptographic hash functions are not allowed.
+ *
+ *
+ * @param string $key
Input keying material (raw binary). Cannot be empty.
+ * @param int $length [optional]
Desired output length in bytes. Cannot be greater than 255 times the chosen hash function size.
+ * If length is 0, the output length will default to the chosen hash function size.
+ * @param string $info [optional]
Application/context-specific info string.
+ * @param string $salt [optional]
Salt to use during derivation. While optional, adding random salt significantly improves the strength of HKDF.
+ * @return string|false
Returns a string containing a raw binary representation of the derived key (also known as output keying material - OKM); or FALSE on failure.
+ * @since 7.1.2
+ * Generate a HKDF key derivation of a supplied key input
+ * @link https://php.net/manual/en/function.hash-hkdf.php
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function hash_hkdf(string $algo , string $key, int $length = 0, string $info = '', string $salt = '')
+{}
+
+/**
+ * Return a list of registered hashing algorithms suitable for hash_hmac
+ * @since 7.2
+ * Return a list of registered hashing algorithms suitable for hash_hmac
+ * @return string[] Returns a numerically indexed array containing the list of supported hashing algorithms suitable for {@see hash_hmac()}.
+ */
+#[Pure]
+function hash_hmac_algos(): array
+{}
+
+/**
+ * Generate a PBKDF2 key derivation of a supplied password
+ * @link https://php.net/manual/en/function.hash-pbkdf2.php
+ * @param string $algo
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_algos for a list of supported algorithms.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * @param string $password
+ * The password to use for the derivation.
+ *
+ * @param string $salt
+ * The salt to use for the derivation. This value should be generated randomly.
+ *
+ * @param int $iterations
+ * The number of internal iterations to perform for the derivation.
+ *
+ * @param int $length [optional]
+ * The length of the output string. If raw_output is TRUE this corresponds to the byte-length of the derived key,
+ * if raw_output is FALSE this corresponds to twice the byte-length of the derived key (as every byte of the key is returned as two hexits).
+ * If 0 is passed, the entire output of the supplied algorithm is used.
+ *
+ * @param bool $binary [optional]
+ * When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits.
+ *
+ * @return string a string containing the derived key as lowercase hexits unless
+ * raw_output is set to TRUE in which case the raw
+ * binary representation of the derived key is returned.
+ * @since 5.5
+ */
+#[Pure]
+function hash_pbkdf2 (string $algo, string $password, string $salt, int $iterations, int $length = 0, bool $binary = false): string
+{}
+
+/**
+ * Generates a key
+ * @link https://php.net/manual/en/function.mhash-keygen-s2k.php
+ * @param int $algo
+ * The hash ID used to create the key.
+ * One of the MHASH_hashname constants.
+ *
+ * @param string $password
+ * An user supplied password.
+ *
+ * @param string $salt
+ * Must be different and random enough for every key you generate in
+ * order to create different keys. Because salt
+ * must be known when you check the keys, it is a good idea to append
+ * the key to it. Salt has a fixed length of 8 bytes and will be padded
+ * with zeros if you supply less bytes.
+ *
+ * @param int $length
+ * The key length, in bytes.
+ *
+ * @return string|false the generated key as a string, or FALSE on error.
+ */
+#[Pure]
+function mhash_keygen_s2k (int $algo, string $password, string $salt, int $length): string|false
+{}
+
+/**
+ * Gets the block size of the specified hash
+ * @link https://php.net/manual/en/function.mhash-get-block-size.php
+ * @param int $algo
+ * The hash ID. One of the MHASH_hashname constants.
+ *
+ * @return int|false the size in bytes or FALSE, if the hash
+ * does not exist.
+ */
+#[Pure]
+function mhash_get_block_size (int $algo): int|false
+{}
+
+/**
+ * Gets the name of the specified hash
+ * @link https://php.net/manual/en/function.mhash-get-hash-name.php
+ * @param int $algo
+ * The hash ID. One of the MHASH_hashname constants.
+ *
+ * @return string|false the name of the hash or FALSE, if the hash does not exist.
+ */
+#[Pure]
+function mhash_get_hash_name (int $algo): string|false
+{}
+
+/**
+ * Gets the highest available hash ID
+ * @link https://php.net/manual/en/function.mhash-count.php
+ * @return int the highest available hash ID. Hashes are numbered from 0 to this
+ * hash ID.
+ */
+#[Pure]
+function mhash_count (): int
+{}
+
+/**
+ * Computes hash
+ * @link https://php.net/manual/en/function.mhash.php
+ * @param int $algo
+ * The hash ID. One of the MHASH_hashname constants.
+ *
+ * @param string $data
+ * The user input, as a string.
+ *
+ * @param string|null $key [optional]
+ * If specified, the function will return the resulting HMAC instead.
+ * HMAC is keyed hashing for message authentication, or simply a message
+ * digest that depends on the specified key. Not all algorithms
+ * supported in mhash can be used in HMAC mode.
+ *
+ * @return string|false the resulting hash (also called digest) or HMAC as a string, or
+ * FALSE on error.
+ */
+#[Pure]
+function mhash (int $algo, string $data, ?string $key): string|false
+{}
+
+
+/**
+ * Optional flag for hash_init.
+ * Indicates that the HMAC digest-keying algorithm should be
+ * applied to the current hashing context.
+ * @link https://php.net/manual/en/hash.constants.php
+ */
+define ('HASH_HMAC', 1);
+define ('MHASH_CRC32', 0);
+/**
+ * @since 7.4
+ */
+define ('MHASH_CRC32C', 34);
+define ('MHASH_MD5', 1);
+define ('MHASH_SHA1', 2);
+define ('MHASH_HAVAL256', 3);
+define ('MHASH_RIPEMD160', 5);
+define ('MHASH_TIGER', 7);
+define ('MHASH_GOST', 8);
+define ('MHASH_CRC32B', 9);
+define ('MHASH_HAVAL224', 10);
+define ('MHASH_HAVAL192', 11);
+define ('MHASH_HAVAL160', 12);
+define ('MHASH_HAVAL128', 13);
+define ('MHASH_TIGER128', 14);
+define ('MHASH_TIGER160', 15);
+define ('MHASH_MD4', 16);
+define ('MHASH_SHA256', 17);
+define ('MHASH_ADLER32', 18);
+define ('MHASH_SHA224', 19);
+define ('MHASH_SHA512', 20);
+define ('MHASH_SHA384', 21);
+define ('MHASH_WHIRLPOOL', 22);
+define ('MHASH_RIPEMD128', 23);
+define ('MHASH_RIPEMD256', 24);
+define ('MHASH_RIPEMD320', 25);
+define ('MHASH_SNEFRU256', 27);
+define ('MHASH_MD2', 28);
+define ('MHASH_FNV132', 29);
+define ('MHASH_FNV1A32', 30);
+define ('MHASH_FNV164', 31);
+define ('MHASH_FNV1A64', 32);
+define ('MHASH_JOAAT', 33);
+
+class HashContext
+{
+ private function __construct()
+ {
+ }
+
+ public function __serialize(){}
+
+ /**
+ * @param array $data
+ */
+ public function __unserialize($data){}
+}
+// End of hash v.1.0
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/http/http.php b/vendor/jetbrains/phpstorm-stubs/http/http.php
new file mode 100644
index 0000000000..08c6c8670e
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/http/http.php
@@ -0,0 +1,3335 @@
+
+ * HttpDeflateStream class constructor
+ * @link https://php.net/manual/en/function.httpdeflatestream-construct.php
+ * @param int $flags [optional]
+ * associative array containing the additional HTTP headers to add to the messages existing headers
+ *
+ * @param bool $append [optional]
+ * if true, and a header with the same name of one to add exists already, this respective
+ * header will be converted to an array containing both header values, otherwise
+ * it will be overwritten with the new header value
+ *
+ * @return void
+ */
+ public function addHeaders (array $headers, $append = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get message type
+ * @link https://php.net/manual/en/function.httpmessage-gettype.php
+ * @return int the HttpMessage::TYPE.
+ */
+ #[Pure]
+ public function getType () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set message type
+ * @link https://php.net/manual/en/function.httpmessage-settype.php
+ * @param int $type
+ * the HttpMessage::TYPE
+ *
+ * @return void
+ */
+ public function setType ($type) {}
+
+ #[Pure]
+ public function getInfo () {}
+
+ /**
+ * @param $http_info
+ */
+ public function setInfo ($http_info) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get response code
+ * @link https://php.net/manual/en/function.httpmessage-getresponsecode.php
+ * @return int|false the HTTP response code if the message is of type HttpMessage::TYPE_RESPONSE, else FALSE.
+ */
+ #[Pure]
+ public function getResponseCode () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set response code
+ * @link https://php.net/manual/en/function.httpmessage-setresponsecode.php
+ * @param int $code
+ * HTTP response code
+ *
+ * @return bool TRUE on success, or FALSE if the message is not of type
+ * HttpMessage::TYPE_RESPONSE or the response code is out of range (100-510).
+ */
+ public function setResponseCode ($code) {}
+
+ /**
+ * (PECL pecl_http >= 0.23.0)
+ * Get response status
+ * @link https://php.net/manual/en/function.httpmessage-getresponsestatus.php
+ * @return string the HTTP response status string if the message is of type
+ * HttpMessage::TYPE_RESPONSE, else FALSE.
+ */
+ #[Pure]
+ public function getResponseStatus () {}
+
+ /**
+ * (PECL pecl_http >= 0.23.0)
+ * Set response status
+ * @link https://php.net/manual/en/function.httpmessage-setresponsestatus.php
+ * @param string $status
+ * the response status text
+ *
+ * @return bool TRUE on success or FALSE if the message is not of type
+ * HttpMessage::TYPE_RESPONSE.
+ */
+ public function setResponseStatus ($status) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get request method
+ * @link https://php.net/manual/en/function.httpmessage-getrequestmethod.php
+ * @return string|false the request method name on success, or FALSE if the message is
+ * not of type HttpMessage::TYPE_REQUEST.
+ */
+ #[Pure]
+ public function getRequestMethod () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set request method
+ * @link https://php.net/manual/en/function.httpmessage-setrequestmethod.php
+ * @param string $method
+ * the request method name
+ *
+ * @return bool TRUE on success, or FALSE if the message is not of type
+ * HttpMessage::TYPE_REQUEST or an invalid request method was supplied.
+ */
+ public function setRequestMethod ($method) {}
+
+ /**
+ * (PECL pecl_http >= 0.21.0)
+ * Get request URL
+ * @link https://php.net/manual/en/function.httpmessage-getrequesturl.php
+ * @return string|false the request URL as string on success, or FALSE if the message
+ * is not of type HttpMessage::TYPE_REQUEST.
+ */
+ #[Pure]
+ public function getRequestUrl () {}
+
+ /**
+ * (PECL pecl_http >= 0.21.0)
+ * Set request URL
+ * @link https://php.net/manual/en/function.httpmessage-setrequesturl.php
+ * @param string $url
+ * the request URL
+ *
+ * @return bool TRUE on success, or FALSE if the message is not of type
+ * HttpMessage::TYPE_REQUEST or supplied URL was empty.
+ */
+ public function setRequestUrl ($url) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get HTTP version
+ * @link https://php.net/manual/en/function.httpmessage-gethttpversion.php
+ * @return string the HTTP protocol version as string.
+ */
+ #[Pure]
+ public function getHttpVersion () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set HTTP version
+ * @link https://php.net/manual/en/function.httpmessage-sethttpversion.php
+ * @param string $version
+ * the HTTP protocol version
+ *
+ * @return bool TRUE on success, or FALSE if supplied version is out of range (1.0/1.1).
+ */
+ public function setHttpVersion ($version) {}
+
+ /**
+ * (PECL pecl_http >= 1.0.0)
+ * Guess content type
+ * @link https://php.net/manual/en/function.httpmessage-guesscontenttype.php
+ * @param string $magic_file
+ * the magic.mime database to use
+ *
+ * @param int $magic_mode [optional]
+ * flags for libmagic
+ *
+ * @return string|false the guessed content type on success or false on failure.
+ */
+ public function guessContentType ($magic_file, $magic_mode = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get parent message
+ * @link https://php.net/manual/en/function.httpmessage-getparentmessage.php
+ * @return HttpMessage the parent HttpMessage object.
+ */
+ #[Pure]
+ public function getParentMessage () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Send message
+ * @link https://php.net/manual/en/function.httpmessage-send.php
+ * @return bool true on success or false on failure.
+ */
+ public function send () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get string representation
+ * @link https://php.net/manual/en/function.httpmessage-tostring.php
+ * @param bool $include_parent [optional]
+ * specifies whether the returned string should also contain any parent messages
+ *
+ * @return string the message as string.
+ */
+ public function toString ($include_parent = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.22.0)
+ * Create HTTP object regarding message type
+ * @link https://php.net/manual/en/function.httpmessage-tomessagetypeobject.php
+ * @return HttpRequest|HttpResponse|null either an HttpRequest or HttpResponse object on success, or NULL on failure.
+ */
+ public function toMessageTypeObject () {}
+
+ public function count () {}
+
+ public function serialize () {}
+
+ /**
+ * @param $serialized
+ */
+ public function unserialize ($serialized) {}
+
+ public function rewind () {}
+
+ public function valid () {}
+
+ public function current () {}
+
+ public function key () {}
+
+ public function next () {}
+
+ /**
+ * @return string
+ */
+ public function __toString () {}
+
+ /**
+ * (PECL pecl_http >= 1.4.0)
+ * Create HttpMessage from string
+ * @link https://php.net/manual/en/function.httpmessage-factory.php
+ * @param string $raw_message [optional]
+ * a single or several consecutive HTTP messages
+ *
+ * @param string $class_name [optional]
+ * a class extending HttpMessage
+ *
+ * @return HttpMessage|null an HttpMessage object on success or NULL on failure.
+ */
+ public static function factory ($raw_message = null, $class_name = null) {}
+
+ /**
+ * (PECL pecl_http 0.10.0-1.3.3)
+ * Create HttpMessage from string
+ * @link https://php.net/manual/en/function.httpmessage-fromstring.php
+ * @param string $raw_message [optional]
+ * a single or several consecutive HTTP messages
+ *
+ * @param string $class_name [optional]
+ * a class extending HttpMessage
+ *
+ * @return HttpMessage|null an HttpMessage object on success or NULL on failure.
+ */
+ public static function fromString ($raw_message = null, $class_name = null) {}
+
+ /**
+ * (PECL pecl_http >= 1.5.0)
+ * Create HttpMessage from environment
+ * @link https://php.net/manual/en/function.httpmessage-fromenv.php
+ * @param int $message_type
+ * The message type. See HttpMessage type constants.
+ *
+ * @param string $class_name [optional]
+ * a class extending HttpMessage
+ *
+ * @return HttpMessage|null an HttpMessage object on success or NULL on failure.
+ */
+ public static function fromEnv ($message_type, $class_name = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.22.0)
+ * Detach HttpMessage
+ * @link https://php.net/manual/en/function.httpmessage-detach.php
+ * @return HttpMessage detached HttpMessage object copy.
+ */
+ public function detach () {}
+
+ /**
+ * (PECL pecl_http >= 0.22.0)
+ * Prepend message(s)
+ * @link https://php.net/manual/en/function.httpmessage-prepend.php
+ * @param HttpMessage $message
+ * HttpMessage object to prepend
+ *
+ * @param bool $top [optional]
+ * whether to prepend to the top most or right this message
+ *
+ */
+ final public function __construct ($global = null, $add = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.22.0)
+ * Get query string as array
+ * @link https://php.net/manual/en/function.httpquerystring-toarray.php
+ * @return array the array representation of the query string.
+ */
+ public function toArray () {}
+
+ /**
+ * (PECL pecl_http >= 0.22.0)
+ * Get query string
+ * @link https://php.net/manual/en/function.httpquerystring-tostring.php
+ * @return string the string representation of the query string.
+ */
+ public function toString () {}
+
+ /**
+ * @return string
+ */
+ public function __toString () {}
+
+ /**
+ * (PECL pecl_http >= 0.22.0)
+ * Get (part of) query string
+ * @link https://php.net/manual/en/function.httpquerystring-get.php
+ * @param string $key [optional]
+ * key of the query string param to retrieve
+ *
+ * @param mixed $type [optional]
+ * which variable type to enforce
+ *
+ * @param mixed $defval [optional]
+ * default value if key does not exist
+ *
+ * @param bool $delete [optional]
+ * whether to remove the key/value pair from the query string
+ *
+ * @return mixed the value of the query string param or the whole query string if no key was specified on success or defval if key does not exist.
+ */
+ #[Pure]
+ public function get ($key = null, $type = null, $defval = null, $delete = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.22.0)
+ * Set query string params
+ * @link https://php.net/manual/en/function.httpquerystring-set.php
+ * @param mixed $params
+ * query string params to add
+ *
+ * @return string the current query string.
+ */
+ public function set ($params) {}
+
+ /**
+ * (PECL pecl_http >= 1.1.0)
+ * Modifiy query string copy
+ * @link https://php.net/manual/en/function.httpquerystring-mod.php
+ * @param mixed $params
+ * @return bool true on success or false on failure.
+ *
+ *
+ * The return value will be casted to boolean if non-boolean was returned.
+ * @since 5.0.0
+ */
+ public function offsetExists($offset)
+ {}
+
+ /**
+ * Offset to set
+ * @link https://php.net/manual/en/arrayaccess.offsetset.php
+ * @param mixed $offset
+ * an associative array, which values will overwrite the
+ * currently set request options;
+ * if empty or omitted, the options of the HttpRequest object will be reset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setOptions (array $options = null ) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get options
+ * @link https://php.net/manual/en/function.httprequest-getoptions.php
+ * @return array an associative array containing currently set options.
+ */
+ #[Pure]
+ public function getOptions () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set ssl options
+ * @link https://php.net/manual/en/function.httprequest-setssloptions.php
+ * @param array $options [optional]
+ * an associative array containing any SSL specific options;
+ * if empty or omitted, the SSL options will be reset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setSslOptions (array $options = null ) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get ssl options
+ * @link https://php.net/manual/en/function.httprequest-getssloptions.php
+ * @return array an associative array containing any previously set SSL options.
+ */
+ #[Pure]
+ public function getSslOptions () {}
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Add ssl options
+ * @link https://php.net/manual/en/function.httprequest-addssloptions.php
+ * @param array $options
+ * an associative array as parameter containing additional SSL specific options
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function addSslOptions (array $option) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Add headers
+ * @link https://php.net/manual/en/function.httprequest-addheaders.php
+ * @param array $headers
+ * an associative array as parameter containing additional header name/value pairs
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function addHeaders (array $headers) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get headers
+ * @link https://php.net/manual/en/function.httprequest-getheaders.php
+ * @return array an associative array containing all currently set headers.
+ */
+ #[Pure]
+ public function getHeaders () {}
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Set headers
+ * @link https://php.net/manual/en/function.httprequest-setheaders.php
+ * @param array $headers [optional]
+ * an associative array as parameter containing header name/value pairs;
+ * if empty or omitted, all previously set headers will be unset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setHeaders ( array $headers = null ) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Add cookies
+ * @link https://php.net/manual/en/function.httprequest-addcookies.php
+ * @param array $cookies
+ * an associative array containing any cookie name/value pairs to add
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function addCookies (array $cookies) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get cookies
+ * @link https://php.net/manual/en/function.httprequest-getcookies.php
+ * @return array an associative array containing any previously set cookies.
+ */
+ #[Pure]
+ public function getCookies () {}
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Set cookies
+ * @link https://php.net/manual/en/function.httprequest-setcookies.php
+ * @param array $cookies [optional]
+ * an associative array as parameter containing cookie name/value pairs;
+ * if empty or omitted, all previously set cookies will be unset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setCookies ( array $cookies = null ) {}
+
+ /**
+ * (PECL pecl_http >= 1.0.0)
+ * Enable cookies
+ * @link https://php.net/manual/en/function.httprequest-enablecookies.php
+ * @return bool true on success or false on failure.
+ */
+ public function enableCookies () {}
+
+ /**
+ * (PECL pecl_http >= 1.0.0)
+ * Reset cookies
+ * @link https://php.net/manual/en/function.httprequest-resetcookies.php
+ * @param bool $session_only [optional]
+ * whether only session cookies should be reset (needs libcurl >= v7.15.4, else libcurl >= v7.14.1)
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function resetCookies ($session_only = null) {}
+
+ public function flushCookies () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set method
+ * @link https://php.net/manual/en/function.httprequest-setmethod.php
+ * @param int $request_method
+ * the request method to use
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setMethod ($request_method) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get method
+ * @link https://php.net/manual/en/function.httprequest-getmethod.php
+ * @return int the currently set request method.
+ */
+ #[Pure]
+ public function getMethod () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set URL
+ * @link https://php.net/manual/en/function.httprequest-seturl.php
+ * @param string $url
+ * the request url
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setUrl ($url) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get url
+ * @link https://php.net/manual/en/function.httprequest-geturl.php
+ * @return string the currently set request url as string.
+ */
+ #[Pure]
+ public function getUrl () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set content type
+ * @link https://php.net/manual/en/function.httprequest-setcontenttype.php
+ * @param string $content_type
+ * the content type of the request (primary/secondary)
+ *
+ * @return bool TRUE on success, or FALSE if the content type does not seem to
+ * contain a primary and a secondary part.
+ */
+ public function setContentType ($content_type) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get content type
+ * @link https://php.net/manual/en/function.httprequest-getcontenttype.php
+ * @return string the previously set content type as string.
+ */
+ #[Pure]
+ public function getContentType () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set query data
+ * @link https://php.net/manual/en/function.httprequest-setquerydata.php
+ * @param mixed $query_data
+ * a string or associative array parameter containing the pre-encoded
+ * query string or to be encoded query fields;
+ * if empty, the query data will be unset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setQueryData ($query_data) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get query data
+ * @link https://php.net/manual/en/function.httprequest-getquerydata.php
+ * @return string a string containing the urlencoded query.
+ */
+ #[Pure]
+ public function getQueryData () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Add query data
+ * @link https://php.net/manual/en/function.httprequest-addquerydata.php
+ * @param array $query_params
+ * an associative array as parameter containing the query fields to add
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function addQueryData (array $query_params) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set post fields
+ * @link https://php.net/manual/en/function.httprequest-setpostfields.php
+ * @param array $post_data
+ * an associative array containing the post fields;
+ * if empty, the post data will be unset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setPostFields (array $post_data) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get post fields
+ * @link https://php.net/manual/en/function.httprequest-getpostfields.php
+ * @return array the currently set post fields as associative array.
+ */
+ #[Pure]
+ public function getPostFields () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Add post fields
+ * @link https://php.net/manual/en/function.httprequest-addpostfields.php
+ * @param array $post_data
+ * an associative array as parameter containing the post fields
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function addPostFields (array $post_data) {}
+
+ /**
+ * @param $request_body_data [optional]
+ */
+ public function setBody ($request_body_data) {}
+
+ #[Pure]
+ public function getBody () {}
+
+ /**
+ * @param $request_body_data
+ */
+ public function addBody ($request_body_data) {}
+
+ /**
+ * (PECL pecl_http 0.14.0-1.4.1)
+ * Set raw post data
+ * @link https://php.net/manual/en/function.httprequest-setrawpostdata.php
+ * @param string $raw_post_data [optional]
+ * raw post data
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setRawPostData ($raw_post_data = null) {}
+
+ /**
+ * (PECL pecl_http 0.14.0-1.4.1)
+ * Get raw post data
+ * @link https://php.net/manual/en/function.httprequest-getrawpostdata.php
+ * @return string a string containing the currently set raw post data.
+ */
+ #[Pure]
+ public function getRawPostData () {}
+
+ /**
+ * (PECL pecl_http 0.14.0-1.4.1)
+ * Add raw post data
+ * @link https://php.net/manual/en/function.httprequest-addrawpostdata.php
+ * @param string $raw_post_data
+ * the raw post data to concatenate
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function addRawPostData ($raw_post_data) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set post files
+ * @link https://php.net/manual/en/function.httprequest-setpostfiles.php
+ * @param array $post_files
+ * an array containing the files to post;
+ * if empty, the post files will be unset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setPostFiles (array $post_files) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Add post file
+ * @link https://php.net/manual/en/function.httprequest-addpostfile.php
+ * @param string $name
+ * the form element name
+ *
+ * @param string $file
+ * the path to the file
+ *
+ * @param string $content_type [optional]
+ * the content type of the file
+ *
+ * @return bool TRUE on success, or FALSE if the content type seems not to contain a
+ * primary and a secondary content type part.
+ */
+ public function addPostFile ($name, $file, $content_type = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get post files
+ * @link https://php.net/manual/en/function.httprequest-getpostfiles.php
+ * @return array an array containing currently set post files.
+ */
+ #[Pure]
+ public function getPostFiles () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set put file
+ * @link https://php.net/manual/en/function.httprequest-setputfile.php
+ * @param string $file [optional]
+ * the path to the file to send;
+ * if empty or omitted the put file will be unset
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setPutFile ($file = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get put file
+ * @link https://php.net/manual/en/function.httprequest-getputfile.php
+ * @return string a string containing the path to the currently set put file.
+ */
+ #[Pure]
+ public function getPutFile () {}
+
+ /**
+ * (PECL pecl_http >= 0.25.0)
+ * Set put data
+ * @link https://php.net/manual/en/function.httprequest-setputdata.php
+ * @param string $put_data [optional]
+ * the data to upload
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function setPutData ($put_data = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.25.0)
+ * Get put data
+ * @link https://php.net/manual/en/function.httprequest-getputdata.php
+ * @return string a string containing the currently set PUT data.
+ */
+ #[Pure]
+ public function getPutData () {}
+
+ /**
+ * (PECL pecl_http >= 0.25.0)
+ * Add put data
+ * @link https://php.net/manual/en/function.httprequest-addputdata.php
+ * @param string $put_data
+ * the data to concatenate
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function addPutData ($put_data) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Send request
+ * @link https://php.net/manual/en/function.httprequest-send.php
+ * @return HttpMessage the received response as HttpMessage object.
+ */
+ public function send () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get response data
+ * @link https://php.net/manual/en/function.httprequest-getresponsedata.php
+ * @return array an associative array with the key "headers" containing an associative
+ * array holding all response headers, as well as the key "body" containing a
+ * string with the response body.
+ */
+ #[Pure]
+ public function getResponseData () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get response header(s)
+ * @link https://php.net/manual/en/function.httprequest-getresponseheader.php
+ * @param string $name [optional]
+ * header to read; if empty, all response headers will be returned
+ *
+ * @return mixed either a string with the value of the header matching name if requested,
+ * FALSE on failure, or an associative array containing all response headers.
+ */
+ #[Pure]
+ public function getResponseHeader ($name = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.23.0)
+ * Get response cookie(s)
+ * @link https://php.net/manual/en/function.httprequest-getresponsecookies.php
+ * @param int $flags [optional]
+ * http_parse_cookie flags
+ *
+ * @param array $allowed_extras [optional]
+ * allowed keys treated as extra information instead of cookie names
+ *
+ * @return stdClass[] an array of stdClass objects like http_parse_cookie would return.
+ */
+ #[Pure]
+ public function getResponseCookies ($flags = null, array $allowed_extras = null ) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get response code
+ * @link https://php.net/manual/en/function.httprequest-getresponsecode.php
+ * @return int an int representing the response code.
+ */
+ #[Pure]
+ public function getResponseCode () {}
+
+ /**
+ * (PECL pecl_http >= 0.23.0)
+ * Get response status
+ * @link https://php.net/manual/en/function.httprequest-getresponsestatus.php
+ * @return string a string containing the response status text.
+ */
+ #[Pure]
+ public function getResponseStatus () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get response body
+ * @link https://php.net/manual/en/function.httprequest-getresponsebody.php
+ * @return string a string containing the response body.
+ */
+ #[Pure]
+ public function getResponseBody () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get response info
+ * @link https://php.net/manual/en/function.httprequest-getresponseinfo.php
+ * @param string $name [optional]
+ * the info to read; if empty or omitted, an associative array containing
+ * all available info will be returned
+ *
+ * @return mixed either a scalar containing the value of the info matching name if
+ * requested, FALSE on failure, or an associative array containing all
+ * available info.
+ */
+ #[Pure]
+ public function getResponseInfo ($name = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get response message
+ * @link https://php.net/manual/en/function.httprequest-getresponsemessage.php
+ * @return HttpMessage an HttpMessage object of the response.
+ */
+ #[Pure]
+ public function getResponseMessage () {}
+
+ /**
+ * (PECL pecl_http >= 0.21.0)
+ * Get raw response message
+ * @link https://php.net/manual/en/function.httprequest-getrawresponsemessage.php
+ * @return string the complete web server response, including the headers in a form of a string.
+ */
+ #[Pure]
+ public function getRawResponseMessage () {}
+
+ /**
+ * (PECL pecl_http >= 0.11.0)
+ * Get request message
+ * @link https://php.net/manual/en/function.httprequest-getrequestmessage.php
+ * @return HttpMessage an HttpMessage object representing the sent request.
+ */
+ #[Pure]
+ public function getRequestMessage () {}
+
+ /**
+ * (PECL pecl_http >= 0.21.0)
+ * Get raw request message
+ * @link https://php.net/manual/en/function.httprequest-getrawrequestmessage.php
+ * @return string an HttpMessage in a form of a string.
+ */
+ #[Pure]
+ public function getRawRequestMessage () {}
+
+ /**
+ * (PECL pecl_http >= 0.15.0)
+ * Get history
+ * @link https://php.net/manual/en/function.httprequest-gethistory.php
+ * @return HttpMessage an HttpMessage object representing the complete request/response history.
+ */
+ #[Pure]
+ public function getHistory () {}
+
+ /**
+ * (PECL pecl_http >= 0.15.0)
+ * Clear history
+ * @link https://php.net/manual/en/function.httprequest-clearhistory.php
+ * @return void
+ */
+ public function clearHistory () {}
+
+ /**
+ * @param $url [optional]
+ * @param $method [optional]
+ * @param $options [optional]
+ * @param $class_name [optional]
+ */
+ public static function factory ($url, $method, $options, $class_name) {}
+
+ /**
+ * @param $url
+ * @param $options [optional]
+ * @param &$info [optional]
+ */
+ public static function get ($url, $options, &$info) {}
+
+ /**
+ * @param $url
+ * @param $options [optional]
+ * @param &$info [optional]
+ */
+ public static function head ($url, $options, &$info) {}
+
+ /**
+ * @param $url
+ * @param $data
+ * @param $options [optional]
+ * @param &$info [optional]
+ */
+ public static function postData ($url, $data, $options, &$info) {}
+
+ /**
+ * @param $url
+ * @param $data
+ * @param $options [optional]
+ * @param &$info [optional]
+ */
+ public static function postFields ($url, $data, $options, &$info) {}
+
+ /**
+ * @param $url
+ * @param $data
+ * @param $options [optional]
+ * @param &$info [optional]
+ */
+ public static function putData ($url, $data, $options, &$info) {}
+
+ /**
+ * @param $url
+ * @param $file
+ * @param $options [optional]
+ * @param &$info [optional]
+ */
+ public static function putFile ($url, $file, $options, &$info) {}
+
+ /**
+ * @param $url
+ * @param $stream
+ * @param $options [optional]
+ * @param &$info [optional]
+ */
+ public static function putStream ($url, $stream, $options, &$info) {}
+
+ /**
+ * @param $method_name
+ */
+ public static function methodRegister ($method_name) {}
+
+ /**
+ * @param $method
+ */
+ public static function methodUnregister ($method) {}
+
+ /**
+ * @param $method_id
+ */
+ public static function methodName ($method_id) {}
+
+ /**
+ * @param $method
+ */
+ public static function methodExists ($method) {}
+
+ /**
+ * @param $fields
+ * @param $files
+ */
+ public static function encodeBody ($fields, $files) {}
+
+}
+
+class HttpRequestDataShare implements Countable {
+ private static $instance;
+ public $cookie;
+ public $dns;
+ public $ssl;
+ public $connect;
+
+
+ public function __destruct () {}
+
+ public function count () {}
+
+ /**
+ * @param HttpRequest $request
+ */
+ public function attach (HttpRequest $request) {}
+
+ /**
+ * @param HttpRequest $request
+ */
+ public function detach (HttpRequest $request) {}
+
+ public function reset () {}
+
+ /**
+ * @param $global [optional]
+ * @param $class_name [optional]
+ */
+ public static function factory ($global, $class_name) {}
+
+ /**
+ * @param $global [optional]
+ */
+ public static function singleton ($global) {}
+
+}
+
+/**
+ * @link https://php.net/manual/en/class.httprequestpool.php
+ */
+class HttpRequestPool implements Countable, Iterator {
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * HttpRequestPool constructor
+ * @link https://php.net/manual/en/function.httprequestpool-construct.php
+ * @param HttpRequest $request [optional]
+ * an HttpRequest object not already attached to any HttpRequestPool object
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function attach ( HttpRequest $request) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Detach HttpRequest
+ * @link https://php.net/manual/en/function.httprequestpool-detach.php
+ * @param HttpRequest $request
+ * an HttpRequest object attached to this HttpRequestPool object
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function detach ( HttpRequest $request ) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Send all requests
+ * @link https://php.net/manual/en/function.httprequestpool-send.php
+ * @return bool true on success or false on failure.
+ */
+ public function send () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Reset request pool
+ * @link https://php.net/manual/en/function.httprequestpool-reset.php
+ * @return void
+ */
+ public function reset () {}
+
+ /**
+ * (PECL pecl_http >= 0.15.0)
+ * Perform socket actions
+ * @link https://php.net/manual/en/function.httprequestpool-socketperform.php
+ * @return bool TRUE until each request has finished its transaction.
+ */
+ protected function socketPerform () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Perform socket select
+ * @link https://php.net/manual/en/function.httprequestpool-socketselect.php
+ * @return bool true on success or false on failure.
+ */
+ protected function socketSelect () {}
+
+ public function valid () {}
+
+ public function current () {}
+
+ public function key () {}
+
+ public function next () {}
+
+ public function rewind () {}
+
+ public function count () {}
+
+ /**
+ * (PECL pecl_http >= 0.16.0)
+ * Get attached requests
+ * @link https://php.net/manual/en/function.httprequestpool-getattachedrequests.php
+ * @return array an array containing all currently attached HttpRequest objects.
+ */
+ #[Pure]
+ public function getAttachedRequests () {}
+
+ /**
+ * (PECL pecl_http >= 0.16.0)
+ * Get finished requests
+ * @link https://php.net/manual/en/function.httprequestpool-getfinishedrequests.php
+ * @return array an array containing all attached HttpRequest objects that already have finished their work.
+ */
+ #[Pure]
+ public function getFinishedRequests () {}
+
+ /**
+ * @param $enable [optional]
+ */
+ public function enablePipelining ($enable) {}
+
+ /**
+ * @param $enable [optional]
+ */
+ public function enableEvents ($enable) {}
+
+}
+
+/**
+ * @link https://php.net/manual/en/class.httpresponse.php
+ */
+class HttpResponse {
+ const REDIRECT = 0;
+ const REDIRECT_PERM = 301;
+ const REDIRECT_FOUND = 302;
+ const REDIRECT_POST = 303;
+ const REDIRECT_PROXY = 305;
+ const REDIRECT_TEMP = 307;
+
+ private static $sent;
+ private static $catch;
+ private static $mode;
+ private static $stream;
+ private static $file;
+ private static $data;
+ protected static $cache;
+ protected static $gzip;
+ protected static $eTag;
+ protected static $lastModified;
+ protected static $cacheControl;
+ protected static $contentType;
+ protected static $contentDisposition;
+ protected static $bufferSize;
+ protected static $throttleDelay;
+
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Set header
+ * @link https://php.net/manual/en/function.httpresponse-setheader.php
+ * @param string $name
+ * the name of the header
+ *
+ * @param mixed $value [optional]
+ * the value of the header;
+ * if not set, no header with this name will be sent
+ *
+ * @param bool $replace [optional]
+ * whether an existing header should be replaced
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setHeader ($name, $value = null, $replace = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Get header
+ * @link https://php.net/manual/en/function.httpresponse-getheader.php
+ * @param string $name [optional]
+ * specifies the name of the header to read;
+ * if empty or omitted, an associative array with all headers will be returned
+ *
+ * @return mixed either a string containing the value of the header matching name,
+ * false on failure, or an associative array with all headers.
+ */
+ public static function getHeader ($name = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set ETag
+ * @link https://php.net/manual/en/function.httpresponse-setetag.php
+ * @param string $etag
+ * unquoted string as parameter containing the ETag
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setETag ($etag) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get ETag
+ * @link https://php.net/manual/en/function.httpresponse-getetag.php
+ * @return string the calculated or previously set ETag as unquoted string.
+ */
+ public static function getETag () {}
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Set last modified
+ * @link https://php.net/manual/en/function.httpresponse-setlastmodified.php
+ * @param int $timestamp
+ * Unix timestamp representing the last modification time of the sent entity
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setLastModified ($timestamp) {}
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Get last modified
+ * @link https://php.net/manual/en/function.httpresponse-getlastmodified.php
+ * @return int the calculated or previously set Unix timestamp.
+ */
+ public static function getLastModified () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set content disposition
+ * @link https://php.net/manual/en/function.httpresponse-setcontentdisposition.php
+ * @param string $filename
+ * the file name the "Save as..." dialog should display
+ *
+ * @param bool $inline [optional]
+ * if set to true and the user agent knows how to handle the content type,
+ * it will probably not cause the popup window to be shown
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setContentDisposition ($filename, $inline = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get content disposition
+ * @link https://php.net/manual/en/function.httpresponse-getcontentdisposition.php
+ * @return string the current content disposition as string like sent in a header.
+ */
+ public static function getContentDisposition () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set content type
+ * @link https://php.net/manual/en/function.httpresponse-setcontenttype.php
+ * @param string $content_type
+ * the content type of the sent entity (primary/secondary)
+ *
+ * @return bool true on success, or false if the content type does not seem to
+ * contain a primary and secondary content type part.
+ */
+ public static function setContentType ($content_type) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get content type
+ * @link https://php.net/manual/en/function.httpresponse-getcontenttype.php
+ * @return string the currently set content type as string.
+ */
+ public static function getContentType () {}
+
+ /**
+ * (PECL pecl_http >= 0.13.0)
+ * Guess content type
+ * @link https://php.net/manual/en/function.httpresponse-guesscontenttype.php
+ * @param string $magic_file
+ * specifies the magic.mime database to use
+ *
+ * @param int $magic_mode [optional]
+ * flags for libmagic
+ *
+ * @return string|false the guessed content type on success or false on failure.
+ */
+ public static function guessContentType ($magic_file, $magic_mode = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set cache
+ * @link https://php.net/manual/en/function.httpresponse-setcache.php
+ * @param bool $cache
+ * whether caching should be attempted
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setCache ($cache) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get cache
+ * @link https://php.net/manual/en/function.httpresponse-getcache.php
+ * @return bool true if caching should be attempted, else false.
+ */
+ public static function getCache () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set cache control
+ * @link https://php.net/manual/en/function.httpresponse-setcachecontrol.php
+ * @param string $control
+ * the primary cache control setting
+ *
+ * @param int $max_age [optional]
+ * the max-age in seconds, suggesting how long the cache entry is valid on the client side
+ *
+ * @param bool $must_revalidate [optional]
+ * whether the cached entity should be revalidated by the client for every request
+ *
+ * @return bool true on success, or false if control does not match one of public, private or no-cache.
+ */
+ public static function setCacheControl ($control, $max_age = null, $must_revalidate = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get cache control
+ * @link https://php.net/manual/en/function.httpresponse-getcachecontrol.php
+ * @return string the current cache control setting as a string like sent in a header.
+ */
+ public static function getCacheControl () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set gzip
+ * @link https://php.net/manual/en/function.httpresponse-setgzip.php
+ * @param bool $gzip
+ * whether GZip compression should be enabled
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setGzip ($gzip) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get gzip
+ * @link https://php.net/manual/en/function.httpresponse-getgzip.php
+ * @return bool true if GZip compression is enabled, else false.
+ */
+ public static function getGzip () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set throttle delay
+ * @link https://php.net/manual/en/function.httpresponse-setthrottledelay.php
+ * @param float $seconds
+ * seconds to sleep after each chunk sent
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setThrottleDelay ($seconds) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get throttle delay
+ * @link https://php.net/manual/en/function.httpresponse-getthrottledelay.php
+ * @return float a float representing the throttle delay in seconds.
+ */
+ public static function getThrottleDelay () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set buffer size
+ * @link https://php.net/manual/en/function.httpresponse-setbuffersize.php
+ * @param int $bytes
+ * the chunk size in bytes
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setBufferSize ($bytes) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get buffer size
+ * @link https://php.net/manual/en/function.httpresponse-getbuffersize.php
+ * @return int an int representing the current buffer size in bytes.
+ */
+ public static function getBufferSize () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set data
+ * @link https://php.net/manual/en/function.httpresponse-setdata.php
+ * @param mixed $data
+ * data to send
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setData ($data) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get data
+ * @link https://php.net/manual/en/function.httpresponse-getdata.php
+ * @return string a string containing the previously set data to send.
+ */
+ public static function getData () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set file
+ * @link https://php.net/manual/en/function.httpresponse-setfile.php
+ * @param string $file
+ * the path to the file to send
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setFile ($file) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get file
+ * @link https://php.net/manual/en/function.httpresponse-getfile.php
+ * @return string the previously set path to the file to send as string.
+ */
+ public static function getFile () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Set stream
+ * @link https://php.net/manual/en/function.httpresponse-setstream.php
+ * @param resource $stream
+ * already opened stream from which the data to send will be read
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function setStream ($stream) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get Stream
+ * @link https://php.net/manual/en/function.httpresponse-getstream.php
+ * @return resource the previously set resource.
+ */
+ public static function getStream () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Send response
+ * @link https://php.net/manual/en/function.httpresponse-send.php
+ * @param bool $clean_ob [optional]
+ * whether to destroy all previously started output handlers and their buffers
+ *
+ * @return bool true on success or false on failure.
+ */
+ public static function send ($clean_ob = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Capture script output
+ * @link https://php.net/manual/en/function.httpresponse-capture.php
+ * @return void
+ */
+ public static function capture () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Redirect
+ * @link https://php.net/manual/en/function.httpresponse-redirect.php
+ * @param string $url [optional]
+ * @param array $params [optional]
+ * @param bool $session [optional]
+ * @param int $status [optional]
+ * @return void
+ */
+ public static function redirect ($url = null, array $params = null , $session = null, $status = null) {}
+
+ /**
+ * (PECL pecl_http >= 0.12.0)
+ * Send HTTP response status
+ * @link https://php.net/manual/en/function.httpresponse-status.php
+ * @param int $status
+ * @return bool
+ */
+ public static function status ($status) {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get request headers
+ * @link https://php.net/manual/en/function.httpresponse-getrequestheaders.php
+ * @return array
+ */
+ public static function getRequestHeaders () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get request body
+ * @link https://php.net/manual/en/function.httpresponse-getrequestbody.php
+ * @return string
+ */
+ public static function getRequestBody () {}
+
+ /**
+ * (PECL pecl_http >= 0.10.0)
+ * Get request body stream
+ * @link https://php.net/manual/en/function.httpresponse-getrequestbodystream.php
+ * @return resource
+ */
+ public static function getRequestBodyStream () {}
+
+}
+
+class HttpUtil {
+
+ /**
+ * @param $timestamp [optional]
+ */
+ public static function date ($timestamp) {}
+
+ /**
+ * @param $url
+ * @param $parts [optional]
+ * @param $flags [optional]
+ * @param &$composed [optional]
+ */
+ public static function buildUrl ($url, $parts, $flags, &$composed) {}
+
+ /**
+ * @param $query
+ * @param $prefix [optional]
+ * @param $arg_sep [optional]
+ */
+ public static function buildStr ($query, $prefix, $arg_sep) {}
+
+ /**
+ * @param $supported
+ * @param &$result [optional]
+ */
+ public static function negotiateLanguage ($supported, &$result) {}
+
+ /**
+ * @param $supported
+ * @param &$result [optional]
+ */
+ public static function negotiateCharset ($supported, &$result) {}
+
+ /**
+ * @param $supported
+ * @param &$result [optional]
+ */
+ public static function negotiateContentType ($supported, &$result) {}
+
+ /**
+ * @param $last_modified
+ * @param $for_range [optional]
+ */
+ public static function matchModified ($last_modified, $for_range) {}
+
+ /**
+ * @param $plain_etag
+ * @param $for_range [optional]
+ */
+ public static function matchEtag ($plain_etag, $for_range) {}
+
+ /**
+ * @param $header_name
+ * @param $header_value
+ * @param $case_sensitive [optional]
+ */
+ public static function matchRequestHeader ($header_name, $header_value, $case_sensitive) {}
+
+ /**
+ * @param $message_string
+ */
+ public static function parseMessage ($message_string) {}
+
+ /**
+ * @param $headers_string
+ */
+ public static function parseHeaders ($headers_string) {}
+
+ /**
+ * @param $cookie_string
+ */
+ public static function parseCookie ($cookie_string) {}
+
+ /**
+ * @param $cookie_array
+ */
+ public static function buildCookie ($cookie_array) {}
+
+ /**
+ * @param $param_string
+ * @param $flags [optional]
+ */
+ public static function parseParams ($param_string, $flags) {}
+
+ /**
+ * @param $encoded_string
+ */
+ public static function chunkedDecode ($encoded_string) {}
+
+ /**
+ * @param $plain
+ * @param $flags [optional]
+ */
+ public static function deflate ($plain, $flags) {}
+
+ /**
+ * @param $encoded
+ */
+ public static function inflate ($encoded) {}
+
+ /**
+ * @param $feature [optional]
+ */
+ public static function support ($feature) {}
+
+}
+
+/**
+ * (PECL pecl_http >= 0.1.0)
+ * Compose HTTP RFC compliant date
+ * @link https://php.net/manual/en/function.http-date.php
+ * @param int $timestamp [optional]
+ * @return int integer, whether requested feature is supported,
+ * or a bitmask with all supported features if feature was omitted.
+ */
+#[Pure]
+function http_support ($feature = null) {}
+
+
+/**
+ * don't urldecode values
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_COOKIE_PARSE_RAW', 1);
+
+/**
+ * whether "secure" was found in the cookie's parameters list
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_COOKIE_SECURE', 16);
+
+/**
+ * whether "httpOnly" was found in the cookie's parameter list
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_COOKIE_HTTPONLY', 32);
+define ('HTTP_DEFLATE_LEVEL_DEF', 0);
+define ('HTTP_DEFLATE_LEVEL_MIN', 1);
+define ('HTTP_DEFLATE_LEVEL_MAX', 9);
+define ('HTTP_DEFLATE_TYPE_ZLIB', 0);
+define ('HTTP_DEFLATE_TYPE_GZIP', 16);
+define ('HTTP_DEFLATE_TYPE_RAW', 32);
+define ('HTTP_DEFLATE_STRATEGY_DEF', 0);
+define ('HTTP_DEFLATE_STRATEGY_FILT', 256);
+define ('HTTP_DEFLATE_STRATEGY_HUFF', 512);
+define ('HTTP_DEFLATE_STRATEGY_RLE', 768);
+define ('HTTP_DEFLATE_STRATEGY_FIXED', 1024);
+
+/**
+ * don't flush
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_ENCODING_STREAM_FLUSH_NONE', 0);
+
+/**
+ * synchronized flush only
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_ENCODING_STREAM_FLUSH_SYNC', 1048576);
+
+/**
+ * full data flush
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_ENCODING_STREAM_FLUSH_FULL', 2097152);
+
+/**
+ * use "basic" authentication
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_AUTH_BASIC', 1);
+
+/**
+ * use "digest" authentication
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_AUTH_DIGEST', 2);
+
+/**
+ * use "NTLM" authentication
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_AUTH_NTLM', 8);
+
+/**
+ * use "GSS-NEGOTIATE" authentication
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_AUTH_GSSNEG', 4);
+
+/**
+ * try any authentication scheme
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_AUTH_ANY', -1);
+define ('HTTP_VERSION_NONE', 0);
+
+/**
+ * HTTP version 1.0
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_VERSION_1_0', 1);
+
+/**
+ * HTTP version 1.1
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_VERSION_1_1', 2);
+
+/**
+ * no specific HTTP protocol version
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_VERSION_ANY', 0);
+
+/**
+ * use TLSv1 only
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SSL_VERSION_TLSv1', 1);
+
+/**
+ * use SSLv2 only
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SSL_VERSION_SSLv2', 2);
+
+/**
+ * use SSLv3 only
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SSL_VERSION_SSLv3', 3);
+
+/**
+ * no specific SSL protocol version
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SSL_VERSION_ANY', 0);
+
+/**
+ * use IPv4 only for name lookups
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_IPRESOLVE_V4', 1);
+
+/**
+ * use IPv6 only for name lookups
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_IPRESOLVE_V6', 2);
+
+/**
+ * use any IP mechanism only for name lookups
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_IPRESOLVE_ANY', 0);
+
+/**
+ * the proxy is a SOCKS4 type proxy
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_PROXY_SOCKS4', 4);
+
+/**
+ * the proxy is a SOCKS5 type proxy
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_PROXY_SOCKS5', 5);
+
+/**
+ * standard HTTP proxy
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_PROXY_HTTP', 0);
+define ('HTTP_METH_GET', 1);
+define ('HTTP_METH_HEAD', 2);
+define ('HTTP_METH_POST', 3);
+define ('HTTP_METH_PUT', 4);
+define ('HTTP_METH_DELETE', 5);
+define ('HTTP_METH_OPTIONS', 6);
+define ('HTTP_METH_TRACE', 7);
+define ('HTTP_METH_CONNECT', 8);
+define ('HTTP_METH_PROPFIND', 9);
+define ('HTTP_METH_PROPPATCH', 10);
+define ('HTTP_METH_MKCOL', 11);
+define ('HTTP_METH_COPY', 12);
+define ('HTTP_METH_MOVE', 13);
+define ('HTTP_METH_LOCK', 14);
+define ('HTTP_METH_UNLOCK', 15);
+define ('HTTP_METH_VERSION_CONTROL', 16);
+define ('HTTP_METH_REPORT', 17);
+define ('HTTP_METH_CHECKOUT', 18);
+define ('HTTP_METH_CHECKIN', 19);
+define ('HTTP_METH_UNCHECKOUT', 20);
+define ('HTTP_METH_MKWORKSPACE', 21);
+define ('HTTP_METH_UPDATE', 22);
+define ('HTTP_METH_LABEL', 23);
+define ('HTTP_METH_MERGE', 24);
+define ('HTTP_METH_BASELINE_CONTROL', 25);
+define ('HTTP_METH_MKACTIVITY', 26);
+define ('HTTP_METH_ACL', 27);
+
+/**
+ * guess applicable redirect method
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_REDIRECT', 0);
+
+/**
+ * permanent redirect (301 Moved permanently)
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_REDIRECT_PERM', 301);
+
+/**
+ * standard redirect (302 Found)
+ * RFC 1945 and RFC 2068 specify that the client is not allowed
+ * to change the method on the redirected request. However, most
+ * existing user agent implementations treat 302 as if it were a 303
+ * response, performing a GET on the Location field-value regardless
+ * of the original request method. The status codes 303 and 307 have
+ * been added for servers that wish to make unambiguously clear which
+ * kind of reaction is expected of the client.
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_REDIRECT_FOUND', 302);
+
+/**
+ * redirect applicable to POST requests (303 See other)
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_REDIRECT_POST', 303);
+
+/**
+ * proxy redirect (305 Use proxy)
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_REDIRECT_PROXY', 305);
+
+/**
+ * temporary redirect (307 Temporary Redirect)
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_REDIRECT_TEMP', 307);
+
+/**
+ * querying for this constant will always return true
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SUPPORT', 1);
+
+/**
+ * whether support to issue HTTP requests is given, ie. libcurl support was compiled in
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SUPPORT_REQUESTS', 2);
+
+/**
+ * whether support to guess the Content-Type of HTTP messages is given, ie. libmagic support was compiled in
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SUPPORT_MAGICMIME', 4);
+
+/**
+ * whether support for zlib encodings is given, ie. libz support was compiled in
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SUPPORT_ENCODINGS', 8);
+
+/**
+ * whether support to issue HTTP requests over SSL is given, ie. linked libcurl was built with SSL support
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_SUPPORT_SSLREQUESTS', 32);
+define ('HTTP_SUPPORT_EVENTS', 128);
+
+/**
+ * allow commands additionally to semicolons as separator
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_PARAMS_ALLOW_COMMA', 1);
+
+/**
+ * continue parsing after an error occurred
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_PARAMS_ALLOW_FAILURE', 2);
+
+/**
+ * raise PHP warnings on parse errors
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_PARAMS_RAISE_ERROR', 4);
+
+/**
+ * all three values above, bitwise or'ed
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_PARAMS_DEFAULT', 7);
+
+/**
+ * replace every part of the first URL when there's one of the second URL
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_REPLACE', 0);
+
+/**
+ * join relative paths
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_JOIN_PATH', 1);
+
+/**
+ * join query strings
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_JOIN_QUERY', 2);
+
+/**
+ * strip any user authentication information
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_USER', 4);
+
+/**
+ * strip any password authentication information
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_PASS', 8);
+
+/**
+ * strip any authentication information
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_AUTH', 12);
+
+/**
+ * strip explicit port numbers
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_PORT', 32);
+
+/**
+ * strip complete path
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_PATH', 64);
+
+/**
+ * strip query string
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_QUERY', 128);
+
+/**
+ * strip any fragments (#identifier)
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_FRAGMENT', 256);
+
+/**
+ * strip anything but scheme and host
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_URL_STRIP_ALL', 492);
+define ('HTTP_URL_FROM_ENV', 4096);
+
+/**
+ * runtime error
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_RUNTIME', 1);
+
+/**
+ * an invalid parameter was passed
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_INVALID_PARAM', 2);
+
+/**
+ * header() or similar operation failed
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_HEADER', 3);
+
+/**
+ * HTTP header parse error
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_MALFORMED_HEADERS', 4);
+
+/**
+ * unknown/invalid request method
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_REQUEST_METHOD', 5);
+
+/**
+ * with operation incompatible message type
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_MESSAGE_TYPE', 6);
+
+/**
+ * encoding/decoding error
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_ENCODING', 7);
+
+/**
+ * request failure
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_REQUEST', 8);
+
+/**
+ * request pool failure
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_REQUEST_POOL', 9);
+
+/**
+ * socket exception
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_SOCKET', 10);
+
+/**
+ * response failure
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_RESPONSE', 11);
+
+/**
+ * invalid URL
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_URL', 12);
+
+/**
+ * querystring operation failure
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_E_QUERYSTRING', 13);
+
+/**
+ * the message is of no specific type
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_MSG_NONE', 0);
+
+/**
+ * request style message
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_MSG_REQUEST', 1);
+
+/**
+ * response style message
+ * @link https://php.net/manual/en/http.constants.php
+ */
+define ('HTTP_MSG_RESPONSE', 2);
+define ('HTTP_QUERYSTRING_TYPE_BOOL', 3);
+define ('HTTP_QUERYSTRING_TYPE_INT', 1);
+define ('HTTP_QUERYSTRING_TYPE_FLOAT', 2);
+define ('HTTP_QUERYSTRING_TYPE_STRING', 6);
+define ('HTTP_QUERYSTRING_TYPE_ARRAY', 4);
+define ('HTTP_QUERYSTRING_TYPE_OBJECT', 5);
diff --git a/vendor/jetbrains/phpstorm-stubs/http/http3.php b/vendor/jetbrains/phpstorm-stubs/http/http3.php
new file mode 100644
index 0000000000..30cfc5e28b
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/http/http3.php
@@ -0,0 +1,3277 @@
+ ***NOTE:***
+ * > This method has been added in v2.3.0.
+ *
+ * @param array $configuration Key/value pairs of low level options.
+ * See f.e. the [configuration options for the Curl driver](http/Client/Curl#Configuration:).
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Client self.
+ */
+ function configure(array $configuration) {}
+ /**
+ * Implements Countable. Retrieve the number of enqueued requests.
+ *
+ * > ***NOTE:***
+ * > The enqueued requests are counted without regard whether they are finished or not.
+ *
+ * @return int number of enqueued requests.
+ */
+ function count() {}
+ /**
+ * Dequeue the http\Client\Request $request.
+ *
+ * See http\Client::requeue(), if you want to requeue the request, instead of calling http\Client::dequeue() and then http\Client::enqueue().
+ *
+ * @param \http\Client\Request $request The request to cancel.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @throws \http\Exception\RuntimeException
+ * @return \http\Client self.
+ */
+ function dequeue(\http\Client\Request $request) {}
+ /**
+ * Implements SplSubject. Detach $observer, which has been previously attached.
+ *
+ * @param \SplObserver $observer Previously attached instance of SplObserver implementation.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Client self.
+ */
+ function detach(\SplObserver $observer) {}
+ /**
+ * Enable usage of an event library like libevent, which might improve performance with big socket sets.
+ *
+ * @param bool $enable Whether to enable libevent usage.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Client self.
+ * @see Client::configure()
+ */
+ #[Deprecated('This method has been deprecated in 2.3.0. Use http\Client::configure() instead')]
+ function enableEvents(bool $enable = true) {}
+ /**
+ * Enable sending pipelined requests to the same host if the driver supports it.
+ *
+ * @param bool $enable Whether to enable pipelining.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Client self.
+ * @see Client::configure()
+ */
+ #[Deprecated('This method has been deprecated in 2.3.0. Use http\Client::configure() instead')]
+ function enablePipelining(bool $enable = true) {}
+ /**
+ * Add another http\Client\Request to the request queue.
+ * If the optional callback $cb returns true, the request will be automatically dequeued.
+ *
+ * > ***Note:***
+ * > The http\Client\Response object resulting from the request is always stored
+ * > internally to be retrieved at a later time, __even__ when $cb is used.
+ * >
+ * > If you are about to send a lot of requests and do __not__ need the response
+ * > after executing the callback, you can use http\Client::getResponse() within
+ * > the callback to keep the memory usage level as low as possible.
+ *
+ * See http\Client::dequeue() and http\Client::send().
+ *
+ * @param \http\Client\Request $request The request to enqueue.
+ * @param callable $cb as function(\http\Response $response) : ?bool
+ * A callback to automatically call when the request has finished.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @throws \http\Exception\RuntimeException
+ * @return \http\Client self.
+ */
+ function enqueue(\http\Client\Request $request, callable $cb = null) {}
+ /**
+ * Get a list of available configuration options and their default values.
+ *
+ * See f.e. the [configuration options for the Curl driver](http/Client/Curl#Configuration:).
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @return array list of key/value pairs of available configuration options and their default values.
+ */
+ function getAvailableConfiguration() {}
+ /**
+ * List available drivers.
+ *
+ * @return array list of supported drivers.
+ */
+ function getAvailableDrivers() {}
+ /**
+ * Retrieve a list of available request options and their default values.
+ *
+ * See f.e. the [request options for the Curl driver](http/Client/Curl#Options:).
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @return array list of key/value pairs of available request options and their default values.
+ */
+ function getAvailableOptions() {}
+ /**
+ * Get priorly set custom cookies.
+ * See http\Client::setCookies().
+ *
+ * @return array custom cookies.
+ */
+ function getCookies() {}
+ /**
+ * Simply returns the http\Message chain representing the request/response history.
+ *
+ * > ***NOTE:***
+ * > The history is only recorded while http\Client::$recordHistory is true.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Message the request/response message chain representing the client's history.
+ */
+ function getHistory() {}
+ /**
+ * Returns the SplObjectStorage holding attached observers.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \SplObjectStorage observer storage.
+ */
+ function getObservers() {}
+ /**
+ * Get priorly set options.
+ * See http\Client::setOptions().
+ *
+ * @return array options.
+ */
+ function getOptions() {}
+ /**
+ * Retrieve the progress information for $request.
+ *
+ * @param \http\Client\Request $request The request to retrieve the current progress information for.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return object|null object stdClass instance holding progress information.
+ * or NULL if $request is not enqueued.
+ */
+ function getProgressInfo(\http\Client\Request $request) {}
+ /**
+ * Retrieve the corresponding response of an already finished request, or the last received response if $request is not set.
+ *
+ * > ***NOTE:***
+ * > If $request is NULL, then the response is removed from the internal storage (stack-like operation).
+ *
+ * @param \http\Client\Request $request The request to fetch the stored response for.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Client\Response|null \http\Client\Response the stored response for the request, or the last that was received.
+ * or NULL if no more response was available to pop, when no $request was given.
+ */
+ function getResponse(\http\Client\Request $request = null) {}
+ /**
+ * Retrieve priorly set SSL options.
+ * See http\Client::getOptions() and http\Client::setSslOptions().
+ *
+ * @return array SSL options.
+ */
+ function getSslOptions() {}
+ /**
+ * Get transfer related information for a running or finished request.
+ *
+ * @param \http\Client\Request $request The request to probe for transfer info.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return object stdClass instance holding transfer related information.
+ */
+ function getTransferInfo(\http\Client\Request $request) {}
+ /**
+ * Implements SplSubject. Notify attached observers about progress with $request.
+ *
+ * @param \http\Client\Request $request The request to notify about.
+ * @param object $progress stdClass instance holding progress information.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Client self.
+ */
+ function notify(\http\Client\Request $request = null, $progress = null) {}
+ /**
+ * Perform outstanding transfer actions.
+ * See http\Client::wait() for the completing interface.
+ *
+ * @return bool true if there are more transfers to complete.
+ */
+ function once() {}
+ /**
+ * Requeue an http\Client\Request.
+ *
+ * The difference simply is, that this method, in contrast to http\Client::enqueue(), does not throw an http\Exception when the request to queue is already enqueued and dequeues it automatically prior enqueueing it again.
+ *
+ * @param \http\Client\Request $request The request to queue.
+ * @param callable $cb as function(\http\Response $response) : ?bool
+ * A callback to automatically call when the request has finished.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ * @return \http\Client self.
+ */
+ function requeue(\http\Client\Request $request, callable $cb = null) {}
+ /**
+ * Reset the client to the initial state.
+ *
+ * @return \http\Client self.
+ */
+ function reset() {}
+ /**
+ * Send all enqueued requests.
+ * See http\Client::once() and http\Client::wait() for a more fine grained interface.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ * @return \http\Client self.
+ */
+ function send() {}
+ /**
+ * Set custom cookies.
+ * See http\Client::addCookies() and http\Client::getCookies().
+ *
+ * @param array $cookies Set the custom cookies to this array.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Client self.
+ */
+ function setCookies(array $cookies = null) {}
+ /**
+ * Set client debugging callback.
+ *
+ * > ***NOTE:***
+ * > This method has been added in v2.6.0, resp. v3.1.0.
+ *
+ * @param callable $callback as function(http\Client $c, http\Client\Request $r, int $type, string $data)
+ * The debug callback. For $type see http\Client::DEBUG_* constants.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Client self.
+ */
+ function setDebug(callable $callback) {}
+ /**
+ * Set client options.
+ * See http\Client\Curl.
+ *
+ * > ***NOTE:***
+ * > Only options specified prior enqueueing a request are applied to the request.
+ *
+ * @param array $options The options to set.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Client self.
+ */
+ function setOptions(array $options = null) {}
+ /**
+ * Specifically set SSL options.
+ * See http\Client::setOptions() and http\Client\Curl\$ssl options.
+ *
+ * @param array $ssl_options Set SSL options to this array.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Client self.
+ */
+ function setSslOptions(array $ssl_options = null) {}
+ /**
+ * Wait for $timeout seconds for transfers to provide data.
+ * This is the completion call to http\Client::once().
+ *
+ * @param float $timeout Seconds to wait for data on open sockets.
+ * @return bool success.
+ */
+ function wait(float $timeout = 0) {}
+}
+/**
+ * A class representing a list of cookies with specific attributes.
+ */
+class Cookie {
+ /**
+ * Do not decode cookie contents.
+ */
+ const PARSE_RAW = 1;
+ /**
+ * The cookies' flags have the secure attribute set.
+ */
+ const SECURE = 16;
+ /**
+ * The cookies' flags have the httpOnly attribute set.
+ */
+ const HTTPONLY = 32;
+ /**
+ * Create a new cookie list.
+ *
+ * @param mixed $cookies The string or list of cookies to parse or set.
+ * @param int $flags Parse flags. See http\Cookie::PARSE_* constants.
+ * @param array $allowed_extras List of extra attribute names to recognize.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ */
+ function __construct($cookies = null, int $flags = 0, array $allowed_extras = null) {}
+ /**
+ * String cast handler. Alias of http\Cookie::toString().
+ *
+ * @return string the cookie(s) represented as string.
+ */
+ function __toString() {}
+ /**
+ * Add a cookie.
+ * See http\Cookie::setCookie() and http\Cookie::addCookies().
+ *
+ * @param string $cookie_name The key of the cookie.
+ * @param string $cookie_value The value of the cookie.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function addCookie(string $cookie_name, string $cookie_value) {}
+ /**
+ * (Re)set the cookies.
+ * See http\Cookie::setCookies().
+ *
+ * @param array $cookies Add cookies of this array of form ["name" => "value"].
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function addCookies(array $cookies) {}
+ /**
+ * Add an extra attribute to the cookie list.
+ * See http\Cookie::setExtra().
+ *
+ * @param string $extra_name The key of the extra attribute.
+ * @param string $extra_value The value of the extra attribute.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function addExtra(string $extra_name, string $extra_value) {}
+ /**
+ * Add several extra attributes.
+ * See http\Cookie::addExtra().
+ *
+ * @param array $extras A list of extra attributes of the form ["key" => "value"].
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function addExtras(array $extras) {}
+ /**
+ * Retrieve a specific cookie value.
+ * See http\Cookie::setCookie().
+ *
+ * @param string $cookie_name The key of the cookie to look up.
+ * @return string|null string the cookie value.
+ * or NULL if $cookie_name could not be found.
+ */
+ function getCookie(string $cookie_name) {}
+ /**
+ * Get the list of cookies.
+ * See http\Cookie::setCookies().
+ *
+ * @return array the list of cookies of form ["name" => "value"].
+ */
+ function getCookies() {}
+ /**
+ * Retrieve the effective domain of the cookie list.
+ * See http\Cookie::setDomain().
+ *
+ * @return string the effective domain.
+ */
+ function getDomain() {}
+ /**
+ * Get the currently set expires attribute.
+ * See http\Cookie::setExpires().
+ *
+ * > ***NOTE:***
+ * > A return value of -1 means that the attribute is not set.
+ *
+ * @return int the currently set expires attribute as seconds since the epoch.
+ */
+ function getExpires() {}
+ /**
+ * Retrieve an extra attribute.
+ * See http\Cookie::setExtra().
+ *
+ * @param string $name The key of the extra attribute.
+ * @return string the value of the extra attribute.
+ */
+ function getExtra(string $name) {}
+ /**
+ * Retrieve the list of extra attributes.
+ * See http\Cookie::setExtras().
+ *
+ * @return array the list of extra attributes of the form ["key" => "value"].
+ */
+ function getExtras() {}
+ /**
+ * Get the currently set flags.
+ * See http\Cookie::SECURE and http\Cookie::HTTPONLY constants.
+ *
+ * @return int the currently set flags bitmask.
+ */
+ function getFlags() {}
+ /**
+ * Get the currently set max-age attribute of the cookie list.
+ * See http\Cookie::setMaxAge().
+ *
+ * > ***NOTE:***
+ * > A return value of -1 means that the attribute is not set.
+ *
+ * @return int the currently set max-age.
+ */
+ function getMaxAge() {}
+ /**
+ * Retrieve the path the cookie(s) of this cookie list are effective at.
+ * See http\Cookie::setPath().
+ *
+ * @return string the effective path.
+ */
+ function getPath() {}
+ /**
+ * (Re)set a cookie.
+ * See http\Cookie::addCookie() and http\Cookie::setCookies().
+ *
+ * > ***NOTE:***
+ * > The cookie will be deleted from the list if $cookie_value is NULL.
+ *
+ * @param string $cookie_name The key of the cookie.
+ * @param string $cookie_value The value of the cookie.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setCookie(string $cookie_name, string $cookie_value) {}
+ /**
+ * (Re)set the cookies.
+ * See http\Cookie::addCookies().
+ *
+ * @param array $cookies Set the cookies to this array.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setCookies(array $cookies = null) {}
+ /**
+ * Set the effective domain of the cookie list.
+ * See http\Cookie::setPath().
+ *
+ * @param string $value The domain the cookie(s) belong to.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setDomain(string $value = null) {}
+ /**
+ * Set the traditional expires timestamp.
+ * See http\Cookie::setMaxAge() for a safer alternative.
+ *
+ * @param int $value The expires timestamp as seconds since the epoch.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setExpires(int $value = -1) {}
+ /**
+ * (Re)set an extra attribute.
+ * See http\Cookie::addExtra().
+ *
+ * > ***NOTE:***
+ * > The attribute will be removed from the extras list if $extra_value is NULL.
+ *
+ * @param string $extra_name The key of the extra attribute.
+ * @param string $extra_value The value of the extra attribute.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setExtra(string $extra_name, string $extra_value = null) {}
+ /**
+ * (Re)set the extra attributes.
+ * See http\Cookie::addExtras().
+ *
+ * @param array $extras Set the extra attributes to this array.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setExtras(array $extras = null) {}
+ /**
+ * Set the flags to specified $value.
+ * See http\Cookie::SECURE and http\Cookie::HTTPONLY constants.
+ *
+ * @param int $value The new flags bitmask.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setFlags(int $value = 0) {}
+ /**
+ * Set the maximum age the cookie may have on the client side.
+ * This is a client clock departure safe alternative to the "expires" attribute.
+ * See http\Cookie::setExpires().
+ *
+ * @param int $value The max-age in seconds.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setMaxAge(int $value = -1) {}
+ /**
+ * Set the path the cookie(s) of this cookie list should be effective at.
+ * See http\Cookie::setDomain().
+ *
+ * @param string $path The URL path the cookie(s) should take effect within.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Cookie self.
+ */
+ function setPath(string $path = null) {}
+ /**
+ * Get the cookie list as array.
+ *
+ * @return array the cookie list as array.
+ */
+ function toArray() {}
+ /**
+ * Retrieve the string representation of the cookie list.
+ * See http\Cookie::toArray().
+ *
+ * @return string the cookie list as string.
+ */
+ function toString() {}
+}
+/**
+ *
+ */
+namespace http\Encoding;
+namespace http;
+/**
+ * The http\Env class provides static methods to manipulate and inspect the server's current request's HTTP environment.
+ */
+class Env {
+ /**
+ * Retrieve the current HTTP request's body.
+ *
+ * @param string $body_class_name A user class extending http\Message\Body.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Message\Body instance representing the request body
+ */
+ function getRequestBody(string $body_class_name = null) {}
+ /**
+ * Retrieve one or all headers of the current HTTP request.
+ *
+ * @param string $header_name The key of a header to retrieve.
+ * @return string|null|array NULL if $header_name was not found
+ * or string the compound header when $header_name was found
+ * or array of all headers if $header_name was not specified
+ */
+ function getRequestHeader(string $header_name = null) {}
+ /**
+ * Get the HTTP response code to send.
+ *
+ * @return int the HTTP response code.
+ */
+ function getResponseCode() {}
+ /**
+ * Get one or all HTTP response headers to be sent.
+ *
+ * @param string $header_name The name of the response header to retrieve.
+ * @return string|array|null string the compound value of the response header to send
+ * or NULL if the header was not found
+ * or array of all response headers, if $header_name was not specified
+ */
+ function getResponseHeader(string $header_name = null) {}
+ /**
+ * Retrieve a list of all known HTTP response status.
+ *
+ * @return array mapping of the form \[
+ * ...
+ * int $code => string $status
+ * ...
+ * \]
+ */
+ function getResponseStatusForAllCodes() {}
+ /**
+ * Retrieve the string representation of specified HTTP response code.
+ *
+ * @param int $code The HTTP response code to get the string representation for.
+ * @return string the HTTP response status message (may be empty, if no message for this code was found)
+ */
+ function getResponseStatusForCode(int $code) {}
+ /**
+ * Generic negotiator. For specific client negotiation see http\Env::negotiateContentType() and related methods.
+ *
+ * > ***NOTE:***
+ * > The first element of $supported serves as a default if no operand matches.
+ *
+ * @param string $params HTTP header parameter's value to negotiate.
+ * @param array $supported List of supported negotiation operands.
+ * @param string $prim_typ_sep A "primary type separator", i.e. that would be a hyphen for content language negotiation (en-US, de-DE, etc.).
+ * @param array &$result Out parameter recording negotiation results.
+ * @return string|null NULL if negotiation fails.
+ * or string the closest match negotiated, or the default (first entry of $supported).
+ */
+ function negotiate(string $params, array $supported, string $prim_typ_sep = null, array &$result = null) {}
+ /**
+ * Negotiate the client's preferred character set.
+ *
+ * > ***NOTE:***
+ * > The first element of $supported character sets serves as a default if no character set matches.
+ *
+ * @param array $supported List of supported content character sets.
+ * @param array &$result Out parameter recording negotiation results.
+ * @return string|null NULL if negotiation fails.
+ * or string the negotiated character set.
+ */
+ function negotiateCharset(array $supported, array &$result = null) {}
+ /**
+ * Negotiate the client's preferred MIME content type.
+ *
+ * > ***NOTE:***
+ * > The first element of $supported content types serves as a default if no content-type matches.
+ *
+ * @param array $supported List of supported MIME content types.
+ * @param array &$result Out parameter recording negotiation results.
+ * @return string|null NULL if negotiation fails.
+ * or string the negotiated content type.
+ */
+ function negotiateContentType(array $supported, array &$result = null) {}
+ /**
+ * Negotiate the client's preferred encoding.
+ *
+ * > ***NOTE:***
+ * > The first element of $supported encodings serves as a default if no encoding matches.
+ *
+ * @param array $supported List of supported content encodings.
+ * @param array &$result Out parameter recording negotiation results.
+ * @return string|null NULL if negotiation fails.
+ * or string the negotiated encoding.
+ */
+ function negotiateEncoding(array $supported, array &$result = null) {}
+ /**
+ * Negotiate the client's preferred language.
+ *
+ * > ***NOTE:***
+ * > The first element of $supported languages serves as a default if no language matches.
+ *
+ * @param array $supported List of supported content languages.
+ * @param array &$result Out parameter recording negotiation results.
+ * @return string|null NULL if negotiation fails.
+ * or string the negotiated language.
+ */
+ function negotiateLanguage(array $supported, array &$result = null) {}
+ /**
+ * Set the HTTP response code to send.
+ *
+ * @param int $code The HTTP response status code.
+ * @return bool Success.
+ */
+ function setResponseCode(int $code) {}
+ /**
+ * Set a response header, either replacing a prior set header, or appending the new header value, depending on $replace.
+ *
+ * If no $header_value is specified, or $header_value is NULL, then a previously set header with the same key will be deleted from the list.
+ *
+ * If $response_code is not 0, the response status code is updated accordingly.
+ *
+ * @param string $header_name
+ * @param mixed $header_value
+ * @param int $response_code
+ * @param bool $replace
+ * @return bool Success.
+ */
+ function setResponseHeader(string $header_name, $header_value = null, int $response_code = null, bool $replace = null) {}
+}
+/**
+ * The http extension's Exception interface.
+ *
+ * Use it to catch any Exception thrown by pecl/http.
+ *
+ * The individual exception classes extend their equally named native PHP extensions, if such exist, and implement this empty interface. For example the http\Exception\BadMethodCallException extends SPL's BadMethodCallException.
+ */
+interface Exception {
+}
+/**
+ * The http\Header class provides methods to manipulate, match, negotiate and serialize HTTP headers.
+ */
+class Header implements \Serializable {
+ /**
+ * None of the following match constraints applies.
+ */
+ const MATCH_LOOSE = 0;
+ /**
+ * Perform case sensitive matching.
+ */
+ const MATCH_CASE = 1;
+ /**
+ * Match only on word boundaries (according by CType alpha-numeric).
+ */
+ const MATCH_WORD = 16;
+ /**
+ * Match the complete string.
+ */
+ const MATCH_FULL = 32;
+ /**
+ * Case sensitively match the full string (same as MATCH_CASE|MATCH_FULL).
+ */
+ const MATCH_STRICT = 33;
+ /**
+ * The name of the HTTP header.
+ *
+ * @var string
+ */
+ public $name = null;
+ /**
+ * The value of the HTTP header.
+ *
+ * @var mixed
+ */
+ public $value = null;
+ /**
+ * Create an http\Header instance for use of simple matching or negotiation. If the value of the header is an array it may be compounded to a single comma separated string.
+ *
+ * @param string $name The HTTP header name.
+ * @param mixed $value The value of the header.
+ *
+ * # Throws:
+ */
+ function __construct(string $name = null, $value = null) {}
+ /**
+ * String cast handler. Alias of http\Header::serialize().
+ *
+ * @return string the serialized form of the HTTP header (i.e. "Name: value").
+ */
+ function __toString() {}
+ /**
+ * Create a parameter list out of the HTTP header value.
+ *
+ * @param mixed $ps The parameter separator(s).
+ * @param mixed $as The argument separator(s).
+ * @param mixed $vs The value separator(s).
+ * @param int $flags The modus operandi. See http\Params constants.
+ * @return \http\Params instance
+ */
+ function getParams($ps = null, $as = null, $vs = null, int $flags = null) {}
+ /**
+ * Match the HTTP header's value against provided $value according to $flags.
+ *
+ * @param string $value The comparison value.
+ * @param int $flags The modus operandi. See http\Header constants.
+ * @return bool whether $value matches the header value according to $flags.
+ */
+ function match(string $value, int $flags = null) {}
+ /**
+ * Negotiate the header's value against a list of supported values in $supported.
+ * Negotiation operation is adopted according to the header name, i.e. if the
+ * header being negotiated is Accept, then a slash is used as primary type
+ * separator, and if the header is Accept-Language respectively, a hyphen is
+ * used instead.
+ *
+ * > ***NOTE:***
+ * > The first element of $supported serves as a default if no operand matches.
+ *
+ * @param array $supported The list of supported values to negotiate.
+ * @param array &$result Out parameter recording the negotiation results.
+ * @return string|null NULL if negotiation fails.
+ * or string the closest match negotiated, or the default (first entry of $supported).
+ */
+ function negotiate(array $supported, array &$result = null) {}
+ /**
+ * Parse HTTP headers.
+ * See also http\Header\Parser.
+ *
+ * @param string $header The complete string of headers.
+ * @param string $header_class A class extending http\Header.
+ * @return array|false array of parsed headers, where the elements are instances of $header_class if specified.
+ * or false if parsing fails.
+ */
+ function parse(string $header, string $header_class = null) {}
+ /**
+ * Implements Serializable.
+ *
+ * @return string serialized representation of HTTP header (i.e. "Name: value")
+ */
+ function serialize() {}
+ /**
+ * Convenience method. Alias of http\Header::serialize().
+ *
+ * @return string the serialized form of the HTTP header (i.e. "Name: value").
+ */
+ function toString() {}
+ /**
+ * Implements Serializable.
+ *
+ * @param string $serialized The serialized HTTP header (i.e. "Name: value")
+ */
+ function unserialize($serialized) {}
+}
+/**
+ * The message class builds the foundation for any request and response message.
+ *
+ * See http\Client\Request and http\Client\Response, as well as http\Env\Request and http\Env\Response.
+ */
+class Message implements \Countable, \Serializable, \Iterator {
+ /**
+ * No specific type of message.
+ */
+ const TYPE_NONE = 0;
+ /**
+ * A request message.
+ */
+ const TYPE_REQUEST = 1;
+ /**
+ * A response message.
+ */
+ const TYPE_RESPONSE = 2;
+ /**
+ * The message type. See http\Message::TYPE_* constants.
+ *
+ * @var int
+ */
+ protected $type = \http\Message::TYPE_NONE;
+ /**
+ * The message's body.
+ *
+ * @var \http\Message\Body
+ */
+ protected $body = null;
+ /**
+ * The request method if the message is of type request.
+ *
+ * @var string
+ */
+ protected $requestMethod = "";
+ /**
+ * The request url if the message is of type request.
+ *
+ * @var string
+ */
+ protected $requestUrl = "";
+ /**
+ * The response status phrase if the message is of type response.
+ *
+ * @var string
+ */
+ protected $responseStatus = "";
+ /**
+ * The response code if the message is of type response.
+ *
+ * @var int
+ */
+ protected $responseCode = 0;
+ /**
+ * A custom HTTP protocol version.
+ *
+ * @var string
+ */
+ protected $httpVersion = null;
+ /**
+ * Any message headers.
+ *
+ * @var array
+ */
+ protected $headers = null;
+ /**
+ * Any parent message.
+ *
+ * @var \http\Message
+ */
+ protected $parentMessage;
+ /**
+ * Create a new HTTP message.
+ *
+ * @param mixed $message Either a resource or a string, representing the HTTP message.
+ * @param bool $greedy Whether to read from a $message resource until EOF.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMessageException
+ */
+ function __construct($message = null, bool $greedy = true) {}
+ /**
+ * Retrieve the message serialized to a string.
+ * Alias of http\Message::toString().
+ *
+ * @return string the single serialized HTTP message.
+ */
+ function __toString() {}
+ /**
+ * Append the data of $body to the message's body.
+ * See http\Message::setBody() and http\Message\Body::append().
+ *
+ * @param \http\Message\Body $body The message body to add.
+ * @return \http\Message self.
+ */
+ function addBody(\http\Message\Body $body) {}
+ /**
+ * Add an header, appending to already existing headers.
+ * See http\Message::addHeaders() and http\Message::setHeader().
+ *
+ * @param string $name The header name.
+ * @param mixed $value The header value.
+ * @return \http\Message self.
+ */
+ function addHeader(string $name, $value) {}
+ /**
+ * Add headers, optionally appending values, if header keys already exist.
+ * See http\Message::addHeader() and http\Message::setHeaders().
+ *
+ * @param array $headers The HTTP headers to add.
+ * @param bool $append Whether to append values for existing headers.
+ * @return \http\Message self.
+ */
+ function addHeaders(array $headers, bool $append = false) {}
+ /**
+ * Implements Countable.
+ *
+ * @return int the count of messages in the chain above the current message.
+ */
+ function count() {}
+ /**
+ * Implements iterator.
+ * See http\Message::valid() and http\Message::rewind().
+ *
+ * @return \http\Message the current message in the iterated message chain.
+ */
+ function current() {}
+ /**
+ * Detach a clone of this message from any message chain.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Message clone.
+ */
+ function detach() {}
+ /**
+ * Retrieve the message's body.
+ * See http\Message::setBody().
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Message\Body the message body.
+ */
+ function getBody() {}
+ /**
+ * Retrieve a single header, optionally hydrated into a http\Header extending class.
+ *
+ * @param string $header The header's name.
+ * @param string $into_class The name of a class extending http\Header.
+ * @return mixed|\http\Header mixed the header value if $into_class is NULL.
+ * or \http\Header descendant.
+ */
+ function getHeader(string $header, string $into_class = null) {}
+ /**
+ * Retrieve all message headers.
+ * See http\Message::setHeaders() and http\Message::getHeader().
+ *
+ * @return array the message's headers.
+ */
+ function getHeaders() {}
+ /**
+ * Retrieve the HTTP protocol version of the message.
+ * See http\Message::setHttpVersion().
+ *
+ * @return string the HTTP protocol version, e.g. "1.0"; defaults to "1.1".
+ */
+ function getHttpVersion() {}
+ /**
+ * Retrieve the first line of a request or response message.
+ * See http\Message::setInfo and also:
+ *
+ * * http\Message::getType()
+ * * http\Message::getHttpVersion()
+ * * http\Message::getResponseCode()
+ * * http\Message::getResponseStatus()
+ * * http\Message::getRequestMethod()
+ * * http\Message::getRequestUrl()
+ *
+ * @return string|null string the HTTP message information.
+ * or NULL if the message is neither of type request nor response.
+ */
+ function getInfo() {}
+ /**
+ * Retrieve any parent message.
+ * See http\Message::reverse().
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @return \http\Message the parent message.
+ */
+ function getParentMessage() {}
+ /**
+ * Retrieve the request method of the message.
+ * See http\Message::setRequestMethod() and http\Message::getRequestUrl().
+ *
+ * @return string|false string the request method.
+ * or false if the message was not of type request.
+ */
+ function getRequestMethod() {}
+ /**
+ * Retrieve the request URL of the message.
+ * See http\Message::setRequestUrl().
+ *
+ * @return string|false string the request URL; usually the path and the querystring.
+ * or false if the message was not of type request.
+ */
+ function getRequestUrl() {}
+ /**
+ * Retrieve the response code of the message.
+ * See http\Message::setResponseCode() and http\Message::getResponseStatus().
+ *
+ * @return int|false int the response status code.
+ * or false if the message is not of type response.
+ */
+ function getResponseCode() {}
+ /**
+ * Retrieve the response status of the message.
+ * See http\Message::setResponseStatus() and http\Message::getResponseCode().
+ *
+ * @return string|false string the response status phrase.
+ * or false if the message is not of type response.
+ */
+ function getResponseStatus() {}
+ /**
+ * Retrieve the type of the message.
+ * See http\Message::setType() and http\Message::getInfo().
+ *
+ * @return int the message type. See http\Message::TYPE_* constants.
+ */
+ function getType() {}
+ /**
+ * Check whether this message is a multipart message based on it's content type.
+ * If the message is a multipart message and a reference $boundary is given, the boundary string of the multipart message will be stored in $boundary.
+ *
+ * See http\Message::splitMultipartBody().
+ *
+ * @param string &$boundary A reference where the boundary string will be stored.
+ * @return bool whether this is a message with a multipart "Content-Type".
+ */
+ function isMultipart(string &$boundary = null) {}
+ /**
+ * Implements Iterator.
+ * See http\Message::current() and http\Message::rewind().
+ *
+ * @return int a non-sequential integer key.
+ */
+ function key() {}
+ /**
+ * Implements Iterator.
+ * See http\Message::valid() and http\Message::rewind().
+ */
+ function next() {}
+ /**
+ * Prepend message(s) $message to this message, or the top most message of this message chain.
+ *
+ * > ***NOTE:***
+ * > The message chains must not overlap.
+ *
+ * @param \http\Message $message The message (chain) to prepend as parent messages.
+ * @param bool $top Whether to prepend to the top-most parent message.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Message self.
+ */
+ function prepend(\http\Message $message, bool $top = true) {}
+ /**
+ * Reverse the message chain and return the former top-most message.
+ *
+ * > ***NOTE:***
+ * > Message chains are ordered in reverse-parsed order by default, i.e. the last parsed message is the message you'll receive from any call parsing HTTP messages.
+ * >
+ * > This call re-orders the messages of the chain and returns the message that was parsed first with any later parsed messages re-parentized.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Message the other end of the message chain.
+ */
+ function reverse() {}
+ /**
+ * Implements Iterator.
+ */
+ function rewind() {}
+ /**
+ * Implements Serializable.
+ *
+ * @return string the serialized HTTP message.
+ */
+ function serialize() {}
+ /**
+ * Set the message's body.
+ * See http\Message::getBody() and http\Message::addBody().
+ *
+ * @param \http\Message\Body $body The new message body.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Message self.
+ */
+ function setBody(\http\Message\Body $body) {}
+ /**
+ * Set a single header.
+ * See http\Message::getHeader() and http\Message::addHeader().
+ *
+ * > ***NOTE:***
+ * > Prior to v2.5.6/v3.1.0 headers with the same name were merged into a single
+ * > header with values concatenated by comma.
+ *
+ * @param string $header The header's name.
+ * @param mixed $value The header's value. Removes the header if NULL.
+ * @return \http\Message self.
+ */
+ function setHeader(string $header, $value = null) {}
+ /**
+ * Set the message headers.
+ * See http\Message::getHeaders() and http\Message::addHeaders().
+ *
+ * > ***NOTE:***
+ * > Prior to v2.5.6/v3.1.0 headers with the same name were merged into a single
+ * > header with values concatenated by comma.
+ *
+ * @param array $headers The message's headers.
+ * @return \http\Message null.
+ */
+ function setHeaders(array $headers = null) {}
+ /**
+ * Set the HTTP protocol version of the message.
+ * See http\Message::getHttpVersion().
+ *
+ * @param string $http_version The protocol version, e.g. "1.1", optionally prefixed by "HTTP/".
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadHeaderException
+ * @return \http\Message self.
+ */
+ function setHttpVersion(string $http_version) {}
+ /**
+ * Set the complete message info, i.e. type and response resp. request information, at once.
+ * See http\Message::getInfo().
+ *
+ * @param string $http_info The message info (first line of an HTTP message).
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadHeaderException
+ * @return \http\Message self.
+ */
+ function setInfo(string $http_info) {}
+ /**
+ * Set the request method of the message.
+ * See http\Message::getRequestMethod() and http\Message::setRequestUrl().
+ *
+ * @param string $method The request method.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @return \http\Message self.
+ */
+ function setRequestMethod(string $method) {}
+ /**
+ * Set the request URL of the message.
+ * See http\Message::getRequestUrl() and http\Message::setRequestMethod().
+ *
+ * @param string $url The request URL.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @return \http\Message self.
+ */
+ function setRequestUrl(string $url) {}
+ /**
+ * Set the response status code.
+ * See http\Message::getResponseCode() and http\Message::setResponseStatus().
+ *
+ * > ***NOTE:***
+ * > This method also resets the response status phrase to the default for that code.
+ *
+ * @param int $response_code The response code.
+ * @param bool $strict Whether to check that the response code is between 100 and 599 inclusive.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @return \http\Message self.
+ */
+ function setResponseCode(int $response_code, bool $strict = true) {}
+ /**
+ * Set the response status phrase.
+ * See http\Message::getResponseStatus() and http\Message::setResponseCode().
+ *
+ * @param string $response_status The status phrase.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @return \http\Message self.
+ */
+ function setResponseStatus(string $response_status) {}
+ /**
+ * Set the message type and reset the message info.
+ * See http\Message::getType() and http\Message::setInfo().
+ *
+ * @param int $type The desired message type. See the http\Message::TYPE_* constants.
+ * @return \http\Message self.
+ */
+ function setType(int $type) {}
+ /**
+ * Splits the body of a multipart message.
+ * See http\Message::isMultipart() and http\Message\Body::addPart().
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @throws \http\Exception\BadMessageException
+ * @return \http\Message a message chain of all messages of the multipart body.
+ */
+ function splitMultipartBody() {}
+ /**
+ * Stream the message through a callback.
+ *
+ * @param callable $callback The callback of the form function(http\Message $from, string $data).
+ * @return \http\Message self.
+ */
+ function toCallback(callable $callback) {}
+ /**
+ * Stream the message into stream $stream, starting from $offset, streaming $maxlen at most.
+ *
+ * @param resource $stream The resource to write to.
+ * @return \http\Message self.
+ */
+ function toStream($stream) {}
+ /**
+ * Retrieve the message serialized to a string.
+ *
+ * @param bool $include_parent Whether to include all parent messages.
+ * @return string the HTTP message chain serialized to a string.
+ */
+ function toString(bool $include_parent = false) {}
+ /**
+ * Implements Serializable.
+ *
+ * @param string $data The serialized message.
+ */
+ function unserialize($data) {}
+ /**
+ * Implements Iterator.
+ * See http\Message::current() and http\Message::rewind().
+ *
+ * @return bool whether http\Message::current() would not return NULL.
+ */
+ function valid() {}
+}
+/**
+ * Parse, interpret and compose HTTP (header) parameters.
+ */
+class Params implements \ArrayAccess {
+ /**
+ * The default parameter separator (",").
+ */
+ const DEF_PARAM_SEP = ',';
+ /**
+ * The default argument separator (";").
+ */
+ const DEF_ARG_SEP = ';';
+ /**
+ * The default value separator ("=").
+ */
+ const DEF_VAL_SEP = '=';
+ /**
+ * Empty param separator to parse cookies.
+ */
+ const COOKIE_PARAM_SEP = '';
+ /**
+ * Do not interpret the parsed parameters.
+ */
+ const PARSE_RAW = 0;
+ /**
+ * Interpret input as default formatted parameters.
+ */
+ const PARSE_DEFAULT = 17;
+ /**
+ * Parse backslash escaped (quoted) strings.
+ */
+ const PARSE_ESCAPED = 1;
+ /**
+ * Urldecode single units of parameters, arguments and values.
+ */
+ const PARSE_URLENCODED = 4;
+ /**
+ * Parse sub dimensions indicated by square brackets.
+ */
+ const PARSE_DIMENSION = 8;
+ /**
+ * Parse URL querystring (same as http\Params::PARSE_URLENCODED|http\Params::PARSE_DIMENSION).
+ */
+ const PARSE_QUERY = 12;
+ /**
+ * Parse [RFC5987](http://tools.ietf.org/html/rfc5987) style encoded character set and language information embedded in HTTP header params.
+ */
+ const PARSE_RFC5987 = 16;
+ /**
+ * Parse [RFC5988](http://tools.ietf.org/html/rfc5988) (Web Linking) tags of Link headers.
+ */
+ const PARSE_RFC5988 = 32;
+ /**
+ * The (parsed) parameters.
+ *
+ * @var array
+ */
+ public $params = null;
+ /**
+ * The parameter separator(s).
+ *
+ * @var array
+ */
+ public $param_sep = \http\Params::DEF_PARAM_SEP;
+ /**
+ * The argument separator(s).
+ *
+ * @var array
+ */
+ public $arg_sep = \http\Params::DEF_ARG_SEP;
+ /**
+ * The value separator(s).
+ *
+ * @var array
+ */
+ public $val_sep = \http\Params::DEF_VAL_SEP;
+ /**
+ * The modus operandi of the parser. See http\Params::PARSE_* constants.
+ *
+ * @var int
+ */
+ public $flags = \http\Params::PARSE_DEFAULT;
+ /**
+ * Instantiate a new HTTP (header) parameter set.
+ *
+ * @param mixed $params Pre-parsed parameters or a string to be parsed.
+ * @param mixed $ps The parameter separator(s).
+ * @param mixed $as The argument separator(s).
+ * @param mixed $vs The value separator(s).
+ * @param int $flags The modus operandi. See http\Params::PARSE_* constants.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ */
+ function __construct($params = null, $ps = null, $as = null, $vs = null, int $flags = null) {}
+ /**
+ * String cast handler. Alias of http\Params::toString().
+ * Returns a stringified version of the parameters.
+ *
+ * @return string version of the parameters.
+ */
+ function __toString() {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param string $name The offset to look after.
+ * @return bool Existence.
+ */
+ function offsetExists($name) {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param string $name The offset to retrieve.
+ * @return mixed contents at offset.
+ */
+ function offsetGet($name) {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param string $name The offset to modify.
+ * @param mixed $value The value to set.
+ */
+ function offsetSet($name, $value) {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param string $name The offset to delete.
+ */
+ function offsetUnset($name) {}
+ /**
+ * Convenience method that simply returns http\Params::$params.
+ *
+ * @return array of parameters.
+ */
+ function toArray() {}
+ /**
+ * Returns a stringified version of the parameters.
+ *
+ * @return string version of the parameters.
+ */
+ function toString() {}
+}
+/**
+ * The http\QueryString class provides versatile facilities to retrieve, use and manipulate query strings and form data.
+ */
+class QueryString implements \Serializable, \ArrayAccess, \IteratorAggregate {
+ /**
+ * Cast requested value to bool.
+ */
+ const TYPE_BOOL = 16;
+ /**
+ * Cast requested value to int.
+ */
+ const TYPE_INT = 4;
+ /**
+ * Cast requested value to float.
+ */
+ const TYPE_FLOAT = 5;
+ /**
+ * Cast requested value to string.
+ */
+ const TYPE_STRING = 6;
+ /**
+ * Cast requested value to an array.
+ */
+ const TYPE_ARRAY = 7;
+ /**
+ * Cast requested value to an object.
+ */
+ const TYPE_OBJECT = 8;
+ /**
+ * The global instance. See http\QueryString::getGlobalInstance().
+ *
+ * @var \http\QueryString
+ */
+ private $instance = null;
+ /**
+ * The data.
+ *
+ * @var array
+ */
+ private $queryArray = null;
+ /**
+ * Create an independent querystring instance.
+ *
+ * @param mixed $params The query parameters to use or parse.
+ * @throws \http\Exception\BadQueryStringException
+ */
+ function __construct($params = null) {}
+ /**
+ * Get the string representation of the querystring (x-www-form-urlencoded).
+ *
+ * @return string the x-www-form-urlencoded querystring.
+ */
+ function __toString() {}
+ /**
+ * Retrieve an querystring value.
+ *
+ * See http\QueryString::TYPE_* constants.
+ *
+ * @param string $name The key to retrieve the value for.
+ * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants.
+ * @param mixed $defval The default value to return if the key $name does not exist.
+ * @param bool $delete Whether to delete the entry from the querystring after retrieval.
+ * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments.
+ * or string the whole querystring if $name is of zero length.
+ * or mixed $defval if the key $name does not exist.
+ * or mixed the querystring value cast to $type if $type was specified and the key $name exists.
+ * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING.
+ */
+ function get(string $name = null, $type = null, $defval = null, bool $delete = false) {}
+ /**
+ * Retrieve an array value with at offset $name.
+ *
+ * @param string $name The key to look up.
+ * @param mixed $defval The default value to return if the offset $name does not exist.
+ * @param bool $delete Whether to remove the key and value from the querystring after retrieval.
+ * @return array|mixed array the (casted) value.
+ * or mixed $defval if offset $name does not exist.
+ */
+ function getArray(string $name, $defval = null, bool $delete = false) {}
+ /**
+ * Retrieve a boolean value at offset $name.
+ *
+ * @param string $name The key to look up.
+ * @param mixed $defval The default value to return if the offset $name does not exist.
+ * @param bool $delete Whether to remove the key and value from the querystring after retrieval.
+ * @return bool|mixed bool the (casted) value.
+ * or mixed $defval if offset $name does not exist.
+ */
+ function getBool(string $name, $defval = null, bool $delete = false) {}
+ /**
+ * Retrieve a float value at offset $name.
+ *
+ * @param string $name The key to look up.
+ * @param mixed $defval The default value to return if the offset $name does not exist.
+ * @param bool $delete Whether to remove the key and value from the querystring after retrieval.
+ * @return float|mixed float the (casted) value.
+ * or mixed $defval if offset $name does not exist.
+ */
+ function getFloat(string $name, $defval = null, bool $delete = false) {}
+ /**
+ * Retrieve the global querystring instance referencing $_GET.
+ *
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\QueryString the http\QueryString::$instance
+ */
+ function getGlobalInstance() {}
+ /**
+ * Retrieve a int value at offset $name.
+ *
+ * @param string $name The key to look up.
+ * @param mixed $defval The default value to return if the offset $name does not exist.
+ * @param bool $delete Whether to remove the key and value from the querystring after retrieval.
+ * @return int|mixed int the (casted) value.
+ * or mixed $defval if offset $name does not exist.
+ */
+ function getInt(string $name, $defval = null, bool $delete = false) {}
+ /**
+ * Implements IteratorAggregate.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \InvalidArgumentException
+ */
+ function getIterator() {}
+ /**
+ * Retrieve a object value with at offset $name.
+ *
+ * @param string $name The key to look up.
+ * @param mixed $defval The default value to return if the offset $name does not exist.
+ * @param bool $delete Whether to remove the key and value from the querystring after retrieval.
+ * @return object|mixed object the (casted) value.
+ * or mixed $defval if offset $name does not exist.
+ */
+ function getObject(string $name, $defval = null, bool $delete = false) {}
+ /**
+ * Retrieve a string value with at offset $name.
+ *
+ * @param string $name The key to look up.
+ * @param mixed $defval The default value to return if the offset $name does not exist.
+ * @param bool $delete Whether to remove the key and value from the querystring after retrieval.
+ * @return string|mixed string the (casted) value.
+ * or mixed $defval if offset $name does not exist.
+ */
+ function getString(string $name, $defval = null, bool $delete = false) {}
+ /**
+ * Set additional $params to a clone of this instance.
+ * See http\QueryString::set().
+ *
+ * > ***NOTE:***
+ * > This method returns a clone (copy) of this instance.
+ *
+ * @param mixed $params Additional params as object, array or string to parse.
+ * @throws \http\Exception\BadQueryStringException
+ * @return \http\QueryString clone.
+ */
+ function mod($params = null) {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param string $name The offset to look up.
+ * @return bool whether the key $name isset.
+ */
+ function offsetExists($name) {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param mixed $offset The offset to look up.
+ * @return mixed|null mixed the value locate at offset $name.
+ * or NULL if key $name could not be found.
+ */
+ function offsetGet($offset) {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param string $name The key to set the value for.
+ * @param mixed $data The data to place at offset $name.
+ */
+ function offsetSet($name, $data) {}
+ /**
+ * Implements ArrayAccess.
+ *
+ * @param string $name The offset to look up.
+ */
+ function offsetUnset($name) {}
+ /**
+ * Implements Serializable.
+ * See http\QueryString::toString().
+ *
+ * @return string the x-www-form-urlencoded querystring.
+ */
+ function serialize() {}
+ /**
+ * Set additional querystring entries.
+ *
+ * @param mixed $params Additional params as object, array or string to parse.
+ * @return \http\QueryString self.
+ */
+ function set($params) {}
+ /**
+ * Simply returns http\QueryString::$queryArray.
+ *
+ * @return array the $queryArray property.
+ */
+ function toArray() {}
+ /**
+ * Get the string representation of the querystring (x-www-form-urlencoded).
+ *
+ * @return string the x-www-form-urlencoded querystring.
+ */
+ function toString() {}
+ /**
+ * Implements Serializable.
+ *
+ * @param string $serialized The x-www-form-urlencoded querystring.
+ * @throws \http\Exception
+ */
+ function unserialize($serialized) {}
+ /**
+ * Translate character encodings of the querystring with ext/iconv.
+ *
+ * > ***NOTE:***
+ * > This method is only available when ext/iconv support was enabled at build time.
+ *
+ * @param string $from_enc The encoding to convert from.
+ * @param string $to_enc The encoding to convert to.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadConversionException
+ * @return \http\QueryString self.
+ */
+ function xlate(string $from_enc, string $to_enc) {}
+}
+/**
+ * The http\Url class provides versatile means to parse, construct and manipulate URLs.
+ */
+class Url {
+ /**
+ * Replace parts of the old URL with parts of the new.
+ */
+ const REPLACE = 0;
+ /**
+ * Whether a relative path should be joined into the old path.
+ */
+ const JOIN_PATH = 1;
+ /**
+ * Whether the querystrings should be joined.
+ */
+ const JOIN_QUERY = 2;
+ /**
+ * Strip the user information from the URL.
+ */
+ const STRIP_USER = 4;
+ /**
+ * Strip the password from the URL.
+ */
+ const STRIP_PASS = 8;
+ /**
+ * Strip user and password information from URL (same as STRIP_USER|STRIP_PASS).
+ */
+ const STRIP_AUTH = 12;
+ /**
+ * Do not include the port.
+ */
+ const STRIP_PORT = 32;
+ /**
+ * Do not include the URL path.
+ */
+ const STRIP_PATH = 64;
+ /**
+ * Do not include the URL querystring.
+ */
+ const STRIP_QUERY = 128;
+ /**
+ * Strip the fragment (hash) from the URL.
+ */
+ const STRIP_FRAGMENT = 256;
+ /**
+ * Strip everything except scheme and host information.
+ */
+ const STRIP_ALL = 492;
+ /**
+ * Import initial URL parts from the SAPI environment.
+ */
+ const FROM_ENV = 4096;
+ /**
+ * Whether to sanitize the URL path (consolidate double slashes, directory jumps etc.)
+ */
+ const SANITIZE_PATH = 8192;
+ /**
+ * Parse UTF-8 encoded multibyte sequences.
+ */
+ const PARSE_MBUTF8 = 131072;
+ /**
+ * Parse locale encoded multibyte sequences (on systems with wide character support).
+ */
+ const PARSE_MBLOC = 65536;
+ /**
+ * Parse and convert multibyte hostnames according to IDNA (with IDNA support).
+ */
+ const PARSE_TOIDN = 1048576;
+ /**
+ * Explicitly request IDNA2003 implementation if available (libidn, idnkit or ICU).
+ */
+ const PARSE_TOIDN_2003 = 9437184;
+ /**
+ * Explicitly request IDNA2008 implementation if available (libidn2, idnkit2 or ICU).
+ */
+ const PARSE_TOIDN_2008 = 5242880;
+ /**
+ * Percent encode multibyte sequences in the userinfo, path, query and fragment parts of the URL.
+ */
+ const PARSE_TOPCT = 2097152;
+ /**
+ * Continue parsing when encountering errors.
+ */
+ const IGNORE_ERRORS = 268435456;
+ /**
+ * Suppress errors/exceptions.
+ */
+ const SILENT_ERRORS = 536870912;
+ /**
+ * Standard flags used by default internally for e.g. http\Message::setRequestUrl().
+ * Enables joining path and query, sanitizing path, multibyte/unicode, international domain names and transient percent encoding.
+ */
+ const STDFLAGS = 3350531;
+ /**
+ * The URL's scheme.
+ *
+ * @var string
+ */
+ public $scheme = null;
+ /**
+ * Authenticating user.
+ *
+ * @var string
+ */
+ public $user = null;
+ /**
+ * Authentication password.
+ *
+ * @var string
+ */
+ public $pass = null;
+ /**
+ * Hostname/domain.
+ *
+ * @var string
+ */
+ public $host = null;
+ /**
+ * Port.
+ *
+ * @var string
+ */
+ public $port = null;
+ /**
+ * URL path.
+ *
+ * @var string
+ */
+ public $path = null;
+ /**
+ * URL querystring.
+ *
+ * @var string
+ */
+ public $query = null;
+ /**
+ * URL fragment (hash).
+ *
+ * @var string
+ */
+ public $fragment = null;
+ /**
+ * Create an instance of an http\Url.
+ *
+ * > ***NOTE:***
+ * > Prior to v3.0.0, the default for the $flags parameter was http\Url::FROM_ENV.
+ *
+ * See also http\Env\Url.
+ *
+ * @param mixed $old_url Initial URL parts. Either an array, object, http\Url instance or string to parse.
+ * @param mixed $new_url Overriding URL parts. Either an array, object, http\Url instance or string to parse.
+ * @param int $flags The modus operandi of constructing the url. See http\Url constants.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadUrlException
+ */
+ function __construct($old_url = null, $new_url = null, int $flags = 0) {}
+ /**
+ * String cast handler. Alias of http\Url::toString().
+ *
+ * @return string the URL as string.
+ */
+ function __toString() {}
+ /**
+ * Clone this URL and apply $parts to the cloned URL.
+ *
+ * > ***NOTE:***
+ * > This method returns a clone (copy) of this instance.
+ *
+ * @param mixed $parts New URL parts.
+ * @param int $flags Modus operandi of URL construction. See http\Url constants.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadUrlException
+ * @return \http\Url clone.
+ */
+ function mod($parts, int $flags = \http\Url::JOIN_PATH|\http\Url::JOIN_QUERY|\http\Url::SANITIZE_PATH) {}
+ /**
+ * Retrieve the URL parts as array.
+ *
+ * @return array the URL parts.
+ */
+ function toArray() {}
+ /**
+ * Get the string prepresentation of the URL.
+ *
+ * @return string the URL as string.
+ */
+ function toString() {}
+}
+/**
+ * The http\Client\Curl namespace holds option value constants specific to the curl driver of the http\Client.
+ */
+namespace http\Client\Curl;
+/**
+ * Bitmask of available libcurl features.
+ * See http\Client\Curl\Features namespace.
+ */
+const FEATURES = 4179869;
+/**
+ * List of library versions of or linked into libcurl,
+ * e.g. "libcurl/7.50.0 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.32 nghttp2/1.12.0".
+ * See http\Client\Curl\Versions namespace.
+ */
+const VERSIONS = 'libcurl/7.64.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3';
+/**
+ * Use HTTP/1.0 protocol version.
+ */
+const HTTP_VERSION_1_0 = 1;
+/**
+ * Use HTTP/1.1 protocol version.
+ */
+const HTTP_VERSION_1_1 = 2;
+/**
+ * Attempt to use HTTP/2 protocol version. Available if libcurl is v7.33.0 or more recent and was built with nghttp2 support.
+ */
+const HTTP_VERSION_2_0 = 3;
+/**
+ * Attempt to use version 2 for HTTPS, version 1.1 for HTTP. Available if libcurl is v7.47.0 or more recent and was built with nghttp2 support.
+ */
+const HTTP_VERSION_2TLS = 4;
+/**
+ * Use any HTTP protocol version.
+ */
+const HTTP_VERSION_ANY = 0;
+/**
+ * Use TLS v1.0 encryption.
+ */
+const SSL_VERSION_TLSv1_0 = 4;
+/**
+ * Use TLS v1.1 encryption.
+ */
+const SSL_VERSION_TLSv1_1 = 5;
+/**
+ * Use TLS v1.2 encryption.
+ */
+const SSL_VERSION_TLSv1_2 = 6;
+/**
+ * Use any TLS v1 encryption.
+ */
+const SSL_VERSION_TLSv1 = 1;
+/**
+ * Use SSL v2 encryption.
+ */
+const SSL_VERSION_SSLv2 = 2;
+/**
+ * Use SSL v3 encryption.
+ */
+const SSL_VERSION_SSLv3 = 3;
+/**
+ * Use any encryption.
+ */
+const SSL_VERSION_ANY = 0;
+/**
+ * Use TLS SRP authentication. Available if libcurl is v7.21.4 or more recent and was built with gnutls or openssl with TLS-SRP support.
+ */
+const TLSAUTH_SRP = 1;
+/**
+ * Use IPv4 resolver.
+ */
+const IPRESOLVE_V4 = 1;
+/**
+ * Use IPv6 resolver.
+ */
+const IPRESOLVE_V6 = 2;
+/**
+ * Use any resolver.
+ */
+const IPRESOLVE_ANY = 0;
+/**
+ * Use Basic authentication.
+ */
+const AUTH_BASIC = 1;
+/**
+ * Use Digest authentication.
+ */
+const AUTH_DIGEST = 2;
+/**
+ * Use IE (lower v7) quirks with Digest authentication. Available if libcurl is v7.19.3 or more recent.
+ */
+const AUTH_DIGEST_IE = 16;
+/**
+ * Use NTLM authentication.
+ */
+const AUTH_NTLM = 8;
+/**
+ * Use GSS-Negotiate authentication.
+ */
+const AUTH_GSSNEG = 4;
+/**
+ * Use HTTP Netgotiate authentication (SPNEGO, RFC4559). Available if libcurl is v7.38.0 or more recent.
+ */
+const AUTH_SPNEGO = 4;
+/**
+ * Use any authentication.
+ */
+const AUTH_ANY = -17;
+/**
+ * Use SOCKSv4 proxy protocol.
+ */
+const PROXY_SOCKS4 = 4;
+/**
+ * Use SOCKSv4a proxy protocol.
+ */
+const PROXY_SOCKS4A = 5;
+/**
+ * Use SOCKS5h proxy protocol.
+ */
+const PROXY_SOCKS5_HOSTNAME = 5;
+/**
+ * Use SOCKS5 proxy protoccol.
+ */
+const PROXY_SOCKS5 = 5;
+/**
+ * Use HTTP/1.1 proxy protocol.
+ */
+const PROXY_HTTP = 0;
+/**
+ * Use HTTP/1.0 proxy protocol. Available if libcurl is v7.19.4 or more recent.
+ */
+const PROXY_HTTP_1_0 = 1;
+/**
+ * Keep POSTing on 301 redirects. Available if libcurl is v7.19.1 or more recent.
+ */
+const POSTREDIR_301 = 1;
+/**
+ * Keep POSTing on 302 redirects. Available if libcurl is v7.19.1 or more recent.
+ */
+const POSTREDIR_302 = 2;
+/**
+ * Keep POSTing on 303 redirects. Available if libcurl is v7.19.1 or more recent.
+ */
+const POSTREDIR_303 = 4;
+/**
+ * Keep POSTing on any redirect. Available if libcurl is v7.19.1 or more recent.
+ */
+const POSTREDIR_ALL = 7;
+namespace http\Client;
+/**
+ * The http\Client\Request class provides an HTTP message implementation tailored to represent a request message to be sent by the client.
+ *
+ * See http\Client::enqueue().
+ */
+class Request extends \http\Message {
+ /**
+ * Array of options for this request, which override client options.
+ *
+ * @var array
+ */
+ protected $options = null;
+ /**
+ * Create a new client request message to be enqueued and sent by http\Client.
+ *
+ * @param string $meth The request method.
+ * @param string $url The request URL.
+ * @param array $headers HTTP headers.
+ * @param \http\Message\Body $body Request body.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ */
+ function __construct(string $meth = null, string $url = null, array $headers = null, \http\Message\Body $body = null) {}
+ /**
+ * Add querystring data.
+ * See http\Client\Request::setQuery() and http\Message::setRequestUrl().
+ *
+ * @param mixed $query_data Additional querystring data.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadQueryStringException
+ * @return \http\Client\Request self.
+ */
+ function addQuery($query_data) {}
+ /**
+ * Add specific SSL options.
+ * See http\Client\Request::setSslOptions(), http\Client\Request::setOptions() and http\Client\Curl\$ssl options.
+ *
+ * @param array $ssl_options Add this SSL options.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Client\Request self.
+ */
+ function addSslOptions(array $ssl_options = null) {}
+ /**
+ * Extract the currently set "Content-Type" header.
+ * See http\Client\Request::setContentType().
+ *
+ * @return string|null string the currently set content type.
+ * or NULL if no "Content-Type" header is set.
+ */
+ function getContentType() {}
+ /**
+ * Get priorly set options.
+ * See http\Client\Request::setOptions().
+ *
+ * @return array options.
+ */
+ function getOptions() {}
+ /**
+ * Retrieve the currently set querystring.
+ *
+ * @return string|null string the currently set querystring.
+ * or NULL if no querystring is set.
+ */
+ function getQuery() {}
+ /**
+ * Retrieve priorly set SSL options.
+ * See http\Client\Request::getOptions() and http\Client\Request::setSslOptions().
+ *
+ * @return array SSL options.
+ */
+ function getSslOptions() {}
+ /**
+ * Set the MIME content type of the request message.
+ *
+ * @param string $content_type The MIME type used as "Content-Type".
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Client\Request self.
+ */
+ function setContentType(string $content_type) {}
+ /**
+ * Set client options.
+ * See http\Client::setOptions() and http\Client\Curl.
+ *
+ * Request specific options override general options which were set in the client.
+ *
+ * > ***NOTE:***
+ * > Only options specified prior enqueueing a request are applied to the request.
+ *
+ * @param array $options The options to set.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Client\Request self.
+ */
+ function setOptions(array $options = null) {}
+ /**
+ * (Re)set the querystring.
+ * See http\Client\Request::addQuery() and http\Message::setRequestUrl().
+ *
+ * @param mixed $query_data
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadQueryStringException
+ * @return \http\Client\Request self.
+ */
+ function setQuery($query_data) {}
+ /**
+ * Specifically set SSL options.
+ * See http\Client\Request::setOptions() and http\Client\Curl\$ssl options.
+ *
+ * @param array $ssl_options Set SSL options to this array.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Client\Request self.
+ */
+ function setSslOptions(array $ssl_options = null) {}
+}
+/**
+ * The http\Client\Response class represents an HTTP message the client returns as answer from a server to an http\Client\Request.
+ */
+class Response extends \http\Message {
+ /**
+ * Extract response cookies.
+ * Parses any "Set-Cookie" response headers into an http\Cookie list. See http\Cookie::__construct().
+ *
+ * @param int $flags Cookie parser flags.
+ * @param array $allowed_extras List of keys treated as extras.
+ * @return array list of http\Cookie instances.
+ */
+ function getCookies(int $flags = 0, array $allowed_extras = null) {}
+ /**
+ * Retrieve transfer related information after the request has completed.
+ * See http\Client::getTransferInfo().
+ *
+ * @param string $name A key to retrieve out of the transfer info.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\BadMethodCallException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return object|mixed object stdClass instance with all transfer info if $name was not given.
+ * or mixed the specific transfer info for $name.
+ */
+ function getTransferInfo(string $name = null) {}
+}
+namespace http\Client\Curl;
+/**
+ * Interface to an user event loop implementation for http\Client::configure()'s $use_eventloop option.
+ *
+ * > ***NOTE:***
+ * > This interface was added in v2.6.0, resp. v3.1.0.
+ */
+interface User {
+ /**
+ * No action.
+ */
+ const POLL_NONE = 0;
+ /**
+ * Poll for read readiness.
+ */
+ const POLL_IN = 1;
+ /**
+ * Poll for write readiness.
+ */
+ const POLL_OUT = 2;
+ /**
+ * Poll for read/write readiness.
+ */
+ const POLL_INOUT = 3;
+ /**
+ * Stop polling for activity on this descriptor.
+ */
+ const POLL_REMOVE = 4;
+ /**
+ * Initialize the event loop.
+ *
+ * @param callable $run as function(http\Client $c, resource $s = null, int $action = http\Client\Curl\User::POLL_NONE) : int
+ * Internal callback returning the number of unfinished requests pending.
+ *
+ *
+ * > ***NOTE***:
+ * > The callback should be run when a timeout occurs or a watched socket needs action.
+ */
+ function init(callable $run);
+ /**
+ * Run the loop as long as it does not block.
+ *
+ * > ***NOTE:***
+ * > This method is called by http\Client::once(), so it does not need to have an actual implementation if http\Client::once() is never called.
+ */
+ function once();
+ /**
+ * Run the loop.
+ *
+ * > ***NOTE:***
+ * > This method is called by http\Client::send(), so it does not need to have an actual implementation if http\Client::send() is never called.
+ */
+ function send();
+ /**
+ * Register (or deregister) a socket watcher.
+ *
+ * @param resource $socket The socket descriptor to watch.
+ * @param int $poll http\Client\Curl\User::POLL_* constant.
+ */
+ function socket($socket, int $poll);
+ /**
+ * Register a timeout watcher.
+ *
+ * @param int $timeout_ms Desired maximum timeout in milliseconds.
+ */
+ function timer(int $timeout_ms);
+ /**
+ * Wait/poll/select (block the loop) until events fire.
+ *
+ * > ***NOTE:***
+ * > This method is called by http\Client::wait(), so it does not need to have an actual implementation if http\Client::wait() is never called.
+ *
+ * @param int $timeout_ms Block for at most this milliseconds.
+ */
+ function wait(int $timeout_ms = null);
+}
+/**
+ * CURL feature constants.
+ *
+ * > ***NOTE:***
+ * > These constants have been added in v2.6.0, resp. v3.1.0.
+ */
+namespace http\Client\Curl\Features;
+/**
+ * Whether libcurl supports asynchronous domain name resolution.
+ */
+const ASYNCHDNS = 128;
+/**
+ * Whether libcurl supports the Generic Security Services Application Program Interface. Available if libcurl is v7.38.0 or more recent.
+ */
+const GSSAPI = 131072;
+/**
+ * Whether libcurl supports HTTP Generic Security Services negotiation.
+ */
+const GSSNEGOTIATE = 32;
+/**
+ * Whether libcurl supports the HTTP/2 protocol. Available if libcurl is v7.33.0 or more recent.
+ */
+const HTTP2 = 65536;
+/**
+ * Whether libcurl supports international domain names.
+ */
+const IDN = 1024;
+/**
+ * Whether libcurl supports IPv6.
+ */
+const IPV6 = 1;
+/**
+ * Whether libcurl supports the old Kerberos protocol.
+ */
+const KERBEROS4 = 2;
+/**
+ * Whether libcurl supports the more recent Kerberos v5 protocol. Available if libcurl is v7.40.0 or more recent.
+ */
+const KERBEROS5 = 262144;
+/**
+ * Whether libcurl supports large files.
+ */
+const LARGEFILE = 512;
+/**
+ * Whether libcurl supports gzip/deflate compression.
+ */
+const LIBZ = 8;
+/**
+ * Whether libcurl supports the NT Lan Manager authentication.
+ */
+const NTLM = 16;
+/**
+ * Whether libcurl supports NTLM delegation to a winbind helper. Available if libcurl is v7.22.0 or more recent.
+ */
+const NTLM_WB = 32768;
+/**
+ * Whether libcurl supports the Public Suffix List for cookie host handling. Available if libcurl is v7.47.0 or more recent.
+ */
+const PSL = 1048576;
+/**
+ * Whether libcurl supports the Simple and Protected GSSAPI Negotiation Mechanism.
+ */
+const SPNEGO = 256;
+/**
+ * Whether libcurl supports SSL/TLS protocols.
+ */
+const SSL = 4;
+/**
+ * Whether libcurl supports the Security Support Provider Interface.
+ */
+const SSPI = 2048;
+/**
+ * Whether libcurl supports TLS Secure Remote Password authentication. Available if libcurl is v7.21.4 or more recent.
+ */
+const TLSAUTH_SRP = 16384;
+/**
+ * Whether libcurl supports connections to unix sockets. Available if libcurl is v7.40.0 or more recent.
+ */
+const UNIX_SOCKETS = 524288;
+/**
+ * CURL version constants.
+ *
+ * > ***NOTE:***
+ * > These constants have been added in v2.6.0, resp. v3.1.0.
+ */
+namespace http\Client\Curl\Versions;
+/**
+ * Version string of libcurl, e.g. "7.50.0".
+ */
+const CURL = '7.64.0';
+/**
+ * Version string of the SSL/TLS library, e.g. "OpenSSL/1.0.2h".
+ */
+const SSL = 'OpenSSL/1.1.1b';
+/**
+ * Version string of the zlib compression library, e.g. "1.2.8".
+ */
+const LIBZ = '1.2.11';
+/**
+ * Version string of the c-ares library, e.g. "1.11.0".
+ */
+const ARES = null;
+/**
+ * Version string of the IDN library, e.g. "1.32".
+ */
+const IDN = null;
+namespace http\Encoding;
+/**
+ * Base class for encoding stream implementations.
+ */
+abstract class Stream {
+ /**
+ * Do no intermittent flushes.
+ */
+ const FLUSH_NONE = 0;
+ /**
+ * Flush at appropriate transfer points.
+ */
+ const FLUSH_SYNC = 1048576;
+ /**
+ * Flush at each IO operation.
+ */
+ const FLUSH_FULL = 2097152;
+ /**
+ * Base constructor for encoding stream implementations.
+ *
+ * @param int $flags See http\Encoding\Stream and implementation specific constants.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ */
+ function __construct(int $flags = 0) {}
+ /**
+ * Check whether the encoding stream is already done.
+ *
+ * @return bool whether the encoding stream is completed.
+ */
+ function done() {}
+ /**
+ * Finish and reset the encoding stream.
+ * Returns any pending data.
+ *
+ * @return string any pending data.
+ */
+ function finish() {}
+ /**
+ * Flush the encoding stream.
+ * Returns any pending data.
+ *
+ * @return string any pending data.
+ */
+ function flush() {}
+ /**
+ * Update the encoding stream with more input.
+ *
+ * @param string $data The data to pass through the stream.
+ * @return string processed data.
+ */
+ function update(string $data) {}
+}
+namespace http\Encoding\Stream;
+/**
+ * A [brotli](https://brotli.org) decoding stream.
+ *
+ * > ***NOTE:***
+ * > This class has been added in v3.2.0.
+ */
+class Debrotli extends \http\Encoding\Stream {
+ /**
+ * Decode brotli encoded data.
+ *
+ * @param string $data The data to uncompress.
+ * @return string the uncompressed data.
+ */
+ function decode(string $data) {}
+}
+/**
+ * A stream decoding data encoded with chunked transfer encoding.
+ */
+class Dechunk extends \http\Encoding\Stream {
+ /**
+ * Decode chunked encoded data.
+ *
+ * @param string $data The data to decode.
+ * @param int &$decoded_len Out parameter with the length of $data that's been decoded.
+ * Should be ```strlen($data)``` if not truncated.
+ * @return string|string|string|false string the decoded data.
+ * or string the unencoded data.
+ * or string the truncated decoded data.
+ * or false if $data cannot be decoded.
+ */
+ function decode(string $data, int &$decoded_len = 0) {}
+}
+/**
+ * A deflate stream supporting deflate, zlib and gzip encodings.
+ */
+class Deflate extends \http\Encoding\Stream {
+ /**
+ * Gzip encoding. RFC1952
+ */
+ const TYPE_GZIP = 16;
+ /**
+ * Zlib encoding. RFC1950
+ */
+ const TYPE_ZLIB = 0;
+ /**
+ * Deflate encoding. RFC1951
+ */
+ const TYPE_RAW = 32;
+ /**
+ * Default compression level.
+ */
+ const LEVEL_DEF = 0;
+ /**
+ * Least compression level.
+ */
+ const LEVEL_MIN = 1;
+ /**
+ * Greatest compression level.
+ */
+ const LEVEL_MAX = 9;
+ /**
+ * Default compression strategy.
+ */
+ const STRATEGY_DEF = 0;
+ /**
+ * Filtered compression strategy.
+ */
+ const STRATEGY_FILT = 256;
+ /**
+ * Huffman strategy only.
+ */
+ const STRATEGY_HUFF = 512;
+ /**
+ * Run-length encoding strategy.
+ */
+ const STRATEGY_RLE = 768;
+ /**
+ * Encoding with fixed Huffman codes only.
+ *
+ * > **A note on the compression strategy:**
+ * >
+ * > The strategy parameter is used to tune the compression algorithm.
+ * >
+ * > Use the value DEFAULT_STRATEGY for normal data, FILTERED for data produced by a filter (or predictor), HUFFMAN_ONLY to force Huffman encoding only (no string match), or RLE to limit match distances to one (run-length encoding).
+ * >
+ * > Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of FILTERED is to force more Huffman coding and less string matching; it is somewhat intermediate between DEFAULT_STRATEGY and HUFFMAN_ONLY.
+ * >
+ * > RLE is designed to be almost as fast as HUFFMAN_ONLY, but give better compression for PNG image data.
+ * >
+ * > FIXED prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications.
+ * >
+ * > The strategy parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately.
+ * >
+ * >_Source: [zlib Manual](http://www.zlib.net/manual.html)_
+ */
+ const STRATEGY_FIXED = 1024;
+ /**
+ * Encode data with deflate/zlib/gzip encoding.
+ *
+ * @param string $data The data to compress.
+ * @param int $flags Any compression tuning flags. See http\Encoding\Stream\Deflate and http\Encoding\Stream constants.
+ * @return string the compressed data.
+ */
+ function encode(string $data, int $flags = 0) {}
+}
+/**
+ * A [brotli](https://brotli.org) encoding stream.
+ *
+ * > ***NOTE:***
+ * > This class has been added in v3.2.0.
+ */
+class Enbrotli extends \http\Encoding\Stream {
+ /**
+ * Default compression level.
+ */
+ const LEVEL_DEF = null;
+ /**
+ * Least compression level.
+ */
+ const LEVEL_MIN = null;
+ /**
+ * Greatest compression level.
+ */
+ const LEVEL_MAX = null;
+ /**
+ * Default window bits.
+ */
+ const WBITS_DEF = null;
+ /**
+ * Minimum window bits.
+ */
+ const WBITS_MIN = null;
+ /**
+ * Maximum window bits.
+ */
+ const WBITS_MAX = null;
+ /**
+ * Default compression mode.
+ */
+ const MODE_GENERIC = null;
+ /**
+ * Compression mode for UTF-8 formatted text.
+ */
+ const MODE_TEXT = null;
+ /**
+ * Compression mode used in WOFF 2.0.
+ */
+ const MODE_FONT = null;
+ /**
+ * Encode data with brotli encoding.
+ *
+ * @param string $data The data to compress.
+ * @param int $flags Any compression tuning flags. See http\Encoding\Stream\Enbrotli and http\Encoding\Stream constants.
+ * @return string the compressed data.
+ */
+ function encode(string $data, int $flags = 0) {}
+}
+/**
+ * A inflate stream supporting deflate, zlib and gzip encodings.
+ */
+class Inflate extends \http\Encoding\Stream {
+ /**
+ * Decode deflate/zlib/gzip encoded data.
+ *
+ * @param string $data The data to uncompress.
+ * @return string the uncompressed data.
+ */
+ function decode(string $data) {}
+}
+namespace http\Env;
+/**
+ * The http\Env\Request class' instances represent the server's current HTTP request.
+ *
+ * See http\Message for inherited members.
+ */
+class Request extends \http\Message {
+ /**
+ * The request's query parameters. ($_GET)
+ *
+ * @var \http\QueryString
+ */
+ protected $query = null;
+ /**
+ * The request's form parameters. ($_POST)
+ *
+ * @var \http\QueryString
+ */
+ protected $form = null;
+ /**
+ * The request's form uploads. ($_FILES)
+ *
+ * @var array
+ */
+ protected $files = null;
+ /**
+ * The request's cookies. ($_COOKIE)
+ *
+ * @var array
+ */
+ protected $cookie = null;
+ /**
+ * Create an instance of the server's current HTTP request.
+ *
+ * Upon construction, the http\Env\Request acquires http\QueryString instances of query parameters ($\_GET) and form parameters ($\_POST).
+ *
+ * It also compiles an array of uploaded files ($\_FILES) more comprehensive than the original $\_FILES array, see http\Env\Request::getFiles() for that matter.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ */
+ function __construct() {}
+ /**
+ * Retrieve an URL query value ($_GET).
+ *
+ * See http\QueryString::get() and http\QueryString::TYPE_* constants.
+ *
+ * @param string $name The key to retrieve the value for.
+ * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants.
+ * @param mixed $defval The default value to return if the key $name does not exist.
+ * @param bool $delete Whether to delete the entry from the querystring after retrieval.
+ * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments.
+ * or string the whole querystring if $name is of zero length.
+ * or mixed $defval if the key $name does not exist.
+ * or mixed the querystring value cast to $type if $type was specified and the key $name exists.
+ * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING.
+ */
+ function getCookie(string $name = null, $type = null, $defval = null, bool $delete = false) {}
+ /**
+ * Retrieve the uploaded files list ($_FILES).
+ *
+ * @return array the consolidated upload files array.
+ */
+ function getFiles() {}
+ /**
+ * Retrieve a form value ($_POST).
+ *
+ * See http\QueryString::get() and http\QueryString::TYPE_* constants.
+ *
+ * @param string $name The key to retrieve the value for.
+ * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants.
+ * @param mixed $defval The default value to return if the key $name does not exist.
+ * @param bool $delete Whether to delete the entry from the querystring after retrieval.
+ * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments.
+ * or string the whole querystring if $name is of zero length.
+ * or mixed $defval if the key $name does not exist.
+ * or mixed the querystring value cast to $type if $type was specified and the key $name exists.
+ * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING.
+ */
+ function getForm(string $name = null, $type = null, $defval = null, bool $delete = false) {}
+ /**
+ * Retrieve an URL query value ($_GET).
+ *
+ * See http\QueryString::get() and http\QueryString::TYPE_* constants.
+ *
+ * @param string $name The key to retrieve the value for.
+ * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants.
+ * @param mixed $defval The default value to return if the key $name does not exist.
+ * @param bool $delete Whether to delete the entry from the querystring after retrieval.
+ * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments.
+ * or string the whole querystring if $name is of zero length.
+ * or mixed $defval if the key $name does not exist.
+ * or mixed the querystring value cast to $type if $type was specified and the key $name exists.
+ * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING.
+ */
+ function getQuery(string $name = null, $type = null, $defval = null, bool $delete = false) {}
+}
+/**
+ * The http\Env\Response class' instances represent the server's current HTTP response.
+ *
+ * See http\Message for inherited members.
+ */
+class Response extends \http\Message {
+ /**
+ * Do not use content encoding.
+ */
+ const CONTENT_ENCODING_NONE = 0;
+ /**
+ * Support "Accept-Encoding" requests with gzip and deflate encoding.
+ */
+ const CONTENT_ENCODING_GZIP = 1;
+ /**
+ * No caching info available.
+ */
+ const CACHE_NO = 0;
+ /**
+ * The cache was hit.
+ */
+ const CACHE_HIT = 1;
+ /**
+ * The cache was missed.
+ */
+ const CACHE_MISS = 2;
+ /**
+ * A request instance which overrides the environments default request.
+ *
+ * @var \http\Env\Request
+ */
+ protected $request = null;
+ /**
+ * The response's MIME content type.
+ *
+ * @var string
+ */
+ protected $contentType = null;
+ /**
+ * The response's MIME content disposition.
+ *
+ * @var string
+ */
+ protected $contentDisposition = null;
+ /**
+ * See http\Env\Response::CONTENT_ENCODING_* constants.
+ *
+ * @var int
+ */
+ protected $contentEncoding = null;
+ /**
+ * How the client should treat this response in regards to caching.
+ *
+ * @var string
+ */
+ protected $cacheControl = null;
+ /**
+ * A custom ETag.
+ *
+ * @var string
+ */
+ protected $etag = null;
+ /**
+ * A "Last-Modified" time stamp.
+ *
+ * @var int
+ */
+ protected $lastModified = null;
+ /**
+ * Any throttling delay.
+ *
+ * @var int
+ */
+ protected $throttleDelay = null;
+ /**
+ * The chunk to send every $throttleDelay seconds.
+ *
+ * @var int
+ */
+ protected $throttleChunk = null;
+ /**
+ * The response's cookies.
+ *
+ * @var array
+ */
+ protected $cookies = null;
+ /**
+ * Create a new env response message instance.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ */
+ function __construct() {}
+ /**
+ * Output buffer handler.
+ * Appends output data to the body.
+ *
+ * @param string $data The data output.
+ * @param int $ob_flags Output buffering flags passed from the output buffering control layer.
+ * @return bool success.
+ */
+ function __invoke(string $data, int $ob_flags = 0) {}
+ /**
+ * Manually test the header $header_name of the environment's request for a cache hit.
+ * http\Env\Response::send() checks that itself, though.
+ *
+ * @param string $header_name The request header to test.
+ * @return int a http\Env\Response::CACHE_* constant.
+ */
+ function isCachedByEtag(string $header_name = "If-None-Match") {}
+ /**
+ * Manually test the header $header_name of the environment's request for a cache hit.
+ * http\Env\Response::send() checks that itself, though.
+ *
+ * @param string $header_name The request header to test.
+ * @return int a http\Env\Response::CACHE_* constant.
+ */
+ function isCachedByLastModified(string $header_name = "If-Modified-Since") {}
+ /**
+ * Send the response through the SAPI or $stream.
+ * Flushes all output buffers.
+ *
+ * @param resource $stream A writable stream to send the response through.
+ * @return bool success.
+ */
+ function send($stream = null) {}
+ /**
+ * Make suggestions to the client how it should cache the response.
+ *
+ * @param string $cache_control (A) "Cache-Control" header value(s).
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Env\Response self.
+ */
+ function setCacheControl(string $cache_control) {}
+ /**
+ * Set the response's content disposition parameters.
+ *
+ * @param array $disposition_params MIME content disposition as http\Params array.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Env\Response self.
+ */
+ function setContentDisposition(array $disposition_params) {}
+ /**
+ * Enable support for "Accept-Encoding" requests with deflate or gzip.
+ * The response will be compressed if the client indicates support and wishes that.
+ *
+ * @param int $content_encoding See http\Env\Response::CONTENT_ENCODING_* constants.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Env\Response self.
+ */
+ function setContentEncoding(int $content_encoding) {}
+ /**
+ * Set the MIME content type of the response.
+ *
+ * @param string $content_type The response's content type.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Env\Response self.
+ */
+ function setContentType(string $content_type) {}
+ /**
+ * Add cookies to the response to send.
+ *
+ * @param mixed $cookie The cookie to send.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return \http\Env\Response self.
+ */
+ function setCookie($cookie) {}
+ /**
+ * Override the environment's request.
+ *
+ * @param \http\Message $env_request The overriding request message.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Env\Response self.
+ */
+ function setEnvRequest(\http\Message $env_request) {}
+ /**
+ * Set a custom ETag.
+ *
+ * > ***NOTE:***
+ * > This will be used for caching and pre-condition checks.
+ *
+ * @param string $etag A ETag.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Env\Response self.
+ */
+ function setEtag(string $etag) {}
+ /**
+ * Set a custom last modified time stamp.
+ *
+ * > ***NOTE:***
+ * > This will be used for caching and pre-condition checks.
+ *
+ * @param int $last_modified A unix timestamp.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return \http\Env\Response self.
+ */
+ function setLastModified(int $last_modified) {}
+ /**
+ * Enable throttling.
+ * Send $chunk_size bytes every $delay seconds.
+ *
+ * > ***NOTE:***
+ * > If you need throttling by regular means, check for other options in your stack, because this method blocks the executing process/thread until the response has completely been sent.
+ *
+ * @param int $chunk_size Bytes to send.
+ * @param float $delay Seconds to sleep.
+ * @return \http\Env\Response self.
+ */
+ function setThrottleRate(int $chunk_size, float $delay = 1) {}
+}
+/**
+ * URL class using the HTTP environment by default.
+ *
+ * > ***NOTE:***
+ * > This class has been added in v3.0.0.
+ *
+ * Always adds http\Url::FROM_ENV to the $flags constructor argument. See also http\Url.
+ */
+class Url extends \http\Url {
+}
+namespace http\Exception;
+/**
+ * A bad conversion (e.g. character conversion) was encountered.
+ */
+class BadConversionException extends \DomainException implements \http\Exception {
+}
+/**
+ * A bad HTTP header was encountered.
+ */
+class BadHeaderException extends \DomainException implements \http\Exception {
+}
+/**
+ * A bad HTTP message was encountered.
+ */
+class BadMessageException extends \DomainException implements \http\Exception {
+}
+/**
+ * A method was called on an object, which was in an invalid or unexpected state.
+ */
+class BadMethodCallException extends \BadMethodCallException implements \http\Exception {
+}
+/**
+ * A bad querystring was encountered.
+ */
+class BadQueryStringException extends \DomainException implements \http\Exception {
+}
+/**
+ * A bad HTTP URL was encountered.
+ */
+class BadUrlException extends \DomainException implements \http\Exception {
+}
+/**
+ * One or more invalid arguments were passed to a method.
+ */
+class InvalidArgumentException extends \InvalidArgumentException implements \http\Exception {
+}
+/**
+ * A generic runtime exception.
+ */
+class RuntimeException extends \RuntimeException implements \http\Exception {
+}
+/**
+ * An unexpected value was encountered.
+ */
+class UnexpectedValueException extends \UnexpectedValueException implements \http\Exception {
+}
+namespace http\Header;
+/**
+ * The parser which is underlying http\Header and http\Message.
+ *
+ * > ***NOTE:***
+ * > This class has been added in v2.3.0.
+ */
+class Parser {
+ /**
+ * Finish up parser at end of (incomplete) input.
+ */
+ const CLEANUP = 1;
+ /**
+ * Parse failure.
+ */
+ const STATE_FAILURE = -1;
+ /**
+ * Expecting HTTP info (request/response line) or headers.
+ */
+ const STATE_START = 0;
+ /**
+ * Expecting a key or already parsing a key.
+ */
+ const STATE_KEY = 1;
+ /**
+ * Expecting a value or already parsing the value.
+ */
+ const STATE_VALUE = 2;
+ /**
+ * At EOL of an header, checking whether a folded header line follows.
+ */
+ const STATE_VALUE_EX = 3;
+ /**
+ * A header was completed.
+ */
+ const STATE_HEADER_DONE = 4;
+ /**
+ * Finished parsing the headers.
+ *
+ * > ***NOTE:***
+ * > Most of this states won't be returned to the user, because the parser immediately jumps to the next expected state.
+ */
+ const STATE_DONE = 5;
+ /**
+ * Retrieve the current state of the parser.
+ * See http\Header\Parser::STATE_* constants.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @return int http\Header\Parser::STATE_* constant.
+ */
+ function getState() {}
+ /**
+ * Parse a string.
+ *
+ * @param string $data The (part of the) header to parse.
+ * @param int $flags Any combination of [parser flags](http/Header/Parser#Parser.flags:).
+ * @param array &$header Successfully parsed headers.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return int http\Header\Parser::STATE_* constant.
+ */
+ function parse(string $data, int $flags, array &$header = null) {}
+ /**
+ * Parse a stream.
+ *
+ * @param resource $stream The header stream to parse from.
+ * @param int $flags Any combination of [parser flags](http/Header/Parser#Parser.flags:).
+ * @param array &$headers The headers parsed.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return int http\Header\Parser::STATE_* constant.
+ */
+ function stream($stream, int $flags, array &$headers) {}
+}
+namespace http\Message;
+/**
+ * The message body, represented as a PHP (temporary) stream.
+ *
+ * > ***NOTE:***
+ * > Currently, http\Message\Body::addForm() creates multipart/form-data bodies.
+ */
+class Body implements \Serializable {
+ /**
+ * Create a new message body, optionally referencing $stream.
+ *
+ * @param resource $stream A stream to be used as message body.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ */
+ function __construct($stream = null) {}
+ /**
+ * String cast handler.
+ *
+ * @return string the message body.
+ */
+ function __toString() {}
+ /**
+ * Add form fields and files to the message body.
+ *
+ * > ***NOTE:***
+ * > Currently, http\Message\Body::addForm() creates "multipart/form-data" bodies.
+ *
+ * @param array $fields List of form fields to add.
+ * @param array $files List of form files to add.
+ *
+ * $fields must look like:
+ *
+ * [
+ * "field_name" => "value",
+ * "multi_field" => [
+ * "value1",
+ * "value2"
+ * ]
+ * ]
+ *
+ * $files must look like:
+ *
+ * [
+ * [
+ * "name" => "field_name",
+ * "type" => "content/type",
+ * "file" => "/path/to/file.ext"
+ * ], [
+ * "name" => "field_name2",
+ * "type" => "text/plain",
+ * "file" => "file.ext",
+ * "data" => "string"
+ * ], [
+ * "name" => "field_name3",
+ * "type" => "image/jpeg",
+ * "file" => "file.ext",
+ * "data" => fopen("/home/mike/Pictures/mike.jpg","r")
+ * ]
+ *
+ * As you can see, a file structure must contain a "file" entry, which holds a file path, and an optional "data" entry, which may either contain a resource to read from or the actual data as string.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ * @return \http\Message\Body self.
+ */
+ function addForm(array $fields = null, array $files = null) {}
+ /**
+ * Add a part to a multipart body.
+ *
+ * @param \http\Message $part The message part.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ * @return \http\Message\Body self.
+ */
+ function addPart(\http\Message $part) {}
+ /**
+ * Append plain bytes to the message body.
+ *
+ * @param string $data The data to append to the body.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\RuntimeException
+ * @return \http\Message\Body self.
+ */
+ function append(string $data) {}
+ /**
+ * Retrieve the ETag of the body.
+ *
+ * @return string|string|false string an Apache style ETag of inode, mtime and size in hex concatenated by hyphens if the message body stream is stat-able.
+ * or string a content hash (which algorithm is determined by INI http.etag.mode) if the stream is not stat-able.
+ * or false if http.etag.mode is not a known hash algorithm.
+ */
+ function etag() {}
+ /**
+ * Retrieve any boundary of the message body.
+ * See http\Message::splitMultipartBody().
+ *
+ * @return string|null string the message body boundary.
+ * or NULL if this message body has no boundary.
+ */
+ function getBoundary() {}
+ /**
+ * Retrieve the underlying stream resource.
+ *
+ * @return resource the underlying stream.
+ */
+ function getResource() {}
+ /**
+ * Implements Serializable.
+ * Alias of http\Message\Body::__toString().
+ *
+ * @return string serialized message body.
+ */
+ function serialize() {}
+ /**
+ * Stat size, atime, mtime and/or ctime.
+ *
+ * @param string $field A single stat field to retrieve.
+ * @return int|object int the requested stat field.
+ * or object stdClass instance holding all four stat fields.
+ */
+ function stat(string $field = null) {}
+ /**
+ * Stream the message body through a callback.
+ *
+ * @param callable $callback The callback of the form function(http\Message\Body $from, string $data).
+ * @param int $offset Start to stream from this offset.
+ * @param int $maxlen Stream at most $maxlen bytes, or all if $maxlen is less than 1.
+ * @return \http\Message\Body self.
+ */
+ function toCallback(callable $callback, int $offset = 0, int $maxlen = 0) {}
+ /**
+ * Stream the message body into another stream $stream, starting from $offset, streaming $maxlen at most.
+ *
+ * @param resource $stream The resource to write to.
+ * @param int $offset The starting offset.
+ * @param int $maxlen The maximum amount of data to stream. All content if less than 1.
+ * @return \http\Message\Body self.
+ */
+ function toStream($stream, int $offset = 0, int $maxlen = 0) {}
+ /**
+ * Retrieve the message body serialized to a string.
+ * Alias of http\Message\Body::__toString().
+ *
+ * @return string message body.
+ */
+ function toString() {}
+ /**
+ * Implements Serializable.
+ *
+ * @param string $serialized The serialized message body.
+ */
+ function unserialize($serialized) {}
+}
+/**
+ * The parser which is underlying http\Message.
+ *
+ * > ***NOTE:***
+ * > This class was added in v2.2.0.
+ */
+class Parser {
+ /**
+ * Finish up parser at end of (incomplete) input.
+ */
+ const CLEANUP = 1;
+ /**
+ * Soak up the rest of input if no entity length is deducible.
+ */
+ const DUMB_BODIES = 2;
+ /**
+ * Redirect messages do not contain any body despite of indication of such.
+ */
+ const EMPTY_REDIRECTS = 4;
+ /**
+ * Continue parsing while input is available.
+ */
+ const GREEDY = 8;
+ /**
+ * Parse failure.
+ */
+ const STATE_FAILURE = -1;
+ /**
+ * Expecting HTTP info (request/response line) or headers.
+ */
+ const STATE_START = 0;
+ /**
+ * Parsing headers.
+ */
+ const STATE_HEADER = 1;
+ /**
+ * Completed parsing headers.
+ */
+ const STATE_HEADER_DONE = 2;
+ /**
+ * Parsing the body.
+ */
+ const STATE_BODY = 3;
+ /**
+ * Soaking up all input as body.
+ */
+ const STATE_BODY_DUMB = 4;
+ /**
+ * Reading body as indicated by `Content-Length` or `Content-Range`.
+ */
+ const STATE_BODY_LENGTH = 5;
+ /**
+ * Parsing `chunked` encoded body.
+ */
+ const STATE_BODY_CHUNKED = 6;
+ /**
+ * Finished parsing the body.
+ */
+ const STATE_BODY_DONE = 7;
+ /**
+ * Updating Content-Length based on body size.
+ */
+ const STATE_UPDATE_CL = 8;
+ /**
+ * Finished parsing the message.
+ *
+ * > ***NOTE:***
+ * > Most of this states won't be returned to the user, because the parser immediately jumps to the next expected state.
+ */
+ const STATE_DONE = 9;
+ /**
+ * Retrieve the current state of the parser.
+ * See http\Message\Parser::STATE_* constants.
+ *
+ * @throws \http\Exception\InvalidArgumentException
+ * @return int http\Message\Parser::STATE_* constant.
+ */
+ function getState() {}
+ /**
+ * Parse a string.
+ *
+ * @param string $data The (part of the) message to parse.
+ * @param int $flags Any combination of [parser flags](http/Message/Parser#Parser.flags:).
+ * @param \http\Message $message The current state of the message parsed.
+ * @throws \http\Exception\InvalidArgumentException
+ * @return int http\Message\Parser::STATE_* constant.
+ */
+ function parse(string $data, int $flags, \http\Message $message) {}
+ /**
+ * Parse a stream.
+ *
+ * @param resource $stream The message stream to parse from.
+ * @param int $flags Any combination of [parser flags](http/Message/Parser#Parser.flags:).
+ * @param \http\Message $message The current state of the message parsed.
+ * @throws \http\Exception\InvalidArgumentException
+ * @throws \http\Exception\UnexpectedValueException
+ * @return int http\Message\Parser::STATE_* constant.
+ */
+ function stream($stream, int $flags, \http\Message $message) {}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/ibm_db2/ibm_db2.php b/vendor/jetbrains/phpstorm-stubs/ibm_db2/ibm_db2.php
new file mode 100644
index 0000000000..3913b8a23d
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/ibm_db2/ibm_db2.php
@@ -0,0 +1,1860 @@
+
+ * For a cataloged connection to a database, database
+ * represents the database alias in the DB2 client catalog.
+ *
+ *
+ * For an uncataloged connection to a database,
+ * database represents a complete connection
+ * string in the following format:
+ * DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;
+ * where the parameters represent the following values:
+ * database
+ *
+ * The name of the database.
+ *
+ * @param string $username
+ * The username with which you are connecting to the database.
+ *
+ *
+ * For uncataloged connections, you must pass a null value or empty
+ * string.
+ *
+ * @param string $password
+ * The password with which you are connecting to the database.
+ *
+ *
+ * For uncataloged connections, you must pass a null value or empty
+ * string.
+ *
+ * @param array $options
+ * An associative array of connection options that affect the behavior
+ * of the connection, where valid array keys include:
+ * autocommit
+ *
+ * Passing the DB2_AUTOCOMMIT_ON value turns
+ * autocommit on for this connection handle.
+ *
+ *
+ * Passing the DB2_AUTOCOMMIT_OFF value turns
+ * autocommit off for this connection handle.
+ *
+ * @return resource|false A connection handle resource if the connection attempt is
+ * successful. If the connection attempt fails, db2_connect
+ * returns false.
+ */
+function db2_connect ($database, $username, $password, array $options = null) {}
+
+/**
+ * Commits a transaction
+ * @link https://php.net/manual/en/function.db2-commit.php
+ * @param resource $connection
+ * A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ *
+ * @return bool true on success or false on failure.
+ */
+function db2_commit ($connection) {}
+
+/**
+ * Returns a persistent connection to a database
+ * @link https://php.net/manual/en/function.db2-pconnect.php
+ * @param string $database
+ * The database alias in the DB2 client catalog.
+ *
+ * @param string $username
+ * The username with which you are connecting to the database.
+ *
+ * @param string $password
+ * The password with which you are connecting to the database.
+ *
+ * @param array $options
+ * An associative array of connection options that affect the behavior
+ * of the connection, where valid array keys include:
+ * autocommit
+ *
+ * Passing the DB2_AUTOCOMMIT_ON value turns
+ * autocommit on for this connection handle.
+ *
+ *
+ * Passing the DB2_AUTOCOMMIT_OFF value turns
+ * autocommit off for this connection handle.
+ *
+ * @return resource|false A connection handle resource if the connection attempt is
+ * successful. db2_pconnect tries to reuse an existing
+ * connection resource that exactly matches the
+ * database, username, and
+ * password parameters. If the connection attempt fails,
+ * db2_pconnect returns false.
+ */
+function db2_pconnect ($database, $username, $password, array $options = null) {}
+
+/**
+ * Returns or sets the AUTOCOMMIT state for a database connection
+ * @link https://php.net/manual/en/function.db2-autocommit.php
+ * @param resource $connection
+ * A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ *
+ * @param bool $value
+ * One of the following constants:
+ * DB2_AUTOCOMMIT_OFF
+ *
+ * Turns AUTOCOMMIT off.
+ *
+ * DB2_AUTOCOMMIT_ON
+ *
+ * Turns AUTOCOMMIT on.
+ *
+ * @return mixed When db2_autocommit receives only the
+ * connection parameter, it returns the current state
+ * of AUTOCOMMIT for the requested connection as an integer value. A value of
+ * 0 indicates that AUTOCOMMIT is off, while a value of 1 indicates that
+ * AUTOCOMMIT is on.
+ *
+ *
+ * When db2_autocommit receives both the
+ * connection parameter and
+ * autocommit parameter, it attempts to set the
+ * AUTOCOMMIT state of the requested connection to the corresponding state.
+ * true on success or false on failure.
+ */
+function db2_autocommit ($connection, $value = null) {}
+
+/**
+ * Binds a PHP variable to an SQL statement parameter
+ * @link https://php.net/manual/en/function.db2-bind-param.php
+ * @param resource $stmt
+ * A prepared statement returned from db2_prepare.
+ *
+ * @param int $parameter_number
+ * @param string $variable_name
+ * @param int $parameter_type
+ * @param int $data_type
+ * @param int $precision
+ * Specifies the precision with which the variable should be bound to the
+ * database. This parameter can also be used for retrieving XML output values
+ * from stored procedures. A non-negative value specifies the maximum size of
+ * the XML data that will be retrieved from the database. If this parameter
+ * is not used, a default of 1MB will be assumed for retrieving the XML
+ * output value from the stored procedure.
+ *
+ * @param int $scale
+ * Specifies the scale with which the variable should be bound to the
+ * database.
+ *
+ * Specifies an active DB2 client connection.
+ *
+ * @return bool true on success or false on failure.
+ */
+function db2_close ($connection) {}
+
+/**
+ * Returns a result set listing the columns and associated privileges for a table
+ * @link https://php.net/manual/en/function.db2-column-privileges.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the tables. To match all schemas, pass null
+ * or an empty string.
+ *
+ * @param string $table_name
+ * @param string $column_name
+ * @return resource|false a statement resource with a result set containing rows describing
+ * the column privileges for columns matching the specified parameters. The
+ * rows are composed of the following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
TABLE_CAT
+ *
Name of the catalog. The value is NULL if this table does not
+ * have catalogs.
+ *
+ *
+ *
TABLE_SCHEM
+ *
Name of the schema.
+ *
+ *
+ *
TABLE_NAME
+ *
Name of the table or view.
+ *
+ *
+ *
COLUMN_NAME
+ *
Name of the column.
+ *
+ *
+ *
GRANTOR
+ *
Authorization ID of the user who granted the privilege.
+ *
+ *
+ *
GRANTEE
+ *
Authorization ID of the user to whom the privilege was
+ * granted.
+ *
+ *
+ *
PRIVILEGE
+ *
The privilege for the column.
+ *
+ *
+ *
IS_GRANTABLE
+ *
Whether the GRANTEE is permitted to grant this privilege to
+ * other users.
+ *
+ */
+function db2_column_privileges ($connection, $qualifier = null, $schema = null, $table_name = null, $column_name = null) {}
+
+function db2_columnprivileges () {}
+
+/**
+ * Returns a result set listing the columns and associated metadata for a table
+ * @link https://php.net/manual/en/function.db2-columns.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the tables. To match all schemas, pass
+ * '%'.
+ *
+ * @param string $table_name
+ * @param string $column_name
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the columns matching the specified parameters. The rows are composed of
+ * the following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
TABLE_CAT
+ *
Name of the catalog. The value is NULL if this table does not
+ * have catalogs.
+ *
+ *
+ *
TABLE_SCHEM
+ *
Name of the schema.
+ *
+ *
+ *
TABLE_NAME
+ *
Name of the table or view.
+ *
+ *
+ *
COLUMN_NAME
+ *
Name of the column.
+ *
+ *
+ *
DATA_TYPE
+ *
The SQL data type for the column represented as an integer value.
+ *
+ *
+ *
TYPE_NAME
+ *
A string representing the data type for the column.
+ *
+ *
+ *
COLUMN_SIZE
+ *
An integer value representing the size of the column.
+ *
+ *
+ *
BUFFER_LENGTH
+ *
+ * Maximum number of bytes necessary to store data from this column.
+ *
+ *
+ *
+ *
DECIMAL_DIGITS
+ *
+ * The scale of the column, or null where scale is not applicable.
+ *
+ *
+ *
+ *
NUM_PREC_RADIX
+ *
+ * An integer value of either 10 (representing
+ * an exact numeric data type), 2 (representing an
+ * approximate numeric data type), or null (representing a data type for
+ * which radix is not applicable).
+ *
+ *
+ *
+ *
NULLABLE
+ *
An integer value representing whether the column is nullable or
+ * not.
+ *
+ *
+ *
REMARKS
+ *
Description of the column.
+ *
+ *
+ *
COLUMN_DEF
+ *
Default value for the column.
+ *
+ *
+ *
SQL_DATA_TYPE
+ *
An integer value representing the size of the column.
+ *
+ *
+ *
SQL_DATETIME_SUB
+ *
+ * Returns an integer value representing a datetime subtype code,
+ * or null for SQL data types to which this does not apply.
+ *
+ *
+ *
+ *
CHAR_OCTET_LENGTH
+ *
+ * Maximum length in octets for a character data type column, which
+ * matches COLUMN_SIZE for single-byte character set data, or null for
+ * non-character data types.
+ *
+ *
+ *
+ *
ORDINAL_POSITION
+ *
The 1-indexed position of the column in the table.
+ *
+ *
+ *
IS_NULLABLE
+ *
+ * A string value where 'YES' means that the column is nullable and
+ * 'NO' means that the column is not nullable.
+ *
+ *
+ */
+function db2_columns ($connection, $qualifier = null, $schema = null, $table_name = null, $column_name = null) {}
+
+/**
+ * Returns a result set listing the foreign keys for a table
+ * @link https://php.net/manual/en/function.db2-foreign-keys.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the tables. If schema
+ * is null, db2_foreign_keys matches the schema for
+ * the current connection.
+ *
+ * @param string $table_name
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the foreign keys for the specified table. The result set is composed of the
+ * following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
PKTABLE_CAT
+ *
+ * Name of the catalog for the table containing the primary key. The
+ * value is NULL if this table does not have catalogs.
+ *
+ *
+ *
+ *
PKTABLE_SCHEM
+ *
+ * Name of the schema for the table containing the primary key.
+ *
+ *
+ *
+ *
PKTABLE_NAME
+ *
Name of the table containing the primary key.
+ *
+ *
+ *
PKCOLUMN_NAME
+ *
Name of the column containing the primary key.
+ *
+ *
+ *
FKTABLE_CAT
+ *
+ * Name of the catalog for the table containing the foreign key. The
+ * value is NULL if this table does not have catalogs.
+ *
+ *
+ *
+ *
FKTABLE_SCHEM
+ *
+ * Name of the schema for the table containing the foreign key.
+ *
+ *
+ *
+ *
FKTABLE_NAME
+ *
Name of the table containing the foreign key.
+ *
+ *
+ *
FKCOLUMN_NAME
+ *
Name of the column containing the foreign key.
+ *
+ *
+ *
KEY_SEQ
+ *
1-indexed position of the column in the key.
+ *
+ *
+ *
UPDATE_RULE
+ *
+ * Integer value representing the action applied to the foreign key
+ * when the SQL operation is UPDATE.
+ *
+ *
+ *
+ *
DELETE_RULE
+ *
+ * Integer value representing the action applied to the foreign key
+ * when the SQL operation is DELETE.
+ *
+ *
+ *
+ *
FK_NAME
+ *
The name of the foreign key.
+ *
+ *
+ *
PK_NAME
+ *
The name of the primary key.
+ *
+ *
+ *
DEFERRABILITY
+ *
+ * An integer value representing whether the foreign key deferrability is
+ * SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE, or
+ * SQL_NOT_DEFERRABLE.
+ *
+ *
+ */
+function db2_foreign_keys ($connection, $qualifier, $schema, $table_name) {}
+
+function db2_foreignkeys () {}
+
+/**
+ * Returns a result set listing primary keys for a table
+ * @link https://php.net/manual/en/function.db2-primary-keys.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the tables. If schema
+ * is null, db2_primary_keys matches the schema for
+ * the current connection.
+ *
+ * @param string $table_name
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the primary keys for the specified table. The result set is composed of the
+ * following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
TABLE_CAT
+ *
+ * Name of the catalog for the table containing the primary key. The
+ * value is NULL if this table does not have catalogs.
+ *
+ *
+ *
+ *
TABLE_SCHEM
+ *
+ * Name of the schema for the table containing the primary key.
+ *
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the procedures. This parameter accepts a
+ * search pattern containing _ and %
+ * as wildcards.
+ *
+ * @param string $procedure
+ * The name of the procedure. This parameter accepts a
+ * search pattern containing _ and %
+ * as wildcards.
+ *
+ * @param string $parameter
+ * The name of the parameter. This parameter accepts a search pattern
+ * containing _ and % as wildcards.
+ * If this parameter is null, all parameters for the specified stored
+ * procedures are returned.
+ *
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the parameters for the stored procedures matching the specified parameters.
+ * The rows are composed of the following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
PROCEDURE_CAT
+ *
The catalog that contains the procedure. The value is null if
+ * this table does not have catalogs.
+ *
+ *
+ *
PROCEDURE_SCHEM
+ *
Name of the schema that contains the stored procedure.
+ *
+ *
+ *
PROCEDURE_NAME
+ *
Name of the procedure.
+ *
+ *
+ *
COLUMN_NAME
+ *
Name of the parameter.
+ *
+ *
+ *
COLUMN_TYPE
+ *
+ *
+ * An integer value representing the type of the parameter:
+ *
+ *
Return value
+ *
Parameter type
+ *
+ *
+ *
1 (SQL_PARAM_INPUT)
+ *
Input (IN) parameter.
+ *
+ *
+ *
2 (SQL_PARAM_INPUT_OUTPUT)
+ *
Input/output (INOUT) parameter.
+ *
+ *
+ *
3 (SQL_PARAM_OUTPUT)
+ *
Output (OUT) parameter.
+ *
+ *
+ *
+ *
+ *
+ *
DATA_TYPE
+ *
The SQL data type for the parameter represented as an integer
+ * value.
+ *
+ *
+ *
TYPE_NAME
+ *
A string representing the data type for the parameter.
+ *
+ *
+ *
COLUMN_SIZE
+ *
An integer value representing the size of the parameter.
+ *
+ *
+ *
BUFFER_LENGTH
+ *
+ * Maximum number of bytes necessary to store data for this parameter.
+ *
+ *
+ *
+ *
DECIMAL_DIGITS
+ *
+ * The scale of the parameter, or null where scale is not applicable.
+ *
+ *
+ *
+ *
NUM_PREC_RADIX
+ *
+ * An integer value of either 10 (representing
+ * an exact numeric data type), 2 (representing an
+ * approximate numeric data type), or null (representing a data type for
+ * which radix is not applicable).
+ *
+ *
+ *
+ *
NULLABLE
+ *
An integer value representing whether the parameter is nullable
+ * or not.
+ *
+ *
+ *
REMARKS
+ *
Description of the parameter.
+ *
+ *
+ *
COLUMN_DEF
+ *
Default value for the parameter.
+ *
+ *
+ *
SQL_DATA_TYPE
+ *
An integer value representing the size of the parameter.
+ *
+ *
+ *
SQL_DATETIME_SUB
+ *
+ * Returns an integer value representing a datetime subtype code,
+ * or null for SQL data types to which this does not apply.
+ *
+ *
+ *
+ *
CHAR_OCTET_LENGTH
+ *
+ * Maximum length in octets for a character data type parameter, which
+ * matches COLUMN_SIZE for single-byte character set data, or null for
+ * non-character data types.
+ *
+ *
+ *
+ *
ORDINAL_POSITION
+ *
The 1-indexed position of the parameter in the CALL
+ * statement.
+ *
+ *
+ *
IS_NULLABLE
+ *
+ * A string value where 'YES' means that the parameter accepts or
+ * returns null values and 'NO' means that the parameter does not
+ * accept or return null values.
+ *
+ *
+ */
+function db2_procedure_columns ($connection, $qualifier, $schema, $procedure, $parameter) {}
+
+function db2_procedurecolumns () {}
+
+/**
+ * Returns a result set listing the stored procedures registered in a database
+ * @link https://php.net/manual/en/function.db2-procedures.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the procedures. This parameter accepts a
+ * search pattern containing _ and %
+ * as wildcards.
+ *
+ * @param string $procedure
+ * The name of the procedure. This parameter accepts a
+ * search pattern containing _ and %
+ * as wildcards.
+ *
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the stored procedures matching the specified parameters. The rows are
+ * composed of the following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
PROCEDURE_CAT
+ *
The catalog that contains the procedure. The value is null if
+ * this table does not have catalogs.
+ *
+ *
+ *
PROCEDURE_SCHEM
+ *
Name of the schema that contains the stored procedure.
+ *
+ *
+ *
PROCEDURE_NAME
+ *
Name of the procedure.
+ *
+ *
+ *
NUM_INPUT_PARAMS
+ *
Number of input (IN) parameters for the stored procedure.
+ *
+ *
+ *
NUM_OUTPUT_PARAMS
+ *
Number of output (OUT) parameters for the stored procedure.
+ *
+ *
+ *
NUM_RESULT_SETS
+ *
Number of result sets returned by the stored procedure.
+ *
+ *
+ *
REMARKS
+ *
Any comments about the stored procedure.
+ *
+ *
+ *
PROCEDURE_TYPE
+ *
Always returns 1, indicating that the stored
+ * procedure does not return a return value.
+ *
+ */
+function db2_procedures ($connection, $qualifier, $schema, $procedure) {}
+
+/**
+ * Returns a result set listing the unique row identifier columns for a table
+ * @link https://php.net/manual/en/function.db2-special-columns.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the tables.
+ *
+ * @param string $table_name
+ * The name of the table.
+ *
+ * @param int $scope
+ * Integer value representing the minimum duration for which the
+ * unique row identifier is valid. This can be one of the following
+ * values:
+ *
+ *
Integer value
+ *
SQL constant
+ *
Description
+ *
+ *
+ *
0
+ *
SQL_SCOPE_CURROW
+ *
Row identifier is valid only while the cursor is positioned
+ * on the row.
+ *
+ *
+ *
1
+ *
SQL_SCOPE_TRANSACTION
+ *
Row identifier is valid for the duration of the
+ * transaction.
+ *
+ *
+ *
2
+ *
SQL_SCOPE_SESSION
+ *
Row identifier is valid for the duration of the
+ * connection.
+ *
+ *
+ * @return resource|false A statement resource with a result set containing rows with unique
+ * row identifier information for a table. The rows are composed of the
+ * following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
SCOPE
+ *
+ *
+ *
+ *
Integer value
+ *
SQL constant
+ *
Description
+ *
+ *
+ *
0
+ *
SQL_SCOPE_CURROW
+ *
Row identifier is valid only while the cursor is positioned
+ * on the row.
+ *
+ *
+ *
1
+ *
SQL_SCOPE_TRANSACTION
+ *
Row identifier is valid for the duration of the
+ * transaction.
+ *
+ *
+ *
2
+ *
SQL_SCOPE_SESSION
+ *
Row identifier is valid for the duration of the
+ * connection.
+ *
+ *
+ *
+ *
+ *
+ *
COLUMN_NAME
+ *
Name of the unique column.
+ *
+ *
+ *
DATA_TYPE
+ *
SQL data type for the column.
+ *
+ *
+ *
TYPE_NAME
+ *
Character string representation of the SQL data type for the
+ * column.
+ *
+ *
+ *
COLUMN_SIZE
+ *
An integer value representing the size of the column.
+ *
+ *
+ *
BUFFER_LENGTH
+ *
+ * Maximum number of bytes necessary to store data from this column.
+ *
+ *
+ *
+ *
DECIMAL_DIGITS
+ *
+ * The scale of the column, or null where scale is not applicable.
+ *
+ *
+ *
+ *
NUM_PREC_RADIX
+ *
+ * An integer value of either 10 (representing
+ * an exact numeric data type), 2 (representing an
+ * approximate numeric data type), or null (representing a data type for
+ * which radix is not applicable).
+ *
+ *
+ *
+ *
PSEUDO_COLUMN
+ *
Always returns 1.
+ *
+ */
+function db2_special_columns ($connection, $qualifier, $schema, $table_name, $scope) {}
+
+function db2_specialcolumns () {}
+
+/**
+ * Returns a result set listing the index and statistics for a table
+ * @link https://php.net/manual/en/function.db2-statistics.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema that contains the targeted table. If this parameter is
+ * null, the statistics and indexes are returned for the schema of the
+ * current user.
+ *
+ * @param string $table_name
+ * The name of the table.
+ *
+ * @param bool $unique
+ * An integer value representing the type of index information to return.
+ * 0
+ *
+ * Return only the information for unique indexes on the table.
+ *
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the statistics and indexes for the base tables matching the specified
+ * parameters. The rows are composed of the following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
TABLE_CAT
+ *
The catalog that contains the table. The value is null if
+ * this table does not have catalogs.
+ *
+ *
+ *
TABLE_SCHEM
+ *
Name of the schema that contains the table.
+ *
+ *
+ *
TABLE_NAME
+ *
Name of the table.
+ *
+ *
+ *
NON_UNIQUE
+ *
+ *
+ * An integer value representing whether the index prohibits unique
+ * values, or whether the row represents statistics on the table itself:
+ *
+ *
Return value
+ *
Parameter type
+ *
+ *
+ *
0 (SQL_FALSE)
+ *
The index allows duplicate values.
+ *
+ *
+ *
1 (SQL_TRUE)
+ *
The index values must be unique.
+ *
+ *
+ *
null
+ *
This row is statistics information for the table itself.
+ *
+ *
+ *
+ *
+ *
+ *
INDEX_QUALIFIER
+ *
A string value representing the qualifier that would have to be
+ * prepended to INDEX_NAME to fully qualify the index.
+ *
+ *
+ *
INDEX_NAME
+ *
A string representing the name of the index.
+ *
+ *
+ *
TYPE
+ *
+ *
+ * An integer value representing the type of information contained in
+ * this row of the result set:
+ *
+ *
Return value
+ *
Parameter type
+ *
+ *
+ *
0 (SQL_TABLE_STAT)
+ *
The row contains statistics about the table itself.
+ *
+ *
+ *
1 (SQL_INDEX_CLUSTERED)
+ *
The row contains information about a clustered index.
+ *
+ *
+ *
2 (SQL_INDEX_HASH)
+ *
The row contains information about a hashed index.
+ *
+ *
+ *
3 (SQL_INDEX_OTHER)
+ *
The row contains information about a type of index that
+ * is neither clustered nor hashed.
+ *
+ *
+ *
+ *
+ *
+ *
ORDINAL_POSITION
+ *
The 1-indexed position of the column in the index. null if
+ * the row contains statistics information about the table itself.
+ *
+ *
+ *
COLUMN_NAME
+ *
The name of the column in the index. null if the row
+ * contains statistics information about the table itself.
+ *
+ *
+ *
ASC_OR_DESC
+ *
+ * A if the column is sorted in ascending order,
+ * D if the column is sorted in descending order,
+ * null if the row contains statistics information about the table
+ * itself.
+ *
+ *
+ *
+ *
CARDINALITY
+ *
+ *
+ * If the row contains information about an index, this column contains
+ * an integer value representing the number of unique values in the
+ * index.
+ *
+ *
+ * If the row contains information about the table itself, this column
+ * contains an integer value representing the number of rows in the
+ * table.
+ *
+ *
+ *
+ *
+ *
PAGES
+ *
+ *
+ * If the row contains information about an index, this column contains
+ * an integer value representing the number of pages used to store the
+ * index.
+ *
+ *
+ * If the row contains information about the table itself, this column
+ * contains an integer value representing the number of pages used to
+ * store the table.
+ *
+ *
+ *
+ *
+ *
FILTER_CONDITION
+ *
Always returns null.
+ *
+ */
+function db2_statistics ($connection, $qualifier, $schema, $table_name, $unique) {}
+
+/**
+ * Returns a result set listing the tables and associated privileges in a database
+ * @link https://php.net/manual/en/function.db2-table-privileges.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the tables. This parameter accepts a
+ * search pattern containing _ and %
+ * as wildcards.
+ *
+ * @param string $table_name
+ * The name of the table. This parameter accepts a search pattern
+ * containing _ and % as wildcards.
+ *
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the privileges for the tables that match the specified parameters. The rows
+ * are composed of the following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
TABLE_CAT
+ *
The catalog that contains the table. The value is null if
+ * this table does not have catalogs.
+ *
+ *
+ *
TABLE_SCHEM
+ *
Name of the schema that contains the table.
+ *
+ *
+ *
TABLE_NAME
+ *
Name of the table.
+ *
+ *
+ *
GRANTOR
+ *
Authorization ID of the user who granted the privilege.
+ *
+ *
+ *
GRANTEE
+ *
Authorization ID of the user to whom the privilege was
+ * granted.
+ *
+ *
+ *
PRIVILEGE
+ *
+ * The privilege that has been granted. This can be one of ALTER,
+ * CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT, or UPDATE.
+ *
+ *
+ *
+ *
IS_GRANTABLE
+ *
+ * A string value of "YES" or "NO" indicating whether the grantee
+ * can grant the privilege to other users.
+ *
+ *
+ */
+function db2_table_privileges ($connection, $qualifier = null, $schema = null, $table_name = null) {}
+
+function db2_tableprivileges () {}
+
+/**
+ * Returns a result set listing the tables and associated metadata in a database
+ * @link https://php.net/manual/en/function.db2-tables.php
+ * @param resource $connection
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.
+ *
+ * @param string $qualifier
+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For
+ * other databases, pass null or an empty string.
+ *
+ * @param string $schema
+ * The schema which contains the tables. This parameter accepts a
+ * search pattern containing _ and %
+ * as wildcards.
+ *
+ * @param string $table_name
+ * @param string $table_type
+ * @return resource|false A statement resource with a result set containing rows describing
+ * the tables that match the specified parameters. The rows are composed of
+ * the following columns:
+ *
+ *
Column name
+ *
Description
+ *
+ *
+ *
TABLE_CAT
+ *
The catalog that contains the table. The value is null if
+ * this table does not have catalogs.
+ * A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ *
+ * @param string $statement
+ * An SQL statement. The statement cannot contain any parameter markers.
+ *
+ * @param array $options
+ * An associative array containing statement options. You can use this
+ * parameter to request a scrollable cursor on database servers that
+ * support this functionality.
+ * cursor
+ *
+ * Passing the DB2_FORWARD_ONLY value requests a
+ * forward-only cursor for this SQL statement. This is the default
+ * type of cursor, and it is supported by all database servers. It is
+ * also much faster than a scrollable cursor.
+ *
+ *
+ * Passing the DB2_SCROLLABLE value requests a
+ * scrollable cursor for this SQL statement. This type of cursor
+ * enables you to fetch rows non-sequentially from the database
+ * server. However, it is only supported by DB2 servers, and is much
+ * slower than forward-only cursors.
+ *
+ * @return resource|false A statement resource if the SQL statement was issued successfully,
+ * or false if the database failed to execute the SQL statement.
+ */
+function db2_exec ($connection, $statement, array $options = null) {}
+
+/**
+ * Prepares an SQL statement to be executed
+ * @link https://php.net/manual/en/function.db2-prepare.php
+ * @param resource $connection
+ * A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ *
+ * @param string $statement
+ * An SQL statement, optionally containing one or more parameter markers..
+ *
+ * @param array $options
+ * An associative array containing statement options. You can use this
+ * parameter to request a scrollable cursor on database servers that
+ * support this functionality.
+ * cursor
+ *
+ * Passing the DB2_FORWARD_ONLY value requests a
+ * forward-only cursor for this SQL statement. This is the default
+ * type of cursor, and it is supported by all database servers. It is
+ * also much faster than a scrollable cursor.
+ *
+ *
+ * Passing the DB2_SCROLLABLE value requests a
+ * scrollable cursor for this SQL statement. This type of cursor
+ * enables you to fetch rows non-sequentially from the database
+ * server. However, it is only supported by DB2 servers, and is much
+ * slower than forward-only cursors.
+ *
+ * @return resource|false A statement resource if the SQL statement was successfully parsed and
+ * prepared by the database server. Returns false if the database server
+ * returned an error. You can determine which error was returned by calling
+ * db2_stmt_error or db2_stmt_errormsg.
+ */
+function db2_prepare ($connection, $statement, array $options = null) {}
+
+/**
+ * Executes a prepared SQL statement
+ * @link https://php.net/manual/en/function.db2-execute.php
+ * @param resource $stmt
+ * A prepared statement returned from db2_prepare.
+ *
+ * @param array $parameters
+ * An array of input parameters matching any parameter markers contained
+ * in the prepared statement.
+ *
+ * @return bool true on success or false on failure.
+ */
+function db2_execute ($stmt, array $parameters = null) {}
+
+/**
+ * Returns a string containing the last SQL statement error message
+ * @link https://php.net/manual/en/function.db2-stmt-errormsg.php
+ * @param resource $stmt
+ * A valid statement resource.
+ *
+ * @return string a string containing the error message and SQLCODE value for the
+ * last error that occurred issuing an SQL statement.
+ */
+function db2_stmt_errormsg ($stmt = null) {}
+
+/**
+ * Returns the last connection error message and SQLCODE value
+ * @link https://php.net/manual/en/function.db2-conn-errormsg.php
+ * @param resource $connection
+ * A connection resource associated with a connection that initially
+ * succeeded, but which over time became invalid.
+ *
+ * @return string a string containing the error message and SQLCODE value resulting
+ * from a failed connection attempt. If there is no error associated with the last
+ * connection attempt, db2_conn_errormsg returns an empty
+ * string.
+ */
+function db2_conn_errormsg ($connection = null) {}
+
+/**
+ * Returns a string containing the SQLSTATE returned by the last connection attempt
+ * @link https://php.net/manual/en/function.db2-conn-error.php
+ * @param resource $connection
+ * A connection resource associated with a connection that initially
+ * succeeded, but which over time became invalid.
+ *
+ * @return string the SQLSTATE value resulting from a failed connection attempt.
+ * Returns an empty string if there is no error associated with the last
+ * connection attempt.
+ */
+function db2_conn_error ($connection = null) {}
+
+/**
+ * Returns a string containing the SQLSTATE returned by an SQL statement
+ * @link https://php.net/manual/en/function.db2-stmt-error.php
+ * @param resource $stmt
+ * A valid statement resource.
+ *
+ * @return string a string containing an SQLSTATE value.
+ */
+function db2_stmt_error ($stmt = null) {}
+
+/**
+ * Requests the next result set from a stored procedure
+ * @link https://php.net/manual/en/function.db2-next-result.php
+ * @param resource $stmt
+ * A prepared statement returned from db2_exec or
+ * db2_execute.
+ *
+ * @return resource|false A new statement resource containing the next result set if the
+ * stored procedure returned another result set. Returns false if the stored
+ * procedure did not return another result set.
+ */
+function db2_next_result ($stmt) {}
+
+/**
+ * Returns the number of fields contained in a result set
+ * @link https://php.net/manual/en/function.db2-num-fields.php
+ * @param resource $stmt
+ * A valid statement resource containing a result set.
+ *
+ * @return int|false An integer value representing the number of fields in the result
+ * set associated with the specified statement resource. Returns false if
+ * the statement resource is not a valid input value.
+ */
+function db2_num_fields ($stmt) {}
+
+/**
+ * Returns the number of rows affected by an SQL statement
+ * @link https://php.net/manual/en/function.db2-num-rows.php
+ * @param resource $stmt
+ * A valid stmt resource containing a result set.
+ *
+ * @return int the number of rows affected by the last SQL statement issued by
+ * the specified statement handle.
+ */
+function db2_num_rows ($stmt) {}
+
+/**
+ * Returns the name of the column in the result set
+ * @link https://php.net/manual/en/function.db2-field-name.php
+ * @param resource $stmt
+ * Specifies a statement resource containing a result set.
+ *
+ * @param mixed $column
+ * Specifies the column in the result set. This can either be an integer
+ * representing the 0-indexed position of the column, or a string
+ * containing the name of the column.
+ *
+ * @return string|false A string containing the name of the specified column. If the
+ * specified column does not exist in the result
+ * set, db2_field_name returns false.
+ */
+function db2_field_name ($stmt, $column) {}
+
+/**
+ * Returns the maximum number of bytes required to display a column
+ * @link https://php.net/manual/en/function.db2-field-display-size.php
+ * @param resource $stmt
+ * Specifies a statement resource containing a result set.
+ *
+ * @param mixed $column
+ * Specifies the column in the result set. This can either be an integer
+ * representing the 0-indexed position of the column, or a string
+ * containing the name of the column.
+ *
+ * @return int|false An integer value with the maximum number of bytes required to
+ * display the specified column. If the column does not exist in the result
+ * set, db2_field_display_size returns false.
+ */
+function db2_field_display_size ($stmt, $column) {}
+
+/**
+ * Returns the position of the named column in a result set
+ * @link https://php.net/manual/en/function.db2-field-num.php
+ * @param resource $stmt
+ * Specifies a statement resource containing a result set.
+ *
+ * @param mixed $column
+ * Specifies the column in the result set. This can either be an integer
+ * representing the 0-indexed position of the column, or a string
+ * containing the name of the column.
+ *
+ * @return int|false An integer containing the 0-indexed position of the named column in
+ * the result set. If the specified column does not exist in the result set,
+ * db2_field_num returns false.
+ */
+function db2_field_num ($stmt, $column) {}
+
+/**
+ * Returns the precision of the indicated column in a result set
+ * @link https://php.net/manual/en/function.db2-field-precision.php
+ * @param resource $stmt
+ * Specifies a statement resource containing a result set.
+ *
+ * @param mixed $column
+ * Specifies the column in the result set. This can either be an integer
+ * representing the 0-indexed position of the column, or a string
+ * containing the name of the column.
+ *
+ * @return int|false An integer containing the precision of the specified column. If the
+ * specified column does not exist in the result set,
+ * db2_field_precision returns false.
+ */
+function db2_field_precision ($stmt, $column) {}
+
+/**
+ * Returns the scale of the indicated column in a result set
+ * @link https://php.net/manual/en/function.db2-field-scale.php
+ * @param resource $stmt
+ * Specifies a statement resource containing a result set.
+ *
+ * @param mixed $column
+ * Specifies the column in the result set. This can either be an integer
+ * representing the 0-indexed position of the column, or a string
+ * containing the name of the column.
+ *
+ * @return int|false An integer containing the scale of the specified column. If the
+ * specified column does not exist in the result set,
+ * db2_field_scale returns false.
+ */
+function db2_field_scale ($stmt, $column) {}
+
+/**
+ * Returns the data type of the indicated column in a result set
+ * @link https://php.net/manual/en/function.db2-field-type.php
+ * @param resource $stmt
+ * Specifies a statement resource containing a result set.
+ *
+ * @param mixed $column
+ * Specifies the column in the result set. This can either be an integer
+ * representing the 0-indexed position of the column, or a string
+ * containing the name of the column.
+ *
+ * @return string|false A string containing the defined data type of the specified column.
+ * If the specified column does not exist in the result set,
+ * db2_field_type returns false.
+ */
+function db2_field_type ($stmt, $column) {}
+
+/**
+ * Returns the width of the current value of the indicated column in a result set
+ * @link https://php.net/manual/en/function.db2-field-width.php
+ * @param resource $stmt
+ * Specifies a statement resource containing a result set.
+ *
+ * @param mixed $column
+ * Specifies the column in the result set. This can either be an integer
+ * representing the 0-indexed position of the column, or a string
+ * containing the name of the column.
+ *
+ * @return int|false An integer containing the width of the specified character or
+ * binary data type column in a result set. If the specified column does not
+ * exist in the result set, db2_field_width returns
+ * false.
+ */
+function db2_field_width ($stmt, $column) {}
+
+/**
+ * Returns the cursor type used by a statement resource
+ * @link https://php.net/manual/en/function.db2-cursor-type.php
+ * @param resource $stmt
+ * A valid statement resource.
+ *
+ * @return int either DB2_FORWARD_ONLY if the statement
+ * resource uses a forward-only cursor or DB2_SCROLLABLE if
+ * the statement resource uses a scrollable cursor.
+ */
+function db2_cursor_type ($stmt) {}
+
+/**
+ * Rolls back a transaction
+ * @link https://php.net/manual/en/function.db2-rollback.php
+ * @param resource $connection
+ * A valid database connection resource variable as returned from
+ * db2_connect or db2_pconnect.
+ *
+ * @return bool true on success or false on failure.
+ */
+function db2_rollback ($connection) {}
+
+/**
+ * Frees resources associated with the indicated statement resource
+ * @link https://php.net/manual/en/function.db2-free-stmt.php
+ * @param resource $stmt
+ * A valid statement resource.
+ *
+ * @return bool true on success or false on failure.
+ */
+function db2_free_stmt ($stmt) {}
+
+/**
+ * Returns a single column from a row in the result set
+ * @link https://php.net/manual/en/function.db2-result.php
+ * @param resource $stmt
+ * A valid stmt resource.
+ *
+ * @param mixed $column
+ * Either an integer mapping to the 0-indexed field in the result set, or
+ * a string matching the name of the column.
+ *
+ * @return mixed the value of the requested field if the field exists in the result
+ * set. Returns NULL if the field does not exist, and issues a warning.
+ */
+function db2_result ($stmt, $column) {}
+
+/**
+ * Sets the result set pointer to the next row or requested row
+ * @link https://php.net/manual/en/function.db2-fetch-row.php
+ * @param resource $stmt
+ * A valid stmt resource.
+ *
+ * @param int $row_number
+ * With scrollable cursors, you can request a specific row number in the
+ * result set. Row numbering is 1-indexed.
+ *
+ * @return bool true if the requested row exists in the result set. Returns
+ * false if the requested row does not exist in the result set.
+ */
+function db2_fetch_row ($stmt, $row_number = null) {}
+
+/**
+ * Returns an array, indexed by column name, representing a row in a result set
+ * @link https://php.net/manual/en/function.db2-fetch-assoc.php
+ * @param resource $stmt
+ * A valid stmt resource containing a result set.
+ *
+ * @param int $row_number
+ * Requests a specific 1-indexed row from the result set. Passing this
+ * parameter results in a PHP warning if the result set uses a
+ * forward-only cursor.
+ *
+ * @return array|false An associative array with column values indexed by the column name
+ * representing the next or requested row in the result set. Returns false if
+ * there are no rows left in the result set, or if the row requested by
+ * row_number does not exist in the result set.
+ */
+function db2_fetch_assoc ($stmt, $row_number = null) {}
+
+/**
+ * Returns an array, indexed by column position, representing a row in a result set
+ * @link https://php.net/manual/en/function.db2-fetch-array.php
+ * @param resource $stmt
+ * A valid stmt resource containing a result set.
+ *
+ * @param int $row_number
+ * Requests a specific 1-indexed row from the result set. Passing this
+ * parameter results in a PHP warning if the result set uses a
+ * forward-only cursor.
+ *
+ * @return array|false A 0-indexed array with column values indexed by the column position
+ * representing the next or requested row in the result set. Returns false if
+ * there are no rows left in the result set, or if the row requested by
+ * row_number does not exist in the result set.
+ */
+function db2_fetch_array ($stmt, $row_number = null) {}
+
+/**
+ * Returns an array, indexed by both column name and position, representing a row in a result set
+ * @link https://php.net/manual/en/function.db2-fetch-both.php
+ * @param resource $stmt
+ * A valid stmt resource containing a result set.
+ *
+ * @param int $row_number
+ * Requests a specific 1-indexed row from the result set. Passing this
+ * parameter results in a PHP warning if the result set uses a
+ * forward-only cursor.
+ *
+ * @return array|false An associative array with column values indexed by both the column
+ * name and 0-indexed column number. The array represents the next or
+ * requested row in the result set. Returns false if there are no rows left
+ * in the result set, or if the row requested by
+ * row_number does not exist in the result set.
+ */
+function db2_fetch_both ($stmt, $row_number = null) {}
+
+/**
+ * Frees resources associated with a result set
+ * @link https://php.net/manual/en/function.db2-free-result.php
+ * @param resource $stmt
+ * A valid statement resource.
+ *
+ * @return bool true on success or false on failure.
+ */
+function db2_free_result ($stmt) {}
+
+/**
+ * Set options for connection or statement resources
+ * @link https://php.net/manual/en/function.db2-set-option.php
+ * @param resource $resource
+ * A valid statement resource as returned from
+ * db2_prepare or a valid connection resource as
+ * returned from db2_connect or
+ * db2_pconnect.
+ *
+ * @param array $options
+ * An associative array containing valid statement or connection
+ * options. This parameter can be used to change autocommit values,
+ * cursor types (scrollable or forward), and to specify the case of
+ * the column names (lower, upper, or natural) that will appear in a
+ * result set.
+ * autocommit
+ *
+ * Passing DB2_AUTOCOMMIT_ON turns
+ * autocommit on for the specified connection resource.
+ *
+ *
+ * Passing DB2_AUTOCOMMIT_OFF turns
+ * autocommit off for the specified connection resource.
+ *
+ * @param int $type
+ * An integer value that specifies the type of resource that was
+ * passed into the function. The type of resource and this value
+ * must correspond.
+ *
+ * Passing 1 as the value specifies that
+ * a connection resource has been passed into the function.
+ *
+ *
+ * Passing any integer not equal to 1 as
+ * the value specifies that a statement resource has been
+ * passed into the function.
+ *
+ * @return bool true on success or false on failure.
+ */
+function db2_set_option ($resource, array $options, $type) {}
+
+function db2_setoption () {}
+
+/**
+ * Returns an object with properties representing columns in the fetched row
+ * @link https://php.net/manual/en/function.db2-fetch-object.php
+ * @param resource $stmt
+ * A valid stmt resource containing a result set.
+ *
+ * @param int $row_number
+ * Requests a specific 1-indexed row from the result set. Passing this
+ * parameter results in a PHP warning if the result set uses a
+ * forward-only cursor.
+ *
+ * @return object|false An object representing a single row in the result set. The
+ * properties of the object map to the names of the columns in the result set.
+ *
+ *
+ * The IBM DB2, Cloudscape, and Apache Derby database servers typically fold
+ * column names to upper-case, so the object properties will reflect that case.
+ *
+ *
+ * If your SELECT statement calls a scalar function to modify the value
+ * of a column, the database servers return the column number as the name of
+ * the column in the result set. If you prefer a more descriptive column name
+ * and object property, you can use the AS clause to assign a name to the
+ * column in the result set.
+ *
+ *
+ * Returns false if no row was retrieved.
+ */
+function db2_fetch_object ($stmt, $row_number = null) {}
+
+/**
+ * Returns an object with properties that describe the DB2 database server
+ * @link https://php.net/manual/en/function.db2-server-info.php
+ * @param resource $connection
+ * Specifies an active DB2 client connection.
+ *
+ * @return object|false An object on a successful call. Returns false on failure.
+ */
+function db2_server_info ($connection) {}
+
+/**
+ * Returns an object with properties that describe the DB2 database client
+ * @link https://php.net/manual/en/function.db2-client-info.php
+ * @param resource $connection
+ * Specifies an active DB2 client connection.
+ *
+ * @return object|false An object on a successful call. Returns false on failure.
+ */
+function db2_client_info ($connection) {}
+
+/**
+ * Used to escape certain characters
+ * @link https://php.net/manual/en/function.db2-escape-string.php
+ * @param string $string_literal
+ * The string that contains special characters that need to be modified.
+ * Characters that are prepended with a backslash are \x00,
+ * \n, \r, \,
+ * ', " and \x1a.
+ *
+ * @return string string_literal with the special characters
+ * noted above prepended with backslashes.
+ */
+function db2_escape_string ($string_literal) {}
+
+/**
+ * Gets a user defined size of LOB files with each invocation
+ * @link https://php.net/manual/en/function.db2-lob-read.php
+ * @param resource $stmt
+ * A valid column number in the result set of the stmt resource.
+ *
+ * @param int $length
+ * The size of the LOB data to be retrieved from the stmt resource.
+ *
+ * @return string|false The amount of data the user specifies. Returns
+ * false if the data cannot be retrieved.
+ */
+function db2_lob_read ($stmt, $colnum, $length) {}
+
+/**
+ * Retrieves an option value for a statement resource or a connection resource
+ * @link https://php.net/manual/en/function.db2-get-option.php
+ * @param resource $resource
+ * A valid statement resource as returned from
+ * db2_prepare or a valid connection resource as
+ * returned from db2_connect or
+ * db2_pconnect.
+ *
+ * @param string $option
+ * A valid statement or connection options. The following new options are available
+ * as of ibm_db2 version 1.6.0. They provide useful tracking information
+ * that can be set during execution with db2_get_option.
+ * Note
+ *
+ * Prior versions of ibm_db2 do not support these new options.
+ *
+ *
+ * When the value in each option is being set, some servers might not handle
+ * the entire length provided and might truncate the value.
+ *
+ *
+ * To ensure that the data specified in each option is converted correctly
+ * when transmitted to a host system, use only the characters A through Z,
+ * 0 through 9, and the underscore (_) or period (.).
+ *
+ * userid
+ *
+ * SQL_ATTR_INFO_USERID - A pointer to a null-terminated
+ * character string used to identify the client user ID sent to the host
+ * database server when using DB2 Connect.
+ * Note
+ *
+ * DB2 for z/OS and OS/390 servers support up to a length of 16 characters.
+ * This user-id is not to be confused with the authentication user-id, it is for
+ * identification purposes only and is not used for any authorization.
+ *
+ *
+ * @return string|false The current setting of the connection attribute provided on success
+ * or false on failure.
+ */
+function db2_get_option ($resource, $option) {}
+
+/**
+ * Returns the auto generated ID of the last insert query that successfully executed on this connection.
+ * @link https://php.net/manual/en/function.db2-last-insert-id.php
+ * The result of this function is not affected by any of the following:
+ *
A single row INSERT statement with a VALUES clause for a table without an identity column.
+ *
A multiple row INSERT statement with a VALUES clause.
+ *
An INSERT statement with a fullselect.
+ *
A ROLLBACK TO SAVEPOINT statement.
+ *
+ * @param resource $resource A valid connection resource as returned from db2_connect() or db2_pconnect().
+ * The value of this parameter cannot be a statement resource or result set resource.
+ * @return string Returns the auto generated ID of last insert query that successfully executed on this connection.
+ */
+function db2_last_insert_id ($resource) {}
+
+
+/**
+ * Specifies that binary data shall be returned as is. This is the default
+ * mode.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_BINARY', 1);
+
+/**
+ * Specifies that binary data shall be converted to a hexadecimal encoding
+ * and returned as an ASCII string.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_CONVERT', 2);
+
+/**
+ * Specifies that binary data shall be converted to a null value.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_PASSTHRU', 3);
+
+/**
+ * Specifies a scrollable cursor for a statement resource. This mode enables
+ * random access to rows in a result set, but currently is supported only by
+ * IBM DB2 Universal Database.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_SCROLLABLE', 1);
+
+/**
+ * Specifies a forward-only cursor for a statement resource. This is the
+ * default cursor type and is supported on all database servers.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_FORWARD_ONLY', 0);
+
+/**
+ * Specifies the PHP variable should be bound as an IN parameter for a
+ * stored procedure.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_PARAM_IN', 1);
+
+/**
+ * Specifies the PHP variable should be bound as an OUT parameter for a
+ * stored procedure.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_PARAM_OUT', 4);
+
+/**
+ * Specifies the PHP variable should be bound as an INOUT parameter for a
+ * stored procedure.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_PARAM_INOUT', 2);
+
+/**
+ * Specifies that the column should be bound directly to a file for input.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_PARAM_FILE', 11);
+
+/**
+ * Specifies that autocommit should be turned on.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_AUTOCOMMIT_ON', 1);
+
+/**
+ * Specifies that autocommit should be turned off.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_AUTOCOMMIT_OFF', 0);
+
+/**
+ * Specifies that deferred prepare should be turned on for the specified statement resource.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_DEFERRED_PREPARE_ON', 1);
+
+/**
+ * Specifies that deferred prepare should be turned off for the specified statement resource.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_DEFERRED_PREPARE_OFF', 0);
+
+/**
+ * Specifies that the variable should be bound as a DOUBLE, FLOAT, or REAL
+ * data type.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_DOUBLE', 8);
+
+/**
+ * Specifies that the variable should be bound as a SMALLINT, INTEGER, or
+ * BIGINT data type.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_LONG', 4);
+
+/**
+ * Specifies that the variable should be bound as a CHAR or VARCHAR data type.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_CHAR', 1);
+define ('DB2_XML', -370);
+
+/**
+ * Specifies that column names will be returned in their natural case.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_CASE_NATURAL', 0);
+
+/**
+ * Specifies that column names will be returned in lower case.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_CASE_LOWER', 1);
+
+/**
+ * Specifies that column names will be returned in upper case.
+ * @link https://php.net/manual/en/ibm-db2.constants.php
+ */
+define ('DB2_CASE_UPPER', 2);
+
+// End of ibm_db2 v.1.6.0
diff --git a/vendor/jetbrains/phpstorm-stubs/iconv/iconv.php b/vendor/jetbrains/phpstorm-stubs/iconv/iconv.php
new file mode 100644
index 0000000000..69f056da32
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/iconv/iconv.php
@@ -0,0 +1,460 @@
+
+ * The input charset.
+ *
+ * @param string $to_encoding
+ * The output charset.
+ *
+ *
+ * If you append the string //TRANSLIT to
+ * out_charset transliteration is activated. This
+ * means that when a character can't be represented in the target charset,
+ * it can be approximated through one or several similarly looking
+ * characters. If you append the string //IGNORE,
+ * characters that cannot be represented in the target charset are silently
+ * discarded. Otherwise, str is cut from the first
+ * illegal character and an E_NOTICE is generated.
+ *
+ * @param string $string
+ * The string to be converted.
+ *
+ * @return string|false the converted string or FALSE on failure.
+ */
+#[Pure]
+function iconv (string $from_encoding, string $to_encoding, string $string): string|false
+{}
+
+/**
+ * Convert character encoding as output buffer handler
+ * @link https://php.net/manual/en/function.ob-iconv-handler.php
+ * @param string $contents
+ * @param int $status
+ * @return string See ob_start for information about this handler
+ * return values.
+ */
+#[Pure]
+function ob_iconv_handler (string $contents, int $status): string
+{}
+
+/**
+ * Retrieve internal configuration variables of iconv extension
+ * @link https://php.net/manual/en/function.iconv-get-encoding.php
+ * @param string $type [optional]
+ * The value of the optional type can be:
+ * all
+ * input_encoding
+ * output_encoding
+ * internal_encoding
+ *
+ * @return string|string[]|false the current value of the internal configuration variable if
+ * successful or FALSE on failure.
+ *
+ *
+ * If type is omitted or set to "all",
+ * iconv_get_encoding returns an array that
+ * stores all these variables.
+ *
+ */
+#[Pure]
+function iconv_get_encoding (string $type = "all"): array|string|false
+{}
+
+/**
+ * Set current setting for character encoding conversion
+ * @link https://php.net/manual/en/function.iconv-set-encoding.php
+ * @param string $type
+ * The value of type can be any one of these:
+ * input_encoding
+ * output_encoding
+ * internal_encoding
+ *
+ * @param string $encoding
+ * The character set.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function iconv_set_encoding (string $type, string $encoding): bool
+{}
+
+/**
+ * Returns the character count of string
+ * @link https://php.net/manual/en/function.iconv-strlen.php
+ * @param string $string
+ * The string.
+ *
+ * @param string|null $encoding [optional]
+ * If charset parameter is omitted,
+ * str is assumed to be encoded in
+ * iconv.internal_encoding.
+ *
+ * @return int|false the character count of str, as an integer. False on error.
+ */
+#[Pure]
+function iconv_strlen (string $string, ?string $encoding = 'ini_get("iconv.internal_encoding")'): int|false
+{}
+
+/**
+ * Cut out part of a string
+ * @link https://php.net/manual/en/function.iconv-substr.php
+ * @param string $string
+ * The original string.
+ *
+ * @param int $offset
+ * If offset is non-negative,
+ * iconv_substr cuts the portion out of
+ * str beginning at offset'th
+ * character, counting from zero.
+ *
+ *
+ * If offset is negative,
+ * iconv_substr cuts out the portion beginning
+ * at the position, offset characters
+ * away from the end of str.
+ *
+ * @param int|null $length [optional]
+ * If length is given and is positive, the return
+ * value will contain at most length characters
+ * of the portion that begins at offset
+ * (depending on the length of string).
+ *
+ *
+ * If negative length is passed,
+ * iconv_substr cuts the portion out of
+ * str from the offset'th
+ * character up to the character that is
+ * length characters away from the end of the string.
+ * In case offset is also negative, the start position
+ * is calculated beforehand according to the rule explained above.
+ *
+ * @param string|null $encoding [optional]
+ * If charset parameter is omitted,
+ * string are assumed to be encoded in
+ * iconv.internal_encoding.
+ *
+ *
+ * Note that offset and length
+ * parameters are always deemed to represent offsets that are
+ * calculated on the basis of the character set determined by
+ * charset, whilst the counterpart
+ * substr always takes these for byte offsets.
+ *
+ * @return string|false the portion of str specified by the
+ * offset and length parameters.
+ *
+ *
+ * If str is shorter than offset
+ * characters long, FALSE will be returned.
+ *
+ */
+#[Pure]
+function iconv_substr (string $string, int $offset, ?int $length, ?string $encoding = 'ini_get("iconv.internal_encoding")'): string|false
+{}
+
+/**
+ * Finds position of first occurrence of a needle within a haystack
+ * @link https://php.net/manual/en/function.iconv-strpos.php
+ * @param string $haystack
+ * The entire string.
+ *
+ * @param string $needle
+ * The searched substring.
+ *
+ * @param int $offset [optional]
+ * The optional offset parameter specifies
+ * the position from which the search should be performed.
+ *
+ * @param string|null $encoding [optional]
+ * If charset parameter is omitted,
+ * string are assumed to be encoded in
+ * iconv.internal_encoding.
+ *
+ * @return int|false the numeric position of the first occurrence of
+ * needle in haystack.
+ *
+ *
+ * If needle is not found,
+ * iconv_strpos will return FALSE.
+ *
+ */
+#[Pure]
+function iconv_strpos (string $haystack, string $needle, int $offset = 0, ?string $encoding = 'ini_get("iconv.internal_encoding")'): int|false
+{}
+
+/**
+ * Finds the last occurrence of a needle within a haystack
+ * @link https://php.net/manual/en/function.iconv-strrpos.php
+ * @param string $haystack
+ * The entire string.
+ *
+ * @param string $needle
+ * The searched substring.
+ *
+ * @param string|null $encoding [optional]
+ * If charset parameter is omitted,
+ * string are assumed to be encoded in
+ * iconv.internal_encoding.
+ *
+ * @return int|false the numeric position of the last occurrence of
+ * needle in haystack.
+ *
+ *
+ * If needle is not found,
+ * iconv_strrpos will return FALSE.
+ *
+ * You can control the behaviour of iconv_mime_encode
+ * by specifying an associative array that contains configuration items
+ * to the optional third parameter preferences.
+ * The items supported by iconv_mime_encode are
+ * listed below. Note that item names are treated case-sensitive.
+ *
+ * Configuration items supported by iconv_mime_encode
+ *
+ *
Item
+ *
Type
+ *
Description
+ *
Default value
+ *
Example
+ *
+ *
+ *
scheme
+ *
string
+ *
+ * Specifies the method to encode a field value by. The value of
+ * this item may be either "B" or "Q", where "B" stands for
+ * base64 encoding scheme and "Q" stands for
+ * quoted-printable encoding scheme.
+ *
+ *
B
+ *
B
+ *
+ *
+ *
input-charset
+ *
string
+ *
+ * Specifies the character set in which the first parameter
+ * field_name and the second parameter
+ * field_value are presented. If not given,
+ * iconv_mime_encode assumes those parameters
+ * are presented to it in the
+ * iconv.internal_encoding
+ * ini setting.
+ *
+ *
+ * iconv.internal_encoding
+ *
+ *
ISO-8859-1
+ *
+ *
+ *
output-charset
+ *
string
+ *
+ * Specifies the character set to use to compose the
+ * MIME header.
+ *
+ *
+ * iconv.internal_encoding
+ *
+ *
UTF-8
+ *
+ *
+ *
line-length
+ *
integer
+ *
+ * Specifies the maximum length of the header lines. The resulting
+ * header is "folded" to a set of multiple lines in case
+ * the resulting header field would be longer than the value of this
+ * parameter, according to
+ * RFC2822 - Internet Message Format.
+ * If not given, the length will be limited to 76 characters.
+ *
+ *
76
+ *
996
+ *
+ *
+ *
line-break-chars
+ *
string
+ *
+ * Specifies the sequence of characters to append to each line
+ * as an end-of-line sign when "folding" is performed on a long header
+ * field. If not given, this defaults to "\r\n"
+ * (CR LF). Note that
+ * this parameter is always treated as an ASCII string regardless
+ * of the value of input-charset.
+ *
+ *
\r\n
+ *
\n
+ *
+ *
+ *
+ * @return string|false an encoded MIME field on success,
+ * or FALSE if an error occurs during the encoding.
+ */
+#[Pure]
+function iconv_mime_encode (string $field_name, string $field_value, array $options): string|false
+{}
+
+/**
+ * Decodes a MIME header field
+ * @link https://php.net/manual/en/function.iconv-mime-decode.php
+ * @param string $string
+ * The encoded header, as a string.
+ *
+ * @param int $mode [optional]
+ * mode determines the behaviour in the event
+ * iconv_mime_decode encounters a malformed
+ * MIME header field. You can specify any combination
+ * of the following bitmasks.
+ *
+ * Bitmasks acceptable to iconv_mime_decode
+ *
+ *
Value
+ *
Constant
+ *
Description
+ *
+ *
+ *
1
+ *
ICONV_MIME_DECODE_STRICT
+ *
+ * If set, the given header is decoded in full conformance with the
+ * standards defined in RFC2047.
+ * This option is disabled by default because there are a lot of
+ * broken mail user agents that don't follow the specification and don't
+ * produce correct MIME headers.
+ *
+ *
+ *
+ *
2
+ *
ICONV_MIME_DECODE_CONTINUE_ON_ERROR
+ *
+ * If set, iconv_mime_decode_headers
+ * attempts to ignore any grammatical errors and continue to process
+ * a given header.
+ *
+ *
+ *
+ *
+ * @param string|null $encoding [optional]
+ * The optional charset parameter specifies the
+ * character set to represent the result by. If omitted,
+ * iconv.internal_encoding
+ * will be used.
+ *
+ * @return string|false a decoded MIME field on success,
+ * or FALSE if an error occurs during the decoding.
+ */
+#[Pure]
+function iconv_mime_decode (string $string, int $mode = 0, ?string $encoding = 'ini_get("iconv.internal_encoding")'): string|false
+{}
+
+/**
+ * Decodes multiple MIME header fields at once
+ * @link https://php.net/manual/en/function.iconv-mime-decode-headers.php
+ * @param string $headers
+ * The encoded headers, as a string.
+ *
+ * @param int $mode [optional]
+ * mode determines the behaviour in the event
+ * iconv_mime_decode_headers encounters a malformed
+ * MIME header field. You can specify any combination
+ * of the following bitmasks.
+ *
+ * Bitmasks acceptable to iconv_mime_decode_headers
+ *
+ *
Value
+ *
Constant
+ *
Description
+ *
+ *
+ *
1
+ *
ICONV_MIME_DECODE_STRICT
+ *
+ * If set, the given header is decoded in full conformance with the
+ * standards defined in RFC2047.
+ * This option is disabled by default because there are a lot of
+ * broken mail user agents that don't follow the specification and don't
+ * produce correct MIME headers.
+ *
+ *
+ *
+ *
2
+ *
ICONV_MIME_DECODE_CONTINUE_ON_ERROR
+ *
+ * If set, iconv_mime_decode_headers
+ * attempts to ignore any grammatical errors and continue to process
+ * a given header.
+ *
+ *
+ *
+ *
+ * @param string|null $encoding [optional]
+ * The optional charset parameter specifies the
+ * character set to represent the result by. If omitted,
+ * iconv.internal_encoding
+ * will be used.
+ *
+ * @return array|false an associative array that holds a whole set of
+ * MIME header fields specified by
+ * encoded_headers on success, or FALSE
+ * if an error occurs during the decoding.
+ *
+ *
+ * Each key of the return value represents an individual
+ * field name and the corresponding element represents a field value.
+ * If more than one field of the same name are present,
+ * iconv_mime_decode_headers automatically incorporates
+ * them into a numerically indexed array in the order of occurrence.
+ *
+ * @return bool TRUE on success.
+ */
+ public function pingImageBlob ($image) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Get basic image attributes in a lightweight manner
+ * @link https://php.net/manual/en/imagick.pingimagefile.php
+ * @param resource $filehandle
+ * An open filehandle to the image.
+ *
+ * @param string $fileName [optional]
+ * Optional filename for this image.
+ *
+ * @return bool TRUE on success.
+ */
+ public function pingImageFile ($filehandle, $fileName = null) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a vertical mirror image
+ * @link https://php.net/manual/en/imagick.transposeimage.php
+ * @return bool TRUE on success.
+ */
+ public function transposeImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a horizontal mirror image
+ * @link https://php.net/manual/en/imagick.transverseimage.php
+ * @return bool TRUE on success.
+ */
+ public function transverseImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Remove edges from the image
+ * @link https://php.net/manual/en/imagick.trimimage.php
+ * @param float $fuzz
+ * By default target must match a particular pixel color exactly.
+ * However, in many cases two colors may differ by a small amount.
+ * The fuzz member of image defines how much tolerance is acceptable
+ * to consider two colors as the same. This parameter represents the variation
+ * on the quantum range.
+ *
+ * @return bool TRUE on success.
+ */
+ public function trimImage ($fuzz) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Applies wave filter to the image
+ * @link https://php.net/manual/en/imagick.waveimage.php
+ * @param float $amplitude
+ * The amplitude of the wave.
+ *
+ * @param float $length
+ * The length of the wave.
+ *
+ * @return bool TRUE on success.
+ */
+ public function waveImage ($amplitude, $length) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds vignette filter to the image
+ * @link https://php.net/manual/en/imagick.vignetteimage.php
+ * @param float $blackPoint
+ * The black point.
+ *
+ * @param float $whitePoint
+ * The white point
+ *
+ * @param int $x
+ * X offset of the ellipse
+ *
+ * @param int $y
+ * Y offset of the ellipse
+ *
+ * @return bool TRUE on success.
+ */
+ public function vignetteImage ($blackPoint, $whitePoint, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Discards all but one of any pixel color
+ * @link https://php.net/manual/en/imagick.uniqueimagecolors.php
+ * @return bool TRUE on success.
+ */
+ public function uniqueImageColors () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Return if the image has a matte channel
+ * @link https://php.net/manual/en/imagick.getimagematte.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[Pure]
+ public function getImageMatte () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image matte channel
+ * @link https://php.net/manual/en/imagick.setimagematte.php
+ * @param bool $matte
+ * True activates the matte channel and false disables it.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageMatte ($matte) {}
+
+ /**
+ * Adaptively resize image with data dependent triangulation
+ *
+ * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does.
+ *
+ * Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched.
+ * In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.
+ * @link https://php.net/manual/en/imagick.adaptiveresizeimage.php
+ * @param int $columns The number of columns in the scaled image.
+ * @param int $rows The number of rows in the scaled image.
+ * @param bool $bestfit [optional] Whether to fit the image inside a bounding box.
+ * The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.
+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE
+ * @return bool TRUE on success
+ * @throws ImagickException Throws ImagickException on error
+ * @since 2.0.0
+ */
+ public function adaptiveResizeImage ($columns, $rows, $bestfit = false, $legacy = false) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Simulates a pencil sketch
+ * @link https://php.net/manual/en/imagick.sketchimage.php
+ * @param float $radius
+ * The radius of the Gaussian, in pixels, not counting the center pixel
+ *
+ * @param float $sigma
+ * The standard deviation of the Gaussian, in pixels.
+ *
+ * @param float $angle
+ * Apply the effect along this angle.
+ *
+ * @return bool TRUE on success.
+ */
+ public function sketchImage ($radius, $sigma, $angle) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a 3D effect
+ * @link https://php.net/manual/en/imagick.shadeimage.php
+ * @param bool $gray
+ * A value other than zero shades the intensity of each pixel.
+ *
+ * @param float $azimuth
+ * Defines the light source direction.
+ *
+ * @param float $elevation
+ * Defines the light source direction.
+ *
+ * @return bool TRUE on success.
+ */
+ public function shadeImage ($gray, $azimuth, $elevation) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the size offset
+ * @link https://php.net/manual/en/imagick.getsizeoffset.php
+ * @return int the size offset associated with the Imagick object.
+ */
+ #[Pure]
+ public function getSizeOffset () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the size and offset of the Imagick object
+ * @link https://php.net/manual/en/imagick.setsizeoffset.php
+ * @param int $columns
+ * The radius of the Gaussian, in pixels, not counting the center pixel.
+ * Provide a value of 0 and the radius will be chosen automagically.
+ *
+ * @param float $sigma
+ * The standard deviation of the Gaussian, in pixels.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function adaptiveBlurImage ($radius, $sigma, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Enhances the contrast of a color image
+ * @link https://php.net/manual/en/imagick.contraststretchimage.php
+ * @param float $black_point
+ * The black point.
+ *
+ * @param float $white_point
+ * The white point.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Imagick::CHANNEL_ALL. Refer to this
+ * list of channel constants.
+ *
+ * The radius of the Gaussian, in pixels, not counting the center pixel. Use 0 for auto-select.
+ *
+ * @param float $sigma
+ * The standard deviation of the Gaussian, in pixels.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function roundCorners ($x_rounding, $y_rounding, $stroke_width = 10.0, $displace = 5.0, $size_correction = -6.0) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Set the iterator position
+ * @link https://php.net/manual/en/imagick.setiteratorindex.php
+ * @param int $index
+ * The position to set the iterator to
+ *
+ * @return bool TRUE on success.
+ */
+ public function setIteratorIndex ($index) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the index of the current active image
+ * @link https://php.net/manual/en/imagick.getiteratorindex.php
+ * @return int an integer containing the index of the image in the stack.
+ */
+ #[Pure]
+ public function getIteratorIndex () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Convenience method for setting crop size and the image geometry
+ * @link https://php.net/manual/en/imagick.transformimage.php
+ * @param string $crop
+ * A crop geometry string. This geometry defines a subregion of the image to crop.
+ *
+ * @param string $geometry
+ * An image geometry string. This geometry defines the final size of the image.
+ *
+ * @return Imagick TRUE on success.
+ */
+ public function transformImage ($crop, $geometry) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image opacity level
+ * @link https://php.net/manual/en/imagick.setimageopacity.php
+ * @param float $opacity
+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully
+ * transparent.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageOpacity ($opacity) {}
+
+ /**
+ * (PECL imagick 2.2.2)
+ * Performs an ordered dither
+ * @link https://php.net/manual/en/imagick.orderedposterizeimage.php
+ * @param string $threshold_map
+ * A string containing the name of the threshold dither map to use
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function polaroidImage (ImagickDraw $properties, $angle) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the named image property
+ * @link https://php.net/manual/en/imagick.getimageproperty.php
+ * @param string $name
+ * name of the property (for example Exif:DateTime)
+ *
+ * @return string|false a string containing the image property, false if a
+ * property with the given name does not exist.
+ */
+ #[Pure]
+ public function getImageProperty ($name) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets an image property
+ * @link https://php.net/manual/en/imagick.setimageproperty.php
+ * @param string $name
+ * @param string $value
+ * @return bool TRUE on success.
+ */
+ public function setImageProperty ($name, $value) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image interpolate pixel method
+ * @link https://php.net/manual/en/imagick.setimageinterpolatemethod.php
+ * @param int $method
+ * The method is one of the Imagick::INTERPOLATE_* constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageInterpolateMethod ($method) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the interpolation method
+ * @link https://php.net/manual/en/imagick.getimageinterpolatemethod.php
+ * @return int the interpolate method on success.
+ */
+ #[Pure]
+ public function getImageInterpolateMethod () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Stretches with saturation the image intensity
+ * @link https://php.net/manual/en/imagick.linearstretchimage.php
+ * @param float $blackPoint
+ * The image black point
+ *
+ * @param float $whitePoint
+ * The image white point
+ *
+ * @return bool TRUE on success.
+ */
+ public function linearStretchImage ($blackPoint, $whitePoint) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image length in bytes
+ * @link https://php.net/manual/en/imagick.getimagelength.php
+ * @return int an int containing the current image size.
+ */
+ #[Pure]
+ public function getImageLength () {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Set image size
+ * @link https://php.net/manual/en/imagick.extentimage.php
+ * @param int $width
+ * The new width
+ *
+ * @param int $height
+ * The new height
+ *
+ * @param int $x
+ * X position for the new size
+ *
+ * @param int $y
+ * Y position for the new size
+ *
+ * @return bool TRUE on success.
+ */
+ public function extentImage ($width, $height, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image orientation
+ * @link https://php.net/manual/en/imagick.getimageorientation.php
+ * @return int an int on success.
+ */
+ #[Pure]
+ public function getImageOrientation () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image orientation
+ * @link https://php.net/manual/en/imagick.setimageorientation.php
+ * @param int $orientation
+ * One of the orientation constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageOrientation ($orientation) {}
+
+ /**
+ * (PECL imagick 2.1.0)
+ * Changes the color value of any pixel that matches target
+ * @link https://php.net/manual/en/imagick.paintfloodfillimage.php
+ * @param mixed $fill
+ * ImagickPixel object or a string containing the fill color
+ *
+ * @param float $fuzz
+ * The amount of fuzz. For example, set fuzz to 10 and the color red at
+ * intensities of 100 and 102 respectively are now interpreted as the
+ * same color for the purposes of the floodfill.
+ *
+ * @param mixed $bordercolor
+ * ImagickPixel object or a string containing the border color
+ *
+ * @param int $x
+ * X start position of the floodfill
+ *
+ * @param int $y
+ * Y start position of the floodfill
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function paintFloodfillImage ($fill, $fuzz, $bordercolor, $x, $y, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Replaces colors in the image from a color lookup table. Optional second parameter to replace colors in a specific channel. This method is available if Imagick has been compiled against ImageMagick version 6.3.6 or newer.
+ * @link https://php.net/manual/en/imagick.clutimage.php
+ * @param Imagick $lookup_table
+ * Imagick object containing the color lookup table
+ *
+ * @param int $channel [optional]
+ * The Channeltype
+ * constant. When not supplied, default channels are replaced.
+ *
+ * Whether to return only property names. If FALSE then also the values are returned
+ *
+ * @return array an array containing the image properties or property names.
+ */
+ #[Pure]
+ public function getImageProperties ($pattern = "*", $only_names = true) {}
+
+ /**
+ * (PECL imagick 2.2.0)
+ * Returns the image profiles
+ * @link https://php.net/manual/en/imagick.getimageprofiles.php
+ * @param string $pattern [optional]
+ * The pattern for profile names.
+ *
+ * @param bool $include_values [optional]
+ * Whether to return only profile names. If FALSE then only profile names will be returned.
+ *
+ * @return array an array containing the image profiles or profile names.
+ */
+ #[Pure]
+ public function getImageProfiles ($pattern = "*", $include_values = true) {}
+
+ /**
+ * (PECL imagick 2.0.1)
+ * Distorts an image using various distortion methods
+ * @link https://php.net/manual/en/imagick.distortimage.php
+ * @param int $method
+ * The method of image distortion. See distortion constants
+ *
+ * @param array $arguments
+ * The arguments for this distortion method
+ *
+ * @param bool $bestfit
+ * Attempt to resize destination to fit distorted source
+ *
+ * @return bool TRUE on success.
+ */
+ public function distortImage ($method, array $arguments, $bestfit) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Writes an image to a filehandle
+ * @link https://php.net/manual/en/imagick.writeimagefile.php
+ * @param resource $filehandle
+ * Filehandle where to write the image
+ *
+ * @return bool TRUE on success.
+ */
+ public function writeImageFile ($filehandle) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Writes frames to a filehandle
+ * @link https://php.net/manual/en/imagick.writeimagesfile.php
+ * @param resource $filehandle
+ * Filehandle where to write the images
+ *
+ * @return bool TRUE on success.
+ */
+ public function writeImagesFile ($filehandle) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Reset image page
+ * @link https://php.net/manual/en/imagick.resetimagepage.php
+ * @param string $page
+ * The page definition. For example 7168x5147+0+0
+ *
+ * @return bool TRUE on success.
+ */
+ public function resetImagePage ($page) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Sets image clip mask
+ * @link https://php.net/manual/en/imagick.setimageclipmask.php
+ * @param Imagick $clip_mask
+ * The Imagick object containing the clip mask
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageClipMask (Imagick $clip_mask) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Gets image clip mask
+ * @link https://php.net/manual/en/imagick.getimageclipmask.php
+ * @return Imagick an Imagick object containing the clip mask.
+ */
+ #[Pure]
+ public function getImageClipMask () {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Animates an image or images
+ * @link https://php.net/manual/en/imagick.animateimages.php
+ * @param string $x_server
+ * X server address
+ *
+ * @return bool TRUE on success.
+ */
+ public function animateImages ($x_server) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Recolors image
+ * @link https://php.net/manual/en/imagick.recolorimage.php
+ * @param array $matrix
+ * The matrix containing the color values
+ *
+ * @return bool TRUE on success.
+ */
+ public function recolorImage (array $matrix) {}
+
+ /**
+ * (PECL imagick 2.1.0)
+ * Sets font
+ * @link https://php.net/manual/en/imagick.setfont.php
+ * @param string $font
+ * Font name or a filename
+ *
+ * @return bool TRUE on success.
+ */
+ public function setFont ($font) {}
+
+ /**
+ * (PECL imagick 2.1.0)
+ * Gets font
+ * @link https://php.net/manual/en/imagick.getfont.php
+ * @return string|false the string containing the font name or FALSE if not font is set.
+ */
+ #[Pure]
+ public function getFont () {}
+
+ /**
+ * (PECL imagick 2.1.0)
+ * Sets point size
+ * @link https://php.net/manual/en/imagick.setpointsize.php
+ * @param float $point_size
+ * Point size
+ *
+ * @return bool TRUE on success.
+ */
+ public function setPointSize ($point_size) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Gets point size
+ * @link https://php.net/manual/en/imagick.getpointsize.php
+ * @return float a float containing the point size.
+ */
+ #[Pure]
+ public function getPointSize () {}
+
+ /**
+ * (PECL imagick 2.1.0)
+ * Merges image layers
+ * @link https://php.net/manual/en/imagick.mergeimagelayers.php
+ * @param int $layer_method
+ * One of the Imagick::LAYERMETHOD_* constants
+ *
+ * @return Imagick Returns an Imagick object containing the merged image.
+ * @throws ImagickException
+ */
+ public function mergeImageLayers ($layer_method) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Sets image alpha channel
+ * @link https://php.net/manual/en/imagick.setimagealphachannel.php
+ * @param int $mode
+ * One of the Imagick::ALPHACHANNEL_* constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageAlphaChannel ($mode) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Changes the color value of any pixel that matches target
+ * @link https://php.net/manual/en/imagick.floodfillpaintimage.php
+ * @param mixed $fill
+ * ImagickPixel object or a string containing the fill color
+ *
+ * @param float $fuzz
+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.
+ *
+ * @param mixed $target
+ * ImagickPixel object or a string containing the target color to paint
+ *
+ * @param int $x
+ * X start position of the floodfill
+ *
+ * @param int $y
+ * Y start position of the floodfill
+ *
+ * @param bool $invert
+ * If TRUE paints any pixel that does not match the target color.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function floodFillPaintImage ($fill, $fuzz, $target, $x, $y, $invert, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Changes the color value of any pixel that matches target
+ * @link https://php.net/manual/en/imagick.opaquepaintimage.php
+ * @param mixed $target
+ * ImagickPixel object or a string containing the color to change
+ *
+ * @param mixed $fill
+ * The replacement color
+ *
+ * @param float $fuzz
+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.
+ *
+ * @param bool $invert
+ * If TRUE paints any pixel that does not match the target color.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function opaquePaintImage ($target, $fill, $fuzz, $invert, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Paints pixels transparent
+ * @link https://php.net/manual/en/imagick.transparentpaintimage.php
+ * @param mixed $target
+ * The target color to paint
+ *
+ * @param float $alpha
+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.
+ *
+ * @param float $fuzz
+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.
+ *
+ * @param bool $invert
+ * If TRUE paints any pixel that does not match the target color.
+ *
+ * @return bool TRUE on success.
+ */
+ public function transparentPaintImage ($target, $alpha, $fuzz, $invert) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Animates an image or images
+ * @link https://php.net/manual/en/imagick.liquidrescaleimage.php
+ * @param int $width
+ * The width of the target size
+ *
+ * @param int $height
+ * The height of the target size
+ *
+ * @param float $delta_x
+ * How much the seam can traverse on x-axis.
+ * Passing 0 causes the seams to be straight.
+ *
+ * @param float $rigidity
+ * Introduces a bias for non-straight seams. This parameter is
+ * typically 0.
+ *
+ * @return bool TRUE on success.
+ */
+ public function liquidRescaleImage ($width, $height, $delta_x, $rigidity) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Enciphers an image
+ * @link https://php.net/manual/en/imagick.encipherimage.php
+ * @param string $passphrase
+ * The passphrase
+ *
+ * @return bool TRUE on success.
+ */
+ public function encipherImage ($passphrase) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Deciphers an image
+ * @link https://php.net/manual/en/imagick.decipherimage.php
+ * @param string $passphrase
+ * The passphrase
+ *
+ * @return bool TRUE on success.
+ */
+ public function decipherImage ($passphrase) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Sets the gravity
+ * @link https://php.net/manual/en/imagick.setgravity.php
+ * @param int $gravity
+ * The gravity property. Refer to the list of
+ * gravity constants.
+ *
+ * @return bool No value is returned.
+ */
+ public function setGravity ($gravity) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Gets the gravity
+ * @link https://php.net/manual/en/imagick.getgravity.php
+ * @return int the gravity property. Refer to the list of
+ * gravity constants.
+ */
+ #[Pure]
+ public function getGravity () {}
+
+ /**
+ * (PECL imagick 2.2.1)
+ * Gets channel range
+ * @link https://php.net/manual/en/imagick.getimagechannelrange.php
+ * @param int $channel
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return array an array containing minima and maxima values of the channel(s).
+ */
+ #[Pure]
+ public function getImageChannelRange ($channel) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Gets the image alpha channel
+ * @link https://php.net/manual/en/imagick.getimagealphachannel.php
+ * @return int a constant defining the current alpha channel value. Refer to this
+ * list of alpha channel constants.
+ */
+ #[Pure]
+ public function getImageAlphaChannel () {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Gets channel distortions
+ * @link https://php.net/manual/en/imagick.getimagechanneldistortions.php
+ * @param Imagick $reference
+ * Imagick object containing the reference image
+ *
+ * @param int $metric
+ * Refer to this list of metric type constants.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return float a float describing the channel distortion.
+ */
+ #[Pure]
+ public function getImageChannelDistortions (Imagick $reference, $metric, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Sets the image gravity
+ * @link https://php.net/manual/en/imagick.setimagegravity.php
+ * @param int $gravity
+ * The gravity property. Refer to the list of
+ * gravity constants.
+ *
+ * @return bool No value is returned.
+ */
+ public function setImageGravity ($gravity) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Gets the image gravity
+ * @link https://php.net/manual/en/imagick.getimagegravity.php
+ * @return int the images gravity property. Refer to the list of
+ * gravity constants.
+ */
+ #[Pure]
+ public function getImageGravity () {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Imports image pixels
+ * @link https://php.net/manual/en/imagick.importimagepixels.php
+ * @param int $x
+ * The image x position
+ *
+ * @param int $y
+ * The image y position
+ *
+ * @param int $width
+ * The image width
+ *
+ * @param int $height
+ * The image height
+ *
+ * @param string $map
+ * Map of pixel ordering as a string. This can be for example RGB.
+ * The value can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent),
+ * O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.
+ *
+ * @param int $storage
+ * The pixel storage method.
+ * Refer to this list of pixel constants.
+ *
+ * @param array $pixels
+ * The array of pixels
+ *
+ * @return bool TRUE on success.
+ */
+ public function importImagePixels ($x, $y, $width, $height, $map, $storage, array $pixels) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Removes skew from the image
+ * @link https://php.net/manual/en/imagick.deskewimage.php
+ * @param float $threshold
+ * Deskew threshold
+ *
+ * @return bool
+ */
+ public function deskewImage ($threshold) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Segments an image
+ * @link https://php.net/manual/en/imagick.segmentimage.php
+ * @param int $COLORSPACE
+ * One of the COLORSPACE constants.
+ *
+ * @param float $cluster_threshold
+ * A percentage describing minimum number of pixels
+ * contained in hexedra before it is considered valid.
+ *
+ * @param float $smooth_threshold
+ * Eliminates noise from the histogram.
+ *
+ * @param bool $verbose [optional]
+ * Whether to output detailed information about recognised classes.
+ *
+ * @return bool
+ */
+ public function segmentImage ($COLORSPACE, $cluster_threshold, $smooth_threshold, $verbose = false) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Interpolates colors
+ * @link https://php.net/manual/en/imagick.sparsecolorimage.php
+ * @param int $SPARSE_METHOD
+ * Refer to this list of sparse method constants
+ *
+ * @param array $arguments
+ * An array containing the coordinates.
+ * The array is in format array(1,1, 2,45)
+ *
+ * @param int $channel [optional]
+ * @return bool TRUE on success.
+ */
+ public function sparseColorImage ($SPARSE_METHOD, array $arguments, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Remaps image colors
+ * @link https://php.net/manual/en/imagick.remapimage.php
+ * @param Imagick $replacement
+ * An Imagick object containing the replacement colors
+ *
+ * @param int $DITHER
+ * Refer to this list of dither method constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function remapImage (Imagick $replacement, $DITHER) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Exports raw image pixels
+ * @link https://php.net/manual/en/imagick.exportimagepixels.php
+ * @param int $x
+ * X-coordinate of the exported area
+ *
+ * @param int $y
+ * Y-coordinate of the exported area
+ *
+ * @param int $width
+ * Width of the exported aread
+ *
+ * @param int $height
+ * Height of the exported area
+ *
+ * @param string $map
+ * Ordering of the exported pixels. For example "RGB".
+ * Valid characters for the map are R, G, B, A, O, C, Y, M, K, I and P.
+ *
+ * @param int $STORAGE
+ * Refer to this list of pixel type constants
+ *
+ * @return array an array containing the pixels values.
+ */
+ public function exportImagePixels ($x, $y, $width, $height, $map, $STORAGE) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * The getImageChannelKurtosis purpose
+ * @link https://php.net/manual/en/imagick.getimagechannelkurtosis.php
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return array an array with kurtosis and skewness
+ * members.
+ */
+ #[Pure]
+ public function getImageChannelKurtosis ($channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Applies a function on the image
+ * @link https://php.net/manual/en/imagick.functionimage.php
+ * @param int $function
+ * Refer to this list of function constants
+ *
+ * @param array $arguments
+ * Array of arguments to pass to this function.
+ *
+ * @param int $channel [optional]
+ * @return bool TRUE on success.
+ */
+ public function functionImage ($function, array $arguments, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * @param $COLORSPACE
+ */
+ public function transformImageColorspace ($COLORSPACE) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Replaces colors in the image
+ * @link https://php.net/manual/en/imagick.haldclutimage.php
+ * @param Imagick $clut
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function haldClutImage (Imagick $clut, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * @param $CHANNEL [optional]
+ */
+ public function autoLevelImage ($CHANNEL) {}
+
+ /**
+ * @link https://www.php.net/manual/en/imagick.blueshiftimage.php
+ * @param float $factor [optional]
+ * @return bool
+ */
+ public function blueShiftImage ($factor) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Get image artifact
+ * @link https://php.net/manual/en/imagick.getimageartifact.php
+ * @param string $artifact
+ * The name of the artifact
+ *
+ * @return string the artifact value on success.
+ */
+ #[Pure]
+ public function getImageArtifact ($artifact) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Set image artifact
+ * @link https://php.net/manual/en/imagick.setimageartifact.php
+ * @param string $artifact
+ * The name of the artifact
+ *
+ * @param string $value
+ * The value of the artifact
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageArtifact ($artifact, $value) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Delete image artifact
+ * @link https://php.net/manual/en/imagick.deleteimageartifact.php
+ * @param string $artifact
+ * The name of the artifact to delete
+ *
+ * @return bool TRUE on success.
+ */
+ public function deleteImageArtifact ($artifact) {}
+
+ /**
+ * (PECL imagick 0.9.10-0.9.9)
+ * Gets the colorspace
+ * @link https://php.net/manual/en/imagick.getcolorspace.php
+ * @return int an integer which can be compared against COLORSPACE constants.
+ */
+ #[Pure]
+ public function getColorspace () {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Set colorspace
+ * @link https://php.net/manual/en/imagick.setcolorspace.php
+ * @param int $COLORSPACE
+ * One of the COLORSPACE constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function setColorspace ($COLORSPACE) {}
+
+ /**
+ * @param $CHANNEL [optional]
+ */
+ public function clampImage ($CHANNEL) {}
+
+ /**
+ * @param bool $stack
+ * @param int $offset
+ * @return Imagick
+ */
+ public function smushImages ($stack, $offset) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * The Imagick constructor
+ * @link https://php.net/manual/en/imagick.construct.php
+ * @param mixed $files
+ * The path to an image to load or an array of paths. Paths can include
+ * wildcards for file names, or can be URLs.
+ *
+ * @throws ImagickException Throws ImagickException on error.
+ */
+ public function __construct ($files = null) {}
+
+ /**
+ * @return string
+ */
+ public function __toString () {}
+
+ public function count () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a MagickPixelIterator
+ * @link https://php.net/manual/en/imagick.getpixeliterator.php
+ * @return ImagickPixelIterator an ImagickPixelIterator on success.
+ */
+ #[Pure]
+ public function getPixelIterator () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Get an ImagickPixelIterator for an image section
+ * @link https://php.net/manual/en/imagick.getpixelregioniterator.php
+ * @param int $x
+ * The x-coordinate of the region.
+ *
+ * @param int $y
+ * The y-coordinate of the region.
+ *
+ * @param int $columns
+ * The width of the region.
+ *
+ * @param int $rows
+ * The height of the region.
+ *
+ * @return ImagickPixelIterator an ImagickPixelIterator for an image section.
+ */
+ #[Pure]
+ public function getPixelRegionIterator ($x, $y, $columns, $rows) {}
+
+ /**
+ * (PECL imagick 0.9.0-0.9.9)
+ * Reads image from filename
+ * @link https://php.net/manual/en/imagick.readimage.php
+ * @param string $filename
+ * @return bool TRUE on success.
+ * @throws ImagickException Throws ImagickException on error.
+ */
+ public function readImage ($filename) {}
+
+ /**
+ * @param $filenames
+ * @throws ImagickException Throws ImagickException on error.
+ */
+ public function readImages ($filenames) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Reads image from a binary string
+ * @link https://php.net/manual/en/imagick.readimageblob.php
+ * @param string $image
+ * @param string $filename [optional]
+ * @return bool TRUE on success.
+ * @throws ImagickException Throws ImagickException on error.
+ */
+ public function readImageBlob ($image, $filename = null) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the format of a particular image
+ * @link https://php.net/manual/en/imagick.setimageformat.php
+ * @param string $format
+ * String presentation of the image format. Format support
+ * depends on the ImageMagick installation.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageFormat ($format) {}
+
+ /**
+ * Scales the size of an image to the given dimensions. Passing zero as either of the arguments will preserve dimension while scaling.
+ * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does.
+ * @link https://php.net/manual/en/imagick.scaleimage.php
+ * @param int $cols
+ * @param int $rows
+ * @param bool $bestfit [optional] The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.
+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE
+ * @return bool TRUE on success.
+ * @throws ImagickException Throws ImagickException on error
+ * @since 2.0.0
+ */
+ public function scaleImage ($cols, $rows, $bestfit = false, $legacy = false) {}
+
+ /**
+ * (PECL imagick 0.9.0-0.9.9)
+ * Writes an image to the specified filename
+ * @link https://php.net/manual/en/imagick.writeimage.php
+ * @param string $filename [optional]
+ * Filename where to write the image. The extension of the filename
+ * defines the type of the file.
+ * Format can be forced regardless of file extension using format: prefix,
+ * for example "jpg:test.png".
+ *
+ * @return bool TRUE on success.
+ */
+ public function writeImage ($filename = null) {}
+
+ /**
+ * (PECL imagick 0.9.0-0.9.9)
+ * Writes an image or image sequence
+ * @link https://php.net/manual/en/imagick.writeimages.php
+ * @param string $filename
+ * @param bool $adjoin
+ * @return bool TRUE on success.
+ */
+ public function writeImages ($filename, $adjoin) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds blur filter to image
+ * @link https://php.net/manual/en/imagick.blurimage.php
+ * @param float $radius
+ * Blur radius
+ *
+ * @param float $sigma
+ * Standard deviation
+ *
+ * @param int $channel [optional]
+ * The Channeltype
+ * constant. When not supplied, all channels are blurred.
+ *
+ * @return bool TRUE on success.
+ */
+ public function blurImage ($radius, $sigma, $channel = null) {}
+
+ /**
+ * Changes the size of an image to the given dimensions and removes any associated profiles.
+ * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does.
+ *
+ * Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.
+ * @link https://php.net/manual/en/imagick.thumbnailimage.php
+ * @param int $columns
+ * Image width
+ *
+ * @param int $rows
+ * Image height
+ *
+ * @param bool $bestfit [optional]
+ * Whether to force maximum values
+ *
+ * The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.
+ * @param bool $fill [optional]
+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE
+ * @return bool TRUE on success.
+ * @since 2.0.0
+ */
+ public function thumbnailImage ($columns, $rows, $bestfit = false, $fill = false, $legacy = false) {}
+
+ /**
+ * Creates a cropped thumbnail at the requested size.
+ * If legacy is true, uses the incorrect behaviour that was present until Imagick 3.4.0.
+ * If false it uses the correct behaviour.
+ * @link https://php.net/manual/en/imagick.cropthumbnailimage.php
+ * @param int $width The width of the thumbnail
+ * @param int $height The Height of the thumbnail
+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE
+ * @return bool TRUE on succes
+ * @throws ImagickException Throws ImagickException on error
+ * @since 2.0.0
+ */
+ public function cropThumbnailImage ($width, $height, $legacy = false) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the filename of a particular image in a sequence
+ * @link https://php.net/manual/en/imagick.getimagefilename.php
+ * @return string a string with the filename of the image.
+ */
+ #[Pure]
+ public function getImageFilename () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the filename of a particular image
+ * @link https://php.net/manual/en/imagick.setimagefilename.php
+ * @param string $filename
+ * @return bool TRUE on success.
+ */
+ public function setImageFilename ($filename) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the format of a particular image in a sequence
+ * @link https://php.net/manual/en/imagick.getimageformat.php
+ * @return string a string containing the image format on success.
+ */
+ #[Pure]
+ public function getImageFormat () {}
+
+ /**
+ * @link https://secure.php.net/manual/en/imagick.getimagemimetype.php
+ * @return string Returns the image mime-type.
+ */
+ #[Pure]
+ public function getImageMimeType () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Removes an image from the image list
+ * @link https://php.net/manual/en/imagick.removeimage.php
+ * @return bool TRUE on success.
+ */
+ public function removeImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Destroys the Imagick object
+ * @link https://php.net/manual/en/imagick.destroy.php
+ * @return bool TRUE on success.
+ */
+ public function destroy () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Clears all resources associated to Imagick object
+ * @link https://php.net/manual/en/imagick.clear.php
+ * @return bool TRUE on success.
+ */
+ public function clear () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image length in bytes
+ * @link https://php.net/manual/en/imagick.getimagesize.php
+ * @return int an int containing the current image size.
+ */
+ #[Deprecated(replacement: "%class%->getImageLength()")]
+ #[Pure]
+ public function getImageSize () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image sequence as a blob
+ * @link https://php.net/manual/en/imagick.getimageblob.php
+ * @return string a string containing the image.
+ */
+ #[Pure]
+ public function getImageBlob () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns all image sequences as a blob
+ * @link https://php.net/manual/en/imagick.getimagesblob.php
+ * @return string a string containing the images. On failure, throws ImagickException on failure
+ * @throws ImagickException on failure
+ */
+ #[Pure]
+ public function getImagesBlob () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the Imagick iterator to the first image
+ * @link https://php.net/manual/en/imagick.setfirstiterator.php
+ * @return bool TRUE on success.
+ */
+ public function setFirstIterator () {}
+
+ /**
+ * (PECL imagick 2.0.1)
+ * Sets the Imagick iterator to the last image
+ * @link https://php.net/manual/en/imagick.setlastiterator.php
+ * @return bool TRUE on success.
+ */
+ public function setLastIterator () {}
+
+ public function resetIterator () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Move to the previous image in the object
+ * @link https://php.net/manual/en/imagick.previousimage.php
+ * @return bool TRUE on success.
+ */
+ public function previousImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Moves to the next image
+ * @link https://php.net/manual/en/imagick.nextimage.php
+ * @return bool TRUE on success.
+ */
+ public function nextImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Checks if the object has a previous image
+ * @link https://php.net/manual/en/imagick.haspreviousimage.php
+ * @return bool TRUE if the object has more images when traversing the list in the
+ * reverse direction, returns FALSE if there are none.
+ */
+ public function hasPreviousImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Checks if the object has more images
+ * @link https://php.net/manual/en/imagick.hasnextimage.php
+ * @return bool TRUE if the object has more images when traversing the list in the
+ * forward direction, returns FALSE if there are none.
+ */
+ public function hasNextImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Set the iterator position
+ * @link https://php.net/manual/en/imagick.setimageindex.php
+ * @param int $index
+ * The position to set the iterator to
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageIndex ($index) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the index of the current active image
+ * @link https://php.net/manual/en/imagick.getimageindex.php
+ * @return int an integer containing the index of the image in the stack.
+ */
+ #[Pure]
+ public function getImageIndex () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds a comment to your image
+ * @link https://php.net/manual/en/imagick.commentimage.php
+ * @param string $comment
+ * The comment to add
+ *
+ * @return bool TRUE on success.
+ */
+ public function commentImage ($comment) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Extracts a region of the image
+ * @link https://php.net/manual/en/imagick.cropimage.php
+ * @param int $width
+ * The width of the crop
+ *
+ * @param int $height
+ * The height of the crop
+ *
+ * @param int $x
+ * The X coordinate of the cropped region's top left corner
+ *
+ * @param int $y
+ * The Y coordinate of the cropped region's top left corner
+ *
+ * @return bool TRUE on success.
+ */
+ public function cropImage ($width, $height, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds a label to an image
+ * @link https://php.net/manual/en/imagick.labelimage.php
+ * @param string $label
+ * The label to add
+ *
+ * @return bool TRUE on success.
+ */
+ public function labelImage ($label) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the width and height as an associative array
+ * @link https://php.net/manual/en/imagick.getimagegeometry.php
+ * @return array an array with the width/height of the image.
+ */
+ #[Pure]
+ public function getImageGeometry () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Renders the ImagickDraw object on the current image
+ * @link https://php.net/manual/en/imagick.drawimage.php
+ * @param ImagickDraw $draw
+ * The drawing operations to render on the image.
+ *
+ * @return bool TRUE on success.
+ */
+ public function drawImage (ImagickDraw $draw) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Sets the image compression quality
+ * @link https://php.net/manual/en/imagick.setimagecompressionquality.php
+ * @param int $quality
+ * The image compression quality as an integer
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageCompressionQuality ($quality) {}
+
+ /**
+ * (PECL imagick 2.2.2)
+ * Gets the current image's compression quality
+ * @link https://php.net/manual/en/imagick.getimagecompressionquality.php
+ * @return int integer describing the images compression quality
+ */
+ #[Pure]
+ public function getImageCompressionQuality () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Annotates an image with text
+ * @link https://php.net/manual/en/imagick.annotateimage.php
+ * @param ImagickDraw $draw_settings
+ * The ImagickDraw object that contains settings for drawing the text
+ *
+ * @param float $x
+ * Horizontal offset in pixels to the left of text
+ *
+ * @param float $y
+ * Vertical offset in pixels to the baseline of text
+ *
+ * @param float $angle
+ * The angle at which to write the text
+ *
+ * @param string $text
+ * The string to draw
+ *
+ * @return bool TRUE on success.
+ */
+ public function annotateImage (ImagickDraw $draw_settings, $x, $y, $angle, $text) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Composite one image onto another
+ * @link https://php.net/manual/en/imagick.compositeimage.php
+ * @param Imagick $composite_object
+ * Imagick object which holds the composite image
+ *
+ * @param int $composite Composite operator
+ * @param int $x
+ * The column offset of the composited image
+ *
+ * @param int $y
+ * The row offset of the composited image
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function compositeImage (Imagick $composite_object, $composite, $x, $y, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Control the brightness, saturation, and hue
+ * @link https://php.net/manual/en/imagick.modulateimage.php
+ * @param float $brightness
+ * @param float $saturation
+ * @param float $hue
+ * @return bool TRUE on success.
+ */
+ public function modulateImage ($brightness, $saturation, $hue) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the number of unique colors in the image
+ * @link https://php.net/manual/en/imagick.getimagecolors.php
+ * @return int TRUE on success.
+ */
+ #[Pure]
+ public function getImageColors () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a composite image
+ * @link https://php.net/manual/en/imagick.montageimage.php
+ * @param ImagickDraw $draw
+ * The font name, size, and color are obtained from this object.
+ *
+ * @param string $tile_geometry
+ * The number of tiles per row and page (e.g. 6x4+0+0).
+ *
+ * @param string $thumbnail_geometry
+ * Preferred image size and border size of each thumbnail
+ * (e.g. 120x120+4+3>).
+ *
+ * Surround the image with an ornamental border (e.g. 15x15+3+3). The
+ * frame color is that of the thumbnail's matte color.
+ *
+ * @return Imagick TRUE on success.
+ */
+ public function montageImage (ImagickDraw $draw, $tile_geometry, $thumbnail_geometry, $mode, $frame) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Identifies an image and fetches attributes
+ * @link https://php.net/manual/en/imagick.identifyimage.php
+ * @param bool $appendRawOutput [optional]
+ * @return array Identifies an image and returns the attributes. Attributes include
+ * the image width, height, size, and others.
+ */
+ public function identifyImage ($appendRawOutput = false) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Changes the value of individual pixels based on a threshold
+ * @link https://php.net/manual/en/imagick.thresholdimage.php
+ * @param float $threshold
+ * @param int $channel [optional]
+ * @return bool TRUE on success.
+ */
+ public function thresholdImage ($threshold, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Selects a threshold for each pixel based on a range of intensity
+ * @link https://php.net/manual/en/imagick.adaptivethresholdimage.php
+ * @param int $width
+ * Width of the local neighborhood.
+ *
+ * @param int $height
+ * Height of the local neighborhood.
+ *
+ * @param int $offset
+ * The mean offset
+ *
+ * @return bool TRUE on success.
+ */
+ public function adaptiveThresholdImage ($width, $height, $offset) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Forces all pixels below the threshold into black
+ * @link https://php.net/manual/en/imagick.blackthresholdimage.php
+ * @param mixed $threshold
+ * The threshold below which everything turns black
+ *
+ * @return bool TRUE on success.
+ */
+ public function blackThresholdImage ($threshold) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Force all pixels above the threshold into white
+ * @link https://php.net/manual/en/imagick.whitethresholdimage.php
+ * @param mixed $threshold
+ * @return bool TRUE on success.
+ */
+ public function whiteThresholdImage ($threshold) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Append a set of images
+ * @link https://php.net/manual/en/imagick.appendimages.php
+ * @param bool $stack [optional]
+ * Whether to stack the images vertically.
+ * By default (or if FALSE is specified) images are stacked left-to-right.
+ * If stack is TRUE, images are stacked top-to-bottom.
+ *
+ * The radius of the Gaussian, in pixels, not counting the center pixel
+ *
+ * @param float $sigma
+ * The standard deviation of the Gaussian, in pixels
+ *
+ * @return bool TRUE on success.
+ */
+ public function charcoalImage ($radius, $sigma) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Enhances the contrast of a color image
+ * @link https://php.net/manual/en/imagick.normalizeimage.php
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function normalizeImage ($channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Simulates an oil painting
+ * @link https://php.net/manual/en/imagick.oilpaintimage.php
+ * @param float $radius
+ * The radius of the circular neighborhood.
+ *
+ * @return bool TRUE on success.
+ */
+ public function oilPaintImage ($radius) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Reduces the image to a limited number of color level
+ * @link https://php.net/manual/en/imagick.posterizeimage.php
+ * @param int $levels
+ * @param bool $dither
+ * @return bool TRUE on success.
+ */
+ public function posterizeImage ($levels, $dither) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Radial blurs an image
+ * @link https://php.net/manual/en/imagick.radialblurimage.php
+ * @param float $angle
+ * @param int $channel [optional]
+ * @return bool TRUE on success.
+ */
+ public function radialBlurImage ($angle, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a simulated 3d button-like effect
+ * @link https://php.net/manual/en/imagick.raiseimage.php
+ * @param int $width
+ * @param int $height
+ * @param int $x
+ * @param int $y
+ * @param bool $raise
+ * @return bool TRUE on success.
+ */
+ public function raiseImage ($width, $height, $x, $y, $raise) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Resample image to desired resolution
+ * @link https://php.net/manual/en/imagick.resampleimage.php
+ * @param float $x_resolution
+ * @param float $y_resolution
+ * @param int $filter
+ * @param float $blur
+ * @return bool TRUE on success.
+ */
+ public function resampleImage ($x_resolution, $y_resolution, $filter, $blur) {}
+
+ /**
+ * Scales an image to the desired dimensions with one of these filters:
+ * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.
+ * If false, the calculations should produce the same results as ImageMagick CLI does.
+ *
+ * Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched.
+ * In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.
+ * @link https://php.net/manual/en/imagick.resizeimage.php
+ * @param int $columns Width of the image
+ * @param int $rows Height of the image
+ * @param int $filter Refer to the list of filter constants.
+ * @param float $blur The blur factor where > 1 is blurry, < 1 is sharp.
+ * @param bool $bestfit [optional] Added since 2.1.0. Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling
+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE
+ * @return bool TRUE on success
+ * @since 2.0.0
+ */
+ public function resizeImage ($columns, $rows, $filter, $blur, $bestfit = false, $legacy = false) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Offsets an image
+ * @link https://php.net/manual/en/imagick.rollimage.php
+ * @param int $x
+ * The X offset.
+ *
+ * @param int $y
+ * The Y offset.
+ *
+ * @return bool TRUE on success.
+ */
+ public function rollImage ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Rotates an image
+ * @link https://php.net/manual/en/imagick.rotateimage.php
+ * @param mixed $background
+ * The background color
+ *
+ * @param float $degrees
+ * The number of degrees to rotate the image
+ *
+ * @return bool TRUE on success.
+ */
+ public function rotateImage ($background, $degrees) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Scales an image with pixel sampling
+ * @link https://php.net/manual/en/imagick.sampleimage.php
+ * @param int $columns
+ * @param int $rows
+ * @return bool TRUE on success.
+ */
+ public function sampleImage ($columns, $rows) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Applies a solarizing effect to the image
+ * @link https://php.net/manual/en/imagick.solarizeimage.php
+ * @param int $threshold
+ * @return bool TRUE on success.
+ */
+ public function solarizeImage ($threshold) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Simulates an image shadow
+ * @link https://php.net/manual/en/imagick.shadowimage.php
+ * @param float $opacity
+ * @param float $sigma
+ * @param int $x
+ * @param int $y
+ * @return bool TRUE on success.
+ */
+ public function shadowImage ($opacity, $sigma, $x, $y) {}
+
+ /**
+ * @param string $key
+ * @param string $value
+ * @return bool
+ */
+ public function setImageAttribute ($key, $value) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image background color
+ * @link https://php.net/manual/en/imagick.setimagebackgroundcolor.php
+ * @param mixed $background
+ * @return bool TRUE on success.
+ */
+ public function setImageBackgroundColor ($background) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image composite operator
+ * @link https://php.net/manual/en/imagick.setimagecompose.php
+ * @param int $compose
+ * @return bool TRUE on success.
+ */
+ public function setImageCompose ($compose) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image compression
+ * @link https://php.net/manual/en/imagick.setimagecompression.php
+ * @param int $compression
+ * One of the COMPRESSION constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageCompression ($compression) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image delay
+ * @link https://php.net/manual/en/imagick.setimagedelay.php
+ * @param int $delay
+ * The amount of time expressed in 'ticks' that the image should be
+ * displayed for. For animated GIFs there are 100 ticks per second, so a
+ * value of 20 would be 20/100 of a second aka 1/5th of a second.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageDelay ($delay) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image depth
+ * @link https://php.net/manual/en/imagick.setimagedepth.php
+ * @param int $depth
+ * @return bool TRUE on success.
+ */
+ public function setImageDepth ($depth) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image gamma
+ * @link https://php.net/manual/en/imagick.setimagegamma.php
+ * @param float $gamma
+ * @return bool TRUE on success.
+ */
+ public function setImageGamma ($gamma) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image iterations
+ * @link https://php.net/manual/en/imagick.setimageiterations.php
+ * @param int $iterations
+ * The number of iterations the image should loop over. Set to '0' to loop
+ * continuously.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageIterations ($iterations) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image matte color
+ * @link https://php.net/manual/en/imagick.setimagemattecolor.php
+ * @param mixed $matte
+ * @return bool TRUE on success.
+ */
+ public function setImageMatteColor ($matte) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the page geometry of the image
+ * @link https://php.net/manual/en/imagick.setimagepage.php
+ * @param int $width
+ * @param int $height
+ * @param int $x
+ * @param int $y
+ * @return bool TRUE on success.
+ */
+ public function setImagePage ($width, $height, $x, $y) {}
+
+ /**
+ * @param $filename
+ */
+ public function setImageProgressMonitor ($filename) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image resolution
+ * @link https://php.net/manual/en/imagick.setimageresolution.php
+ * @param float $x_resolution
+ * @param float $y_resolution
+ * @return bool TRUE on success.
+ */
+ public function setImageResolution ($x_resolution, $y_resolution) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image scene
+ * @link https://php.net/manual/en/imagick.setimagescene.php
+ * @param int $scene
+ * @return bool TRUE on success.
+ */
+ public function setImageScene ($scene) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image ticks-per-second
+ * @link https://php.net/manual/en/imagick.setimagetickspersecond.php
+ * @param int $ticks_per_second
+ * The duration for which an image should be displayed expressed in ticks
+ * per second.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageTicksPerSecond ($ticks_per_second) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image type
+ * @link https://php.net/manual/en/imagick.setimagetype.php
+ * @param int $image_type
+ * @return bool TRUE on success.
+ */
+ public function setImageType ($image_type) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image units of resolution
+ * @link https://php.net/manual/en/imagick.setimageunits.php
+ * @param int $units
+ * @return bool TRUE on success.
+ */
+ public function setImageUnits ($units) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sharpens an image
+ * @link https://php.net/manual/en/imagick.sharpenimage.php
+ * @param float $radius
+ * @param float $sigma
+ * @param int $channel [optional]
+ * @return bool TRUE on success.
+ */
+ public function sharpenImage ($radius, $sigma, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Shaves pixels from the image edges
+ * @link https://php.net/manual/en/imagick.shaveimage.php
+ * @param int $columns
+ * @param int $rows
+ * @return bool TRUE on success.
+ */
+ public function shaveImage ($columns, $rows) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creating a parallelogram
+ * @link https://php.net/manual/en/imagick.shearimage.php
+ * @param mixed $background
+ * The background color
+ *
+ * @param float $x_shear
+ * The number of degrees to shear on the x axis
+ *
+ * @param float $y_shear
+ * The number of degrees to shear on the y axis
+ *
+ * @return bool TRUE on success.
+ */
+ public function shearImage ($background, $x_shear, $y_shear) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Splices a solid color into the image
+ * @link https://php.net/manual/en/imagick.spliceimage.php
+ * @param int $width
+ * @param int $height
+ * @param int $x
+ * @param int $y
+ * @return bool TRUE on success.
+ */
+ public function spliceImage ($width, $height, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Fetch basic attributes about the image
+ * @link https://php.net/manual/en/imagick.pingimage.php
+ * @param string $filename
+ * The filename to read the information from.
+ *
+ * @return bool TRUE on success.
+ */
+ public function pingImage ($filename) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Reads image from open filehandle
+ * @link https://php.net/manual/en/imagick.readimagefile.php
+ * @param resource $filehandle
+ * @param string $fileName [optional]
+ * @return bool TRUE on success.
+ */
+ public function readImageFile ($filehandle, $fileName = null) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Displays an image
+ * @link https://php.net/manual/en/imagick.displayimage.php
+ * @param string $servername
+ * The X server name
+ *
+ * @return bool TRUE on success.
+ */
+ public function displayImage ($servername) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Displays an image or image sequence
+ * @link https://php.net/manual/en/imagick.displayimages.php
+ * @param string $servername
+ * The X server name
+ *
+ * @return bool TRUE on success.
+ */
+ public function displayImages ($servername) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Randomly displaces each pixel in a block
+ * @link https://php.net/manual/en/imagick.spreadimage.php
+ * @param float $radius
+ * @return bool TRUE on success.
+ */
+ public function spreadImage ($radius) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Swirls the pixels about the center of the image
+ * @link https://php.net/manual/en/imagick.swirlimage.php
+ * @param float $degrees
+ * @return bool TRUE on success.
+ */
+ public function swirlImage ($degrees) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Strips an image of all profiles and comments
+ * @link https://php.net/manual/en/imagick.stripimage.php
+ * @return bool TRUE on success.
+ */
+ public function stripImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns formats supported by Imagick
+ * @link https://php.net/manual/en/imagick.queryformats.php
+ * @param string $pattern [optional]
+ * @return array an array containing the formats supported by Imagick.
+ */
+ public static function queryFormats ($pattern = "*") {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the configured fonts
+ * @link https://php.net/manual/en/imagick.queryfonts.php
+ * @param string $pattern [optional]
+ * The query pattern
+ *
+ * @return array an array containing the configured fonts.
+ */
+ public static function queryFonts ($pattern = "*") {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns an array representing the font metrics
+ * @link https://php.net/manual/en/imagick.queryfontmetrics.php
+ * @param ImagickDraw $properties
+ * ImagickDraw object containing font properties
+ *
+ * @param string $text
+ * The text
+ *
+ * @param bool $multiline [optional]
+ * Multiline parameter. If left empty it is autodetected
+ *
+ * @return array a multi-dimensional array representing the font metrics.
+ */
+ public function queryFontMetrics (ImagickDraw $properties, $text, $multiline = null) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Hides a digital watermark within the image
+ * @link https://php.net/manual/en/imagick.steganoimage.php
+ * @param Imagick $watermark_wand
+ * @param int $offset
+ * @return Imagick TRUE on success.
+ */
+ public function steganoImage (Imagick $watermark_wand, $offset) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds random noise to the image
+ * @link https://php.net/manual/en/imagick.addnoiseimage.php
+ * @param int $noise_type
+ * The type of the noise. Refer to this list of
+ * noise constants.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * The radius of the Gaussian, in pixels, not counting the center pixel.
+ *
+ * @param float $sigma
+ * The standard deviation of the Gaussian, in pixels.
+ *
+ * @param float $angle
+ * Apply the effect along this angle.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ * The channel argument affects only if Imagick is compiled against ImageMagick version
+ * 6.4.4 or greater.
+ *
+ * @return bool TRUE on success.
+ */
+ public function motionBlurImage ($radius, $sigma, $angle, $channel = Imagick::CHANNEL_DEFAULT) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Forms a mosaic from images
+ * @link https://php.net/manual/en/imagick.mosaicimages.php
+ * @return Imagick TRUE on success.
+ */
+ public function mosaicImages () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Method morphs a set of images
+ * @link https://php.net/manual/en/imagick.morphimages.php
+ * @param int $number_frames
+ * The number of in-between images to generate.
+ *
+ * @return Imagick This method returns a new Imagick object on success.
+ * Throw an ImagickException on error.
+ * @throws ImagickException on error
+ */
+ public function morphImages ($number_frames) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Scales an image proportionally to half its size
+ * @link https://php.net/manual/en/imagick.minifyimage.php
+ * @return bool TRUE on success.
+ */
+ public function minifyImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Transforms an image
+ * @link https://php.net/manual/en/imagick.affinetransformimage.php
+ * @param ImagickDraw $matrix
+ * The affine matrix
+ *
+ * @return bool TRUE on success.
+ */
+ public function affineTransformImage (ImagickDraw $matrix) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Average a set of images
+ * @link https://php.net/manual/en/imagick.averageimages.php
+ * @return Imagick a new Imagick object on success.
+ */
+ public function averageImages () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Surrounds the image with a border
+ * @link https://php.net/manual/en/imagick.borderimage.php
+ * @param mixed $bordercolor
+ * ImagickPixel object or a string containing the border color
+ *
+ * @param int $width
+ * Border width
+ *
+ * @param int $height
+ * Border height
+ *
+ * @return bool TRUE on success.
+ */
+ public function borderImage ($bordercolor, $width, $height) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Removes a region of an image and trims
+ * @link https://php.net/manual/en/imagick.chopimage.php
+ * @param int $width
+ * Width of the chopped area
+ *
+ * @param int $height
+ * Height of the chopped area
+ *
+ * @param int $x
+ * X origo of the chopped area
+ *
+ * @param int $y
+ * Y origo of the chopped area
+ *
+ * @return bool TRUE on success.
+ */
+ public function chopImage ($width, $height, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Clips along the first path from the 8BIM profile
+ * @link https://php.net/manual/en/imagick.clipimage.php
+ * @return bool TRUE on success.
+ */
+ public function clipImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Clips along the named paths from the 8BIM profile
+ * @link https://php.net/manual/en/imagick.clippathimage.php
+ * @param string $pathname
+ * The name of the path
+ *
+ * @param bool $inside
+ * If TRUE later operations take effect inside clipping path.
+ * Otherwise later operations take effect outside clipping path.
+ *
+ * @return bool TRUE on success.
+ */
+ public function clipPathImage ($pathname, $inside) {}
+
+ /**
+ * @param string $pathname
+ * @param string $inside
+ */
+ public function clipImagePath ($pathname, $inside) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Composites a set of images
+ * @link https://php.net/manual/en/imagick.coalesceimages.php
+ * @return Imagick a new Imagick object on success.
+ */
+ public function coalesceImages () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Changes the color value of any pixel that matches target
+ * @link https://php.net/manual/en/imagick.colorfloodfillimage.php
+ * @param mixed $fill
+ * ImagickPixel object containing the fill color
+ *
+ * @param float $fuzz
+ * The amount of fuzz. For example, set fuzz to 10 and the color red at
+ * intensities of 100 and 102 respectively are now interpreted as the
+ * same color for the purposes of the floodfill.
+ *
+ * @param mixed $bordercolor
+ * ImagickPixel object containing the border color
+ *
+ * @param int $x
+ * X start position of the floodfill
+ *
+ * @param int $y
+ * Y start position of the floodfill
+ *
+ * @return bool TRUE on success.
+ */
+ public function colorFloodfillImage ($fill, $fuzz, $bordercolor, $x, $y) {}
+
+ /**
+ * Blends the fill color with each pixel in the image. The 'opacity' color is a per channel strength factor for how strongly the color should be applied.
+ * If legacy is true, the behaviour of this function is incorrect, but consistent with how it behaved before Imagick version 3.4.0
+ * @link https://php.net/manual/en/imagick.colorizeimage.php
+ * @param mixed $colorize
+ * ImagickPixel object or a string containing the colorize color
+ *
+ * @param mixed $opacity
+ * ImagickPixel object or an float containing the opacity value.
+ * 1.0 is fully opaque and 0.0 is fully transparent.
+ *
+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE
+ * @return bool TRUE on success.
+ * @throws ImagickException Throws ImagickException on error
+ * @since 2.0.0
+ */
+ public function colorizeImage ($colorize, $opacity, $legacy = false) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the difference in one or more images
+ * @link https://php.net/manual/en/imagick.compareimagechannels.php
+ * @param Imagick $image
+ * Imagick object containing the image to compare.
+ *
+ * @param int $channelType
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @param int $metricType
+ * One of the metric type constants.
+ *
+ * @return array Array consisting of new_wand and
+ * distortion.
+ */
+ public function compareImageChannels (Imagick $image, $channelType, $metricType) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Compares an image to a reconstructed image
+ * @link https://php.net/manual/en/imagick.compareimages.php
+ * @param Imagick $compare
+ * An image to compare to.
+ *
+ * @param int $metric
+ * Provide a valid metric type constant. Refer to this
+ * list of metric constants.
+ *
+ * @return array Array consisting of an Imagick object of the
+ * reconstructed image and a float representing the difference.
+ * @throws ImagickException Throws ImagickException on error.
+ */
+ public function compareImages (Imagick $compare, $metric) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Change the contrast of the image
+ * @link https://php.net/manual/en/imagick.contrastimage.php
+ * @param bool $sharpen
+ * The sharpen value
+ *
+ * @return bool TRUE on success.
+ */
+ public function contrastImage ($sharpen) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Combines one or more images into a single image
+ * @link https://php.net/manual/en/imagick.combineimages.php
+ * @param int $channelType
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return Imagick TRUE on success.
+ */
+ public function combineImages ($channelType) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Applies a custom convolution kernel to the image
+ * @link https://php.net/manual/en/imagick.convolveimage.php
+ * @param array $kernel
+ * The convolution kernel
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function convolveImage (array $kernel, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Displaces an image's colormap
+ * @link https://php.net/manual/en/imagick.cyclecolormapimage.php
+ * @param int $displace
+ * The amount to displace the colormap.
+ *
+ * @return bool TRUE on success.
+ */
+ public function cycleColormapImage ($displace) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns certain pixel differences between images
+ * @link https://php.net/manual/en/imagick.deconstructimages.php
+ * @return Imagick a new Imagick object on success.
+ */
+ public function deconstructImages () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Reduces the speckle noise in an image
+ * @link https://php.net/manual/en/imagick.despeckleimage.php
+ * @return bool TRUE on success.
+ */
+ public function despeckleImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Enhance edges within the image
+ * @link https://php.net/manual/en/imagick.edgeimage.php
+ * @param float $radius
+ * The radius of the operation.
+ *
+ * @return bool TRUE on success.
+ */
+ public function edgeImage ($radius) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a grayscale image with a three-dimensional effect
+ * @link https://php.net/manual/en/imagick.embossimage.php
+ * @param float $radius
+ * The radius of the effect
+ *
+ * @param float $sigma
+ * The sigma of the effect
+ *
+ * @return bool TRUE on success.
+ */
+ public function embossImage ($radius, $sigma) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Improves the quality of a noisy image
+ * @link https://php.net/manual/en/imagick.enhanceimage.php
+ * @return bool TRUE on success.
+ */
+ public function enhanceImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Equalizes the image histogram
+ * @link https://php.net/manual/en/imagick.equalizeimage.php
+ * @return bool TRUE on success.
+ */
+ public function equalizeImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Applies an expression to an image
+ * @link https://php.net/manual/en/imagick.evaluateimage.php
+ * @param int $op
+ * The evaluation operator
+ *
+ * @param float $constant
+ * The value of the operator
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function evaluateImage ($op, $constant, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * Merges a sequence of images. This is useful for combining Photoshop layers into a single image.
+ * This is replaced by:
+ *
+ * @link https://php.net/manual/en/imagick.flattenimages.php
+ * @return Imagick Returns an Imagick object containing the merged image.
+ * @throws ImagickException Throws ImagickException on error.
+ * @since 2.0.0
+ */
+ public function flattenImages () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a vertical mirror image
+ * @link https://php.net/manual/en/imagick.flipimage.php
+ * @return bool TRUE on success.
+ */
+ public function flipImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a horizontal mirror image
+ * @link https://php.net/manual/en/imagick.flopimage.php
+ * @return bool TRUE on success.
+ */
+ public function flopImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds a simulated three-dimensional border
+ * @link https://php.net/manual/en/imagick.frameimage.php
+ * @param mixed $matte_color
+ * ImagickPixel object or a string representing the matte color
+ *
+ * @param int $width
+ * The width of the border
+ *
+ * @param int $height
+ * The height of the border
+ *
+ * @param int $inner_bevel
+ * The inner bevel width
+ *
+ * @param int $outer_bevel
+ * The outer bevel width
+ *
+ * @return bool TRUE on success.
+ */
+ public function frameImage ($matte_color, $width, $height, $inner_bevel, $outer_bevel) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Evaluate expression for each pixel in the image
+ * @link https://php.net/manual/en/imagick.fximage.php
+ * @param string $expression
+ * The expression.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return Imagick TRUE on success.
+ */
+ public function fxImage ($expression, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gamma-corrects an image
+ * @link https://php.net/manual/en/imagick.gammaimage.php
+ * @param float $gamma
+ * The amount of gamma-correction.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function gammaImage ($gamma, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Blurs an image
+ * @link https://php.net/manual/en/imagick.gaussianblurimage.php
+ * @param float $radius
+ * The radius of the Gaussian, in pixels, not counting the center pixel.
+ *
+ * @param float $sigma
+ * The standard deviation of the Gaussian, in pixels.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return string
+ */
+ #[Pure]
+ public function getImageAttribute ($key) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image background color
+ * @link https://php.net/manual/en/imagick.getimagebackgroundcolor.php
+ * @return ImagickPixel an ImagickPixel set to the background color of the image.
+ */
+ #[Pure]
+ public function getImageBackgroundColor () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the chromaticy blue primary point
+ * @link https://php.net/manual/en/imagick.getimageblueprimary.php
+ * @return array Array consisting of "x" and "y" coordinates of point.
+ */
+ #[Pure]
+ public function getImageBluePrimary () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image border color
+ * @link https://php.net/manual/en/imagick.getimagebordercolor.php
+ * @return ImagickPixel TRUE on success.
+ */
+ #[Pure]
+ public function getImageBorderColor () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the depth for a particular image channel
+ * @link https://php.net/manual/en/imagick.getimagechanneldepth.php
+ * @param int $channel
+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ *
+ * @return int TRUE on success.
+ */
+ #[Pure]
+ public function getImageChannelDepth ($channel) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Compares image channels of an image to a reconstructed image
+ * @link https://php.net/manual/en/imagick.getimagechanneldistortion.php
+ * @param Imagick $reference
+ * Imagick object to compare to.
+ *
+ * @param int $channel
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @param int $metric
+ * One of the metric type constants.
+ *
+ * @return float TRUE on success.
+ */
+ #[Pure]
+ public function getImageChannelDistortion (Imagick $reference, $channel, $metric) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the extrema for one or more image channels
+ * @link https://php.net/manual/en/imagick.getimagechannelextrema.php
+ * @param int $channel
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return array TRUE on success.
+ */
+ #[Pure]
+ public function getImageChannelExtrema ($channel) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the mean and standard deviation
+ * @link https://php.net/manual/en/imagick.getimagechannelmean.php
+ * @param int $channel
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return array TRUE on success.
+ */
+ #[Pure]
+ public function getImageChannelMean ($channel) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns statistics for each channel in the image
+ * @link https://php.net/manual/en/imagick.getimagechannelstatistics.php
+ * @return array TRUE on success.
+ */
+ #[Pure]
+ public function getImageChannelStatistics () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the color of the specified colormap index
+ * @link https://php.net/manual/en/imagick.getimagecolormapcolor.php
+ * @param int $index
+ * The offset into the image colormap.
+ *
+ * @return ImagickPixel TRUE on success.
+ */
+ #[Pure]
+ public function getImageColormapColor ($index) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image colorspace
+ * @link https://php.net/manual/en/imagick.getimagecolorspace.php
+ * @return int TRUE on success.
+ */
+ #[Pure]
+ public function getImageColorspace () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the composite operator associated with the image
+ * @link https://php.net/manual/en/imagick.getimagecompose.php
+ * @return int TRUE on success.
+ */
+ #[Pure]
+ public function getImageCompose () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image delay
+ * @link https://php.net/manual/en/imagick.getimagedelay.php
+ * @return int the image delay.
+ */
+ #[Pure]
+ public function getImageDelay () {}
+
+ /**
+ * (PECL imagick 0.9.1-0.9.9)
+ * Gets the image depth
+ * @link https://php.net/manual/en/imagick.getimagedepth.php
+ * @return int The image depth.
+ */
+ #[Pure]
+ public function getImageDepth () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Compares an image to a reconstructed image
+ * @link https://php.net/manual/en/imagick.getimagedistortion.php
+ * @param Imagick $reference
+ * Imagick object to compare to.
+ *
+ * @param int $metric
+ * One of the metric type constants.
+ *
+ * @return float the distortion metric used on the image (or the best guess
+ * thereof).
+ */
+ #[Pure]
+ public function getImageDistortion (Imagick $reference, $metric) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the extrema for the image
+ * @link https://php.net/manual/en/imagick.getimageextrema.php
+ * @return array an associative array with the keys "min" and "max".
+ */
+ #[Pure]
+ public function getImageExtrema () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image disposal method
+ * @link https://php.net/manual/en/imagick.getimagedispose.php
+ * @return int the dispose method on success.
+ */
+ #[Pure]
+ public function getImageDispose () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image gamma
+ * @link https://php.net/manual/en/imagick.getimagegamma.php
+ * @return float the image gamma on success.
+ */
+ #[Pure]
+ public function getImageGamma () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the chromaticy green primary point
+ * @link https://php.net/manual/en/imagick.getimagegreenprimary.php
+ * @return array an array with the keys "x" and "y" on success, throws an ImagickException on failure.
+ * @throws ImagickException on failure
+ */
+ #[Pure]
+ public function getImageGreenPrimary () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image height
+ * @link https://php.net/manual/en/imagick.getimageheight.php
+ * @return int the image height in pixels.
+ */
+ #[Pure]
+ public function getImageHeight () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image histogram
+ * @link https://php.net/manual/en/imagick.getimagehistogram.php
+ * @return array the image histogram as an array of ImagickPixel objects.
+ */
+ #[Pure]
+ public function getImageHistogram () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image interlace scheme
+ * @link https://php.net/manual/en/imagick.getimageinterlacescheme.php
+ * @return int the interlace scheme as an integer on success.
+ * Trhow an ImagickException on error.
+ * @throws ImagickException on error
+ */
+ #[Pure]
+ public function getImageInterlaceScheme () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image iterations
+ * @link https://php.net/manual/en/imagick.getimageiterations.php
+ * @return int the image iterations as an integer.
+ */
+ #[Pure]
+ public function getImageIterations () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image matte color
+ * @link https://php.net/manual/en/imagick.getimagemattecolor.php
+ * @return ImagickPixel ImagickPixel object on success.
+ */
+ #[Pure]
+ public function getImageMatteColor () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the page geometry
+ * @link https://php.net/manual/en/imagick.getimagepage.php
+ * @return array the page geometry associated with the image in an array with the
+ * keys "width", "height", "x", and "y".
+ */
+ #[Pure]
+ public function getImagePage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the color of the specified pixel
+ * @link https://php.net/manual/en/imagick.getimagepixelcolor.php
+ * @param int $x
+ * The x-coordinate of the pixel
+ *
+ * @param int $y
+ * The y-coordinate of the pixel
+ *
+ * @return ImagickPixel an ImagickPixel instance for the color at the coordinates given.
+ */
+ #[Pure]
+ public function getImagePixelColor ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the named image profile
+ * @link https://php.net/manual/en/imagick.getimageprofile.php
+ * @param string $name
+ * The name of the profile to return.
+ *
+ * @return string a string containing the image profile.
+ */
+ #[Pure]
+ public function getImageProfile ($name) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the chromaticity red primary point
+ * @link https://php.net/manual/en/imagick.getimageredprimary.php
+ * @return array the chromaticity red primary point as an array with the keys "x"
+ * and "y".
+ * Throw an ImagickException on error.
+ * @throws ImagickException on error
+ */
+ #[Pure]
+ public function getImageRedPrimary () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image rendering intent
+ * @link https://php.net/manual/en/imagick.getimagerenderingintent.php
+ * @return int the image rendering intent.
+ */
+ #[Pure]
+ public function getImageRenderingIntent () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image X and Y resolution
+ * @link https://php.net/manual/en/imagick.getimageresolution.php
+ * @return array the resolution as an array.
+ */
+ #[Pure]
+ public function getImageResolution () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image scene
+ * @link https://php.net/manual/en/imagick.getimagescene.php
+ * @return int the image scene.
+ */
+ #[Pure]
+ public function getImageScene () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Generates an SHA-256 message digest
+ * @link https://php.net/manual/en/imagick.getimagesignature.php
+ * @return string a string containing the SHA-256 hash of the file.
+ */
+ #[Pure]
+ public function getImageSignature () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image ticks-per-second
+ * @link https://php.net/manual/en/imagick.getimagetickspersecond.php
+ * @return int the image ticks-per-second.
+ */
+ #[Pure]
+ public function getImageTicksPerSecond () {}
+
+ /**
+ * (PECL imagick 0.9.10-0.9.9)
+ * Gets the potential image type
+ * @link https://php.net/manual/en/imagick.getimagetype.php
+ * @return int the potential image type.
+ * imagick::IMGTYPE_UNDEFINED
+ * imagick::IMGTYPE_BILEVEL
+ * imagick::IMGTYPE_GRAYSCALE
+ * imagick::IMGTYPE_GRAYSCALEMATTE
+ * imagick::IMGTYPE_PALETTE
+ * imagick::IMGTYPE_PALETTEMATTE
+ * imagick::IMGTYPE_TRUECOLOR
+ * imagick::IMGTYPE_TRUECOLORMATTE
+ * imagick::IMGTYPE_COLORSEPARATION
+ * imagick::IMGTYPE_COLORSEPARATIONMATTE
+ * imagick::IMGTYPE_OPTIMIZE
+ */
+ #[Pure]
+ public function getImageType () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image units of resolution
+ * @link https://php.net/manual/en/imagick.getimageunits.php
+ * @return int the image units of resolution.
+ */
+ #[Pure]
+ public function getImageUnits () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the virtual pixel method
+ * @link https://php.net/manual/en/imagick.getimagevirtualpixelmethod.php
+ * @return int the virtual pixel method on success.
+ */
+ #[Pure]
+ public function getImageVirtualPixelMethod () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the chromaticity white point
+ * @link https://php.net/manual/en/imagick.getimagewhitepoint.php
+ * @return array the chromaticity white point as an associative array with the keys
+ * "x" and "y".
+ */
+ #[Pure]
+ public function getImageWhitePoint () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the image width
+ * @link https://php.net/manual/en/imagick.getimagewidth.php
+ * @return int the image width.
+ */
+ #[Pure]
+ public function getImageWidth () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the number of images in the object
+ * @link https://php.net/manual/en/imagick.getnumberimages.php
+ * @return int the number of images associated with Imagick object.
+ */
+ #[Pure]
+ public function getNumberImages () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the image total ink density
+ * @link https://php.net/manual/en/imagick.getimagetotalinkdensity.php
+ * @return float the image total ink density of the image.
+ * Throw an ImagickException on error.
+ * @throws ImagickException on error
+ */
+ #[Pure]
+ public function getImageTotalInkDensity () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Extracts a region of the image
+ * @link https://php.net/manual/en/imagick.getimageregion.php
+ * @param int $width
+ * The width of the extracted region.
+ *
+ * @param int $height
+ * The height of the extracted region.
+ *
+ * @param int $x
+ * X-coordinate of the top-left corner of the extracted region.
+ *
+ * @param int $y
+ * Y-coordinate of the top-left corner of the extracted region.
+ *
+ * @return Imagick Extracts a region of the image and returns it as a new wand.
+ */
+ #[Pure]
+ public function getImageRegion ($width, $height, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a new image as a copy
+ * @link https://php.net/manual/en/imagick.implodeimage.php
+ * @param float $radius
+ * The radius of the implode
+ *
+ * @return bool TRUE on success.
+ */
+ public function implodeImage ($radius) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adjusts the levels of an image
+ * @link https://php.net/manual/en/imagick.levelimage.php
+ * @param float $blackPoint
+ * The image black point
+ *
+ * @param float $gamma
+ * The gamma value
+ *
+ * @param float $whitePoint
+ * The image white point
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function levelImage ($blackPoint, $gamma, $whitePoint, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Scales an image proportionally 2x
+ * @link https://php.net/manual/en/imagick.magnifyimage.php
+ * @return bool TRUE on success.
+ */
+ public function magnifyImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Replaces the colors of an image with the closest color from a reference image.
+ * @link https://php.net/manual/en/imagick.mapimage.php
+ * @param Imagick $map
+ * @param bool $dither
+ * @return bool TRUE on success.
+ */
+ public function mapImage (Imagick $map, $dither) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Changes the transparency value of a color
+ * @link https://php.net/manual/en/imagick.mattefloodfillimage.php
+ * @param float $alpha
+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully
+ * transparent.
+ *
+ * @param float $fuzz
+ * The fuzz member of image defines how much tolerance is acceptable to
+ * consider two colors as the same.
+ *
+ * @param mixed $bordercolor
+ * An ImagickPixel object or string representing the border color.
+ *
+ * @param int $x
+ * The starting x coordinate of the operation.
+ *
+ * @param int $y
+ * The starting y coordinate of the operation.
+ *
+ * @return bool TRUE on success.
+ */
+ public function matteFloodfillImage ($alpha, $fuzz, $bordercolor, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Applies a digital filter
+ * @link https://php.net/manual/en/imagick.medianfilterimage.php
+ * @param float $radius
+ * The radius of the pixel neighborhood.
+ *
+ * @return bool TRUE on success.
+ */
+ public function medianFilterImage ($radius) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Negates the colors in the reference image
+ * @link https://php.net/manual/en/imagick.negateimage.php
+ * @param bool $gray
+ * Whether to only negate grayscale pixels within the image.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function negateImage ($gray, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Change any pixel that matches color
+ * @link https://php.net/manual/en/imagick.paintopaqueimage.php
+ * @param mixed $target
+ * Change this target color to the fill color within the image. An
+ * ImagickPixel object or a string representing the target color.
+ *
+ * @param mixed $fill
+ * An ImagickPixel object or a string representing the fill color.
+ *
+ * @param float $fuzz
+ * The fuzz member of image defines how much tolerance is acceptable to
+ * consider two colors as the same.
+ *
+ * @param int $channel [optional]
+ * Provide any channel constant that is valid for your channel mode. To
+ * apply to more than one channel, combine channeltype constants using
+ * bitwise operators. Refer to this
+ * list of channel constants.
+ *
+ * @return bool TRUE on success.
+ */
+ public function paintOpaqueImage ($target, $fill, $fuzz, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Changes any pixel that matches color with the color defined by fill
+ * @link https://php.net/manual/en/imagick.painttransparentimage.php
+ * @param mixed $target
+ * Change this target color to specified opacity value within the image.
+ *
+ * @param float $alpha
+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully
+ * transparent.
+ *
+ * @param float $fuzz
+ * The fuzz member of image defines how much tolerance is acceptable to
+ * consider two colors as the same.
+ *
+ * @return bool TRUE on success.
+ */
+ public function paintTransparentImage ($target, $alpha, $fuzz) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Quickly pin-point appropriate parameters for image processing
+ * @link https://php.net/manual/en/imagick.previewimages.php
+ * @param int $preview
+ * Preview type. See Preview type constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function previewImages ($preview) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds or removes a profile from an image
+ * @link https://php.net/manual/en/imagick.profileimage.php
+ * @param string $name
+ * @param string $profile
+ * @return bool TRUE on success.
+ */
+ public function profileImage ($name, $profile) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Analyzes the colors within a reference image
+ * @link https://php.net/manual/en/imagick.quantizeimage.php
+ * @param int $numberColors
+ * @param int $colorspace
+ * @param int $treedepth
+ * @param bool $dither
+ * @param bool $measureError
+ * @return bool TRUE on success.
+ */
+ public function quantizeImage ($numberColors, $colorspace, $treedepth, $dither, $measureError) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Analyzes the colors within a sequence of images
+ * @link https://php.net/manual/en/imagick.quantizeimages.php
+ * @param int $numberColors
+ * @param int $colorspace
+ * @param int $treedepth
+ * @param bool $dither
+ * @param bool $measureError
+ * @return bool TRUE on success.
+ */
+ public function quantizeImages ($numberColors, $colorspace, $treedepth, $dither, $measureError) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Smooths the contours of an image
+ * @link https://php.net/manual/en/imagick.reducenoiseimage.php
+ * @param float $radius
+ * @return bool TRUE on success.
+ */
+ public function reduceNoiseImage ($radius) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Removes the named image profile and returns it
+ * @link https://php.net/manual/en/imagick.removeimageprofile.php
+ * @param string $name
+ * @return string a string containing the profile of the image.
+ */
+ public function removeImageProfile ($name) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Separates a channel from the image
+ * @link https://php.net/manual/en/imagick.separateimagechannel.php
+ * @param int $channel
+ * @return bool TRUE on success.
+ */
+ public function separateImageChannel ($channel) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sepia tones an image
+ * @link https://php.net/manual/en/imagick.sepiatoneimage.php
+ * @param float $threshold
+ * @return bool TRUE on success.
+ */
+ public function sepiaToneImage ($threshold) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image bias for any method that convolves an image
+ * @link https://php.net/manual/en/imagick.setimagebias.php
+ * @param float $bias
+ * @return bool TRUE on success.
+ */
+ public function setImageBias ($bias) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image chromaticity blue primary point
+ * @link https://php.net/manual/en/imagick.setimageblueprimary.php
+ * @param float $x
+ * @param float $y
+ * @return bool TRUE on success.
+ */
+ public function setImageBluePrimary ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image border color
+ * @link https://php.net/manual/en/imagick.setimagebordercolor.php
+ * @param mixed $border
+ * The border color
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageBorderColor ($border) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the depth of a particular image channel
+ * @link https://php.net/manual/en/imagick.setimagechanneldepth.php
+ * @param int $channel
+ * @param int $depth
+ * @return bool TRUE on success.
+ */
+ public function setImageChannelDepth ($channel, $depth) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the color of the specified colormap index
+ * @link https://php.net/manual/en/imagick.setimagecolormapcolor.php
+ * @param int $index
+ * @param ImagickPixel $color
+ * @return bool TRUE on success.
+ */
+ public function setImageColormapColor ($index, ImagickPixel $color) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image colorspace
+ * @link https://php.net/manual/en/imagick.setimagecolorspace.php
+ * @param int $colorspace
+ * One of the COLORSPACE constants
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImageColorspace ($colorspace) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image disposal method
+ * @link https://php.net/manual/en/imagick.setimagedispose.php
+ * @param int $dispose
+ * @return bool TRUE on success.
+ */
+ public function setImageDispose ($dispose) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image size
+ * @link https://php.net/manual/en/imagick.setimageextent.php
+ * @param int $columns
+ * @param int $rows
+ * @return bool TRUE on success.
+ */
+ public function setImageExtent ($columns, $rows) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image chromaticity green primary point
+ * @link https://php.net/manual/en/imagick.setimagegreenprimary.php
+ * @param float $x
+ * @param float $y
+ * @return bool TRUE on success.
+ */
+ public function setImageGreenPrimary ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image compression
+ * @link https://php.net/manual/en/imagick.setimageinterlacescheme.php
+ * @param int $interlace_scheme
+ * @return bool TRUE on success.
+ */
+ public function setImageInterlaceScheme ($interlace_scheme) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds a named profile to the Imagick object
+ * @link https://php.net/manual/en/imagick.setimageprofile.php
+ * @param string $name
+ * @param string $profile
+ * @return bool TRUE on success.
+ */
+ public function setImageProfile ($name, $profile) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image chromaticity red primary point
+ * @link https://php.net/manual/en/imagick.setimageredprimary.php
+ * @param float $x
+ * @param float $y
+ * @return bool TRUE on success.
+ */
+ public function setImageRedPrimary ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image rendering intent
+ * @link https://php.net/manual/en/imagick.setimagerenderingintent.php
+ * @param int $rendering_intent
+ * @return bool TRUE on success.
+ */
+ public function setImageRenderingIntent ($rendering_intent) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image virtual pixel method
+ * @link https://php.net/manual/en/imagick.setimagevirtualpixelmethod.php
+ * @param int $method
+ * @return bool TRUE on success.
+ */
+ public function setImageVirtualPixelMethod ($method) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image chromaticity white point
+ * @link https://php.net/manual/en/imagick.setimagewhitepoint.php
+ * @param float $x
+ * @param float $y
+ * @return bool TRUE on success.
+ */
+ public function setImageWhitePoint ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adjusts the contrast of an image
+ * @link https://php.net/manual/en/imagick.sigmoidalcontrastimage.php
+ * @param bool $sharpen
+ * @param float $alpha
+ * @param float $beta
+ * @param int $channel [optional]
+ * @return bool TRUE on success.
+ */
+ public function sigmoidalContrastImage ($sharpen, $alpha, $beta, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Composites two images
+ * @link https://php.net/manual/en/imagick.stereoimage.php
+ * @param Imagick $offset_wand
+ * @return bool TRUE on success.
+ */
+ public function stereoImage (Imagick $offset_wand) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Repeatedly tiles the texture image
+ * @link https://php.net/manual/en/imagick.textureimage.php
+ * @param Imagick $texture_wand
+ * @return bool TRUE on success.
+ */
+ public function textureImage (Imagick $texture_wand) {}
+
+ /**
+ * pplies a color vector to each pixel in the image. The 'opacity' color is a per channel strength factor for how strongly the color should be applied.
+ * If legacy is true, the behaviour of this function is incorrect, but consistent with how it behaved before Imagick version 3.4.0
+ * @link https://php.net/manual/en/imagick.tintimage.php
+ * @param mixed $tint
+ * @param mixed $opacity
+ * @param bool $legacy [optional]
+ * @return bool TRUE on success.
+ * @throws ImagickException Throws ImagickException on error
+ * @since 2.0.0
+ */
+ public function tintImage ($tint, $opacity, $legacy = false) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sharpens an image
+ * @link https://php.net/manual/en/imagick.unsharpmaskimage.php
+ * @param float $radius
+ * @param float $sigma
+ * @param float $amount
+ * @param float $threshold
+ * @param int $channel [optional]
+ * @return bool TRUE on success.
+ */
+ public function unsharpMaskImage ($radius, $sigma, $amount, $threshold, $channel = Imagick::CHANNEL_ALL) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a new Imagick object
+ * @link https://php.net/manual/en/imagick.getimage.php
+ * @return Imagick a new Imagick object with the current image sequence.
+ */
+ #[Pure]
+ public function getImage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds new image to Imagick object image list
+ * @link https://php.net/manual/en/imagick.addimage.php
+ * @param Imagick $source
+ * The source Imagick object
+ *
+ * @return bool TRUE on success.
+ */
+ public function addImage (Imagick $source) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Replaces image in the object
+ * @link https://php.net/manual/en/imagick.setimage.php
+ * @param Imagick $replace
+ * The replace Imagick object
+ *
+ * @return bool TRUE on success.
+ */
+ public function setImage (Imagick $replace) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a new image
+ * @link https://php.net/manual/en/imagick.newimage.php
+ * @param int $cols
+ * Columns in the new image
+ *
+ * @param int $rows
+ * Rows in the new image
+ *
+ * @param mixed $background
+ * The background color used for this image
+ *
+ * @param string $format [optional]
+ * Image format. This parameter was added in Imagick version 2.0.1.
+ *
+ * @return bool TRUE on success.
+ */
+ public function newImage ($cols, $rows, $background, $format = null) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Creates a new image
+ * @link https://php.net/manual/en/imagick.newpseudoimage.php
+ * @param int $columns
+ * @return bool TRUE on success.
+ */
+ public function newPseudoImage ($columns, $rows, $pseudoString) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the object compression type
+ * @link https://php.net/manual/en/imagick.getcompression.php
+ * @return int the compression constant
+ */
+ #[Pure]
+ public function getCompression () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the object compression quality
+ * @link https://php.net/manual/en/imagick.getcompressionquality.php
+ * @return int integer describing the compression quality
+ */
+ #[Pure]
+ public function getCompressionQuality () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the ImageMagick API copyright as a string
+ * @link https://php.net/manual/en/imagick.getcopyright.php
+ * @return string a string containing the copyright notice of Imagemagick and
+ * Magickwand C API.
+ */
+ public static function getCopyright () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * The filename associated with an image sequence
+ * @link https://php.net/manual/en/imagick.getfilename.php
+ * @return string a string on success.
+ */
+ #[Pure]
+ public function getFilename () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the format of the Imagick object
+ * @link https://php.net/manual/en/imagick.getformat.php
+ * @return string the format of the image.
+ */
+ #[Pure]
+ public function getFormat () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the ImageMagick home URL
+ * @link https://php.net/manual/en/imagick.gethomeurl.php
+ * @return string a link to the imagemagick homepage.
+ */
+ public static function getHomeURL () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the object interlace scheme
+ * @link https://php.net/manual/en/imagick.getinterlacescheme.php
+ * @return int Gets the wand interlace
+ * scheme.
+ */
+ #[Pure]
+ public function getInterlaceScheme () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a value associated with the specified key
+ * @link https://php.net/manual/en/imagick.getoption.php
+ * @param string $key
+ * The name of the option
+ *
+ * @return string a value associated with a wand and the specified key.
+ */
+ #[Pure]
+ public function getOption ($key) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the ImageMagick package name
+ * @link https://php.net/manual/en/imagick.getpackagename.php
+ * @return string the ImageMagick package name as a string.
+ */
+ public static function getPackageName () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the page geometry
+ * @link https://php.net/manual/en/imagick.getpage.php
+ * @return array the page geometry associated with the Imagick object in
+ * an associative array with the keys "width", "height", "x", and "y",
+ * throwing ImagickException on error.
+ * @throws ImagickException on error
+ */
+ #[Pure]
+ public function getPage () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the quantum depth
+ * @link https://php.net/manual/en/imagick.getquantumdepth.php
+ * @return array the Imagick quantum depth as a string.
+ */
+ public static function getQuantumDepth () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the Imagick quantum range
+ * @link https://php.net/manual/en/imagick.getquantumrange.php
+ * @return array the Imagick quantum range as a string.
+ */
+ public static function getQuantumRange () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the ImageMagick release date
+ * @link https://php.net/manual/en/imagick.getreleasedate.php
+ * @return string the ImageMagick release date as a string.
+ */
+ public static function getReleaseDate () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the specified resource's memory usage
+ * @link https://php.net/manual/en/imagick.getresource.php
+ * @param int $type
+ * Refer to the list of resourcetype constants.
+ *
+ * @return int the specified resource's memory usage in megabytes.
+ */
+ public static function getResource ($type) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the specified resource limit
+ * @link https://php.net/manual/en/imagick.getresourcelimit.php
+ * @param int $type
+ * Refer to the list of resourcetype constants.
+ *
+ * @return int the specified resource limit in megabytes.
+ */
+ public static function getResourceLimit ($type) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the horizontal and vertical sampling factor
+ * @link https://php.net/manual/en/imagick.getsamplingfactors.php
+ * @return array an associative array with the horizontal and vertical sampling
+ * factors of the image.
+ */
+ #[Pure]
+ public function getSamplingFactors () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the size associated with the Imagick object
+ * @link https://php.net/manual/en/imagick.getsize.php
+ * @return array the size associated with the Imagick object as an array with the
+ * keys "columns" and "rows".
+ */
+ #[Pure]
+ public function getSize () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the ImageMagick API version
+ * @link https://php.net/manual/en/imagick.getversion.php
+ * @return array the ImageMagick API version as a string and as a number.
+ */
+ public static function getVersion () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the object's default background color
+ * @link https://php.net/manual/en/imagick.setbackgroundcolor.php
+ * @param mixed $background
+ * @return bool TRUE on success.
+ */
+ public function setBackgroundColor ($background) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the object's default compression type
+ * @link https://php.net/manual/en/imagick.setcompression.php
+ * @param int $compression
+ * @return bool TRUE on success.
+ */
+ public function setCompression ($compression) {}
+
+ /**
+ * (PECL imagick 0.9.10-0.9.9)
+ * Sets the object's default compression quality
+ * @link https://php.net/manual/en/imagick.setcompressionquality.php
+ * @param int $quality
+ * @return bool TRUE on success.
+ */
+ public function setCompressionQuality ($quality) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the filename before you read or write the image
+ * @link https://php.net/manual/en/imagick.setfilename.php
+ * @param string $filename
+ * @return bool TRUE on success.
+ */
+ public function setFilename ($filename) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the format of the Imagick object
+ * @link https://php.net/manual/en/imagick.setformat.php
+ * @param string $format
+ * @return bool TRUE on success.
+ */
+ public function setFormat ($format) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image compression
+ * @link https://php.net/manual/en/imagick.setinterlacescheme.php
+ * @param int $interlace_scheme
+ * @return bool TRUE on success.
+ */
+ public function setInterlaceScheme ($interlace_scheme) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Set an option
+ * @link https://php.net/manual/en/imagick.setoption.php
+ * @param string $key
+ * @param string $value
+ * @return bool TRUE on success.
+ */
+ public function setOption ($key, $value) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the page geometry of the Imagick object
+ * @link https://php.net/manual/en/imagick.setpage.php
+ * @param int $width
+ * @param int $height
+ * @param int $x
+ * @param int $y
+ * @return bool TRUE on success.
+ */
+ public function setPage ($width, $height, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the limit for a particular resource in megabytes
+ * @link https://php.net/manual/en/imagick.setresourcelimit.php
+ * @param int $type
+ * Refer to the list of resourcetype constants.
+ *
+ * @param int $limit
+ * The resource limit. The unit depends on the type of the resource being limited.
+ *
+ * @return bool TRUE on success.
+ */
+ public static function setResourceLimit ($type, $limit) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image resolution
+ * @link https://php.net/manual/en/imagick.setresolution.php
+ * @param float $x_resolution
+ * The horizontal resolution.
+ *
+ * @param float $y_resolution
+ * The vertical resolution.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setResolution ($x_resolution, $y_resolution) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image sampling factors
+ * @link https://php.net/manual/en/imagick.setsamplingfactors.php
+ * @param array $factors
+ * @return bool TRUE on success.
+ */
+ public function setSamplingFactors (array $factors) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the size of the Imagick object
+ * @link https://php.net/manual/en/imagick.setsize.php
+ * @param int $columns
+ * @param int $rows
+ * @return bool TRUE on success.
+ */
+ public function setSize ($columns, $rows) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the image type attribute
+ * @link https://php.net/manual/en/imagick.settype.php
+ * @param int $image_type
+ * @return bool TRUE on success.
+ */
+ public function setType ($image_type) {}
+
+ public function key () {}
+
+ public function next () {}
+
+ public function rewind () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Checks if the current item is valid
+ * @link https://php.net/manual/en/imagick.valid.php
+ * @return bool TRUE on success.
+ */
+ public function valid () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a reference to the current Imagick object
+ * @link https://php.net/manual/en/imagick.current.php
+ * @return Imagick self on success.
+ */
+ public function current () {}
+
+ /**
+ * Change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.
+ * @link https://php.net/manual/en/imagick.brightnesscontrastimage.php
+ * @param float $brightness
+ * @param float $contrast
+ * @param int $CHANNEL [optional]
+ * @return void
+ * @since 3.3.0
+ */
+ public function brightnessContrastImage ($brightness, $contrast, $CHANNEL = Imagick::CHANNEL_DEFAULT) { }
+
+ /**
+ * Applies a user supplied kernel to the image according to the given morphology method.
+ * @link https://php.net/manual/en/imagick.morphology.php
+ * @param int $morphologyMethod Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants.
+ * @param int $iterations The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.
+ * @param ImagickKernel $ImagickKernel
+ * @param int $CHANNEL [optional]
+ * @return void
+ * @since 3.3.0
+ */
+ public function morphology ($morphologyMethod, $iterations, ImagickKernel $ImagickKernel, $CHANNEL = Imagick::CHANNEL_DEFAULT) { }
+
+ /**
+ * Applies a custom convolution kernel to the image.
+ * @link https://php.net/manual/en/imagick.filter.php
+ * @param ImagickKernel $ImagickKernel An instance of ImagickKernel that represents either a single kernel or a linked series of kernels.
+ * @param int $CHANNEL [optional] Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ * @return void
+ * @since 3.3.0
+ */
+ public function filter (ImagickKernel $ImagickKernel , $CHANNEL = Imagick::CHANNEL_DEFAULT) { }
+
+ /**
+ * Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets).
+ * The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255)
+ * @link https://php.net/manual/en/imagick.colormatriximage.php
+ * @param array $color_matrix
+ * @return void
+ * @since 3.3.0
+ */
+ public function colorMatrixImage ($color_matrix = Imagick::CHANNEL_DEFAULT) { }
+
+ /**
+ * Deletes an image property.
+ * @link https://php.net/manual/en/imagick.deleteimageproperty.php
+ * @param string $name The name of the property to delete.
+ * @return void
+ * @since 3.3.0
+ */
+ public function deleteImageProperty ($name) { }
+
+ /**
+ * Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
+ * @link https://php.net/manual/en/imagick.forwardfouriertransformimage.php
+ * @param bool $magnitude If true, return as magnitude / phase pair otherwise a real / imaginary image pair.
+ * @return void
+ * @since 3.3.0
+ */
+ public function forwardFourierTransformimage ($magnitude) { }
+
+ /**
+ * Gets the current image's compression type.
+ * @link https://php.net/manual/en/imagick.getimagecompression.php
+ * @return int
+ * @since 3.3.0
+ */
+ #[Pure]
+ public function getImageCompression () { }
+
+ /**
+ * Get the StringRegistry entry for the named key or false if not set.
+ * @link https://php.net/manual/en/imagick.getregistry.php
+ * @param string $key
+ * @return string|false
+ * @throws Exception Since version >=3.4.3. Throws an exception if the key does not exist, rather than terminating the program.
+ * @since 3.3.0
+ */
+ public static function getRegistry ($key) { }
+
+ /**
+ * Returns the ImageMagick quantum range as an integer.
+ * @link https://php.net/manual/en/imagick.getquantum.php
+ * @return int
+ * @since 3.3.0
+ */
+ public static function getQuantum () { }
+
+ /**
+ * Replaces any embedded formatting characters with the appropriate image property and returns the interpreted text. See https://www.imagemagick.org/script/escape.php for escape sequences.
+ * @link https://php.net/manual/en/imagick.identifyformat.php
+ * @see https://www.imagemagick.org/script/escape.php
+ * @param string $embedText A string containing formatting sequences e.g. "Trim box: %@ number of unique colors: %k".
+ * @return bool
+ * @since 3.3.0
+ */
+ public function identifyFormat ($embedText) { }
+
+ /**
+ * Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
+ * @link https://php.net/manual/en/imagick.inversefouriertransformimage.php
+ * @param Imagick $complement The second image to combine with this one to form either the magnitude / phase or real / imaginary image pair.
+ * @param bool $magnitude If true, combine as magnitude / phase pair otherwise a real / imaginary image pair.
+ * @return void
+ * @since 3.3.0
+ */
+ public function inverseFourierTransformImage ($complement, $magnitude) { }
+
+ /**
+ * List all the registry settings. Returns an array of all the key/value pairs in the registry
+ * @link https://php.net/manual/en/imagick.listregistry.php
+ * @return array An array containing the key/values from the registry.
+ * @since 3.3.0
+ */
+ public static function listRegistry () { }
+
+ /**
+ * Rotational blurs an image.
+ * @link https://php.net/manual/en/imagick.rotationalblurimage.php
+ * @param float $angle
+ * @param int $CHANNEL
+ * @return void
+ * @since 3.3.0
+ */
+ public function rotationalBlurImage ($angle, $CHANNEL = Imagick::CHANNEL_DEFAULT) { }
+
+ /**
+ * Selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.
+ * @link https://php.net/manual/en/imagick.selectiveblurimage.php
+ * @param float $radius
+ * @param float $sigma
+ * @param float $threshold
+ * @param int $CHANNEL Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants
+ * @return void
+ * @since 3.3.0
+ */
+ public function selectiveBlurImage ($radius, $sigma, $threshold, $CHANNEL = Imagick::CHANNEL_DEFAULT) { }
+
+ /**
+ * Set whether antialiasing should be used for operations. On by default.
+ * @param bool $antialias
+ * @return int
+ * @since 3.3.0
+ */
+ public function setAntiAlias ($antialias) { }
+
+ /**
+ * @link https://php.net/manual/en/imagick.setimagebiasquantum.php
+ * @param string $bias
+ * @return void
+ * @since 3.3.0
+ */
+ public function setImageBiasQuantum ($bias) { }
+
+ /**
+ * Set a callback that will be called during the processing of the Imagick image.
+ * @link https://php.net/manual/en/imagick.setprogressmonitor.php
+ * @param callable $callback The progress function to call. It should return true if image processing should continue, or false if it should be cancelled.
+ * The offset parameter indicates the progress and the span parameter indicates the total amount of work needed to be done.
+ *
bool callback ( mixed $offset , mixed $span )
+ * Caution
+ * The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial.
+ * @return void
+ * @since 3.3.0
+ */
+ public function setProgressMonitor ($callback) { }
+
+ /**
+ * Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs.
+ * @link https://php.net/manual/en/imagick.setregistry.php
+ * @param string $key
+ * @param string $value
+ * @return void
+ * @since 3.3.0
+ */
+ public static function setRegistry ($key, $value) { }
+
+ /**
+ * Replace each pixel with corresponding statistic from the neighborhood of the specified width and height.
+ * @link https://php.net/manual/en/imagick.statisticimage.php
+ * @param int $type
+ * @param int $width
+ * @param int $height
+ * @param int $channel [optional]
+ * @return void
+ * @since 3.3.0
+ */
+ public function statisticImage ($type, $width, $height, $channel = Imagick::CHANNEL_DEFAULT ) { }
+
+ /**
+ * Searches for a subimage in the current image and returns a similarity image such that an exact match location is
+ * completely white and if none of the pixels match, black, otherwise some gray level in-between.
+ * You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will
+ * be set to the 'score' of the similarity between the subimage and the matching position in the larger image,
+ * bestMatch will contain an associative array with elements x, y, width, height that describe the matching region.
+ *
+ * @link https://php.net/manual/en/imagick.subimagematch.php
+ * @param Imagick $imagick
+ * @param array &$bestMatch [optional]
+ * @param float &$similarity [optional] A new image that displays the amount of similarity at each pixel.
+ * @param float $similarity_threshold [optional] Only used if compiled with ImageMagick (library) > 7
+ * @param int $metric [optional] Only used if compiled with ImageMagick (library) > 7
+ * @return Imagick
+ * @since 3.3.0
+ */
+ public function subImageMatch (Imagick $imagick, array &$bestMatch, &$similarity, $similarity_threshold, $metric) { }
+
+ /**
+ * Is an alias of Imagick::subImageMatch
+ *
+ * @param Imagick $imagick
+ * @param array &$bestMatch [optional]
+ * @param float &$similarity [optional] A new image that displays the amount of similarity at each pixel.
+ * @param float $similarity_threshold [optional]
+ * @param int $metric [optional]
+ * @return Imagick
+ * @see Imagick::subImageMatch() This function is an alias of subImageMatch()
+ * @since 3.4.0
+ */
+ public function similarityImage (Imagick $imagick, array &$bestMatch, &$similarity, $similarity_threshold, $metric) { }
+
+ /**
+ * Returns any ImageMagick configure options that match the specified pattern (e.g. "*" for all). Options include NAME, VERSION, LIB_VERSION, etc.
+ * @return string
+ * @since 3.4.0
+ */
+ #[Pure]
+ public function getConfigureOptions () { }
+
+ /**
+ * GetFeatures() returns the ImageMagick features that have been compiled into the runtime.
+ * @return string
+ * @since 3.4.0
+ */
+ #[Pure]
+ public function getFeatures () { }
+
+ /**
+ * @return int
+ * @since 3.4.0
+ */
+ #[Pure]
+ public function getHDRIEnabled () { }
+
+ /**
+ * Sets the image channel mask. Returns the previous set channel mask.
+ * Only works with Imagick >=7
+ * @param int $channel
+ * @since 3.4.0
+ */
+ public function setImageChannelMask ($channel) {}
+
+ /**
+ * Merge multiple images of the same size together with the selected operator. https://www.imagemagick.org/Usage/layers/#evaluate-sequence
+ * @param int $EVALUATE_CONSTANT
+ * @return bool
+ * @see https://www.imagemagick.org/Usage/layers/#evaluate-sequence
+ * @since 3.4.0
+ */
+ public function evaluateImages ($EVALUATE_CONSTANT) { }
+
+ /**
+ * Extracts the 'mean' from the image and adjust the image to try make set its gamma appropriately.
+ * @param int $channel [optional] Default value Imagick::CHANNEL_ALL
+ * @return bool
+ * @since 3.4.1
+ */
+ public function autoGammaImage ($channel = Imagick::CHANNEL_ALL) { }
+
+ /**
+ * Adjusts an image so that its orientation is suitable $ for viewing (i.e. top-left orientation).
+ * @return bool
+ * @since 3.4.1
+ */
+ public function autoOrient () { }
+
+ /**
+ * Composite one image onto another using the specified gravity.
+ *
+ * @param Imagick $imagick
+ * @param int $COMPOSITE_CONSTANT
+ * @param int $GRAVITY_CONSTANT
+ * @return bool
+ * @since 3.4.1
+ */
+ public function compositeImageGravity(Imagick $imagick, $COMPOSITE_CONSTANT, $GRAVITY_CONSTANT) { }
+
+ /**
+ * Attempts to increase the appearance of large-scale light-dark transitions.
+ *
+ * @param float $radius
+ * @param float $strength
+ * @return bool
+ * @since 3.4.1
+ */
+ public function localContrastImage($radius, $strength) { }
+
+ /**
+ * Identifies the potential image type, returns one of the Imagick::IMGTYPE_* constants
+ * @return int
+ * @since 3.4.3
+ */
+ public function identifyImageType() { }
+
+ /**
+ * Sets the image to the specified alpha level. Will replace ImagickDraw::setOpacity()
+ *
+ * @param float $alpha
+ * @return bool
+ * @since 3.4.3
+ */
+ public function setImageAlpha($alpha) { }
+}
+
+/**
+ * @method ImagickDraw clone() (PECL imagick 2.0.0) Makes an exact copy of the specified ImagickDraw object
+ * @link https://php.net/manual/en/class.imagickdraw.php
+ */
+class ImagickDraw {
+
+ public function resetVectorGraphics () {}
+
+ #[Pure]
+ public function getTextKerning () {}
+
+ /**
+ * @param float $kerning
+ */
+ public function setTextKerning ($kerning) {}
+
+ #[Pure]
+ public function getTextInterWordSpacing () {}
+
+ /**
+ * @param $spacing
+ */
+ public function setTextInterWordSpacing ($spacing) {}
+
+ #[Pure]
+ public function getTextInterLineSpacing () {}
+
+ /**
+ * @param $spacing
+ */
+ public function setTextInterLineSpacing ($spacing) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * The ImagickDraw constructor
+ * @link https://php.net/manual/en/imagickdraw.construct.php
+ */
+ public function __construct () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the fill color to be used for drawing filled objects
+ * @link https://php.net/manual/en/imagickdraw.setfillcolor.php
+ * @param ImagickPixel $fill_pixel
+ * ImagickPixel to use to set the color
+ *
+ * @return bool No value is returned.
+ */
+ public function setFillColor (ImagickPixel $fill_pixel) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the opacity to use when drawing using the fill color or fill texture
+ * @link https://php.net/manual/en/imagickdraw.setfillalpha.php
+ * @param float $opacity
+ * fill alpha
+ *
+ * @return bool No value is returned.
+ */
+ public function setFillAlpha ($opacity) {}
+
+ /**
+ * Sets the image resolution
+ * @param float $x_resolution
The horizontal resolution.
+ * @param float $y_resolution
The vertical resolution.
+ * @return bool
+ */
+ public function setResolution ($x_resolution, $y_resolution) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the color used for stroking object outlines
+ * @link https://php.net/manual/en/imagickdraw.setstrokecolor.php
+ * @param ImagickPixel $stroke_pixel
+ * the stroke color
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeColor (ImagickPixel $stroke_pixel) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the opacity of stroked object outlines
+ * @link https://php.net/manual/en/imagickdraw.setstrokealpha.php
+ * @param float $opacity
+ * opacity
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeAlpha ($opacity) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the width of the stroke used to draw object outlines
+ * @link https://php.net/manual/en/imagickdraw.setstrokewidth.php
+ * @param float $stroke_width
+ * stroke width
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeWidth ($stroke_width) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Clears the ImagickDraw
+ * @link https://php.net/manual/en/imagickdraw.clear.php
+ * @return bool an ImagickDraw object.
+ */
+ public function clear () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a circle
+ * @link https://php.net/manual/en/imagickdraw.circle.php
+ * @param float $ox
+ * origin x coordinate
+ *
+ * @param float $oy
+ * origin y coordinate
+ *
+ * @param float $px
+ * perimeter x coordinate
+ *
+ * @param float $py
+ * perimeter y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function circle ($ox, $oy, $px, $py) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws text on the image
+ * @link https://php.net/manual/en/imagickdraw.annotation.php
+ * @param float $x
+ * The x coordinate where text is drawn
+ *
+ * @param float $y
+ * The y coordinate where text is drawn
+ *
+ * @param string $text
+ * The text to draw on the image
+ *
+ * @return bool No value is returned.
+ */
+ public function annotation ($x, $y, $text) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Controls whether text is antialiased
+ * @link https://php.net/manual/en/imagickdraw.settextantialias.php
+ * @param bool $antiAlias
+ * @return bool No value is returned.
+ */
+ public function setTextAntialias ($antiAlias) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies specifies the text code set
+ * @link https://php.net/manual/en/imagickdraw.settextencoding.php
+ * @param string $encoding
+ * the encoding name
+ *
+ * @return bool No value is returned.
+ */
+ public function setTextEncoding ($encoding) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the fully-specified font to use when annotating with text
+ * @link https://php.net/manual/en/imagickdraw.setfont.php
+ * @param string $font_name
+ * @return bool TRUE on success.
+ */
+ public function setFont ($font_name) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the font family to use when annotating with text
+ * @link https://php.net/manual/en/imagickdraw.setfontfamily.php
+ * @param string $font_family
+ * the font family
+ *
+ * @return bool TRUE on success.
+ */
+ public function setFontFamily ($font_family) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the font pointsize to use when annotating with text
+ * @link https://php.net/manual/en/imagickdraw.setfontsize.php
+ * @param float $pointsize
+ * the point size
+ *
+ * @return bool No value is returned.
+ */
+ public function setFontSize ($pointsize) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the font style to use when annotating with text
+ * @link https://php.net/manual/en/imagickdraw.setfontstyle.php
+ * @param int $style
+ * STYLETYPE_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setFontStyle ($style) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the font weight
+ * @link https://php.net/manual/en/imagickdraw.setfontweight.php
+ * @param int $font_weight
+ * @return bool
+ */
+ public function setFontWeight ($font_weight) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the font
+ * @link https://php.net/manual/en/imagickdraw.getfont.php
+ * @return string|false a string on success and false if no font is set.
+ */
+ #[Pure]
+ public function getFont () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the font family
+ * @link https://php.net/manual/en/imagickdraw.getfontfamily.php
+ * @return string|false the font family currently selected or false if font family is not set.
+ */
+ #[Pure]
+ public function getFontFamily () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the font pointsize
+ * @link https://php.net/manual/en/imagickdraw.getfontsize.php
+ * @return float the font size associated with the current ImagickDraw object.
+ */
+ #[Pure]
+ public function getFontSize () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the font style
+ * @link https://php.net/manual/en/imagickdraw.getfontstyle.php
+ * @return int the font style constant (STYLE_) associated with the ImagickDraw object
+ * or 0 if no style is set.
+ */
+ #[Pure]
+ public function getFontStyle () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the font weight
+ * @link https://php.net/manual/en/imagickdraw.getfontweight.php
+ * @return int an int on success and 0 if no weight is set.
+ */
+ #[Pure]
+ public function getFontWeight () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Frees all associated resources
+ * @link https://php.net/manual/en/imagickdraw.destroy.php
+ * @return bool No value is returned.
+ */
+ public function destroy () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a rectangle
+ * @link https://php.net/manual/en/imagickdraw.rectangle.php
+ * @param float $x1
+ * x coordinate of the top left corner
+ *
+ * @param float $y1
+ * y coordinate of the top left corner
+ *
+ * @param float $x2
+ * x coordinate of the bottom right corner
+ *
+ * @param float $y2
+ * y coordinate of the bottom right corner
+ *
+ * @return bool No value is returned.
+ */
+ public function rectangle ($x1, $y1, $x2, $y2) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a rounded rectangle
+ * @link https://php.net/manual/en/imagickdraw.roundrectangle.php
+ * @param float $x1
+ * x coordinate of the top left corner
+ *
+ * @param float $y1
+ * y coordinate of the top left corner
+ *
+ * @param float $x2
+ * x coordinate of the bottom right
+ *
+ * @param float $y2
+ * y coordinate of the bottom right
+ *
+ * @param float $rx
+ * x rounding
+ *
+ * @param float $ry
+ * y rounding
+ *
+ * @return bool No value is returned.
+ */
+ public function roundRectangle ($x1, $y1, $x2, $y2, $rx, $ry) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws an ellipse on the image
+ * @link https://php.net/manual/en/imagickdraw.ellipse.php
+ * @param float $ox
+ * @param float $oy
+ * @param float $rx
+ * @param float $ry
+ * @param float $start
+ * @param float $end
+ * @return bool No value is returned.
+ */
+ public function ellipse ($ox, $oy, $rx, $ry, $start, $end) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Skews the current coordinate system in the horizontal direction
+ * @link https://php.net/manual/en/imagickdraw.skewx.php
+ * @param float $degrees
+ * degrees to skew
+ *
+ * @return bool No value is returned.
+ */
+ public function skewX ($degrees) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Skews the current coordinate system in the vertical direction
+ * @link https://php.net/manual/en/imagickdraw.skewy.php
+ * @param float $degrees
+ * degrees to skew
+ *
+ * @return bool No value is returned.
+ */
+ public function skewY ($degrees) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Applies a translation to the current coordinate system
+ * @link https://php.net/manual/en/imagickdraw.translate.php
+ * @param float $x
+ * horizontal translation
+ *
+ * @param float $y
+ * vertical translation
+ *
+ * @return bool No value is returned.
+ */
+ public function translate ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a line
+ * @link https://php.net/manual/en/imagickdraw.line.php
+ * @param float $sx
+ * starting x coordinate
+ *
+ * @param float $sy
+ * starting y coordinate
+ *
+ * @param float $ex
+ * ending x coordinate
+ *
+ * @param float $ey
+ * ending y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function line ($sx, $sy, $ex, $ey) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws an arc
+ * @link https://php.net/manual/en/imagickdraw.arc.php
+ * @param float $sx
+ * Starting x ordinate of bounding rectangle
+ *
+ * @param float $sy
+ * starting y ordinate of bounding rectangle
+ *
+ * @param float $ex
+ * ending x ordinate of bounding rectangle
+ *
+ * @param float $ey
+ * ending y ordinate of bounding rectangle
+ *
+ * @param float $sd
+ * starting degrees of rotation
+ *
+ * @param float $ed
+ * ending degrees of rotation
+ *
+ * @return bool No value is returned.
+ */
+ public function arc ($sx, $sy, $ex, $ey, $sd, $ed) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Paints on the image's opacity channel
+ * @link https://php.net/manual/en/imagickdraw.matte.php
+ * @param float $x
+ * x coordinate of the matte
+ *
+ * @param float $y
+ * y coordinate of the matte
+ *
+ * @param int $paintMethod
+ * PAINT_ constant
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function matte ($x, $y, $paintMethod) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a polygon
+ * @link https://php.net/manual/en/imagickdraw.polygon.php
+ * @param array $coordinates
+ * @return bool TRUE on success.
+ */
+ public function polygon (array $coordinates) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a point
+ * @link https://php.net/manual/en/imagickdraw.point.php
+ * @param float $x
+ * point's x coordinate
+ *
+ * @param float $y
+ * point's y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function point ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the text decoration
+ * @link https://php.net/manual/en/imagickdraw.gettextdecoration.php
+ * @return int one of the DECORATION_ constants
+ * and 0 if no decoration is set.
+ */
+ #[Pure]
+ public function getTextDecoration () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the code set used for text annotations
+ * @link https://php.net/manual/en/imagickdraw.gettextencoding.php
+ * @return string a string specifying the code set
+ * or false if text encoding is not set.
+ */
+ #[Pure]
+ public function getTextEncoding () {}
+
+ #[Pure]
+ public function getFontStretch () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the font stretch to use when annotating with text
+ * @link https://php.net/manual/en/imagickdraw.setfontstretch.php
+ * @param int $fontStretch
+ * STRETCH_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setFontStretch ($fontStretch) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Controls whether stroked outlines are antialiased
+ * @link https://php.net/manual/en/imagickdraw.setstrokeantialias.php
+ * @param bool $stroke_antialias
+ * the antialias setting
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeAntialias ($stroke_antialias) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies a text alignment
+ * @link https://php.net/manual/en/imagickdraw.settextalignment.php
+ * @param int $alignment
+ * ALIGN_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setTextAlignment ($alignment) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies a decoration
+ * @link https://php.net/manual/en/imagickdraw.settextdecoration.php
+ * @param int $decoration
+ * DECORATION_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setTextDecoration ($decoration) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the color of a background rectangle
+ * @link https://php.net/manual/en/imagickdraw.settextundercolor.php
+ * @param ImagickPixel $under_color
+ * the under color
+ *
+ * @return bool No value is returned.
+ */
+ public function setTextUnderColor (ImagickPixel $under_color) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the overall canvas size
+ * @link https://php.net/manual/en/imagickdraw.setviewbox.php
+ * @param int $x1
+ * left x coordinate
+ *
+ * @param int $y1
+ * left y coordinate
+ *
+ * @param int $x2
+ * right x coordinate
+ *
+ * @param int $y2
+ * right y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function setViewbox ($x1, $y1, $x2, $y2) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adjusts the current affine transformation matrix
+ * @link https://php.net/manual/en/imagickdraw.affine.php
+ * @param array $affine
+ * Affine matrix parameters
+ *
+ * @return bool No value is returned.
+ */
+ public function affine (array $affine) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a bezier curve
+ * @link https://php.net/manual/en/imagickdraw.bezier.php
+ * @param array $coordinates
+ * @return bool No value is returned.
+ */
+ public function bezier (array $coordinates) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Composites an image onto the current image
+ * @link https://php.net/manual/en/imagickdraw.composite.php
+ * @param int $compose
+ * composition operator. One of COMPOSITE_ constants
+ *
+ * @param float $x
+ * x coordinate of the top left corner
+ *
+ * @param float $y
+ * y coordinate of the top left corner
+ *
+ * @param float $width
+ * width of the composition image
+ *
+ * @param float $height
+ * height of the composition image
+ *
+ * @param Imagick $compositeWand
+ * the Imagick object where composition image is taken from
+ *
+ * @return bool TRUE on success.
+ */
+ public function composite ($compose, $x, $y, $width, $height, Imagick $compositeWand) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws color on image
+ * @link https://php.net/manual/en/imagickdraw.color.php
+ * @param float $x
+ * x coordinate of the paint
+ *
+ * @param float $y
+ * y coordinate of the paint
+ *
+ * @param int $paintMethod
+ * one of the PAINT_ constants
+ *
+ * @return bool No value is returned.
+ */
+ public function color ($x, $y, $paintMethod) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds a comment
+ * @link https://php.net/manual/en/imagickdraw.comment.php
+ * @param string $comment
+ * The comment string to add to vector output stream
+ *
+ * @return bool No value is returned.
+ */
+ public function comment ($comment) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Obtains the current clipping path ID
+ * @link https://php.net/manual/en/imagickdraw.getclippath.php
+ * @return string|false a string containing the clip path ID or false if no clip path exists.
+ */
+ #[Pure]
+ public function getClipPath () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the current polygon fill rule
+ * @link https://php.net/manual/en/imagickdraw.getcliprule.php
+ * @return int one of the FILLRULE_ constants.
+ */
+ #[Pure]
+ public function getClipRule () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the interpretation of clip path units
+ * @link https://php.net/manual/en/imagickdraw.getclipunits.php
+ * @return int an int on success.
+ */
+ #[Pure]
+ public function getClipUnits () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the fill color
+ * @link https://php.net/manual/en/imagickdraw.getfillcolor.php
+ * @return ImagickPixel an ImagickPixel object.
+ */
+ #[Pure]
+ public function getFillColor () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the opacity used when drawing
+ * @link https://php.net/manual/en/imagickdraw.getfillopacity.php
+ * @return float The opacity.
+ */
+ #[Pure]
+ public function getFillOpacity () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the fill rule
+ * @link https://php.net/manual/en/imagickdraw.getfillrule.php
+ * @return int a FILLRULE_ constant
+ */
+ #[Pure]
+ public function getFillRule () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the text placement gravity
+ * @link https://php.net/manual/en/imagickdraw.getgravity.php
+ * @return int a GRAVITY_ constant on success and 0 if no gravity is set.
+ */
+ #[Pure]
+ public function getGravity () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the current stroke antialias setting
+ * @link https://php.net/manual/en/imagickdraw.getstrokeantialias.php
+ * @return bool TRUE if antialiasing is on and false if it is off.
+ */
+ #[Pure]
+ public function getStrokeAntialias () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the color used for stroking object outlines
+ * @link https://php.net/manual/en/imagickdraw.getstrokecolor.php
+ * @return ImagickPixel an ImagickPixel object which describes the color.
+ */
+ #[Pure]
+ public function getStrokeColor () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns an array representing the pattern of dashes and gaps used to stroke paths
+ * @link https://php.net/manual/en/imagickdraw.getstrokedasharray.php
+ * @return array an array on success and empty array if not set.
+ */
+ #[Pure]
+ public function getStrokeDashArray () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the offset into the dash pattern to start the dash
+ * @link https://php.net/manual/en/imagickdraw.getstrokedashoffset.php
+ * @return float a float representing the offset and 0 if it's not set.
+ */
+ #[Pure]
+ public function getStrokeDashOffset () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the shape to be used at the end of open subpaths when they are stroked
+ * @link https://php.net/manual/en/imagickdraw.getstrokelinecap.php
+ * @return int one of the LINECAP_ constants or 0 if stroke linecap is not set.
+ */
+ #[Pure]
+ public function getStrokeLineCap () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the shape to be used at the corners of paths when they are stroked
+ * @link https://php.net/manual/en/imagickdraw.getstrokelinejoin.php
+ * @return int one of the LINEJOIN_ constants or 0 if stroke line join is not set.
+ */
+ #[Pure]
+ public function getStrokeLineJoin () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the stroke miter limit
+ * @link https://php.net/manual/en/imagickdraw.getstrokemiterlimit.php
+ * @return int an int describing the miter limit
+ * and 0 if no miter limit is set.
+ */
+ #[Pure]
+ public function getStrokeMiterLimit () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the opacity of stroked object outlines
+ * @link https://php.net/manual/en/imagickdraw.getstrokeopacity.php
+ * @return float a float describing the opacity.
+ */
+ #[Pure]
+ public function getStrokeOpacity () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the width of the stroke used to draw object outlines
+ * @link https://php.net/manual/en/imagickdraw.getstrokewidth.php
+ * @return float a float describing the stroke width.
+ */
+ #[Pure]
+ public function getStrokeWidth () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the text alignment
+ * @link https://php.net/manual/en/imagickdraw.gettextalignment.php
+ * @return int one of the ALIGN_ constants and 0 if no align is set.
+ */
+ #[Pure]
+ public function getTextAlignment () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the current text antialias setting
+ * @link https://php.net/manual/en/imagickdraw.gettextantialias.php
+ * @return bool TRUE if text is antialiased and false if not.
+ */
+ #[Pure]
+ public function getTextAntialias () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a string containing vector graphics
+ * @link https://php.net/manual/en/imagickdraw.getvectorgraphics.php
+ * @return string a string containing the vector graphics.
+ */
+ #[Pure]
+ public function getVectorGraphics () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the text under color
+ * @link https://php.net/manual/en/imagickdraw.gettextundercolor.php
+ * @return ImagickPixel an ImagickPixel object describing the color.
+ */
+ #[Pure]
+ public function getTextUnderColor () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adds a path element to the current path
+ * @link https://php.net/manual/en/imagickdraw.pathclose.php
+ * @return bool No value is returned.
+ */
+ public function pathClose () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetoabsolute.php
+ * @param float $x1
+ * x coordinate of the first control point
+ *
+ * @param float $y1
+ * y coordinate of the first control point
+ *
+ * @param float $x2
+ * x coordinate of the second control point
+ *
+ * @param float $y2
+ * y coordinate of the first control point
+ *
+ * @param float $x
+ * x coordinate of the curve end
+ *
+ * @param float $y
+ * y coordinate of the curve end
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToAbsolute ($x1, $y1, $x2, $y2, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetorelative.php
+ * @param float $x1
+ * x coordinate of starting control point
+ *
+ * @param float $y1
+ * y coordinate of starting control point
+ *
+ * @param float $x2
+ * x coordinate of ending control point
+ *
+ * @param float $y2
+ * y coordinate of ending control point
+ *
+ * @param float $x
+ * ending x coordinate
+ *
+ * @param float $y
+ * ending y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToRelative ($x1, $y1, $x2, $y2, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbezierabsolute.php
+ * @param float $x1
+ * x coordinate of the control point
+ *
+ * @param float $y1
+ * y coordinate of the control point
+ *
+ * @param float $x
+ * x coordinate of the end point
+ *
+ * @param float $y
+ * y coordinate of the end point
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToQuadraticBezierAbsolute ($x1, $y1, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbezierrelative.php
+ * @param float $x1
+ * starting x coordinate
+ *
+ * @param float $y1
+ * starting y coordinate
+ *
+ * @param float $x
+ * ending x coordinate
+ *
+ * @param float $y
+ * ending y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToQuadraticBezierRelative ($x1, $y1, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbeziersmoothabsolute.php
+ * @param float $x
+ * ending x coordinate
+ *
+ * @param float $y
+ * ending y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToQuadraticBezierSmoothAbsolute ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a quadratic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetoquadraticbeziersmoothrelative.php
+ * @param float $x
+ * ending x coordinate
+ *
+ * @param float $y
+ * ending y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToQuadraticBezierSmoothRelative ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetosmoothabsolute.php
+ * @param float $x2
+ * x coordinate of the second control point
+ *
+ * @param float $y2
+ * y coordinate of the second control point
+ *
+ * @param float $x
+ * x coordinate of the ending point
+ *
+ * @param float $y
+ * y coordinate of the ending point
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToSmoothAbsolute ($x2, $y2, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a cubic Bezier curve
+ * @link https://php.net/manual/en/imagickdraw.pathcurvetosmoothrelative.php
+ * @param float $x2
+ * x coordinate of the second control point
+ *
+ * @param float $y2
+ * y coordinate of the second control point
+ *
+ * @param float $x
+ * x coordinate of the ending point
+ *
+ * @param float $y
+ * y coordinate of the ending point
+ *
+ * @return bool No value is returned.
+ */
+ public function pathCurveToSmoothRelative ($x2, $y2, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws an elliptical arc
+ * @link https://php.net/manual/en/imagickdraw.pathellipticarcabsolute.php
+ * @param float $rx
+ * x radius
+ *
+ * @param float $ry
+ * y radius
+ *
+ * @param float $x_axis_rotation
+ * x axis rotation
+ *
+ * @param bool $large_arc_flag
+ * large arc flag
+ *
+ * @param bool $sweep_flag
+ * sweep flag
+ *
+ * @param float $x
+ * x coordinate
+ *
+ * @param float $y
+ * y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathEllipticArcAbsolute ($rx, $ry, $x_axis_rotation, $large_arc_flag, $sweep_flag, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws an elliptical arc
+ * @link https://php.net/manual/en/imagickdraw.pathellipticarcrelative.php
+ * @param float $rx
+ * x radius
+ *
+ * @param float $ry
+ * y radius
+ *
+ * @param float $x_axis_rotation
+ * x axis rotation
+ *
+ * @param bool $large_arc_flag
+ * large arc flag
+ *
+ * @param bool $sweep_flag
+ * sweep flag
+ *
+ * @param float $x
+ * x coordinate
+ *
+ * @param float $y
+ * y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathEllipticArcRelative ($rx, $ry, $x_axis_rotation, $large_arc_flag, $sweep_flag, $x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Terminates the current path
+ * @link https://php.net/manual/en/imagickdraw.pathfinish.php
+ * @return bool No value is returned.
+ */
+ public function pathFinish () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a line path
+ * @link https://php.net/manual/en/imagickdraw.pathlinetoabsolute.php
+ * @param float $x
+ * starting x coordinate
+ *
+ * @param float $y
+ * ending x coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathLineToAbsolute ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a line path
+ * @link https://php.net/manual/en/imagickdraw.pathlinetorelative.php
+ * @param float $x
+ * starting x coordinate
+ *
+ * @param float $y
+ * starting y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathLineToRelative ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a horizontal line path
+ * @link https://php.net/manual/en/imagickdraw.pathlinetohorizontalabsolute.php
+ * @param float $x
+ * x coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathLineToHorizontalAbsolute ($x) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a horizontal line
+ * @link https://php.net/manual/en/imagickdraw.pathlinetohorizontalrelative.php
+ * @param float $x
+ * x coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathLineToHorizontalRelative ($x) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a vertical line
+ * @link https://php.net/manual/en/imagickdraw.pathlinetoverticalabsolute.php
+ * @param float $y
+ * y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathLineToVerticalAbsolute ($y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a vertical line path
+ * @link https://php.net/manual/en/imagickdraw.pathlinetoverticalrelative.php
+ * @param float $y
+ * y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathLineToVerticalRelative ($y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Starts a new sub-path
+ * @link https://php.net/manual/en/imagickdraw.pathmovetoabsolute.php
+ * @param float $x
+ * x coordinate of the starting point
+ *
+ * @param float $y
+ * y coordinate of the starting point
+ *
+ * @return bool No value is returned.
+ */
+ public function pathMoveToAbsolute ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Starts a new sub-path
+ * @link https://php.net/manual/en/imagickdraw.pathmovetorelative.php
+ * @param float $x
+ * target x coordinate
+ *
+ * @param float $y
+ * target y coordinate
+ *
+ * @return bool No value is returned.
+ */
+ public function pathMoveToRelative ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Declares the start of a path drawing list
+ * @link https://php.net/manual/en/imagickdraw.pathstart.php
+ * @return bool No value is returned.
+ */
+ public function pathStart () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Draws a polyline
+ * @link https://php.net/manual/en/imagickdraw.polyline.php
+ * @param array $coordinates
+ * array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )
+ *
+ * @return bool TRUE on success.
+ */
+ public function polyline (array $coordinates) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Terminates a clip path definition
+ * @link https://php.net/manual/en/imagickdraw.popclippath.php
+ * @return bool No value is returned.
+ */
+ public function popClipPath () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Terminates a definition list
+ * @link https://php.net/manual/en/imagickdraw.popdefs.php
+ * @return bool No value is returned.
+ */
+ public function popDefs () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Terminates a pattern definition
+ * @link https://php.net/manual/en/imagickdraw.poppattern.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function popPattern () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Starts a clip path definition
+ * @link https://php.net/manual/en/imagickdraw.pushclippath.php
+ * @param string $clip_mask_id
+ * Clip mask Id
+ *
+ * @return bool No value is returned.
+ */
+ public function pushClipPath ($clip_mask_id) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Indicates that following commands create named elements for early processing
+ * @link https://php.net/manual/en/imagickdraw.pushdefs.php
+ * @return bool No value is returned.
+ */
+ public function pushDefs () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
+ * @link https://php.net/manual/en/imagickdraw.pushpattern.php
+ * @param string $pattern_id
+ * the pattern Id
+ *
+ * @param float $x
+ * x coordinate of the top-left corner
+ *
+ * @param float $y
+ * y coordinate of the top-left corner
+ *
+ * @param float $width
+ * width of the pattern
+ *
+ * @param float $height
+ * height of the pattern
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function pushPattern ($pattern_id, $x, $y, $width, $height) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Renders all preceding drawing commands onto the image
+ * @link https://php.net/manual/en/imagickdraw.render.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function render () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Applies the specified rotation to the current coordinate space
+ * @link https://php.net/manual/en/imagickdraw.rotate.php
+ * @param float $degrees
+ * degrees to rotate
+ *
+ * @return bool No value is returned.
+ */
+ public function rotate ($degrees) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Adjusts the scaling factor
+ * @link https://php.net/manual/en/imagickdraw.scale.php
+ * @param float $x
+ * horizontal factor
+ *
+ * @param float $y
+ * vertical factor
+ *
+ * @return bool No value is returned.
+ */
+ public function scale ($x, $y) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Associates a named clipping path with the image
+ * @link https://php.net/manual/en/imagickdraw.setclippath.php
+ * @param string $clip_mask
+ * the clipping path name
+ *
+ * @return bool No value is returned.
+ */
+ public function setClipPath ($clip_mask) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Set the polygon fill rule to be used by the clipping path
+ * @link https://php.net/manual/en/imagickdraw.setcliprule.php
+ * @param int $fill_rule
+ * FILLRULE_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setClipRule ($fill_rule) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the interpretation of clip path units
+ * @link https://php.net/manual/en/imagickdraw.setclipunits.php
+ * @param int $clip_units
+ * the number of clip units
+ *
+ * @return bool No value is returned.
+ */
+ public function setClipUnits ($clip_units) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the opacity to use when drawing using the fill color or fill texture
+ * @link https://php.net/manual/en/imagickdraw.setfillopacity.php
+ * @param float $fillOpacity
+ * the fill opacity
+ *
+ * @return bool No value is returned.
+ */
+ public function setFillOpacity ($fillOpacity) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the URL to use as a fill pattern for filling objects
+ * @link https://php.net/manual/en/imagickdraw.setfillpatternurl.php
+ * @param string $fill_url
+ * URL to use to obtain fill pattern.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setFillPatternURL ($fill_url) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the fill rule to use while drawing polygons
+ * @link https://php.net/manual/en/imagickdraw.setfillrule.php
+ * @param int $fill_rule
+ * FILLRULE_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setFillRule ($fill_rule) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the text placement gravity
+ * @link https://php.net/manual/en/imagickdraw.setgravity.php
+ * @param int $gravity
+ * GRAVITY_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setGravity ($gravity) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the pattern used for stroking object outlines
+ * @link https://php.net/manual/en/imagickdraw.setstrokepatternurl.php
+ * @param string $stroke_url
+ * stroke URL
+ *
+ * @return bool imagick.imagickdraw.return.success;
+ */
+ public function setStrokePatternURL ($stroke_url) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the offset into the dash pattern to start the dash
+ * @link https://php.net/manual/en/imagickdraw.setstrokedashoffset.php
+ * @param float $dash_offset
+ * dash offset
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeDashOffset ($dash_offset) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the shape to be used at the end of open subpaths when they are stroked
+ * @link https://php.net/manual/en/imagickdraw.setstrokelinecap.php
+ * @param int $linecap
+ * LINECAP_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeLineCap ($linecap) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the shape to be used at the corners of paths when they are stroked
+ * @link https://php.net/manual/en/imagickdraw.setstrokelinejoin.php
+ * @param int $linejoin
+ * LINEJOIN_ constant
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeLineJoin ($linejoin) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the miter limit
+ * @link https://php.net/manual/en/imagickdraw.setstrokemiterlimit.php
+ * @param int $miterlimit
+ * the miter limit
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeMiterLimit ($miterlimit) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the opacity of stroked object outlines
+ * @link https://php.net/manual/en/imagickdraw.setstrokeopacity.php
+ * @param float $stroke_opacity
+ * stroke opacity. 1.0 is fully opaque
+ *
+ * @return bool No value is returned.
+ */
+ public function setStrokeOpacity ($stroke_opacity) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the vector graphics
+ * @link https://php.net/manual/en/imagickdraw.setvectorgraphics.php
+ * @param string $xml
+ * xml containing the vector graphics
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setVectorGraphics ($xml) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
+ * @link https://php.net/manual/en/imagickdraw.pop.php
+ * @return bool TRUE on success and false on failure.
+ */
+ public function pop () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Clones the current ImagickDraw and pushes it to the stack
+ * @link https://php.net/manual/en/imagickdraw.push.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function push () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Specifies the pattern of dashes and gaps used to stroke paths
+ * @link https://php.net/manual/en/imagickdraw.setstrokedasharray.php
+ * @param array $dashArray
+ * array of floats
+ *
+ * @return bool TRUE on success.
+ */
+ public function setStrokeDashArray (array $dashArray) {}
+
+ /**
+ * Sets the opacity to use when drawing using the fill or stroke color or texture. Fully opaque is 1.0.
+ *
+ * @param float $opacity
+ * @return void
+ * @since 3.4.1
+ */
+ public function setOpacity($opacity) { }
+
+ /**
+ * Returns the opacity used when drawing with the fill or stroke color or texture. Fully opaque is 1.0.
+ *
+ * @return float
+ * @since 3.4.1
+ */
+ #[Pure]
+ public function getOpacity() { }
+
+ /**
+ * Sets the image font resolution.
+ *
+ * @param float $x
+ * @param float $y
+ * @return bool
+ * @since 3.4.1
+ */
+ public function setFontResolution($x, $y) { }
+
+ /**
+ * Gets the image X and Y resolution.
+ *
+ * @return array
+ * @since 3.4.1
+ */
+ #[Pure]
+ public function getFontResolution() { }
+
+ /**
+ * Returns the direction that will be used when annotating with text.
+ * @return bool
+ * @since 3.4.1
+ */
+ #[Pure]
+ public function getTextDirection() { }
+
+ /**
+ * Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.
+ *
+ * @param int $direction
+ * @return bool
+ * @since 3.4.1
+ */
+ public function setTextDirection($direction) { }
+
+ /**
+ * Returns the border color used for drawing bordered objects.
+ *
+ * @return ImagickPixel
+ * @since 3.4.1
+ */
+ #[Pure]
+ public function getBorderColor() { }
+
+ /**
+ * Sets the border color to be used for drawing bordered objects.
+ * @param ImagickPixel $color
+ * @return bool
+ * @since 3.4.1
+ */
+ public function setBorderColor(ImagickPixel $color) { }
+
+ /**
+ * Obtains the vertical and horizontal resolution.
+ *
+ * @return string|null
+ * @since 3.4.1
+ */
+ #[Pure]
+ public function getDensity() { }
+
+ /**
+ * Sets the vertical and horizontal resolution.
+ * @param string $density_string
+ * @return bool
+ * @since 3.4.1
+ */
+ public function setDensity($density_string) { }
+}
+
+/**
+ * @link https://php.net/manual/en/class.imagickpixeliterator.php
+ */
+class ImagickPixelIterator implements Iterator {
+
+ /**
+ * (PECL imagick 2.0.0)
+ * The ImagickPixelIterator constructor
+ * @link https://php.net/manual/en/imagickpixeliterator.construct.php
+ * @param Imagick $wand
+ */
+ public function __construct (Imagick $wand) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a new pixel iterator
+ * @link https://php.net/manual/en/imagickpixeliterator.newpixeliterator.php
+ * @param Imagick $wand
+ * @return bool TRUE on success. Throwing ImagickPixelIteratorException.
+ * @throws ImagickPixelIteratorException
+ */
+ public function newPixelIterator (Imagick $wand) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns a new pixel iterator
+ * @link https://php.net/manual/en/imagickpixeliterator.newpixelregioniterator.php
+ * @param Imagick $wand
+ * @param int $x
+ * @param int $y
+ * @param int $columns
+ * @param int $rows
+ * @return bool a new ImagickPixelIterator on success; on failure, throws ImagickPixelIteratorException
+ * @throws ImagickPixelIteratorException
+ */
+ public function newPixelRegionIterator (Imagick $wand, $x, $y, $columns, $rows) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the current pixel iterator row
+ * @link https://php.net/manual/en/imagickpixeliterator.getiteratorrow.php
+ * @return int the integer offset of the row, throwing ImagickPixelIteratorException on error.
+ * @throws ImagickPixelIteratorException on error
+ */
+ #[Pure]
+ public function getIteratorRow () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Set the pixel iterator row
+ * @link https://php.net/manual/en/imagickpixeliterator.setiteratorrow.php
+ * @param int $row
+ * @return bool TRUE on success.
+ */
+ public function setIteratorRow ($row) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the pixel iterator to the first pixel row
+ * @link https://php.net/manual/en/imagickpixeliterator.setiteratorfirstrow.php
+ * @return bool TRUE on success.
+ */
+ public function setIteratorFirstRow () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the pixel iterator to the last pixel row
+ * @link https://php.net/manual/en/imagickpixeliterator.setiteratorlastrow.php
+ * @return bool TRUE on success.
+ */
+ public function setIteratorLastRow () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the previous row
+ * @link https://php.net/manual/en/imagickpixeliterator.getpreviousiteratorrow.php
+ * @return array the previous row as an array of ImagickPixelWand objects from the
+ * ImagickPixelIterator, throwing ImagickPixelIteratorException on error.
+ * @throws ImagickPixelIteratorException on error
+ */
+ #[Pure]
+ public function getPreviousIteratorRow () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the current row of ImagickPixel objects
+ * @link https://php.net/manual/en/imagickpixeliterator.getcurrentiteratorrow.php
+ * @return array a row as an array of ImagickPixel objects that can themselves be iterated.
+ */
+ #[Pure]
+ public function getCurrentIteratorRow () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the next row of the pixel iterator
+ * @link https://php.net/manual/en/imagickpixeliterator.getnextiteratorrow.php
+ * @return array the next row as an array of ImagickPixel objects, throwing
+ * ImagickPixelIteratorException on error.
+ * @throws ImagickPixelIteratorException on error
+ */
+ #[Pure]
+ public function getNextIteratorRow () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Resets the pixel iterator
+ * @link https://php.net/manual/en/imagickpixeliterator.resetiterator.php
+ * @return bool TRUE on success.
+ */
+ public function resetIterator () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Syncs the pixel iterator
+ * @link https://php.net/manual/en/imagickpixeliterator.synciterator.php
+ * @return bool TRUE on success.
+ */
+ public function syncIterator () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Deallocates resources associated with a PixelIterator
+ * @link https://php.net/manual/en/imagickpixeliterator.destroy.php
+ * @return bool TRUE on success.
+ */
+ public function destroy () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Clear resources associated with a PixelIterator
+ * @link https://php.net/manual/en/imagickpixeliterator.clear.php
+ * @return bool TRUE on success.
+ */
+ public function clear () {}
+
+ /**
+ * @param Imagick $Imagick
+ */
+ public static function getpixeliterator (Imagick $Imagick) {}
+
+ /**
+ * @param Imagick $Imagick
+ * @param $x
+ * @param $y
+ * @param $columns
+ * @param $rows
+ */
+ public static function getpixelregioniterator (Imagick $Imagick, $x, $y, $columns, $rows) {}
+
+ public function key () {}
+
+ public function next () {}
+
+ public function rewind () {}
+
+ public function current () {}
+
+ public function valid () {}
+
+}
+
+/**
+ * @method clone()
+ * @link https://php.net/manual/en/class.imagickpixel.php
+ */
+class ImagickPixel {
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the normalized HSL color of the ImagickPixel object
+ * @link https://php.net/manual/en/imagickpixel.gethsl.php
+ * @return array the HSL value in an array with the keys "hue",
+ * "saturation", and "luminosity". Throws ImagickPixelException on failure.
+ * @throws ImagickPixelException on failure
+ */
+ #[Pure]
+ public function getHSL () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the normalized HSL color
+ * @link https://php.net/manual/en/imagickpixel.sethsl.php
+ * @param float $hue
+ * The normalized value for hue, described as a fractional arc
+ * (between 0 and 1) of the hue circle, where the zero value is
+ * red.
+ *
+ * @param float $saturation
+ * The normalized value for saturation, with 1 as full saturation.
+ *
+ * @param float $luminosity
+ * The normalized value for luminosity, on a scale from black at
+ * 0 to white at 1, with the full HS value at 0.5 luminosity.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setHSL ($hue, $saturation, $luminosity) {}
+
+ #[Pure]
+ public function getColorValueQuantum () {}
+
+ /**
+ * @param $color_value
+ */
+ public function setColorValueQuantum ($color_value) {}
+
+ /**
+ * Gets the colormap index of the pixel wand.
+ */
+ #[Pure]
+ public function getIndex () {}
+
+ /**
+ * @param int $index
+ */
+ public function setIndex ($index) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * The ImagickPixel constructor
+ * @link https://php.net/manual/en/imagickpixel.construct.php
+ * @param string $color [optional]
+ * The optional color string to use as the initial value of this object.
+ *
+ */
+ public function __construct ($color = null) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the color
+ * @link https://php.net/manual/en/imagickpixel.setcolor.php
+ * @param string $color
+ * The color definition to use in order to initialise the
+ * ImagickPixel object.
+ *
+ * @return bool TRUE if the specified color was set, FALSE otherwise.
+ */
+ public function setColor ($color) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Sets the normalized value of one of the channels
+ * @link https://php.net/manual/en/imagickpixel.setcolorvalue.php
+ * @param int $color
+ * One of the Imagick color constants e.g. \Imagick::COLOR_GREEN or \Imagick::COLOR_ALPHA.
+ *
+ * @param float $value
+ * The value to set this channel to, ranging from 0 to 1.
+ *
+ * @return bool TRUE on success.
+ */
+ public function setColorValue ($color, $value) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Gets the normalized value of the provided color channel
+ * @link https://php.net/manual/en/imagickpixel.getcolorvalue.php
+ * @param int $color
+ * The color to get the value of, specified as one of the Imagick color
+ * constants. This can be one of the RGB colors, CMYK colors, alpha and
+ * opacity e.g (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA).
+ *
+ * @return float The value of the channel, as a normalized floating-point number, throwing
+ * ImagickPixelException on error.
+ * @throws ImagickPixelException on error
+ */
+ #[Pure]
+ public function getColorValue ($color) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Clears resources associated with this object
+ * @link https://php.net/manual/en/imagickpixel.clear.php
+ * @return bool TRUE on success.
+ */
+ public function clear () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Deallocates resources associated with this object
+ * @link https://php.net/manual/en/imagickpixel.destroy.php
+ * @return bool TRUE on success.
+ */
+ public function destroy () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Check the distance between this color and another
+ * @link https://php.net/manual/en/imagickpixel.issimilar.php
+ * @param ImagickPixel $color
+ * The ImagickPixel object to compare this object against.
+ *
+ * @param float $fuzz
+ * The maximum distance within which to consider these colors as similar.
+ * The theoretical maximum for this value is the square root of three
+ * (1.732).
+ *
+ * @return bool TRUE on success.
+ */
+ public function isSimilar (ImagickPixel $color, $fuzz) {}
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Check the distance between this color and another
+ * @link https://php.net/manual/en/imagickpixel.ispixelsimilar.php
+ * @param ImagickPixel $color
+ * The ImagickPixel object to compare this object against.
+ *
+ * @param float $fuzz
+ * The maximum distance within which to consider these colors as similar.
+ * The theoretical maximum for this value is the square root of three
+ * (1.732).
+ *
+ * @return bool TRUE on success.
+ */
+ public function isPixelSimilar (ImagickPixel $color, $fuzz) {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the color
+ * @link https://php.net/manual/en/imagickpixel.getcolor.php
+ * @param int $normalized [optional]
+ * Normalize the color values
+ *
+ * @return array An array of channel values, each normalized if TRUE is given as param. Throws
+ * ImagickPixelException on error.
+ * @throws ImagickPixelException on error.
+ */
+ #[Pure]
+ public function getColor ($normalized = false) {}
+
+ /**
+ * (PECL imagick 2.1.0)
+ * Returns the color as a string
+ * @link https://php.net/manual/en/imagickpixel.getcolorasstring.php
+ * @return string the color of the ImagickPixel object as a string.
+ */
+ #[Pure]
+ public function getColorAsString () {}
+
+ /**
+ * (PECL imagick 2.0.0)
+ * Returns the color count associated with this color
+ * @link https://php.net/manual/en/imagickpixel.getcolorcount.php
+ * @return int the color count as an integer on success, throws
+ * ImagickPixelException on failure.
+ * @throws ImagickPixelException on failure.
+ */
+ #[Pure]
+ public function getColorCount () {}
+
+ /**
+ * @param int $colorCount
+ */
+ public function setColorCount ($colorCount) {}
+
+
+ /**
+ * Returns true if the distance between two colors is less than the specified distance. The fuzz value should be in the range 0-QuantumRange.
+ * The maximum value represents the longest possible distance in the colorspace. e.g. from RGB(0, 0, 0) to RGB(255, 255, 255) for the RGB colorspace
+ * @link https://php.net/manual/en/imagickpixel.ispixelsimilarquantum.php
+ * @param string $pixel
+ * @param string $fuzz
+ * @return bool
+ * @since 3.3.0
+ */
+ public function isPixelSimilarQuantum($color, $fuzz) { }
+
+ /**
+ * Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers.
+ * @link https://php.net/manual/en/imagickpixel.getcolorquantum.php
+ * @return mixed The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.
+ * @since 3.3.0
+ */
+ #[Pure]
+ public function getColorQuantum() { }
+
+ /**
+ * Sets the color count associated with this color from another ImagickPixel object.
+ *
+ * @param ImagickPixel $srcPixel
+ * @return bool
+ * @since 3.4.1
+ */
+ public function setColorFromPixel(ImagickPixel $srcPixel) { }
+}
+// End of imagick v.3.2.0RC1
+
+// Start of Imagick v3.3.0RC1
+
+/**
+ * @link https://php.net/manual/en/class.imagickkernel.php
+ */
+class ImagickKernel {
+ /**
+ * Attach another kernel to this kernel to allow them to both be applied in a single morphology or filter function. Returns the new combined kernel.
+ * @link https://php.net/manual/en/imagickkernel.addkernel.php
+ * @param ImagickKernel $imagickKernel
+ * @return void
+ * @since 3.3.0
+ */
+ public function addKernel(ImagickKernel $imagickKernel) { }
+
+ /**
+ * Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.
+ * @link https://php.net/manual/en/imagickkernel.addunitykernel.php
+ * @return void
+ * @since 3.3.0
+ */
+ public function addUnityKernel() { }
+
+ /**
+ * Create a kernel from a builtin in kernel. See https://www.imagemagick.org/Usage/morphology/#kernel for examples.
+ * Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");
+ * @link https://php.net/manual/en/imagickkernel.frombuiltin.php
+ * @param string $kernelType The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND
+ * @param string $kernelString A string that describes the parameters e.g. "4,2.5"
+ * @return void
+ * @since 3.3.0
+ */
+ public static function fromBuiltin($kernelType, $kernelString) { }
+
+ /**
+ * Create a kernel from a builtin in kernel. See https://www.imagemagick.org/Usage/morphology/#kernel for examples.
+ * Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");
+ * @link https://php.net/manual/en/imagickkernel.frombuiltin.php
+ * @see https://www.imagemagick.org/Usage/morphology/#kernel
+ * @param array $matrix A matrix (i.e. 2d array) of values that define the kernel. Each element should be either a float value, or FALSE if that element shouldn't be used by the kernel.
+ * @param array $origin [optional] Which element of the kernel should be used as the origin pixel. e.g. For a 3x3 matrix specifying the origin as [2, 2] would specify that the bottom right element should be the origin pixel.
+ * @return ImagickKernel
+ * @since 3.3.0
+ */
+ public static function fromMatrix($matrix, $origin) { }
+
+ /**
+ * Get the 2d matrix of values used in this kernel. The elements are either float for elements that are used or 'false' if the element should be skipped.
+ * @link https://php.net/manual/en/imagickkernel.getmatrix.php
+ * @return array A matrix (2d array) of the values that represent the kernel.
+ * @since 3.3.0
+ */
+ #[Pure]
+ public function getMatrix() { }
+
+ /**
+ * ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags).
+ * The exact behaviour of this function depends on the normalization type being used please see https://www.imagemagick.org/api/morphology.php#ScaleKernelInfo for details.
+ * Flag should be one of Imagick::NORMALIZE_KERNEL_VALUE, Imagick::NORMALIZE_KERNEL_CORRELATE, Imagick::NORMALIZE_KERNEL_PERCENT or not set.
+ * @link https://php.net/manual/en/imagickkernel.scale.php
+ * @see https://www.imagemagick.org/api/morphology.php#ScaleKernelInfo
+ * @return void
+ * @since 3.3.0
+ */
+ public function scale() { }
+
+ /**
+ * Separates a linked set of kernels and returns an array of ImagickKernels.
+ * @link https://php.net/manual/en/imagickkernel.separate.php
+ * @return void
+ * @since 3.3.0
+ */
+ public function seperate() { }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/imap/imap.php b/vendor/jetbrains/phpstorm-stubs/imap/imap.php
new file mode 100644
index 0000000000..33df0a3eb6
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/imap/imap.php
@@ -0,0 +1,1771 @@
+
+ * A mailbox name consists of a server and a mailbox path on this server.
+ * The special name INBOX stands for the current users
+ * personal mailbox. Mailbox names that contain international characters
+ * besides those in the printable ASCII space have to be encoded width
+ * imap_utf7_encode.
+ *
+ *
+ * The server part, which is enclosed in '{' and '}', consists of the servers
+ * name or ip address, an optional port (prefixed by ':'), and an optional
+ * protocol specification (prefixed by '/').
+ *
+ *
+ * The server part is mandatory in all mailbox
+ * parameters.
+ *
+ *
+ * All names which start with { are remote names, and are
+ * in the form "{" remote_system_name [":" port] [flags] "}"
+ * [mailbox_name] where:
+ * remote_system_name - Internet domain name or
+ * bracketed IP address of server.
+ * @param string $username
+ * The user name
+ *
+ * @param string $password
+ * The password associated with the username
+ *
+ * @param int $options [optional]
+ * The options are a bit mask with one or more of
+ * the following:
+ * OP_READONLY - Open mailbox read-only
+ * @param int $n_retries [optional]
+ * Number of maximum connect attempts
+ *
+ * @param array $params [optional]
+ * Connection parameters, the following (string) keys maybe used
+ * to set one or more connection parameters:
+ * DISABLE_AUTHENTICATOR - Disable authentication properties
+ * @return resource|false an IMAP stream on success or FALSE on error.
+ */
+function imap_open ($mailbox, $username, $password, $options = 0, $n_retries = 0, array $params = null) {}
+
+/**
+ * Reopen IMAP stream to new mailbox
+ * @link https://php.net/manual/en/function.imap-reopen.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @param int $options [optional]
+ * The options are a bit mask with one or more of
+ * the following:
+ * OP_READONLY - Open mailbox read-only
+ * @param int $n_retries [optional]
+ * Number of maximum connect attempts
+ *
+ * @return bool TRUE if the stream is reopened, FALSE otherwise.
+ */
+function imap_reopen ($imap_stream, $mailbox, $options = 0, $n_retries = 0) {}
+
+/**
+ * Close an IMAP stream
+ * @link https://php.net/manual/en/function.imap-close.php
+ * @param resource $imap_stream
+ * @param int $flag [optional]
+ * If set to CL_EXPUNGE, the function will silently
+ * expunge the mailbox before closing, removing all messages marked for
+ * deletion. You can achieve the same thing by using
+ * imap_expunge
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_close ($imap_stream, $flag = 0) {}
+
+/**
+ * Gets the number of messages in the current mailbox
+ * @link https://php.net/manual/en/function.imap-num-msg.php
+ * @param resource $imap_stream
+ * @return int Return the number of messages in the current mailbox, as an integer.
+ */
+function imap_num_msg ($imap_stream) {}
+
+/**
+ * Gets the number of recent messages in current mailbox
+ * @link https://php.net/manual/en/function.imap-num-recent.php
+ * @param resource $imap_stream
+ * @return int the number of recent messages in the current mailbox, as an
+ * integer.
+ */
+function imap_num_recent ($imap_stream) {}
+
+/**
+ * Returns headers for all messages in a mailbox
+ * @link https://php.net/manual/en/function.imap-headers.php
+ * @param resource $imap_stream
+ * @return array an array of string formatted with header info. One
+ * element per mail message.
+ */
+function imap_headers ($imap_stream) {}
+
+#[PhpStormStubsElementAvailable(to: '7.4')]
+/**
+ * Read the header of the message
+ * @link https://php.net/manual/en/function.imap-headerinfo.php
+ * @param resource $stream_id An IMAP stream returned by imap_open().
+ * @param int $msg_no The message number
+ * @param int $from_length [optional] Number of characters for the fetchfrom property. Must be greater than or equal to zero.
+ * @param int $subject_length [optional] Number of characters for the fetchsubject property Must be greater than or equal to zero.
+ * @param $default_host [optional]
+ * @return object Returns the information in an object with following properties:
+ *
+ *
toaddress
full to: line, up to 1024 characters
+ *
to
an array of objects from the To: line, with the following properties: personal, adl, mailbox, and host
+ *
fromaddress
full from: line, up to 1024 characters
+ *
from
an array of objects from the From: line, with the following properties: personal, adl, mailbox, and host
+ *
ccaddress
full cc: line, up to 1024 characters
+ *
cc
an array of objects from the Cc: line, with the following properties: personal, adl, mailbox, and host
+ *
bccaddress
full bcc: line, up to 1024 characters
+ *
bcc
an array of objects from the Bcc: line, with the following properties: personal, adl, mailbox, and host
+ *
reply_toaddress
full Reply-To: line, up to 1024 characters
+ *
reply_to
an array of objects from the Reply-To: line, with the following properties: personal, adl, mailbox, and host
+ *
senderaddress
full sender: line, up to 1024 characters
+ *
sender
an array of objects from the Sender: line, with the following properties: personal, adl, mailbox, and host
+ *
return_pathaddress
full Return-Path: line, up to 1024 characters
+ *
return_path
an array of objects from the Return-Path: line, with the following properties: personal, adl, mailbox, and host
+ *
remail -
+ *
date
The message date as found in its headers
+ *
Date
Same as date
+ *
subject
The message subject
+ *
Subject
Same a subject
+ *
in_reply_to -
+ *
message_id -
+ *
newsgroups -
+ *
followup_to -
+ *
references -
+ *
Recent
R if recent and seen, N if recent and not seen, ' ' if not recent.
+ *
Unseen
U if not seen AND not recent, ' ' if seen OR not seen and recent
+ *
Flagged
F if flagged, ' ' if not flagged
+ *
Answered
A if answered, ' ' if unanswered
+ *
Deleted
D if deleted, ' ' if not deleted
+ *
Draft
X if draft, ' ' if not draft
+ *
Msgno
The message number
+ *
MailDate -
+ *
Size
The message size
+ *
udate
mail message date in Unix time
+ *
fetchfrom
from line formatted to fit fromlength characters
+ *
fetchsubject
subject line formatted to fit subjectlength characters
+ *
+ */
+function imap_headerinfo ($stream_id, $msg_no, $from_length = 0, $subject_length = 0, $default_host = null) {}
+
+#[PhpStormStubsElementAvailable('8.0')]
+/**
+ * Read the header of the message
+ * @link https://php.net/manual/en/function.imap-headerinfo.php
+ * @param resource $stream_id An IMAP stream returned by imap_open().
+ * @param int $msg_no The message number
+ * @param int $from_length [optional] Number of characters for the fetchfrom property. Must be greater than or equal to zero.
+ * @param int $subject_length [optional] Number of characters for the fetchsubject property Must be greater than or equal to zero.
+ * @return object Returns the information in an object with following properties:
+ *
+ *
toaddress
full to: line, up to 1024 characters
+ *
to
an array of objects from the To: line, with the following properties: personal, adl, mailbox, and host
+ *
fromaddress
full from: line, up to 1024 characters
+ *
from
an array of objects from the From: line, with the following properties: personal, adl, mailbox, and host
+ *
ccaddress
full cc: line, up to 1024 characters
+ *
cc
an array of objects from the Cc: line, with the following properties: personal, adl, mailbox, and host
+ *
bccaddress
full bcc: line, up to 1024 characters
+ *
bcc
an array of objects from the Bcc: line, with the following properties: personal, adl, mailbox, and host
+ *
reply_toaddress
full Reply-To: line, up to 1024 characters
+ *
reply_to
an array of objects from the Reply-To: line, with the following properties: personal, adl, mailbox, and host
+ *
senderaddress
full sender: line, up to 1024 characters
+ *
sender
an array of objects from the Sender: line, with the following properties: personal, adl, mailbox, and host
+ *
return_pathaddress
full Return-Path: line, up to 1024 characters
+ *
return_path
an array of objects from the Return-Path: line, with the following properties: personal, adl, mailbox, and host
+ *
remail -
+ *
date
The message date as found in its headers
+ *
Date
Same as date
+ *
subject
The message subject
+ *
Subject
Same a subject
+ *
in_reply_to -
+ *
message_id -
+ *
newsgroups -
+ *
followup_to -
+ *
references -
+ *
Recent
R if recent and seen, N if recent and not seen, ' ' if not recent.
+ *
Unseen
U if not seen AND not recent, ' ' if seen OR not seen and recent
+ *
Flagged
F if flagged, ' ' if not flagged
+ *
Answered
A if answered, ' ' if unanswered
+ *
Deleted
D if deleted, ' ' if not deleted
+ *
Draft
X if draft, ' ' if not draft
+ *
Msgno
The message number
+ *
MailDate -
+ *
Size
The message size
+ *
udate
mail message date in Unix time
+ *
fetchfrom
from line formatted to fit fromlength characters
+ *
fetchsubject
subject line formatted to fit subjectlength characters
+ *
+ * @return object an object similar to the one returned by
+ * imap_header, except for the flags and other
+ * properties that come from the IMAP server.
+ */
+function imap_rfc822_parse_headers ($headers, $defaulthost = "UNKNOWN") {}
+
+/**
+ * Returns a properly formatted email address given the mailbox, host, and personal info
+ * @link https://php.net/manual/en/function.imap-rfc822-write-address.php
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @param string $host
+ * The email host part
+ *
+ * @param string $personal
+ * The name of the account owner
+ *
+ * @return string a string properly formatted email address as defined in RFC2822.
+ */
+function imap_rfc822_write_address ($mailbox, $host, $personal) {}
+
+/**
+ * Parses an address string
+ * @link https://php.net/manual/en/function.imap-rfc822-parse-adrlist.php
+ * @param string $address
+ * A string containing addresses
+ *
+ * @param string $default_host
+ * The default host name
+ *
+ * @return array an array of objects. The objects properties are:
+ *
+ *
+ * mailbox - the mailbox name (username)
+ * host - the host name
+ * personal - the personal name
+ * adl - at domain source route
+ */
+function imap_rfc822_parse_adrlist ($address, $default_host) {}
+
+/**
+ * Read the message body
+ * @link https://php.net/manual/en/function.imap-body.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param int $options [optional]
+ * The optional options are a bit mask
+ * with one or more of the following:
+ * FT_UID - The msg_number is a UID
+ * @return string the body of the specified message, as a string.
+ */
+function imap_body ($imap_stream, $msg_number, $options = 0) {}
+
+/**
+ * Read the structure of a specified body section of a specific message
+ * @link https://php.net/manual/en/function.imap-bodystruct.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param string $section
+ * The body section to read
+ *
+ * @return object the information in an object, for a detailed description
+ * of the object structure and properties see
+ * imap_fetchstructure.
+ */
+function imap_bodystruct ($imap_stream, $msg_number, $section) {}
+
+/**
+ * Fetch a particular section of the body of the message
+ * @link https://php.net/manual/en/function.imap-fetchbody.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param string $section
+ * The part number. It is a string of integers delimited by period which
+ * index into a body part list as per the IMAP4 specification
+ *
+ * @param int $options [optional]
+ * A bitmask with one or more of the following:
+ * FT_UID - The msg_number is a UID
+ * @return string a particular section of the body of the specified messages as a
+ * text string.
+ */
+function imap_fetchbody ($imap_stream, $msg_number, $section, $options = 0) {}
+
+/**
+ * Fetch MIME headers for a particular section of the message
+ * @link https://php.net/manual/en/function.imap-fetchmime.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param string $section
+ * The part number. It is a string of integers delimited by period which
+ * index into a body part list as per the IMAP4 specification
+ *
+ * @param int $options [optional]
+ * A bitmask with one or more of the following:
+ * FT_UID - The msg_number is a UID
+ * @return string the MIME headers of a particular section of the body of the specified messages as a
+ * text string.
+ * @since 5.3.6
+ */
+function imap_fetchmime ($imap_stream, $msg_number, $section, $options = 0) {}
+
+/**
+ * Save a specific body section to a file
+ * @link https://php.net/manual/en/function.imap-savebody.php
+ * @param resource $imap_stream
+ * @param mixed $file
+ * The path to the saved file as a string, or a valid file descriptor
+ * returned by fopen.
+ *
+ * @param int $msg_number
+ * The message number
+ *
+ * @param string $part_number [optional]
+ * The part number. It is a string of integers delimited by period which
+ * index into a body part list as per the IMAP4 specification
+ *
+ * @param int $options [optional]
+ * A bitmask with one or more of the following:
+ * FT_UID - The msg_number is a UID
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.3
+ */
+function imap_savebody ($imap_stream, $file, $msg_number, $part_number = "", $options = 0) {}
+
+/**
+ * Returns header for a message
+ * @link https://php.net/manual/en/function.imap-fetchheader.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param int $options [optional]
+ * The possible options are:
+ * FT_UID - The msgno
+ * argument is a UID
+ * @return string the header of the specified message as a text string.
+ */
+function imap_fetchheader ($imap_stream, $msg_number, $options = 0) {}
+
+/**
+ * Read the structure of a particular message
+ * @link https://php.net/manual/en/function.imap-fetchstructure.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param int $options [optional]
+ * This optional parameter only has a single option,
+ * FT_UID, which tells the function to treat the
+ * msg_number argument as a
+ * UID.
+ *
+ * @return object an object includes the envelope, internal date, size, flags and
+ * body structure along with a similar object for each mime attachment. The
+ * structure of the returned objects is as follows:
+ *
+ *
+ *
+ * Returned Objects for imap_fetchstructure
+ *
+ *
type
+ *
Primary body type
+ *
+ *
+ *
encoding
+ *
Body transfer encoding
+ *
+ *
+ *
ifsubtype
+ *
TRUE if there is a subtype string
+ *
+ *
+ *
subtype
+ *
MIME subtype
+ *
+ *
+ *
ifdescription
+ *
TRUE if there is a description string
+ *
+ *
+ *
description
+ *
Content description string
+ *
+ *
+ *
ifid
+ *
TRUE if there is an identification string
+ *
+ *
+ *
id
+ *
Identification string
+ *
+ *
+ *
lines
+ *
Number of lines
+ *
+ *
+ *
bytes
+ *
Number of bytes
+ *
+ *
+ *
ifdisposition
+ *
TRUE if there is a disposition string
+ *
+ *
+ *
disposition
+ *
Disposition string
+ *
+ *
+ *
ifdparameters
+ *
TRUE if the dparameters array exists
+ *
+ *
+ *
dparameters
+ *
An array of objects where each object has an
+ * "attribute" and a "value"
+ * property corresponding to the parameters on the
+ * Content-disposition MIME
+ * header.
+ *
+ *
+ *
ifparameters
+ *
TRUE if the parameters array exists
+ *
+ *
+ *
parameters
+ *
An array of objects where each object has an
+ * "attribute" and a "value"
+ * property.
+ *
+ *
+ *
parts
+ *
An array of objects identical in structure to the top-level
+ * object, each of which corresponds to a MIME body
+ * part.
+ *
+ *
+ *
+ *
+ *
+ * Primary body type (may vary with used library)
+ *
0
text
+ *
1
multipart
+ *
2
message
+ *
3
application
+ *
4
audio
+ *
5
image
+ *
6
video
+ *
7
other
+ *
+ *
+ *
+ *
+ * Transfer encodings (may vary with used library)
+ *
+ * Specifies the cache to purge. It may one or a combination
+ * of the following constants:
+ * IMAP_GC_ELT (message cache elements),
+ * IMAP_GC_ENV (enveloppe and bodies),
+ * IMAP_GC_TEXTS (texts).
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_gc ($imap_stream, $caches) {}
+
+/**
+ * Delete all messages marked for deletion
+ * @link https://php.net/manual/en/function.imap-expunge.php
+ * @param resource $imap_stream
+ * @return bool TRUE.
+ */
+function imap_expunge ($imap_stream) {}
+
+/**
+ * Mark a message for deletion from current mailbox
+ * @link https://php.net/manual/en/function.imap-delete.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param int $options [optional]
+ * You can set the FT_UID which tells the function
+ * to treat the msg_number argument as an
+ * UID.
+ *
+ * @return bool TRUE.
+ */
+function imap_delete ($imap_stream, $msg_number, $options = 0) {}
+
+/**
+ * Unmark the message which is marked deleted
+ * @link https://php.net/manual/en/function.imap-undelete.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number
+ *
+ * @param int $flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_undelete ($imap_stream, $msg_number, $flags = 0) {}
+
+/**
+ * Check current mailbox
+ * @link https://php.net/manual/en/function.imap-check.php
+ * @param resource $imap_stream
+ * @return object|false the information in an object with following properties:
+ * Date - current system time formatted according to RFC2822
+ * Driver - protocol used to access this mailbox:
+ * POP3, IMAP, NNTP
+ * Mailbox - the mailbox name
+ * Nmsgs - number of messages in the mailbox
+ * Recent - number of recent messages in the mailbox
+ *
+ *
+ * Returns FALSE on failure.
+ */
+function imap_check ($imap_stream) {}
+
+/**
+ * Returns the list of mailboxes that matches the given text
+ * @link https://php.net/manual/en/function.imap-listscan.php
+ * @param resource $imap_stream
+ * @param string $ref
+ * ref should normally be just the server
+ * specification as described in imap_open
+ *
+ * @param string $pattern Specifies where in the mailbox hierarchy
+ * to start searching.There are two special characters you can
+ * pass as part of the pattern:
+ * '*' and '%'.
+ * '*' means to return all mailboxes. If you pass
+ * pattern as '*', you will
+ * get a list of the entire mailbox hierarchy.
+ * '%'
+ * means to return the current level only.
+ * '%' as the pattern
+ * parameter will return only the top level
+ * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.
+ * @param string $content
+ * The searched string
+ *
+ * @return array an array containing the names of the mailboxes that have
+ * content in the text of the mailbox.
+ */
+function imap_listscan ($imap_stream, $ref, $pattern, $content) {}
+
+/**
+ * Copy specified messages to a mailbox
+ * @link https://php.net/manual/en/function.imap-mail-copy.php
+ * @param resource $imap_stream
+ * @param string $msglist
+ * msglist is a range not just message
+ * numbers (as described in RFC2060).
+ *
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @param int $options [optional]
+ * options is a bitmask of one or more of
+ * CP_UID - the sequence numbers contain UIDS
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_mail_copy ($imap_stream, $msglist, $mailbox, $options = 0) {}
+
+/**
+ * Move specified messages to a mailbox
+ * @link https://php.net/manual/en/function.imap-mail-move.php
+ * @param resource $imap_stream
+ * @param string $msglist
+ * msglist is a range not just message numbers
+ * (as described in RFC2060).
+ *
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @param int $options [optional]
+ * options is a bitmask and may contain the single option:
+ * CP_UID - the sequence numbers contain UIDS
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_mail_move ($imap_stream, $msglist, $mailbox, $options = 0) {}
+
+/**
+ * Create a MIME message based on given envelope and body sections
+ * @link https://php.net/manual/en/function.imap-mail-compose.php
+ * @param array $envelope
+ * An associative array of headers fields. Valid keys are: "remail",
+ * "return_path", "date", "from", "reply_to", "in_reply_to", "subject",
+ * "to", "cc", "bcc", "message_id" and "custom_headers" (which contains
+ * associative array of other headers).
+ *
+ * @param array $body
+ * An indexed array of bodies
+ *
+ *
+ * A body is an associative array which can consist of the following keys:
+ * "type", "encoding", "charset", "type.parameters", "subtype", "id",
+ * "description", "disposition.type", "disposition", "contents.data",
+ * "lines", "bytes" and "md5".
+ *
+ * The mailbox name, see imap_open for more
+ * information. Names containing international characters should be
+ * encoded by imap_utf7_encode
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_createmailbox ($imap_stream, $mailbox) {}
+
+/**
+ * Rename an old mailbox to new mailbox
+ * @link https://php.net/manual/en/function.imap-renamemailbox.php
+ * @param resource $imap_stream
+ * @param string $old_mbox
+ * The old mailbox name, see imap_open for more
+ * information
+ *
+ * @param string $new_mbox
+ * The new mailbox name, see imap_open for more
+ * information
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_renamemailbox ($imap_stream, $old_mbox, $new_mbox) {}
+
+/**
+ * Delete a mailbox
+ * @link https://php.net/manual/en/function.imap-deletemailbox.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_deletemailbox ($imap_stream, $mailbox) {}
+
+/**
+ * Subscribe to a mailbox
+ * @link https://php.net/manual/en/function.imap-subscribe.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_subscribe ($imap_stream, $mailbox) {}
+
+/**
+ * Unsubscribe from a mailbox
+ * @link https://php.net/manual/en/function.imap-unsubscribe.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_unsubscribe ($imap_stream, $mailbox) {}
+
+/**
+ * Append a string message to a specified mailbox
+ * @link https://php.net/manual/en/function.imap-append.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @param string $message
+ * The message to be append, as a string
+ *
+ *
+ * When talking to the Cyrus IMAP server, you must use "\r\n" as
+ * your end-of-line terminator instead of "\n" or the operation will
+ * fail
+ *
+ * @param string $options [optional]
+ * If provided, the options will also be written
+ * to the mailbox
+ *
+ * @param string $internal_date [optional]
+ * If this parameter is set, it will set the INTERNALDATE on the appended message. The parameter should be a date string that conforms to the rfc2060 specifications for a date_time value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_append ($imap_stream, $mailbox, $message, $options = null, $internal_date = null) {}
+
+/**
+ * Check if the IMAP stream is still active
+ * @link https://php.net/manual/en/function.imap-ping.php
+ * @param resource $imap_stream
+ * @return bool TRUE if the stream is still alive, FALSE otherwise.
+ */
+function imap_ping ($imap_stream) {}
+
+/**
+ * Decode BASE64 encoded text
+ * @link https://php.net/manual/en/function.imap-base64.php
+ * @param string $text
+ * The encoded text
+ *
+ * @return string the decoded message as a string.
+ */
+function imap_base64 ($text) {}
+
+/**
+ * Convert a quoted-printable string to an 8 bit string
+ * @link https://php.net/manual/en/function.imap-qprint.php
+ * @param string $string
+ * A quoted-printable string
+ *
+ * @return string an 8 bits string.
+ */
+function imap_qprint ($string) {}
+
+/**
+ * Convert an 8bit string to a quoted-printable string
+ * @link https://php.net/manual/en/function.imap-8bit.php
+ * @param string $string
+ * The 8bit string to convert
+ *
+ * @return string a quoted-printable string.
+ */
+function imap_8bit ($string) {}
+
+/**
+ * Convert an 8bit string to a base64 string
+ * @link https://php.net/manual/en/function.imap-binary.php
+ * @param string $string
+ * A MIME encoded string. MIME encoding method and the UTF-8
+ * specification are described in RFC2047 and RFC2044 respectively.
+ *
+ * @return string an UTF-8 encoded string.
+ */
+function imap_utf8 ($mime_encoded_text) {}
+
+/**
+ * Returns status information on a mailbox
+ * @link https://php.net/manual/en/function.imap-status.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @param int $options
+ * Valid flags are:
+ * SA_MESSAGES - set $status->messages to the
+ * number of messages in the mailbox
+ * @return object This function returns an object containing status information.
+ * The object has the following properties: messages,
+ * recent, unseen,
+ * uidnext, and uidvalidity.
+ *
+ *
+ * flags is also set, which contains a bitmask which can
+ * be checked against any of the above constants.
+ */
+function imap_status ($imap_stream, $mailbox, $options) {}
+
+/**
+ * @param $stream_id
+ * @param $options
+ */
+function imap_status_current ($stream_id, $options) {}
+
+/**
+ * Get information about the current mailbox
+ * @link https://php.net/manual/en/function.imap-mailboxmsginfo.php
+ * @param resource $imap_stream
+ * @return object|false the information in an object with following properties:
+ *
+ * A sequence of message numbers. You can enumerate desired messages
+ * with the X,Y syntax, or retrieve all messages
+ * within an interval with the X:Y syntax
+ *
+ * @param string $flag
+ * The flags which you can set are \Seen,
+ * \Answered, \Flagged,
+ * \Deleted, and \Draft as
+ * defined by RFC2060.
+ *
+ * @param int $options [optional]
+ * A bit mask that may contain the single option:
+ * ST_UID - The sequence argument contains UIDs
+ * instead of sequence numbers
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_setflag_full ($imap_stream, $sequence, $flag, $options = NIL) {}
+
+/**
+ * Clears flags on messages
+ * @link https://php.net/manual/en/function.imap-clearflag-full.php
+ * @param resource $imap_stream
+ * @param string $sequence
+ * A sequence of message numbers. You can enumerate desired messages
+ * with the X,Y syntax, or retrieve all messages
+ * within an interval with the X:Y syntax
+ *
+ * @param string $flag
+ * The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged",
+ * "\\Deleted", and "\\Draft" (as defined by RFC2060)
+ *
+ * @param int $options [optional]
+ * options are a bit mask and may contain
+ * the single option:
+ * ST_UID - The sequence argument contains UIDs
+ * instead of sequence numbers
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_clearflag_full ($imap_stream, $sequence, $flag, $options = 0) {}
+
+/**
+ * Gets and sort messages
+ * @link https://php.net/manual/en/function.imap-sort.php
+ * @param resource $imap_stream
+ * @param int $criteria
+ * Criteria can be one (and only one) of the following:
+ * SORTDATE - message Date
+ * @param int $reverse
+ * Set this to 1 for reverse sorting
+ *
+ * @param int $options [optional]
+ * The options are a bitmask of one or more of the
+ * following:
+ * SE_UID - Return UIDs instead of sequence numbers
+ * @param string $search_criteria [optional]
+ * @param string $charset [optional]
+ * @return array an array of message numbers sorted by the given
+ * parameters.
+ */
+function imap_sort ($imap_stream, $criteria, $reverse, $options = 0, $search_criteria = null, $charset = 'NIL') {}
+
+/**
+ * This function returns the UID for the given message sequence number
+ * @link https://php.net/manual/en/function.imap-uid.php
+ * @param resource $imap_stream
+ * @param int $msg_number
+ * The message number.
+ *
+ * @return int The UID of the given message.
+ */
+function imap_uid ($imap_stream, $msg_number) {}
+
+/**
+ * Gets the message sequence number for the given UID
+ * @link https://php.net/manual/en/function.imap-msgno.php
+ * @param resource $imap_stream
+ * @param int $uid
+ * The message UID
+ *
+ * @return int the message sequence number for the given
+ * uid.
+ */
+function imap_msgno ($imap_stream, $uid) {}
+
+/**
+ * Read the list of mailboxes
+ * @link https://php.net/manual/en/function.imap-list.php
+ * @param resource $imap_stream
+ * @param string $ref
+ * ref should normally be just the server
+ * specification as described in imap_open.
+ *
+ * @param string $pattern Specifies where in the mailbox hierarchy
+ * to start searching.There are two special characters you can
+ * pass as part of the pattern:
+ * '*' and '%'.
+ * '*' means to return all mailboxes. If you pass
+ * pattern as '*', you will
+ * get a list of the entire mailbox hierarchy.
+ * '%'
+ * means to return the current level only.
+ * '%' as the pattern
+ * parameter will return only the top level
+ * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.
+ * @return array an array containing the names of the mailboxes.
+ */
+function imap_list ($imap_stream, $ref, $pattern) {}
+
+/**
+ * List all the subscribed mailboxes
+ * @link https://php.net/manual/en/function.imap-lsub.php
+ * @param resource $imap_stream
+ * @param string $ref
+ * ref should normally be just the server
+ * specification as described in imap_open
+ *
+ * @param string $pattern Specifies where in the mailbox hierarchy
+ * to start searching.There are two special characters you can
+ * pass as part of the pattern:
+ * '*' and '%'.
+ * '*' means to return all mailboxes. If you pass
+ * pattern as '*', you will
+ * get a list of the entire mailbox hierarchy.
+ * '%'
+ * means to return the current level only.
+ * '%' as the pattern
+ * parameter will return only the top level
+ * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.
+ * @return array an array of all the subscribed mailboxes.
+ */
+function imap_lsub ($imap_stream, $ref, $pattern) {}
+
+/**
+ * Read an overview of the information in the headers of the given message
+ * @link https://php.net/manual/en/function.imap-fetch-overview.php
+ * @param resource $imap_stream
+ * @param string $sequence
+ * A message sequence description. You can enumerate desired messages
+ * with the X,Y syntax, or retrieve all messages
+ * within an interval with the X:Y syntax
+ *
+ * @param int $options [optional]
+ * sequence will contain a sequence of message
+ * indices or UIDs, if this parameter is set to
+ * FT_UID.
+ *
+ * @return array an array of objects describing one message header each.
+ * The object will only define a property if it exists. The possible
+ * properties are:
+ * subject - the messages subject
+ * from - who sent it
+ * to - recipient
+ * date - when was it sent
+ * message_id - Message-ID
+ * references - is a reference to this message id
+ * in_reply_to - is a reply to this message id
+ * size - size in bytes
+ * uid - UID the message has in the mailbox
+ * msgno - message sequence number in the mailbox
+ * recent - this message is flagged as recent
+ * flagged - this message is flagged
+ * answered - this message is flagged as answered
+ * deleted - this message is flagged for deletion
+ * seen - this message is flagged as already read
+ * draft - this message is flagged as being a draft
+ */
+function imap_fetch_overview ($imap_stream, $sequence, $options = 0) {}
+
+/**
+ * Returns all IMAP alert messages that have occurred
+ * @link https://php.net/manual/en/function.imap-alerts.php
+ * @return array|false an array of all of the IMAP alert messages generated or FALSE if
+ * no alert messages are available.
+ */
+function imap_alerts () {}
+
+/**
+ * Returns all of the IMAP errors that have occurred
+ * @link https://php.net/manual/en/function.imap-errors.php
+ * @return array|false This function returns an array of all of the IMAP error messages
+ * generated since the last imap_errors call,
+ * or the beginning of the page. Returns FALSE if no error messages are
+ * available.
+ */
+function imap_errors () {}
+
+/**
+ * Gets the last IMAP error that occurred during this page request
+ * @link https://php.net/manual/en/function.imap-last-error.php
+ * @return string|false the full text of the last IMAP error message that occurred on the
+ * current page. Returns FALSE if no error messages are available.
+ */
+function imap_last_error () {}
+
+/**
+ * This function returns an array of messages matching the given search criteria
+ * @link https://php.net/manual/en/function.imap-search.php
+ * @param resource $imap_stream
+ * @param string $criteria
+ * A string, delimited by spaces, in which the following keywords are
+ * allowed. Any multi-word arguments (e.g.
+ * FROM "joey smith") must be quoted. Results will match
+ * all criteria entries.
+ * ALL - return all messages matching the rest of the criteria
+ * @param int $options [optional]
+ * Valid values for options are
+ * SE_UID, which causes the returned array to
+ * contain UIDs instead of messages sequence numbers.
+ *
+ * @param string $charset [optional]
+ * @return array|false an array of message numbers or UIDs.
+ *
+ *
+ * Return FALSE if it does not understand the search
+ * criteria or no messages have been found.
+ */
+function imap_search ($imap_stream, $criteria, $options = SE_FREE, $charset = NIL) {}
+
+/**
+ * Decodes a modified UTF-7 encoded string
+ * @link https://php.net/manual/en/function.imap-utf7-decode.php
+ * @param string $text
+ * A modified UTF-7 encoding string, as defined in RFC 2060, section 5.1.3 (original UTF-7
+ * was defined in RFC1642).
+ *
+ * @return string a string that is encoded in ISO-8859-1 and consists of the same
+ * sequence of characters in text, or FALSE
+ * if text contains invalid modified UTF-7 sequence
+ * or text contains a character that is not part of
+ * ISO-8859-1 character set.
+ */
+function imap_utf7_decode ($text) {}
+
+/**
+ * Converts ISO-8859-1 string to modified UTF-7 text
+ * @link https://php.net/manual/en/function.imap-utf7-encode.php
+ * @param string $data
+ * An ISO-8859-1 string.
+ *
+ * @return string data encoded with the modified UTF-7
+ * encoding as defined in RFC 2060,
+ * section 5.1.3 (original UTF-7 was defined in RFC1642).
+ */
+function imap_utf7_encode ($data) {}
+
+/**
+ * Decode MIME header elements
+ * @link https://php.net/manual/en/function.imap-mime-header-decode.php
+ * @param string $text
+ * The MIME text
+ *
+ * @return array The decoded elements are returned in an array of objects, where each
+ * object has two properties, charset and
+ * text.
+ *
+ *
+ * If the element hasn't been encoded, and in other words is in
+ * plain US-ASCII, the charset property of that element is
+ * set to default.
+ */
+function imap_mime_header_decode ($text) {}
+
+/**
+ * Returns a tree of threaded message
+ * @link https://php.net/manual/en/function.imap-thread.php
+ * @param resource $imap_stream
+ * @param int $options [optional]
+ * @return array imap_thread returns an associative array containing
+ * a tree of messages threaded by REFERENCES, or FALSE
+ * on error.
+ *
+ *
+ * Every message in the current mailbox will be represented by three entries
+ * in the resulting array:
+ *
+ * $thread["XX.num"] - current message number
+ *
+ *
+ * $thread["XX.next"]
+ *
+ *
+ * $thread["XX.branch"]
+ *
+ */
+function imap_thread ($imap_stream, $options = SE_FREE) {}
+
+/**
+ * Set or fetch imap timeout
+ * @link https://php.net/manual/en/function.imap-timeout.php
+ * @param int $timeout_type
+ * One of the following:
+ * IMAP_OPENTIMEOUT,
+ * IMAP_READTIMEOUT,
+ * IMAP_WRITETIMEOUT, or
+ * IMAP_CLOSETIMEOUT.
+ *
+ * @param int $timeout [optional]
+ * The timeout, in seconds.
+ *
+ * @return int|bool If the timeout parameter is set, this function
+ * returns TRUE on success and FALSE on failure.
+ *
+ *
+ * If timeout is not provided or evaluates to -1,
+ * the current timeout value of timeout_type is
+ * returned as an integer.
+ */
+function imap_timeout ($timeout_type, $timeout = -1) {}
+
+/**
+ * Retrieve the quota level settings, and usage statics per mailbox
+ * @link https://php.net/manual/en/function.imap-get-quota.php
+ * @param resource $imap_stream
+ * @param string $quota_root
+ * quota_root should normally be in the form of
+ * user.name where name is the mailbox you wish to
+ * retrieve information about.
+ *
+ * @return array|false an array with integer values limit and usage for the given
+ * mailbox. The value of limit represents the total amount of space
+ * allowed for this mailbox. The usage value represents the mailboxes
+ * current level of capacity. Will return FALSE in the case of failure.
+ *
+ *
+ * As of PHP 4.3, the function more properly reflects the
+ * functionality as dictated by the RFC2087.
+ * The array return value has changed to support an unlimited number of returned
+ * resources (i.e. messages, or sub-folders) with each named resource receiving
+ * an individual array key. Each key value then contains an another array with
+ * the usage and limit values within it.
+ *
+ *
+ * For backwards compatibility reasons, the original access methods are
+ * still available for use, although it is suggested to update.
+ */
+function imap_get_quota ($imap_stream, $quota_root) {}
+
+/**
+ * Retrieve the quota settings per user
+ * @link https://php.net/manual/en/function.imap-get-quotaroot.php
+ * @param resource $imap_stream
+ * @param string $quota_root
+ * quota_root should normally be in the form of
+ * which mailbox (i.e. INBOX).
+ *
+ * @return array|false an array of integer values pertaining to the specified user
+ * mailbox. All values contain a key based upon the resource name, and a
+ * corresponding array with the usage and limit values within.
+ *
+ *
+ * This function will return FALSE in the case of call failure, and an
+ * array of information about the connection upon an un-parsable response
+ * from the server.
+ */
+function imap_get_quotaroot ($imap_stream, $quota_root) {}
+
+/**
+ * Sets a quota for a given mailbox
+ * @link https://php.net/manual/en/function.imap-set-quota.php
+ * @param resource $imap_stream
+ * @param string $quota_root
+ * The mailbox to have a quota set. This should follow the IMAP standard
+ * format for a mailbox: user.name.
+ *
+ * @param int $quota_limit
+ * The maximum size (in KB) for the quota_root
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_set_quota ($imap_stream, $quota_root, $quota_limit) {}
+
+/**
+ * Sets the ACL for a given mailbox
+ * @link https://php.net/manual/en/function.imap-setacl.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * @param string $id
+ * The user to give the rights to.
+ *
+ * @param string $rights
+ * The rights to give to the user. Passing an empty string will delete
+ * acl.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_setacl ($imap_stream, $mailbox, $id, $rights) {}
+
+/**
+ * Gets the ACL for a given mailbox
+ * @link https://php.net/manual/en/function.imap-getacl.php
+ * @param resource $imap_stream
+ * @param string $mailbox
+ * The mailbox name, see imap_open for more
+ * information
+ *
+ * The receivers specified in bcc will get the
+ * mail, but are excluded from the headers.
+ *
+ * @param string $rpath [optional]
+ * Use this parameter to specify return path upon mail delivery failure.
+ * This is useful when using PHP as a mail client for multiple users.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function imap_mail ($to, $subject, $message, $additional_headers = null, $cc = null, $bcc = null, $rpath = null) {}
+
+/**
+ * Alias of imap_headerinfo
+ * @link https://php.net/manual/en/function.imap-header.php
+ * @param resource $stream_id An IMAP stream returned by imap_open().
+ * @param int $msg_no The message number
+ * @param int $from_length [optional] Number of characters for the fetchfrom property. Must be greater than or equal to zero.
+ * @param int $subject_length [optional] Number of characters for the fetchsubject property Must be greater than or equal to zero.
+ * @param $default_host [optional]
+ * @return object Returns the information in an object with following properties:
+ *
+ *
toaddress
full to: line, up to 1024 characters
+ *
to
an array of objects from the To: line, with the following properties: personal, adl, mailbox, and host
+ *
fromaddress
full from: line, up to 1024 characters
+ *
from
an array of objects from the From: line, with the following properties: personal, adl, mailbox, and host
+ *
ccaddress
full cc: line, up to 1024 characters
+ *
cc
an array of objects from the Cc: line, with the following properties: personal, adl, mailbox, and host
+ *
bccaddress
full bcc: line, up to 1024 characters
+ *
bcc
an array of objects from the Bcc: line, with the following properties: personal, adl, mailbox, and host
+ *
reply_toaddress
full Reply-To: line, up to 1024 characters
+ *
reply_to
an array of objects from the Reply-To: line, with the following properties: personal, adl, mailbox, and host
+ *
senderaddress
full sender: line, up to 1024 characters
+ *
sender
an array of objects from the Sender: line, with the following properties: personal, adl, mailbox, and host
+ *
return_pathaddress
full Return-Path: line, up to 1024 characters
+ *
return_path
an array of objects from the Return-Path: line, with the following properties: personal, adl, mailbox, and host
+ *
remail -
+ *
date
The message date as found in its headers
+ *
Date
Same as date
+ *
subject
The message subject
+ *
Subject
Same a subject
+ *
in_reply_to -
+ *
message_id -
+ *
newsgroups -
+ *
followup_to -
+ *
references -
+ *
Recent
R if recent and seen, N if recent and not seen, ' ' if not recent.
+ *
Unseen
U if not seen AND not recent, ' ' if seen OR not seen and recent
+ *
Flagged
F if flagged, ' ' if not flagged
+ *
Answered
A if answered, ' ' if unanswered
+ *
Deleted
D if deleted, ' ' if not deleted
+ *
Draft
X if draft, ' ' if not draft
+ *
Msgno
The message number
+ *
MailDate -
+ *
Size
The message size
+ *
udate
mail message date in Unix time
+ *
fetchfrom
from line formatted to fit fromlength characters
+ *
fetchsubject
subject line formatted to fit subjectlength characters
+ *
+ */
+function imap_header ($stream_id, $msg_no, $from_length = 0, $subject_length = 0, $default_host = null) {}
+
+/**
+ * Alias of imap_list
+ * @link https://php.net/manual/en/function.imap-listmailbox.php
+ * @param $stream_id
+ * @param $ref
+ * @param $pattern
+ */
+function imap_listmailbox ($stream_id, $ref, $pattern) {}
+
+/**
+ * Read the list of mailboxes, returning detailed information on each one
+ * @link https://php.net/manual/en/function.imap-getmailboxes.php
+ * @param resource $imap_stream
+ * @param string $ref
+ * ref should normally be just the server
+ * specification as described in imap_open
+ *
+ * @param string $pattern Specifies where in the mailbox hierarchy
+ * to start searching.There are two special characters you can
+ * pass as part of the pattern:
+ * '*' and '%'.
+ * '*' means to return all mailboxes. If you pass
+ * pattern as '*', you will
+ * get a list of the entire mailbox hierarchy.
+ * '%'
+ * means to return the current level only.
+ * '%' as the pattern
+ * parameter will return only the top level
+ * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.
+ * @return array an array of objects containing mailbox information. Each
+ * object has the attributes name, specifying
+ * the full name of the mailbox; delimiter,
+ * which is the hierarchy delimiter for the part of the hierarchy
+ * this mailbox is in; and
+ * attributes. Attributes
+ * is a bitmask that can be tested against:
+ *
+ * LATT_NOINFERIORS - This mailbox contains, and may not contain any
+ * "children" (there are no mailboxes below this one). Calling
+ * imap_createmailbox will not work on this mailbox.
+ *
+ *
+ * LATT_NOSELECT - This is only a container,
+ * not a mailbox - you cannot open it.
+ *
+ *
+ * LATT_MARKED - This mailbox is marked. This means that it may
+ * contain new messages since the last time it was checked. Not provided by all IMAP
+ * servers.
+ *
+ *
+ * LATT_UNMARKED - This mailbox is not marked, does not contain new
+ * messages. If either MARKED or UNMARKED is
+ * provided, you can assume the IMAP server supports this feature for this mailbox.
+ *
+ * ref should normally be just the server
+ * specification as described in imap_open
+ *
+ * @param string $pattern Specifies where in the mailbox hierarchy
+ * to start searching.There are two special characters you can
+ * pass as part of the pattern:
+ * '*' and '%'.
+ * '*' means to return all mailboxes. If you pass
+ * pattern as '*', you will
+ * get a list of the entire mailbox hierarchy.
+ * '%'
+ * means to return the current level only.
+ * '%' as the pattern
+ * parameter will return only the top level
+ * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.
+ * @return array an array of objects containing mailbox information. Each
+ * object has the attributes name, specifying
+ * the full name of the mailbox; delimiter,
+ * which is the hierarchy delimiter for the part of the hierarchy
+ * this mailbox is in; and
+ * attributes. Attributes
+ * is a bitmask that can be tested against:
+ * LATT_NOINFERIORS - This mailbox has no
+ * "children" (there are no mailboxes below this one).
+ * LATT_NOSELECT - This is only a container,
+ * not a mailbox - you cannot open it.
+ * LATT_MARKED - This mailbox is marked.
+ * Only used by UW-IMAPD.
+ * LATT_UNMARKED - This mailbox is not marked.
+ * Only used by UW-IMAPD.
+ */
+function imap_getsubscribed ($imap_stream, $ref, $pattern) {}
+
+/**
+ * (PHP 4, PHP 5)
+ * Alias of imap_body()
+ * @param resource $stream An IMAP stream returned by imap_open()
+ * @param int $msg_no message number
+ * @param int $options [optional] A bitmask with one or more of the following:
+ *
FT_UID - The msg_number is a UID
+ *
FT_PEEK - Do not set the \Seen flag if not already set
+ *
FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.
+ * @return string body of the specified message
+ */
+function imap_fetchtext ($stream, $msg_no, $options = 0) {}
+
+/**
+ * Alias of imap_listscan
+ * @link https://php.net/manual/en/function.imap-scan.php
+ * @param $stream_id
+ * @param $ref
+ * @param $pattern
+ * @param $content
+ */
+function imap_scan ($stream_id, $ref, $pattern, $content) {}
+
+/**
+ * Alias of imap_createmailbox
+ * @link https://php.net/manual/en/function.imap-create.php
+ * @param $stream_id
+ * @param $mailbox
+ */
+function imap_create ($stream_id, $mailbox) {}
+
+/**
+ * Alias of imap_renamemailbox
+ * @link https://php.net/manual/en/function.imap-rename.php
+ * @param $stream_id
+ * @param $old_name
+ * @param $new_name
+ */
+function imap_rename ($stream_id, $old_name, $new_name) {}
+
+/**
+ * Decode a modified UTF-7 string to UTF-8
+ *
+ * @link https://www.php.net/manual/en/function.imap-mutf7-to-utf8.php
+ *
+ * @param string $in
+ * @return string|false
+ */
+function imap_mutf7_to_utf8($in) {}
+
+/**
+ * Encode a UTF-8 string to modified UTF-7
+ *
+ * @link https://www.php.net/manual/en/function.imap-utf8-to-mutf7.php
+ *
+ * @param string $in
+ * @return string|false
+ */
+function imap_utf8_to_mutf7($in) {}
+
+define ('NIL', 0);
+define ('IMAP_OPENTIMEOUT', 1);
+define ('IMAP_READTIMEOUT', 2);
+define ('IMAP_WRITETIMEOUT', 3);
+define ('IMAP_CLOSETIMEOUT', 4);
+define ('OP_DEBUG', 1);
+
+/**
+ * Open mailbox read-only
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('OP_READONLY', 2);
+
+/**
+ * Don't use or update a .newsrc for news
+ * (NNTP only)
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('OP_ANONYMOUS', 4);
+define ('OP_SHORTCACHE', 8);
+define ('OP_SILENT', 16);
+define ('OP_PROTOTYPE', 32);
+
+/**
+ * For IMAP and NNTP
+ * names, open a connection but don't open a mailbox.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('OP_HALFOPEN', 64);
+define ('OP_EXPUNGE', 128);
+define ('OP_SECURE', 256);
+
+/**
+ * silently expunge the mailbox before closing when
+ * calling imap_close
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('CL_EXPUNGE', 32768);
+
+/**
+ * The parameter is a UID
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('FT_UID', 1);
+
+/**
+ * Do not set the \Seen flag if not already set
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('FT_PEEK', 2);
+define ('FT_NOT', 4);
+
+/**
+ * The return string is in internal format, will not canonicalize to CRLF.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('FT_INTERNAL', 8);
+define ('FT_PREFETCHTEXT', 32);
+
+/**
+ * The sequence argument contains UIDs instead of sequence numbers
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('ST_UID', 1);
+define ('ST_SILENT', 2);
+define ('ST_SET', 4);
+
+/**
+ * the sequence numbers contain UIDS
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('CP_UID', 1);
+
+/**
+ * Delete the messages from the current mailbox after copying
+ * with imap_mail_copy
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('CP_MOVE', 2);
+
+/**
+ * Return UIDs instead of sequence numbers
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SE_UID', 1);
+define ('SE_FREE', 2);
+
+/**
+ * Don't prefetch searched messages
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SE_NOPREFETCH', 4);
+define ('SO_FREE', 8);
+define ('SO_NOSERVER', 16);
+define ('SA_MESSAGES', 1);
+define ('SA_RECENT', 2);
+define ('SA_UNSEEN', 4);
+define ('SA_UIDNEXT', 8);
+define ('SA_UIDVALIDITY', 16);
+define ('SA_ALL', 31);
+
+/**
+ * This mailbox has no "children" (there are no
+ * mailboxes below this one).
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('LATT_NOINFERIORS', 1);
+
+/**
+ * This is only a container, not a mailbox - you
+ * cannot open it.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('LATT_NOSELECT', 2);
+
+/**
+ * This mailbox is marked. Only used by UW-IMAPD.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('LATT_MARKED', 4);
+
+/**
+ * This mailbox is not marked. Only used by
+ * UW-IMAPD.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('LATT_UNMARKED', 8);
+define ('LATT_REFERRAL', 16);
+define ('LATT_HASCHILDREN', 32);
+define ('LATT_HASNOCHILDREN', 64);
+
+/**
+ * Sort criteria for imap_sort:
+ * message Date
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SORTDATE', 0);
+
+/**
+ * Sort criteria for imap_sort:
+ * arrival date
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SORTARRIVAL', 1);
+
+/**
+ * Sort criteria for imap_sort:
+ * mailbox in first From address
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SORTFROM', 2);
+
+/**
+ * Sort criteria for imap_sort:
+ * message subject
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SORTSUBJECT', 3);
+
+/**
+ * Sort criteria for imap_sort:
+ * mailbox in first To address
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SORTTO', 4);
+
+/**
+ * Sort criteria for imap_sort:
+ * mailbox in first cc address
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SORTCC', 5);
+
+/**
+ * Sort criteria for imap_sort:
+ * size of message in octets
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('SORTSIZE', 6);
+define ('TYPETEXT', 0);
+define ('TYPEMULTIPART', 1);
+define ('TYPEMESSAGE', 2);
+define ('TYPEAPPLICATION', 3);
+define ('TYPEAUDIO', 4);
+define ('TYPEIMAGE', 5);
+define ('TYPEVIDEO', 6);
+define ('TYPEMODEL', 7);
+define ('TYPEOTHER', 8);
+define ('ENC7BIT', 0);
+define ('ENC8BIT', 1);
+define ('ENCBINARY', 2);
+define ('ENCBASE64', 3);
+define ('ENCQUOTEDPRINTABLE', 4);
+define ('ENCOTHER', 5);
+
+/**
+ * Garbage collector, clear message cache elements.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('IMAP_GC_ELT', 1);
+
+/**
+ * Garbage collector, clear envelopes and bodies.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('IMAP_GC_ENV', 2);
+
+/**
+ * Garbage collector, clear texts.
+ * @link https://php.net/manual/en/imap.constants.php
+ */
+define ('IMAP_GC_TEXTS', 4);
diff --git a/vendor/jetbrains/phpstorm-stubs/inotify/inotify.php b/vendor/jetbrains/phpstorm-stubs/inotify/inotify.php
new file mode 100644
index 0000000000..46fb6fa41d
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/inotify/inotify.php
@@ -0,0 +1,179 @@
+
+ * Add a watch to an initialized inotify instance
+ *
+ * @link https://php.net/manual/en/function.inotify-add-watch.php
+ *
+ * @param resource $inotify_instance
resource returned by {@link https://php.net/manual/en/function.inotify-init.php inotify_init()}
+ * @param string $pathname
File or directory to watch
+ * @param int $mask
Events to watch for. See {@link https://php.net/manual/en/inotify.constants.php Predefined Constants}.
+ *
+ * @return int a unique (inotify instance-wide) watch descriptor.
+ */
+function inotify_add_watch( $inotify_instance, $pathname, $mask )
+{
+}
+
+/**
+ * (PHP >= 5.2.0, PECL inotify >= 0.1.2)
+ * Initialize an inotify instance for use with {@see inotify_add_watch}
+ *
+ * @link https://php.net/manual/en/function.inotify-init.php
+ * @return resource|false a stream resource or FALSE on error.
+ */
+function inotify_init()
+{
+}
+
+/**
+ * (PHP >= 5.2.0, PECL inotify >= 0.1.2)
+ * This function allows to know if {@see inotify_read} will block or not.
+ * If a number upper than zero is returned, there are pending events
+ * and {@see inotify_read} will not block.
+ *
+ * @link https://php.net/manual/en/function.inotify-queue-len.php
+ *
+ * @param resource $inotify_instance
resource returned by {@link https://php.net/manual/en/function.inotify-init.php inotify_init()}
+ *
+ * @return int a number greater than zero if events are pending, otherwise zero.
+ */
+function inotify_queue_len( $inotify_instance )
+{
+}
+
+/**
+ * (PHP >= 5.2.0, PECL inotify >= 0.1.2)
+ * Read inotify events from an inotify instance.
+ *
+ * @link https://php.net/manual/en/function.inotify-read.php
+ *
+ * @param resource $inotify_instance
resource returned by {@link https://php.net/manual/en/function.inotify-init.php inotify_init()}
+ *
+ * @return array|false an array of inotify events or FALSE if no events
+ * were pending and inotify_instance is non-blocking. Each event
+ * is an array with the following keys:
+ *
+ *
+ *
wd is a watch descriptor returned by inotify_add_watch()
+ *
mask is a bit mask of events
+ *
cookie is a unique id to connect related events (e.g. IN_MOVE_FROM and IN_MOVE_TO)
+ *
name is the name of a file (e.g. if a file was modified in a watched directory)
+ *
+ * The user name. Can be set with the
+ * ibase.default_user &php.ini; directive.
+ *
+ * @param string $password [optional]
+ * The password for username. Can be set with the
+ * ibase.default_password &php.ini; directive.
+ *
+ * @param string $charset [optional]
+ * charset is the default character set for a
+ * database.
+ *
+ * @param int $buffers [optional]
+ * buffers is the number of database buffers to
+ * allocate for the server-side cache. If 0 or omitted, server chooses
+ * its own default.
+ *
+ * @param int $dialect [optional]
+ * dialect selects the default SQL dialect for any
+ * statement executed within a connection, and it defaults to the highest
+ * one supported by client libraries. Functional only with InterBase 6
+ * and up.
+ *
+ * @param string $role [optional]
+ * Functional only with InterBase 5 and up.
+ *
+ * @param int $sync [optional]
+ *
+ * @return resource|false an InterBase link identifier on success, or false on error.
+ */
+function ibase_connect ($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {}
+
+/**
+ * Open a persistent connection to an InterBase database
+ * @link https://php.net/manual/en/function.ibase-pconnect.php
+ * @param string $database [optional]
+ * The database argument has to be a valid path to
+ * database file on the server it resides on. If the server is not local,
+ * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/'
+ * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection
+ * protocol used.
+ *
+ * @param string $username [optional]
+ * The user name. Can be set with the
+ * ibase.default_user &php.ini; directive.
+ *
+ * @param string $password [optional]
+ * The password for username. Can be set with the
+ * ibase.default_password &php.ini; directive.
+ *
+ * @param string $charset [optional]
+ * charset is the default character set for a
+ * database.
+ *
+ * @param int $buffers [optional]
+ * buffers is the number of database buffers to
+ * allocate for the server-side cache. If 0 or omitted, server chooses
+ * its own default.
+ *
+ * @param int $dialect [optional]
+ * dialect selects the default SQL dialect for any
+ * statement executed within a connection, and it defaults to the highest
+ * one supported by client libraries. Functional only with InterBase 6
+ * and up.
+ *
+ * @param string $role [optional]
+ * Functional only with InterBase 5 and up.
+ *
+ * @param int $sync [optional]
+ *
+ * @return resource|false an InterBase link identifier on success, or false on error.
+ */
+function ibase_pconnect ($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {}
+
+/**
+ * Close a connection to an InterBase database
+ * @link https://php.net/manual/en/function.ibase-close.php
+ * @param resource $connection_id [optional]
+ * An InterBase link identifier returned from
+ * ibase_connect. If omitted, the last opened link
+ * is assumed.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_close ($connection_id = null) {}
+
+/**
+ * Drops a database
+ * @link https://php.net/manual/en/function.ibase-drop-db.php
+ * @param resource $connection [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_drop_db ($connection = null) {}
+
+/**
+ * Execute a query on an InterBase database
+ * @link https://php.net/manual/en/function.ibase-query.php
+ * @param resource $link_identifier [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param string $query
+ * An InterBase query.
+ *
+ * @param int $bind_args [optional]
+ *
+ * @return resource|bool If the query raises an error, returns false. If it is successful and
+ * there is a (possibly empty) result set (such as with a SELECT query),
+ * returns a result identifier. If the query was successful and there were
+ * no results, returns true.
+ *
+ *
+ * In PHP 5.0.0 and up, this function will return the number of rows
+ * affected by the query for INSERT, UPDATE and DELETE statements. In order
+ * to retain backward compatibility, it will return true for these
+ * statements if the query succeeded without affecting any rows.
+ */
+function ibase_query ($link_identifier = null, $query, $bind_args = null) {}
+
+/**
+ * Fetch a row from an InterBase database
+ * @link https://php.net/manual/en/function.ibase-fetch-row.php
+ * @param resource $result_identifier
+ * An InterBase result identifier.
+ *
+ * @param int $fetch_flag [optional]
+ * fetch_flag is a combination of the constants
+ * IBASE_TEXT and IBASE_UNIXTIME
+ * ORed together. Passing IBASE_TEXT will cause this
+ * function to return BLOB contents instead of BLOB ids. Passing
+ * IBASE_UNIXTIME will cause this function to return
+ * date/time values as Unix timestamps instead of as formatted strings.
+ *
+ * @return array|false an array that corresponds to the fetched row, or false if there
+ * are no more rows. Each result column is stored in an array offset,
+ * starting at offset 0.
+ */
+function ibase_fetch_row ($result_identifier, $fetch_flag = null) {}
+
+/**
+ * Fetch a result row from a query as an associative array
+ * @link https://php.net/manual/en/function.ibase-fetch-assoc.php
+ * @param resource $result
+ * The result handle.
+ *
+ * @param int $fetch_flag [optional]
+ * fetch_flag is a combination of the constants
+ * IBASE_TEXT and IBASE_UNIXTIME
+ * ORed together. Passing IBASE_TEXT will cause this
+ * function to return BLOB contents instead of BLOB ids. Passing
+ * IBASE_UNIXTIME will cause this function to return
+ * date/time values as Unix timestamps instead of as formatted strings.
+ *
+ * @return array|false an associative array that corresponds to the fetched row.
+ * Subsequent calls will return the next row in the result set, or false if
+ * there are no more rows.
+ */
+function ibase_fetch_assoc ($result, $fetch_flag = null) {}
+
+/**
+ * Get an object from a InterBase database
+ * @link https://php.net/manual/en/function.ibase-fetch-object.php
+ * @param resource $result_id
+ * An InterBase result identifier obtained either by
+ * ibase_query or ibase_execute.
+ *
+ * @param int $fetch_flag [optional]
+ * fetch_flag is a combination of the constants
+ * IBASE_TEXT and IBASE_UNIXTIME
+ * ORed together. Passing IBASE_TEXT will cause this
+ * function to return BLOB contents instead of BLOB ids. Passing
+ * IBASE_UNIXTIME will cause this function to return
+ * date/time values as Unix timestamps instead of as formatted strings.
+ *
+ * @return object|false an object with the next row information, or false if there are
+ * no more rows.
+ */
+function ibase_fetch_object ($result_id, $fetch_flag = null) {}
+
+/**
+ * Free a result set
+ * @link https://php.net/manual/en/function.ibase-free-result.php
+ * @param resource $result_identifier
+ * A result set created by ibase_query or
+ * ibase_execute.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_free_result ($result_identifier) {}
+
+/**
+ * Assigns a name to a result set
+ * @link https://php.net/manual/en/function.ibase-name-result.php
+ * @param resource $result
+ * An InterBase result set.
+ *
+ * @param string $name
+ * The name to be assigned.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_name_result ($result, $name) {}
+
+/**
+ * Prepare a query for later binding of parameter placeholders and execution
+ * @link https://php.net/manual/en/function.ibase-prepare.php
+ * @param string $query
+ * An InterBase query.
+ *
+ * @return resource|false a prepared query handle, or false on error.
+ */
+function ibase_prepare ($query) {}
+
+/**
+ * Execute a previously prepared query
+ * @link https://php.net/manual/en/function.ibase-execute.php
+ * @param resource $query
+ * An InterBase query prepared by ibase_prepare.
+ *
+ * @param mixed ...$bind_arg [optional]
+ *
+ * @return resource|bool If the query raises an error, returns false. If it is successful and
+ * there is a (possibly empty) result set (such as with a SELECT query),
+ * returns a result identifier. If the query was successful and there were
+ * no results, returns true.
+ *
+ *
+ * In PHP 5.0.0 and up, this function returns the number of rows affected by
+ * the query (if > 0 and applicable to the statement type). A query that
+ * succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent
+ * record) will return true.
+ */
+function ibase_execute ($query, ...$bind_arg) {}
+
+/**
+ * Free memory allocated by a prepared query
+ * @link https://php.net/manual/en/function.ibase-free-query.php
+ * @param resource $query
+ * A query prepared with ibase_prepare.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_free_query ($query) {}
+
+/**
+ * Increments the named generator and returns its new value
+ * @link https://php.net/manual/en/function.ibase-gen-id.php
+ * @param string $generator
+ * @param int $increment [optional]
+ * @param resource $link_identifier [optional]
+ * @return mixed new generator value as integer, or as string if the value is too big.
+ */
+function ibase_gen_id ($generator, $increment = null, $link_identifier = null) {}
+
+/**
+ * Get the number of fields in a result set
+ * @link https://php.net/manual/en/function.ibase-num-fields.php
+ * @param resource $result_id
+ * An InterBase result identifier.
+ *
+ * @return int the number of fields as an integer.
+ */
+function ibase_num_fields ($result_id) {}
+
+/**
+ * Return the number of parameters in a prepared query
+ * @link https://php.net/manual/en/function.ibase-num-params.php
+ * @param resource $query
+ * The prepared query handle.
+ *
+ * @return int the number of parameters as an integer.
+ */
+function ibase_num_params ($query) {}
+
+/**
+ * Return the number of rows that were affected by the previous query
+ * @link https://php.net/manual/en/function.ibase-affected-rows.php
+ * @param resource $link_identifier [optional]
+ * A transaction context. If link_identifier is a
+ * connection resource, its default transaction is used.
+ *
+ * @return int the number of rows as an integer.
+ */
+function ibase_affected_rows ($link_identifier = null) {}
+
+/**
+ * Get information about a field
+ * @link https://php.net/manual/en/function.ibase-field-info.php
+ * @param resource $result
+ * An InterBase result identifier.
+ *
+ * @param int $field_number
+ * Field offset.
+ *
+ * @return array an array with the following keys: name,
+ * alias, relation,
+ * length and type.
+ */
+function ibase_field_info ($result, $field_number) {}
+
+/**
+ * Return information about a parameter in a prepared query
+ * @link https://php.net/manual/en/function.ibase-param-info.php
+ * @param resource $query
+ * An InterBase prepared query handle.
+ *
+ * @param int $param_number
+ * Parameter offset.
+ *
+ * @return array an array with the following keys: name,
+ * alias, relation,
+ * length and type.
+ */
+function ibase_param_info ($query, $param_number) {}
+
+/**
+ * Begin a transaction
+ * @link https://php.net/manual/en/function.ibase-trans.php
+ * @param int $trans_args [optional]
+ * trans_args can be a combination of
+ * IBASE_READ,
+ * IBASE_WRITE,
+ * IBASE_COMMITTED,
+ * IBASE_CONSISTENCY,
+ * IBASE_CONCURRENCY,
+ * IBASE_REC_VERSION,
+ * IBASE_REC_NO_VERSION,
+ * IBASE_WAIT and
+ * IBASE_NOWAIT.
+ *
+ * @param resource $link_identifier [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @return resource|false a transaction handle, or false on error.
+ */
+function ibase_trans ($trans_args = null, $link_identifier = null) {}
+
+/**
+ * Commit a transaction
+ * @link https://php.net/manual/en/function.ibase-commit.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function commits the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be committed. If the argument is a transaction identifier, the
+ * corresponding transaction will be committed.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_commit ($link_or_trans_identifier = null) {}
+
+/**
+ * Roll back a transaction
+ * @link https://php.net/manual/en/function.ibase-rollback.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function rolls back the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be rolled back. If the argument is a transaction identifier, the
+ * corresponding transaction will be rolled back.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_rollback ($link_or_trans_identifier = null) {}
+
+/**
+ * Commit a transaction without closing it
+ * @link https://php.net/manual/en/function.ibase-commit-ret.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function commits the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be committed. If the argument is a transaction identifier, the
+ * corresponding transaction will be committed. The transaction context
+ * will be retained, so statements executed from within this transaction
+ * will not be invalidated.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_commit_ret ($link_or_trans_identifier = null) {}
+
+/**
+ * Roll back a transaction without closing it
+ * @link https://php.net/manual/en/function.ibase-rollback-ret.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function rolls back the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be rolled back. If the argument is a transaction identifier, the
+ * corresponding transaction will be rolled back. The transaction context
+ * will be retained, so statements executed from within this transaction
+ * will not be invalidated.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_rollback_ret ($link_or_trans_identifier = null) {}
+
+/**
+ * Return blob length and other useful info
+ * @link https://php.net/manual/en/function.ibase-blob-info.php
+ * @param resource $link_identifier
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param string $blob_id
+ * A BLOB id.
+ *
+ * @return array an array containing information about a BLOB. The information returned
+ * consists of the length of the BLOB, the number of segments it contains, the size
+ * of the largest segment, and whether it is a stream BLOB or a segmented BLOB.
+ */
+function ibase_blob_info ($link_identifier, $blob_id) {}
+
+/**
+ * Create a new blob for adding data
+ * @link https://php.net/manual/en/function.ibase-blob-create.php
+ * @param resource $link_identifier [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @return resource|false a BLOB handle for later use with
+ * ibase_blob_add or false on failure.
+ */
+function ibase_blob_create ($link_identifier = null) {}
+
+/**
+ * Add data into a newly created blob
+ * @link https://php.net/manual/en/function.ibase-blob-add.php
+ * @param resource $blob_handle
+ * A blob handle opened with ibase_blob_create.
+ *
+ * A BLOB handle opened with ibase_blob_create.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_blob_cancel ($blob_handle) {}
+
+/**
+ * Close blob
+ * @link https://php.net/manual/en/function.ibase-blob-close.php
+ * @param resource $blob_handle
+ * A BLOB handle opened with ibase_blob_create or
+ * ibase_blob_open.
+ *
+ * @return mixed If the BLOB was being read, this function returns true on success, if
+ * the BLOB was being written to, this function returns a string containing
+ * the BLOB id that has been assigned to it by the database. On failure, this
+ * function returns false.
+ */
+function ibase_blob_close ($blob_handle) {}
+
+/**
+ * Open blob for retrieving data parts
+ * @link https://php.net/manual/en/function.ibase-blob-open.php
+ * @param resource $link_identifier
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param string $blob_id
+ * A BLOB id.
+ *
+ * @return resource|false a BLOB handle for later use with
+ * ibase_blob_get or false on failure.
+ */
+function ibase_blob_open ($link_identifier, $blob_id) {}
+
+/**
+ * Get len bytes data from open blob
+ * @link https://php.net/manual/en/function.ibase-blob-get.php
+ * @param resource $blob_handle
+ * A BLOB handle opened with ibase_blob_open.
+ *
+ * @param int $len
+ * Size of returned data.
+ *
+ * @return string|false at most len bytes from the BLOB, or false
+ * on failure.
+ */
+function ibase_blob_get ($blob_handle, $len) {}
+
+/**
+ * Output blob contents to browser
+ * @link https://php.net/manual/en/function.ibase-blob-echo.php
+ * @param string $blob_id
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_blob_echo ($blob_id) {}
+
+/**
+ * Create blob, copy file in it, and close it
+ * @link https://php.net/manual/en/function.ibase-blob-import.php
+ * @param resource $link_identifier
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param resource $file_handle
+ * The file handle is a handle returned by fopen.
+ *
+ * @return string|false the BLOB id on success, or false on error.
+ */
+function ibase_blob_import ($link_identifier, $file_handle) {}
+
+/**
+ * Return error messages
+ * @link https://php.net/manual/en/function.ibase-errmsg.php
+ * @return string|false the error message as a string, or false if no error occurred.
+ */
+function ibase_errmsg () {}
+
+/**
+ * Return an error code
+ * @link https://php.net/manual/en/function.ibase-errcode.php
+ * @return int|false the error code as an integer, or false if no error occurred.
+ */
+function ibase_errcode () {}
+
+/**
+ * Add a user to a security database (only for IB6 or later)
+ * @link https://php.net/manual/en/function.ibase-add-user.php
+ * @param resource $service_handle
+ * @param string $user_name
+ * @param string $password
+ * @param string $first_name [optional]
+ * @param string $middle_name [optional]
+ * @param string $last_name [optional]
+ * @return bool true on success or false on failure.
+ */
+function ibase_add_user ($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {}
+
+/**
+ * Modify a user to a security database (only for IB6 or later)
+ * @link https://php.net/manual/en/function.ibase-modify-user.php
+ * @param resource $service_handle
+ * @param string $user_name
+ * @param string $password
+ * @param string $first_name [optional]
+ * @param string $middle_name [optional]
+ * @param string $last_name [optional]
+ * @return bool true on success or false on failure.
+ */
+function ibase_modify_user ($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {}
+
+/**
+ * Delete a user from a security database (only for IB6 or later)
+ * @link https://php.net/manual/en/function.ibase-delete-user.php
+ * @param resource $service_handle
+ * @param string $user_name
+ * @return bool true on success or false on failure.
+ */
+function ibase_delete_user ($service_handle, $user_name) {}
+
+/**
+ * Connect to the service manager
+ * @link https://php.net/manual/en/function.ibase-service-attach.php
+ * @param string $host
+ * @param string $dba_username
+ * @param string $dba_password
+ * @return resource|false
+ */
+function ibase_service_attach ($host, $dba_username, $dba_password) {}
+
+/**
+ * Disconnect from the service manager
+ * @link https://php.net/manual/en/function.ibase-service-detach.php
+ * @param resource $service_handle
+ * @return bool true on success or false on failure.
+ */
+function ibase_service_detach ($service_handle) {}
+
+/**
+ * Initiates a backup task in the service manager and returns immediately
+ * @link https://php.net/manual/en/function.ibase-backup.php
+ * @param resource $service_handle
+ * @param string $source_db
+ * @param string $dest_file
+ * @param int $options [optional]
+ * @param bool $verbose [optional]
+ * @return mixed
+ */
+function ibase_backup ($service_handle, $source_db, $dest_file, $options = null, $verbose = null) {}
+
+/**
+ * Initiates a restore task in the service manager and returns immediately
+ * @link https://php.net/manual/en/function.ibase-restore.php
+ * @param resource $service_handle
+ * @param string $source_file
+ * @param string $dest_db
+ * @param int $options [optional]
+ * @param bool $verbose [optional]
+ * @return mixed
+ */
+function ibase_restore ($service_handle, $source_file, $dest_db, $options = null, $verbose = null) {}
+
+/**
+ * Execute a maintenance command on the database server
+ * @link https://php.net/manual/en/function.ibase-maintain-db.php
+ * @param resource $service_handle
+ * @param string $db
+ * @param int $action
+ * @param int $argument [optional]
+ * @return bool true on success or false on failure.
+ */
+function ibase_maintain_db ($service_handle, $db, $action, $argument = null) {}
+
+/**
+ * Request statistics about a database
+ * @link https://php.net/manual/en/function.ibase-db-info.php
+ * @param resource $service_handle
+ * @param string $db
+ * @param int $action
+ * @param int $argument [optional]
+ * @return string
+ */
+function ibase_db_info ($service_handle, $db, $action, $argument = null) {}
+
+/**
+ * Request information about a database server
+ * @link https://php.net/manual/en/function.ibase-server-info.php
+ * @param resource $service_handle
+ * @param int $action
+ * @return string
+ */
+function ibase_server_info ($service_handle, $action) {}
+
+/**
+ * Wait for an event to be posted by the database
+ * @link https://php.net/manual/en/function.ibase-wait-event.php
+ * @param string $event_name1
+ * The event name.
+ *
+ * @param string $event_name2 [optional]
+ *
+ * @param string ...$_ [optional]
+ * @return string the name of the event that was posted.
+ */
+function ibase_wait_event ($event_name1, $event_name2 = null, ...$_) {}
+
+/**
+ * Register a callback function to be called when events are posted
+ * @link https://php.net/manual/en/function.ibase-set-event-handler.php
+ * @param callback $event_handler
+ * The callback is called with the event name and the link resource as
+ * arguments whenever one of the specified events is posted by the
+ * database.
+ *
+ *
+ * The callback must return false if the event handler should be
+ * canceled. Any other return value is ignored. This function accepts up
+ * to 15 event arguments.
+ *
+ * @param string $event_name1
+ * An event name.
+ *
+ * @param string $event_name2 [optional]
+ * At most 15 events allowed.
+ *
+ * @param string ...$_ [optional]
+ * @return resource The return value is an event resource. This resource can be used to free
+ * the event handler using ibase_free_event_handler.
+ */
+function ibase_set_event_handler ($event_handler, $event_name1, $event_name2 = null, ...$_) {}
+
+/**
+ * Cancels a registered event handler
+ * @link https://php.net/manual/en/function.ibase-free-event-handler.php
+ * @param resource $event
+ * An event resource, created by
+ * ibase_set_event_handler.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ibase_free_event_handler ($event) {}
+
+/**
+ * This is an alias of ibase_connect
+ * Open a connection to an InterBase database
+ * @link https://php.net/manual/en/function.fbird-connect.php
+ * @param string $database [optional]
+ * The database argument has to be a valid path to
+ * database file on the server it resides on. If the server is not local,
+ * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/'
+ * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection
+ * protocol used.
+ *
+ * @param string $username [optional]
+ * The user name. Can be set with the
+ * fbird.default_user &php.ini; directive.
+ *
+ * @param string $password [optional]
+ * The password for username. Can be set with the
+ * fbird.default_password &php.ini; directive.
+ *
+ * @param string $charset [optional]
+ * charset is the default character set for a
+ * database.
+ *
+ * @param int $buffers [optional]
+ * buffers is the number of database buffers to
+ * allocate for the server-side cache. If 0 or omitted, server chooses
+ * its own default.
+ *
+ * @param int $dialect [optional]
+ * dialect selects the default SQL dialect for any
+ * statement executed within a connection, and it defaults to the highest
+ * one supported by client libraries. Functional only with InterBase 6
+ * and up.
+ *
+ * @param string $role [optional]
+ * Functional only with InterBase 5 and up.
+ *
+ * @param int $sync [optional]
+ *
+ * @return resource|false an InterBase link identifier on success, or false on error.
+ */
+function fbird_connect ($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {}
+
+/**
+ * This is an alias of ibase_pconnect
+ * Open a persistent connection to an InterBase database
+ * @link https://php.net/manual/en/function.fbird-pconnect.php
+ * @param string $database [optional]
+ * The database argument has to be a valid path to
+ * database file on the server it resides on. If the server is not local,
+ * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/'
+ * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection
+ * protocol used.
+ *
+ * @param string $username [optional]
+ * The user name. Can be set with the
+ * fbird.default_user &php.ini; directive.
+ *
+ * @param string $password [optional]
+ * The password for username. Can be set with the
+ * fbird.default_password &php.ini; directive.
+ *
+ * @param string $charset [optional]
+ * charset is the default character set for a
+ * database.
+ *
+ * @param int $buffers [optional]
+ * buffers is the number of database buffers to
+ * allocate for the server-side cache. If 0 or omitted, server chooses
+ * its own default.
+ *
+ * @param int $dialect [optional]
+ * dialect selects the default SQL dialect for any
+ * statement executed within a connection, and it defaults to the highest
+ * one supported by client libraries. Functional only with InterBase 6
+ * and up.
+ *
+ * @param string $role [optional]
+ * Functional only with InterBase 5 and up.
+ *
+ * @param int $sync [optional]
+ *
+ * @return resource|false an InterBase link identifier on success, or false on error.
+ */
+function fbird_pconnect ($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {}
+
+/**
+ * This is an alias of ibase_close
+ * Close a connection to an InterBase database
+ * @link https://php.net/manual/en/function.fbird-close.php
+ * @param resource $connection_id [optional]
+ * An InterBase link identifier returned from
+ * fbird_connect. If omitted, the last opened link
+ * is assumed.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_close ($connection_id = null) {}
+
+/**
+ * This is an alias of ibase_drop_db
+ * Drops a database
+ * @link https://php.net/manual/en/function.fbird-drop-db.php
+ * @param resource $connection [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_drop_db ($connection = null) {}
+
+/**
+ * This is an alias of ibase_query
+ * Execute a query on an InterBase database
+ * @link https://php.net/manual/en/function.fbird-query.php
+ * @param resource $link_identifier [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param string $query
+ * An InterBase query.
+ *
+ * @param int $bind_args [optional]
+ *
+ * @return resource|bool If the query raises an error, returns false. If it is successful and
+ * there is a (possibly empty) result set (such as with a SELECT query),
+ * returns a result identifier. If the query was successful and there were
+ * no results, returns true.
+ *
+ *
+ * In PHP 5.0.0 and up, this function will return the number of rows
+ * affected by the query for INSERT, UPDATE and DELETE statements. In order
+ * to retain backward compatibility, it will return true for these
+ * statements if the query succeeded without affecting any rows.
+ */
+function fbird_query ($link_identifier = null, $query, $bind_args = null) {}
+
+/**
+ * This is an alias of ibase_fetch_row
+ * Fetch a row from an InterBase database
+ * @link https://php.net/manual/en/function.fbird-fetch-row.php
+ * @param resource $result_identifier
+ * An InterBase result identifier.
+ *
+ * @param int $fetch_flag [optional]
+ * fetch_flag is a combination of the constants
+ * IBASE_TEXT and IBASE_UNIXTIME
+ * ORed together. Passing IBASE_TEXT will cause this
+ * function to return BLOB contents instead of BLOB ids. Passing
+ * IBASE_UNIXTIME will cause this function to return
+ * date/time values as Unix timestamps instead of as formatted strings.
+ *
+ * @return array|false an array that corresponds to the fetched row, or false if there
+ * are no more rows. Each result column is stored in an array offset,
+ * starting at offset 0.
+ */
+function fbird_fetch_row ($result_identifier, $fetch_flag = null) {}
+
+/**
+ * This is an alias of ibase_fetch_assoc
+ * Fetch a result row from a query as an associative array
+ * @link https://php.net/manual/en/function.fbird-fetch-assoc.php
+ * @param resource $result
+ * The result handle.
+ *
+ * @param int $fetch_flag [optional]
+ * fetch_flag is a combination of the constants
+ * IBASE_TEXT and IBASE_UNIXTIME
+ * ORed together. Passing IBASE_TEXT will cause this
+ * function to return BLOB contents instead of BLOB ids. Passing
+ * IBASE_UNIXTIME will cause this function to return
+ * date/time values as Unix timestamps instead of as formatted strings.
+ *
+ * @return array|false an associative array that corresponds to the fetched row.
+ * Subsequent calls will return the next row in the result set, or false if
+ * there are no more rows.
+ */
+function fbird_fetch_assoc ($result, $fetch_flag = null) {}
+
+/**
+ * This is an alias of ibase_fetch_object
+ * Get an object from a InterBase database
+ * @link https://php.net/manual/en/function.fbird-fetch-object.php
+ * @param resource $result_id
+ * An InterBase result identifier obtained either by
+ * fbird_query or fbird_execute.
+ *
+ * @param int $fetch_flag [optional]
+ * fetch_flag is a combination of the constants
+ * IBASE_TEXT and IBASE_UNIXTIME
+ * ORed together. Passing IBASE_TEXT will cause this
+ * function to return BLOB contents instead of BLOB ids. Passing
+ * IBASE_UNIXTIME will cause this function to return
+ * date/time values as Unix timestamps instead of as formatted strings.
+ *
+ * @return object|false an object with the next row information, or false if there are
+ * no more rows.
+ */
+function fbird_fetch_object ($result_id, $fetch_flag = null) {}
+
+/**
+ * This is an alias of ibase_free_result
+ * Free a result set
+ * @link https://php.net/manual/en/function.fbird-free-result.php
+ * @param resource $result_identifier
+ * A result set created by fbird_query or
+ * fbird_execute.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_free_result ($result_identifier) {}
+
+/**
+ * This is an alias of ibase_name_result
+ * Assigns a name to a result set
+ * @link https://php.net/manual/en/function.fbird-name-result.php
+ * @param resource $result
+ * An InterBase result set.
+ *
+ * @param string $name
+ * The name to be assigned.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_name_result ($result, $name) {}
+
+/**
+ * This is an alias of ibase_prepare
+ * Prepare a query for later binding of parameter placeholders and execution
+ * @link https://php.net/manual/en/function.fbird-prepare.php
+ * @param string $query
+ * An InterBase query.
+ *
+ * @return resource|false a prepared query handle, or false on error.
+ */
+function fbird_prepare ($query) {}
+
+/**
+ * This is an alias of ibase_execute
+ * Execute a previously prepared query
+ * @link https://php.net/manual/en/function.fbird-execute.php
+ * @param resource $query
+ * An InterBase query prepared by fbird_prepare.
+ *
+ * @param mixed ...$bind_arg [optional]
+ * @return resource|bool If the query raises an error, returns false. If it is successful and
+ * there is a (possibly empty) result set (such as with a SELECT query),
+ * returns a result identifier. If the query was successful and there were
+ * no results, returns true.
+ *
+ *
+ * In PHP 5.0.0 and up, this function returns the number of rows affected by
+ * the query (if > 0 and applicable to the statement type). A query that
+ * succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent
+ * record) will return true.
+ */
+function fbird_execute ($query, ...$bind_arg) {}
+
+/**
+ * This is an alias of ibase_free_query
+ * Free memory allocated by a prepared query
+ * @link https://php.net/manual/en/function.fbird-free-query.php
+ * @param resource $query
+ * A query prepared with fbird_prepare.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_free_query ($query) {}
+
+/**
+ * This is an alias of ibase_gen_id
+ * Increments the named generator and returns its new value
+ * @link https://php.net/manual/en/function.fbird-gen-id.php
+ * @param string $generator
+ * @param int $increment [optional]
+ * @param resource $link_identifier [optional]
+ * @return mixed new generator value as integer, or as string if the value is too big.
+ */
+function fbird_gen_id ($generator, $increment = null, $link_identifier = null) {}
+
+/**
+ * This is an alias of ibase_num_fields
+ * Get the number of fields in a result set
+ * @link https://php.net/manual/en/function.fbird-num-fields.php
+ * @param resource $result_id
+ * An InterBase result identifier.
+ *
+ * @return int the number of fields as an integer.
+ */
+function fbird_num_fields ($result_id) {}
+
+/**
+ * This is an alias of ibase_num_params
+ * Return the number of parameters in a prepared query
+ * @link https://php.net/manual/en/function.fbird-num-params.php
+ * @param resource $query
+ * The prepared query handle.
+ *
+ * @return int the number of parameters as an integer.
+ */
+function fbird_num_params ($query) {}
+
+/**
+ * This is an alias of ibase_affected_rows
+ * Return the number of rows that were affected by the previous query
+ * @link https://php.net/manual/en/function.fbird-affected-rows.php
+ * @param resource $link_identifier [optional]
+ * A transaction context. If link_identifier is a
+ * connection resource, its default transaction is used.
+ *
+ * @return int the number of rows as an integer.
+ */
+function fbird_affected_rows ($link_identifier = null) {}
+
+/**
+ * This is an alias of ibase_field_info
+ * Get information about a field
+ * @link https://php.net/manual/en/function.fbird-field-info.php
+ * @param resource $result
+ * An InterBase result identifier.
+ *
+ * @param int $field_number
+ * Field offset.
+ *
+ * @return array an array with the following keys: name,
+ * alias, relation,
+ * length and type.
+ */
+function fbird_field_info ($result, $field_number) {}
+
+/**
+ * This is an alias of ibase_param_info
+ * Return information about a parameter in a prepared query
+ * @link https://php.net/manual/en/function.fbird-param-info.php
+ * @param resource $query
+ * An InterBase prepared query handle.
+ *
+ * @param int $param_number
+ * Parameter offset.
+ *
+ * @return array an array with the following keys: name,
+ * alias, relation,
+ * length and type.
+ */
+function fbird_param_info ($query, $param_number) {}
+
+/**
+ * This is an alias of ibase_trans
+ * Begin a transaction
+ * @link https://php.net/manual/en/function.fbird-trans.php
+ * @param int $trans_args [optional]
+ * trans_args can be a combination of
+ * IBASE_READ,
+ * IBASE_WRITE,
+ * IBASE_COMMITTED,
+ * IBASE_CONSISTENCY,
+ * IBASE_CONCURRENCY,
+ * IBASE_REC_VERSION,
+ * IBASE_REC_NO_VERSION,
+ * IBASE_WAIT and
+ * IBASE_NOWAIT.
+ *
+ * @param resource $link_identifier [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @return resource|false a transaction handle, or false on error.
+ */
+function fbird_trans ($trans_args = null, $link_identifier = null) {}
+
+/**
+ * This is an alias of ibase_commit
+ * Commit a transaction
+ * @link https://php.net/manual/en/function.fbird-commit.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function commits the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be committed. If the argument is a transaction identifier, the
+ * corresponding transaction will be committed.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_commit ($link_or_trans_identifier = null) {}
+
+/**
+ * This is an alias of ibase_rollback
+ * Roll back a transaction
+ * @link https://php.net/manual/en/function.fbird-rollback.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function rolls back the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be rolled back. If the argument is a transaction identifier, the
+ * corresponding transaction will be rolled back.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_rollback ($link_or_trans_identifier = null) {}
+
+/**
+ * This is an alias of ibase_commit_ret
+ * Commit a transaction without closing it
+ * @link https://php.net/manual/en/function.fbird-commit-ret.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function commits the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be committed. If the argument is a transaction identifier, the
+ * corresponding transaction will be committed. The transaction context
+ * will be retained, so statements executed from within this transaction
+ * will not be invalidated.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_commit_ret ($link_or_trans_identifier = null) {}
+
+/**
+ * This is an alias of ibase_rollback_ret
+ * Roll back a transaction without closing it
+ * @link https://php.net/manual/en/function.fbird-rollback-ret.php
+ * @param resource $link_or_trans_identifier [optional]
+ * If called without an argument, this function rolls back the default
+ * transaction of the default link. If the argument is a connection
+ * identifier, the default transaction of the corresponding connection
+ * will be rolled back. If the argument is a transaction identifier, the
+ * corresponding transaction will be rolled back. The transaction context
+ * will be retained, so statements executed from within this transaction
+ * will not be invalidated.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_rollback_ret ($link_or_trans_identifier = null) {}
+
+/**
+ * This is an alias of ibase_blob_info
+ * Return blob length and other useful info
+ * @link https://php.net/manual/en/function.fbird-blob-info.php
+ * @param resource $link_identifier
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param string $blob_id
+ * A BLOB id.
+ *
+ * @return array an array containing information about a BLOB. The information returned
+ * consists of the length of the BLOB, the number of segments it contains, the size
+ * of the largest segment, and whether it is a stream BLOB or a segmented BLOB.
+ */
+function fbird_blob_info ($link_identifier, $blob_id) {}
+
+/**
+ * This is an alias of ibase_blob_create
+ * Create a new blob for adding data
+ * @link https://php.net/manual/en/function.fbird-blob-create.php
+ * @param resource $link_identifier [optional]
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @return resource|false a BLOB handle for later use with
+ * fbird_blob_add or false on failure.
+ */
+function fbird_blob_create ($link_identifier = null) {}
+
+/**
+ * This is an alias of ibase_blob_add
+ * Add data into a newly created blob
+ * @link https://php.net/manual/en/function.fbird-blob-add.php
+ * @param resource $blob_handle
+ * A blob handle opened with fbird_blob_create.
+ *
+ * @param string $data
+ * The data to be added.
+ *
+ * @return void
+ */
+function fbird_blob_add ($blob_handle, $data) {}
+
+/**
+ * This is an alias of ibase_blob_cancel
+ * Cancel creating blob
+ * @link https://php.net/manual/en/function.fbird-blob-cancel.php
+ * @param resource $blob_handle
+ * A BLOB handle opened with fbird_blob_create.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_blob_cancel ($blob_handle) {}
+
+/**
+ * This is an alias of ibase_blob_close
+ * Close blob
+ * @link https://php.net/manual/en/function.fbird-blob-close.php
+ * @param resource $blob_handle
+ * A BLOB handle opened with fbird_blob_create or
+ * fbird_blob_open.
+ *
+ * @return mixed If the BLOB was being read, this function returns true on success, if
+ * the BLOB was being written to, this function returns a string containing
+ * the BLOB id that has been assigned to it by the database. On failure, this
+ * function returns false.
+ */
+function fbird_blob_close ($blob_handle) {}
+
+/**
+ * This is an alias of ibase_blob_open
+ * Open blob for retrieving data parts
+ * @link https://php.net/manual/en/function.fbird-blob-open.php
+ * @param resource $link_identifier
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param string $blob_id
+ * A BLOB id.
+ *
+ * @return resource|false a BLOB handle for later use with
+ * fbird_blob_get or false on failure.
+ */
+function fbird_blob_open ($link_identifier, $blob_id) {}
+
+/**
+ * This is an alias of ibase_blob_get
+ * Get len bytes data from open blob
+ * @link https://php.net/manual/en/function.fbird-blob-get.php
+ * @param resource $blob_handle
+ * A BLOB handle opened with fbird_blob_open.
+ *
+ * @param int $len
+ * Size of returned data.
+ *
+ * @return string|false at most len bytes from the BLOB, or false
+ * on failure.
+ */
+function fbird_blob_get ($blob_handle, $len) {}
+
+/**
+ * This is an alias of ibase_blob_echo
+ * Output blob contents to browser
+ * @link https://php.net/manual/en/function.fbird-blob-echo.php
+ * @param string $blob_id
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_blob_echo ($blob_id) {}
+
+/**
+ * This is an alias of ibase_blob_import
+ * Create blob, copy file in it, and close it
+ * @link https://php.net/manual/en/function.fbird-blob-import.php
+ * @param resource $link_identifier
+ * An InterBase link identifier. If omitted, the last opened link is
+ * assumed.
+ *
+ * @param resource $file_handle
+ * The file handle is a handle returned by fopen.
+ *
+ * @return string|false the BLOB id on success, or false on error.
+ */
+function fbird_blob_import ($link_identifier, $file_handle) {}
+
+/**
+ * This is an alias of ibase_errmsg
+ * Return error messages
+ * @link https://php.net/manual/en/function.fbird-errmsg.php
+ * @return string|false the error message as a string, or false if no error occurred.
+ */
+function fbird_errmsg () {}
+
+/**
+ * This is an alias of ibase_errcode
+ * Return an error code
+ * @link https://php.net/manual/en/function.fbird-errcode.php
+ * @return int|false the error code as an integer, or false if no error occurred.
+ */
+function fbird_errcode () {}
+
+/**
+ * This is an alias of ibase_add_user
+ * Add a user to a security database (only for IB6 or later)
+ * @link https://php.net/manual/en/function.fbird-add-user.php
+ * @param resource $service_handle
+ * @param string $user_name
+ * @param string $password
+ * @param string $first_name [optional]
+ * @param string $middle_name [optional]
+ * @param string $last_name [optional]
+ * @return bool true on success or false on failure.
+ */
+function fbird_add_user ($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {}
+
+/**
+ * This is an alias of ibase_modify_user
+ * Modify a user to a security database (only for IB6 or later)
+ * @link https://php.net/manual/en/function.fbird-modify-user.php
+ * @param resource $service_handle
+ * @param string $user_name
+ * @param string $password
+ * @param string $first_name [optional]
+ * @param string $middle_name [optional]
+ * @param string $last_name [optional]
+ * @return bool true on success or false on failure.
+ */
+function fbird_modify_user ($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {}
+
+/**
+ * This is an alias of ibase_delete_user
+ * Delete a user from a security database (only for IB6 or later)
+ * @link https://php.net/manual/en/function.fbird-delete-user.php
+ * @param resource $service_handle
+ * @param string $user_name
+ * @return bool true on success or false on failure.
+ */
+function fbird_delete_user ($service_handle, $user_name) {}
+
+/**
+ * This is an alias of ibase_service_attach
+ * Connect to the service manager
+ * @link https://php.net/manual/en/function.fbird-service-attach.php
+ * @param string $host
+ * @param string $dba_username
+ * @param string $dba_password
+ * @return resource|false
+ */
+function fbird_service_attach ($host, $dba_username, $dba_password) {}
+
+/**
+ * This is an alias of ibase_service_detach
+ * Disconnect from the service manager
+ * @link https://php.net/manual/en/function.fbird-service-detach.php
+ * @param resource $service_handle
+ * @return bool true on success or false on failure.
+ */
+function fbird_service_detach ($service_handle) {}
+
+/**
+ * This is an alias of ibase_backup
+ * Initiates a backup task in the service manager and returns immediately
+ * @link https://php.net/manual/en/function.fbird-backup.php
+ * @param resource $service_handle
+ * @param string $source_db
+ * @param string $dest_file
+ * @param int $options [optional]
+ * @param bool $verbose [optional]
+ * @return mixed
+ */
+function fbird_backup ($service_handle, $source_db, $dest_file, $options = null, $verbose = null) {}
+
+/**
+ * This is an alias of ibase_restore
+ * Initiates a restore task in the service manager and returns immediately
+ * @link https://php.net/manual/en/function.fbird-restore.php
+ * @param resource $service_handle
+ * @param string $source_file
+ * @param string $dest_db
+ * @param int $options [optional]
+ * @param bool $verbose [optional]
+ * @return mixed
+ */
+function fbird_restore ($service_handle, $source_file, $dest_db, $options = null, $verbose = null) {}
+
+/**
+ * This is an alias of ibase_maintain_db
+ * Execute a maintenance command on the database server
+ * @link https://php.net/manual/en/function.fbird-maintain-db.php
+ * @param resource $service_handle
+ * @param string $db
+ * @param int $action
+ * @param int $argument [optional]
+ * @return bool true on success or false on failure.
+ */
+function fbird_maintain_db ($service_handle, $db, $action, $argument = null) {}
+
+/**
+ * This is an alias of ibase_db_info
+ * Request statistics about a database
+ * @link https://php.net/manual/en/function.fbird-db-info.php
+ * @param resource $service_handle
+ * @param string $db
+ * @param int $action
+ * @param int $argument [optional]
+ * @return string
+ */
+function fbird_db_info ($service_handle, $db, $action, $argument = null) {}
+
+/**
+ * This is an alias of ibase_server_info
+ * Request information about a database server
+ * @link https://php.net/manual/en/function.fbird-server-info.php
+ * @param resource $service_handle
+ * @param int $action
+ * @return string
+ */
+function fbird_server_info ($service_handle, $action) {}
+
+/**
+ * This is an alias of ibase_wait_event
+ * Wait for an event to be posted by the database
+ * @link https://php.net/manual/en/function.fbird-wait-event.php
+ * @param string $event_name1
+ * The event name.
+ *
+ * @param string $event_name2 [optional]
+ *
+ * @param string ...$_ [optional]
+ * @return string the name of the event that was posted.
+ */
+function fbird_wait_event ($event_name1, $event_name2 = null, ...$_) {}
+
+/**
+ * This is an alias of ibase_set_event_handler
+ * Register a callback function to be called when events are posted
+ * @link https://php.net/manual/en/function.fbird-set-event-handler.php
+ * @param callback $event_handler
+ * The callback is called with the event name and the link resource as
+ * arguments whenever one of the specified events is posted by the
+ * database.
+ *
+ *
+ * The callback must return false if the event handler should be
+ * canceled. Any other return value is ignored. This function accepts up
+ * to 15 event arguments.
+ *
+ * @param string $event_name1
+ * An event name.
+ *
+ * @param string $event_name2 [optional]
+ * At most 15 events allowed.
+ *
+ * @param string ...$_ [optional]
+ * @return resource The return value is an event resource. This resource can be used to free
+ * the event handler using fbird_free_event_handler.
+ */
+function fbird_set_event_handler ($event_handler, $event_name1, $event_name2 = null, ...$_) {}
+
+/**
+ * This is an alias of ibase_free_event_handler
+ * Cancels a registered event handler
+ * @link https://php.net/manual/en/function.fbird-free-event-handler.php
+ * @param resource $event
+ * An event resource, created by
+ * fbird_set_event_handler.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fbird_free_event_handler ($event) {}
+
+/**
+ * The default transaction settings are to be used.
+ * This default is determined by the client library, which defines it as IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_DEFAULT', 0);
+/**
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_CREATE', 0);
+/**
+ * Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_TEXT', 1);
+/**
+ * Also available as IBASE_TEXT for backward compatibility.
+ * Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_FETCH_BLOBS', 1);
+/**
+ * Causes arrays to be fetched inline. Otherwise, array identifiers are returned.
+ * Array identifiers can only be used as arguments to INSERT operations, as no functions to handle array identifiers are currently available.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_FETCH_ARRAYS', 2);
+/**
+ * Causes date and time fields not to be returned as strings, but as UNIX timestamps (the number of seconds since the epoch, which is 1-Jan-1970 0:00 UTC).
+ * Might be problematic if used with dates before 1970 on some systems.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_UNIXTIME', 4);
+/**
+ * Starts a read-write transaction.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_WRITE', 1);
+/**
+ * Starts a read-only transaction.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_READ', 2);
+/**
+ * Starts a transaction with the isolation level set to 'read committed'.
+ * This flag should be combined with either IBASE_REC_VERSION or IBASE_REC_NO_VERSION.
+ * This isolation level allows access to changes that were committed after the transaction was started.
+ * If IBASE_REC_NO_VERSION was specified, only the latest version of a row can be read.
+ * If IBASE_REC_VERSION was specified, a row can even be read when a modification to it is pending in a concurrent transaction.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_COMMITTED', 8);
+/**
+ * Starts a transaction with the isolation level set to 'consistency',
+ * which means the transaction cannot read from tables that are being modified by other concurrent transactions.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_CONSISTENCY', 16);
+/**
+ * Starts a transaction with the isolation level set to 'concurrency' (or 'snapshot'),
+ * which means the transaction has access to all tables,
+ * but cannot see changes that were committed by other transactions after the transaction was started.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_CONCURRENCY', 4);
+/**
+ * Row can even be read when a modification to it is pending in a concurrent transaction.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_REC_VERSION', 64);
+/**
+ * Only the latest version of a row can be read
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_REC_NO_VERSION', 32);
+/**
+ * Indicated that a transaction should fail immediately when a conflict occurs.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_NOWAIT', 256);
+/**
+ * Indicated that a transaction should wait and retry when a conflict occurs.
+ * @link https://www.php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_WAIT', 128);
+define ('IBASE_BKP_IGNORE_CHECKSUMS', 1);
+define ('IBASE_BKP_IGNORE_LIMBO', 2);
+define ('IBASE_BKP_METADATA_ONLY', 4);
+define ('IBASE_BKP_NO_GARBAGE_COLLECT', 8);
+define ('IBASE_BKP_OLD_DESCRIPTIONS', 16);
+define ('IBASE_BKP_NON_TRANSPORTABLE', 32);
+
+/**
+ * Options to ibase_backup
+ * @link https://php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_BKP_CONVERT', 64);
+define ('IBASE_RES_DEACTIVATE_IDX', 256);
+define ('IBASE_RES_NO_SHADOW', 512);
+define ('IBASE_RES_NO_VALIDITY', 1024);
+define ('IBASE_RES_ONE_AT_A_TIME', 2048);
+define ('IBASE_RES_REPLACE', 4096);
+define ('IBASE_RES_CREATE', 8192);
+
+/**
+ * Options to ibase_restore
+ * @link https://php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_RES_USE_ALL_SPACE', 16384);
+define ('IBASE_PRP_PAGE_BUFFERS', 5);
+define ('IBASE_PRP_SWEEP_INTERVAL', 6);
+define ('IBASE_PRP_SHUTDOWN_DB', 7);
+define ('IBASE_PRP_DENY_NEW_TRANSACTIONS', 10);
+define ('IBASE_PRP_DENY_NEW_ATTACHMENTS', 9);
+define ('IBASE_PRP_RESERVE_SPACE', 11);
+define ('IBASE_PRP_RES_USE_FULL', 35);
+define ('IBASE_PRP_RES', 36);
+define ('IBASE_PRP_WRITE_MODE', 12);
+define ('IBASE_PRP_WM_ASYNC', 37);
+define ('IBASE_PRP_WM_SYNC', 38);
+define ('IBASE_PRP_ACCESS_MODE', 13);
+define ('IBASE_PRP_AM_READONLY', 39);
+define ('IBASE_PRP_AM_READWRITE', 40);
+define ('IBASE_PRP_SET_SQL_DIALECT', 14);
+define ('IBASE_PRP_ACTIVATE', 256);
+define ('IBASE_PRP_DB_ONLINE', 512);
+define ('IBASE_RPR_CHECK_DB', 16);
+define ('IBASE_RPR_IGNORE_CHECKSUM', 32);
+define ('IBASE_RPR_KILL_SHADOWS', 64);
+define ('IBASE_RPR_MEND_DB', 4);
+define ('IBASE_RPR_VALIDATE_DB', 1);
+define ('IBASE_RPR_FULL', 128);
+
+/**
+ * Options to ibase_maintain_db
+ * @link https://php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_RPR_SWEEP_DB', 2);
+define ('IBASE_STS_DATA_PAGES', 1);
+define ('IBASE_STS_DB_LOG', 2);
+define ('IBASE_STS_HDR_PAGES', 4);
+define ('IBASE_STS_IDX_PAGES', 8);
+
+/**
+ * Options to ibase_db_info
+ * @link https://php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_STS_SYS_RELATIONS', 16);
+define ('IBASE_SVC_SERVER_VERSION', 55);
+define ('IBASE_SVC_IMPLEMENTATION', 56);
+define ('IBASE_SVC_GET_ENV', 59);
+define ('IBASE_SVC_GET_ENV_LOCK', 60);
+define ('IBASE_SVC_GET_ENV_MSG', 61);
+define ('IBASE_SVC_USER_DBPATH', 58);
+define ('IBASE_SVC_SVR_DB_INFO', 50);
+
+/**
+ * Options to ibase_server_info
+ * @link https://php.net/manual/en/ibase.constants.php
+ */
+define ('IBASE_SVC_GET_USERS', 68);
+
+// End of interbase v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/intl/IntlChar.php b/vendor/jetbrains/phpstorm-stubs/intl/IntlChar.php
new file mode 100644
index 0000000000..f6826bdd3c
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/intl/IntlChar.php
@@ -0,0 +1,1371 @@
+IntlChar provides access to a number of utility methods that can be used to access information about Unicode characters.
+ *
The methods and constants adhere closely to the names and behavior used by the underlying ICU library.
+ * Or NULL if codepoint is out of bounds.
+ * @since 7.0
+ */
+ public static function charDirection($codepoint) {}
+
+ /**
+ * @link https://php.net/manual/en/intlchar.charfromname.php
+ * Find Unicode character by name and return its code point value
+ * @param string $characterName
Full name of the Unicode character.
+ * @param int $nameChoice [optional]
+ * Which set of names to use for the lookup. Can be any of these constants:
+ *
+ *
IntlChar::UNICODE_CHAR_NAME (default)
+ *
IntlChar::UNICODE_10_CHAR_NAME
+ *
IntlChar::EXTENDED_CHAR_NAME
+ *
IntlChar::CHAR_NAME_ALIAS
+ *
IntlChar::CHAR_NAME_CHOICE_COUNT
+ *
+ * @return int|null The Unicode value of the code point with the given name (as an integer), or NULL if there is no such code point.
+ * @since 7.0
+ */
+ public static function charFromName($characterName, $nameChoice = IntlChar::UNICODE_CHAR_NAME) {}
+
+ /**
+ * @link https://php.net/manual/en/intlchar.charmirror.php
+ * Get the "mirror-image" character for a code point
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|string|null Returns another Unicode code point that may serve as a mirror-image substitute, or codepoint itself if there is no such mapping or codepoint does not have the Bidi_Mirrored property.
+ * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned.
+ * Or NULL if codepoint will be out of bound.
+ */
+ public static function charMirror($codepoint) {}
+
+ /**
+ * Retrieve the name of a Unicode character
+ * @link https://php.net/manual/en/intlchar.charname.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @param int $nameChoice [optional] Which set of names to use for the lookup. Can be any of these constants:
+ *
+ *
IntlChar::UNICODE_CHAR_NAME (default)
+ *
IntlChar::UNICODE_10_CHAR_NAME
+ *
IntlChar::EXTENDED_CHAR_NAME
+ *
IntlChar::CHAR_NAME_ALIAS
+ *
IntlChar::CHAR_NAME_CHOICE_COUNT
+ *
+ * @return string|null The corresponding name, or an empty string if there is no name for this character, or NULL if codepoint is out of bounds.
+ * @since 7.0
+ */
+ public static function charName($codepoint, $nameChoice = IntlChar::UNICODE_CHAR_NAME) {}
+
+ /**
+ * Get the general category value for a code point
+ * @link https://php.net/manual/en/intlchar.chartype.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|null Returns the general category type, which may be one of the following constants:
+ *
+ *
IntlChar::CHAR_CATEGORY_UNASSIGNED
+ *
IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
+ *
IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER
+ *
IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER
+ *
IntlChar::CHAR_CATEGORY_TITLECASE_LETTER
+ *
IntlChar::CHAR_CATEGORY_MODIFIER_LETTER
+ *
IntlChar::CHAR_CATEGORY_OTHER_LETTER
+ *
IntlChar::CHAR_CATEGORY_NON_SPACING_MARK
+ *
IntlChar::CHAR_CATEGORY_ENCLOSING_MARK
+ *
IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK
+ *
IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER
+ *
IntlChar::CHAR_CATEGORY_LETTER_NUMBER
+ *
IntlChar::CHAR_CATEGORY_OTHER_NUMBER
+ *
IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR
+ *
IntlChar::CHAR_CATEGORY_LINE_SEPARATOR
+ *
IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR
+ *
IntlChar::CHAR_CATEGORY_CONTROL_CHAR
+ *
IntlChar::CHAR_CATEGORY_FORMAT_CHAR
+ *
IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR
+ *
IntlChar::CHAR_CATEGORY_SURROGATE
+ *
IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION
+ *
IntlChar::CHAR_CATEGORY_START_PUNCTUATION
+ *
IntlChar::CHAR_CATEGORY_END_PUNCTUATION
+ *
IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION
+ *
IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION
+ *
IntlChar::CHAR_CATEGORY_MATH_SYMBOL
+ *
IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL
+ *
IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL
+ *
IntlChar::CHAR_CATEGORY_OTHER_SYMBOL
+ *
IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION
+ *
IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION
+ *
IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT
+ *
Or NULL if codepoint is out of bound.
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return string|null A string containing the single character specified by the Unicode code point value.
+ * Or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function chr ($codepoint)
+ {
+
+ }
+
+ /**
+ * Get the decimal digit value of a code point for a given radix
+ * @link https://php.net/manual/en/intlchar.digit.php
+ * @param int|string $codepoint
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @param int $radix
The radix (defaults to 10).
+ * @return int|false|null Returns the numeric value represented by the character in the specified radix,
+ * or FALSE if there is no value or if the value exceeds the radix,
+ * or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function digit ($codepoint, $radix = 10 ) {}
+
+ /**
+ * Enumerate all assigned Unicode characters within a range
+ * @link https://php.net/manual/en/intlchar.enumcharnames.php
+ * @param int|string $start The first code point in the enumeration range.
+ * @param int|string $limit One more than the last code point in the enumeration range (the first one after the range).
+ * @param callable $callback
+ * The function that is to be called for each character name. The following three arguments will be passed into it:
+ *
+ *
integer $codepoint - The numeric code point value
+ *
integer $nameChoice - The same value as the nameChoice parameter below
+ *
string $name - The name of the character
+ *
+ * @param int $nameChoice [optional]
+ * Selector for which kind of names to enumerate. Can be any of these constants:
+ *
+ *
IntlChar::UNICODE_CHAR_NAME (default)
+ *
IntlChar::UNICODE_10_CHAR_NAME
+ *
IntlChar::EXTENDED_CHAR_NAME
+ *
IntlChar::CHAR_NAME_ALIAS
+ *
IntlChar::CHAR_NAME_CHOICE_COUNT
+ *
+ * @since 7.0
+ */
+ public static function enumCharNames ($start, $limit, $callback, $nameChoice = IntlChar::UNICODE_CHAR_NAME) {}
+
+ /**
+ * Enumerate all code points with their Unicode general categories
+ * @link https://php.net/manual/en/intlchar.enumchartypes.php
+ * @param callable $callable
+ * The function that is to be called for each contiguous range of code points with the same general category.
+ * The following three arguments will be passed into it:
+ *
+ *
integer $start - The starting code point of the range
+ *
integer $end - The ending code point of the range
+ *
integer $name - The category type (one of the IntlChar::CHAR_CATEGORY_* constants)
+ *
+ * @since 7.0
+ */
+ public static function enumCharTypes ($callable) {}
+
+ /**
+ * Perform case folding on a code point
+ * @link https://php.net/manual/en/intlchar.foldcase.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @param int $options [optional] Either IntlChar::FOLD_CASE_DEFAULT (default) or IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I.
+ * @return int|string|null Returns the Simple_Case_Folding of the code point, if any; otherwise the code point itself.
+ * Returns NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function foldCase ($codepoint, $options = IntlChar::FOLD_CASE_DEFAULT ) {}
+
+ /**
+ * Get character representation for a given digit and radix
+ * @link https://php.net/manual/en/intlchar.fordigit.php
+ * @param int $digit
The number to convert to a character.
+ * @param int $radix [optional]
The radix (defaults to 10).
+ * @return int The character representation (as a string) of the specified digit in the specified radix.
+ * @since 7.0
+ */
+ public static function forDigit ($digit, $radix = 10) {}
+
+ /**
+ * Get the paired bracket character for a code point
+ * @link https://php.net/manual/en/intlchar.getbidipairedbracket.php
+ * @param int|string $codepoint
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|string|null Returns the paired bracket code point, or codepoint itself if there is no such mapping.
+ * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned.
+ * Or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function getBidiPairedBracket($codepoint) {}
+
+ /**
+ * Get the Unicode allocation block containing a code point
+ * @link https://php.net/manual/en/intlchar.getblockcode.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|null Returns the block value for codepoint, or NULL if codepoint is out of bound.
+ * See the IntlChar::BLOCK_CODE_* constants for possible return values.
+ * @since 7.0
+ */
+ public static function getBlockCode($codepoint) {}
+
+ /**
+ * Get the combining class of a code point
+ * @link https://php.net/manual/en/intlchar.getcombiningclass.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|null Returns the combining class of the character.
+ * Or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function getCombiningClass ($codepoint) {}
+
+ /**
+ * Get the FC_NFKC_Closure property for a code point
+ * @link https://php.net/manual/en/intlchar.getfc-nfkc-closure.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return string|false|null Returns the FC_NFKC_Closure property string for the codepoint, or an empty string if there is none,
+ * or NULL if codepoint is out of bound,
+ * or FALSE if there was an error.
+ * @since 7.0
+ */
+ public static function getFC_NFKC_Closure ($codepoint) {}
+
+ /**
+ * Get the max value for a Unicode property
+ * @link https://php.net/manual/en/intlchar.getintpropertymaxvalue.php
+ * @param int $property The Unicode property to lookup (see the IntlChar::PROPERTY_* constants).
+ * @return int The maximum value returned by {@see IntlChar::getIntPropertyValue()} for a Unicode property. <=0 if the property selector is out of range.
+ * @since 7.0
+ */
+ public static function getIntPropertyMaxValue ($property) {}
+
+ /**
+ * Get the min value for a Unicode property
+ * @link https://php.net/manual/en/intlchar.getintpropertyminvalue.php
+ * @param int $property The Unicode property to lookup (see the IntlChar::PROPERTY_* constants).
+ * @return int The minimum value returned by {@see IntlChar::getIntPropertyValue()} for a Unicode property. 0 if the property selector is out of range.
+ * @since 7.0
+ */
+ public static function getIntPropertyMinValue ($property) {}
+
+ /**
+ * Get the value for a Unicode property for a code point
+ * @link https://php.net/manual/en/intlchar.getintpropertyvalue.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @param int $property The Unicode property to lookup (see the IntlChar::PROPERTY_* constants).
+ * @return int|null
+ * Returns the numeric value that is directly the property value or, for enumerated properties, corresponds to the
+ * numeric value of the enumerated constant of the respective property value enumeration type.
+ *
+ *
+ * Returns 0 or 1 (for FALSE/TRUE) for binary Unicode properties.
+ *
+ *
+ * Returns a bit-mask for mask properties.
+ *
+ *
+ * Returns 0 if property is out of bounds or if the Unicode version does not
+ * have data for the property at all, or not for this code point.
+ *
+ *
+ * Returns NULL if codepoint is out of bound.
+ *
+ * @since 7.0
+ */
+ public static function getIntPropertyValue ($codepoint, $property ) {}
+
+ /**
+ * Get the numeric value for a Unicode code point
+ * @link https://php.net/manual/en/intlchar.getnumericvalue.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return float|null Numeric value of codepoint, or float(-123456789) if none is defined, or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function getNumericValue ($codepoint) {}
+
+ /**
+ * Get the property constant value for a given property name
+ * @link https://php.net/manual/en/intlchar.getpropertyenum.php
+ * @param string $alias The property name to be matched. The name is compared using "loose matching" as described in PropertyAliases.txt.
+ * @return int Returns an IntlChar::PROPERTY_ constant value, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any property.
+ * @since 7.0
+ */
+ public static function getPropertyEnum ($alias ) {}
+
+ /**
+ * Get the Unicode name for a property
+ * @link https://php.net/manual/en/intlchar.getpropertyname.php
+ * @param int $property
The Unicode property to lookup (see the IntlChar::PROPERTY_* constants).
+ *
IntlChar::PROPERTY_INVALID_CODE should not be used. Also, if property is out of range, FALSE is returned.
+ * @param int $nameChoice
Selector for which name to get. If out of range, FALSE is returned.
+ *
All properties have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME.
+ * @return string|false
+ * Returns the name, or FALSE if either the property or the nameChoice
+ * is out of range.
+ *
+ *
+ * If a given nameChoice returns FALSE, then all larger values of
+ * nameChoice will return FALSE, with one exception: if FALSE is returned for
+ * IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME
+ * (and higher) may still return a non-FALSE value.
+ *
+ * @since 7.0
+ */
+ public static function getPropertyName ($property, $nameChoice = IntlChar::LONG_PROPERTY_NAME) {}
+
+ /**
+ * Get the property value for a given value name
+ * @link https://php.net/manual/en/intlchar.getpropertyvalueenum.php
+ * @param int $property
The Unicode property to lookup (see the IntlChar::PROPERTY_* constants).
+ * If out of range, or this method doesn't work with the given value, IntlChar::PROPERTY_INVALID_CODE is returned
+ * @param string $name
The value name to be matched. The name is compared using "loose matching" as described in PropertyValueAliases.txt.
+ * @return int Returns the corresponding value integer, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any value of the given property, or if the property is invalid.
+ * @since 7.0
+ */
+ public static function getPropertyValueEnum ($property, $name) {}
+
+ /**
+ * Get the Unicode name for a property value
+ * @link https://php.net/manual/en/intlchar.getpropertyvaluename.php
+ * @param int $property
+ * The Unicode property to lookup (see the IntlChar::PROPERTY_* constants).
+ * If out of range, or this method doesn't work with the given value, FALSE is returned.
+ *
+ * @param int $value
+ * Selector for a value for the given property. If out of range, FALSE is returned.
+ *
+ *
+ * In general, valid values range from 0 up to some maximum. There are a couple exceptions:
+ *
+ *
+ * IntlChar::PROPERTY_BLOCK values begin at the non-zero value IntlChar::BLOCK_CODE_BASIC_LATIN
+ *
+ *
+ * IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS values are not contiguous and range from 0..240.
+ *
+ *
+ * @param int $nameChoice [optional]
+ * Selector for which name to get. If out of range, FALSE is returned.
+ * All values have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME.
+ *
+ * @return string|false Returns the name, or FALSE if either the property or the nameChoice is out of range.
+ * If a given nameChoice returns FALSE, then all larger values of nameChoice will return FALSE, with one exception: if FALSE is returned for IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME (and higher) may still return a non-FALSE value.
+ * @since 7.0
+ */
+ public static function getPropertyValueName ($property, $value, $nameChoice = IntlChar::LONG_PROPERTY_NAME) {}
+
+ /**
+ * Get the Unicode version
+ * @link https://php.net/manual/en/intlchar.getunicodeversion.php
+ * @return array An array containing the Unicode version number.
+ * @since 7.0
+ */
+ public static function getUnicodeVersion() {}
+
+ /**
+ * Check if code point is an alphanumeric character
+ * @link https://php.net/manual/en/intlchar.isalnum.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is an alphanumeric character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isalnum ($codepoint) {}
+
+ /**
+ * Check if code point is a letter character
+ * @link https://php.net/manual/en/intlchar.isalpha.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a letter character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isalpha ($codepoint) {}
+ /**
+ * Check if code point is a base character
+ * @link https://php.net/manual/en/intlchar.isbase.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a base character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isbase ($codepoint ){}
+ /**
+ * Check if code point is a "blank" or "horizontal space" character
+ * @link https://php.net/manual/en/intlchar.isblank.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is either a "blank" or "horizontal space" character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isblank ($codepoint){}
+
+ /**
+ * Check if code point is a control character
+ * @link https://php.net/manual/en/intlchar.iscntrl.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a control character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function iscntrl ($codepoint ) {}
+
+ /**
+ * Check whether the code point is defined
+ * @link https://php.net/manual/en/intlchar.isdefined.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a defined character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isdefined ($codepoint ) {}
+
+ /**
+ * Check if code point is a digit character
+ * @link https://php.net/manual/en/intlchar.isdigit.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a digit character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isdigit ($codepoint) {}
+ /**
+ * Check if code point is a graphic character
+ * @link https://php.net/manual/en/intlchar.isgraph.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a "graphic" character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isgraph ($codepoint ) {}
+ /**
+ * Check if code point is an ignorable character
+ * @link https://php.net/manual/en/intlchar.isidignorable.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is ignorable in identifiers, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isIDIgnorable ($codepoint ) {}
+ /**
+ * Check if code point is permissible in an identifier
+ * @link https://php.net/manual/en/intlchar.isidpart.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is the code point may occur in an identifier, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isIDPart ($codepoint ) {}
+
+ /**
+ * Check if code point is permissible as the first character in an identifier
+ * @link https://php.net/manual/en/intlchar.isidstart.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint may start an identifier, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isIDStart ($codepoint ) {}
+ /**
+ * Check if code point is an ISO control code
+ * @link https://php.net/manual/en/intlchar.isisocontrol.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is an ISO control code, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isISOControl ($codepoint ) {}
+ /**
+ * Check if code point is permissible in a Java identifier
+ * @link https://php.net/manual/en/intlchar.isjavaidpart.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint may occur in a Java identifier, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isJavaIDPart ($codepoint ) {}
+ /**
+ * Check if code point is permissible as the first character in a Java identifier
+ * @link https://php.net/manual/en/intlchar.isjavaidstart.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint may start a Java identifier, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isJavaIDStart ($codepoint ) {}
+ /**
+ * Check if code point is a space character according to Java
+ * @link https://php.net/manual/en/intlchar.isjavaspacechar.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a space character according to Java, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isJavaSpaceChar ($codepoint ) {}
+
+ /**
+ * Check if code point is a lowercase letter
+ * @link https://php.net/manual/en/intlchar.islower.php
+ * @param int|string $codepoint
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN),
+ * or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is an Ll lowercase letter, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function islower ($codepoint ) {}
+ /**
+ * Check if code point has the Bidi_Mirrored property
+ * @link https://php.net/manual/en/intlchar.ismirrored.php
+ * @param int|string $codepoint
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint has the Bidi_Mirrored property, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isMirrored ($codepoint ) {}
+
+ /**
+ * Check if code point is a printable character
+ * @link https://php.net/manual/en/intlchar.isprint.php
+ * @param int|string $codepoint
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a printable character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isprint ($codepoint ) {}
+
+ /**
+ * Check if code point is punctuation character
+ * @link https://php.net/manual/en/intlchar.ispunct.php
+ * @param int|string $codepoint
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN),
+ * or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a punctuation character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function ispunct ($codepoint ) {}
+ /**
+ * Check if code point is a space character
+ * @link https://php.net/manual/en/intlchar.isspace.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a space character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isspace ($codepoint ) {}
+ /**
+ * Check if code point is a titlecase letter
+ * @link https://php.net/manual/en/intlchar.istitle.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a titlecase letter, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function istitle ($codepoint ){}
+
+ /**
+ * Check if code point has the Alphabetic Unicode property
+ * @link https://php.net/manual/en/intlchar.isualphabetic.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint has the Alphabetic Unicode property, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isUAlphabetic ($codepoint ) {}
+ /**
+ * Check if code point has the Lowercase Unicode property
+ * @link https://php.net/manual/en/intlchar.isulowercase.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint has the Lowercase Unicode property, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isULowercase ($codepoint ) {}
+ /**
+ * Check if code point has the general category "Lu" (uppercase letter)
+ * @link https://php.net/manual/en/intlchar.isupper.php
+ * @param int|string $codepoint
The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN),
+ * or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is an Lu uppercase letter, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isupper ($codepoint) {}
+ /**
+ * Check if code point has the Uppercase Unicode property
+ * @link https://php.net/manual/en/intlchar.isuuppercase.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint has the Uppercase Unicode property, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isUUppercase ($codepoint) {}
+ /**
+ * Check if code point has the White_Space Unicode property
+ * @link https://php.net/manual/en/intlchar.isuwhitespace.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint has the White_Space Unicode property, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isUWhiteSpace ($codepoint ) {}
+ /**
+ * Check if code point is a whitespace character according to ICU
+ * @link https://php.net/manual/en/intlchar.iswhitespace.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a whitespace character according to ICU, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isWhitespace($codepoint) {}
+
+ /**
+ * Check if code point is a hexadecimal digit
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a hexadecimal character, FALSE if not, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function isxdigit ($codepoint){}
+
+ /**
+ * Return Unicode code point value of character
+ * @link https://php.net/manual/en/intlchar.ord.php
+ * @param int|string $character
A Unicode character.
+ * @return int|null Returns the Unicode code point value as an integer, NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function ord ($character) {}
+
+ /**
+ * Make Unicode character lowercase
+ * @link https://php.net/manual/en/intlchar.tolower.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|string|null Returns the Simple_Lowercase_Mapping of the code point, if any; otherwise the code point itself.
+ * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned.
+ * Or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function tolower($codepoint) {}
+ /**
+ * Make Unicode character titlecase
+ * @link https://php.net/manual/en/intlchar.totitle.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|string|null Returns the Simple_Titlecase_Mapping of the code point, if any; otherwise the code point itself.
+ * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned.
+ * Or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function totitle ($codepoint ) {}
+
+ /**
+ * Make Unicode character uppercase
+ * @link https://php.net/manual/en/intlchar.toupper.php
+ * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|string|null Returns the Simple_Uppercase_Mapping of the code point, if any; otherwise the code point itself.
+ * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned.
+ * Or NULL if codepoint is out of bound.
+ * @since 7.0
+ */
+ public static function toupper ($codepoint ) {}
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/intl/intl.php b/vendor/jetbrains/phpstorm-stubs/intl/intl.php
new file mode 100644
index 0000000000..4ca8bec3b3
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/intl/intl.php
@@ -0,0 +1,7137 @@
+
+ * Sort strings with different accents from the back of the string. This
+ * attribute is automatically set to
+ * On
+ * for the French locales and a few others. Users normally would not need
+ * to explicitly set this attribute. There is a string comparison
+ * performance cost when it is set On,
+ * but sort key length is unaffected. Possible values are:
+ * Collator::ON
+ * Collator::OFF(default)
+ * Collator::DEFAULT_VALUE
+ *
+ *
+ * The Alternate attribute is used to control the handling of the so called
+ * variable characters in the UCA: whitespace, punctuation and symbols. If
+ * Alternate is set to NonIgnorable
+ * (N), then differences among these characters are of the same importance
+ * as differences among letters. If Alternate is set to
+ * Shifted
+ * (S), then these characters are of only minor importance. The
+ * Shifted value is often used in combination with
+ * Strength
+ * set to Quaternary. In such a case, whitespace, punctuation, and symbols
+ * are considered when comparing strings, but only if all other aspects of
+ * the strings (base letters, accents, and case) are identical. If
+ * Alternate is not set to Shifted, then there is no difference between a
+ * Strength of 3 and a Strength of 4. For more information and examples,
+ * see Variable_Weighting in the
+ * UCA.
+ * The reason the Alternate values are not simply
+ * On and Off
+ * is that additional Alternate values may be added in the future. The UCA
+ * option Blanked is expressed with Strength set to 3, and Alternate set to
+ * Shifted. The default for most locales is NonIgnorable. If Shifted is
+ * selected, it may be slower if there are many strings that are the same
+ * except for punctuation; sort key length will not be affected unless the
+ * strength level is also increased.
+ *
+ * The Case_First attribute is used to control whether uppercase letters
+ * come before lowercase letters or vice versa, in the absence of other
+ * differences in the strings. The possible values are
+ * Uppercase_First
+ * (U) and Lowercase_First
+ * (L), plus the standard Default
+ * and Off.
+ * There is almost no difference between the Off and Lowercase_First
+ * options in terms of results, so typically users will not use
+ * Lowercase_First: only Off or Uppercase_First. (People interested in the
+ * detailed differences between X and L should consult the Collation
+ * Customization). Specifying either L or U won't affect string comparison
+ * performance, but will affect the sort key length.
+ *
+ * The Case_Level attribute is used when ignoring accents but not case. In
+ * such a situation, set Strength to be Primary,
+ * and Case_Level to be On.
+ * In most locales, this setting is Off by default. There is a small
+ * string comparison performance and sort key impact if this attribute is
+ * set to be On.
+ *
+ * The Normalization setting determines whether text is thoroughly
+ * normalized or not in comparison. Even if the setting is off (which is
+ * the default for many locales), text as represented in common usage will
+ * compare correctly (for details, see UTN #5). Only if the accent marks
+ * are in noncanonical order will there be a problem. If the setting is
+ * On,
+ * then the best results are guaranteed for all possible text input.
+ * There is a medium string comparison performance cost if this attribute
+ * is On,
+ * depending on the frequency of sequences that require normalization.
+ * There is no significant effect on sort key length. If the input text is
+ * known to be in NFD or NFKD normalization forms, there is no need to
+ * enable this Normalization option.
+ *
+ * The ICU Collation Service supports many levels of comparison (named
+ * "Levels", but also known as "Strengths"). Having these categories
+ * enables ICU to sort strings precisely according to local conventions.
+ * However, by allowing the levels to be selectively employed, searching
+ * for a string in text can be performed with various matching conditions.
+ * For more detailed information, see
+ * collator_set_strength chapter.
+ *
+ * Compatibility with JIS x 4061 requires the introduction of an additional
+ * level to distinguish Hiragana and Katakana characters. If compatibility
+ * with that standard is required, then this attribute should be set
+ * On,
+ * and the strength set to Quaternary. This will affect sort key length
+ * and string comparison string comparison performance.
+ *
+ * When turned on, this attribute generates a collation key for the numeric
+ * value of substrings of digits. This is a way to get '100' to sort AFTER
+ * '2'.
+ *
+ * The locale containing the required collation rules. Special values for
+ * locales can be passed in - if null is passed for the locale, the
+ * default locale collation rules will be used. If empty string ("") or
+ * "root" are passed, UCA rules will be used.
+ *
+ * @return Collator|null Return new instance of Collator object, or NULL
+ * on error.
+ */
+ public static function create($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Compare two Unicode strings
+ * @link https://php.net/manual/en/collator.compare.php
+ * @param string $str1
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function asort(array &$array, $sort_flag = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get collation attribute value
+ * @link https://php.net/manual/en/collator.getattribute.php
+ * @param int $attr
+ * Attribute to get value for.
+ *
+ * @return int|false Attribute value, or boolean FALSE on error.
+ */
+ #[Pure]
+ public function getAttribute($attr) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set collation attribute
+ * @link https://php.net/manual/en/collator.setattribute.php
+ * @param int $attr
Attribute.
+ * @param int $val
+ * Attribute value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setAttribute($attr, $val) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get current collation strength
+ * @link https://php.net/manual/en/collator.getstrength.php
+ * @return int|false current collation strength, or boolean FALSE on error.
+ */
+ #[Pure]
+ public function getStrength() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set collation strength
+ * @link https://php.net/manual/en/collator.setstrength.php
+ * @param int $strength
Strength to set.
+ *
+ * Possible values are:
+ *
+ * Collator::PRIMARY
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setStrength($strength) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the locale name of the collator
+ * @link https://php.net/manual/en/collator.getlocale.php
+ * @param int $type [optional]
+ * You can choose between valid and actual locale (
+ * Locale::VALID_LOCALE and
+ * Locale::ACTUAL_LOCALE,
+ * respectively). The default is the actual locale.
+ *
+ * @return string Real locale name from which the collation data comes. If the collator was
+ * instantiated from rules or an error occurred, returns
+ * boolean FALSE.
+ */
+ #[Pure]
+ public function getLocale($type = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get collator's last error code
+ * @link https://php.net/manual/en/collator.geterrorcode.php
+ * @return int Error code returned by the last Collator API function call.
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get text for collator's last error code
+ * @link https://php.net/manual/en/collator.geterrormessage.php
+ * @return string Description of an error occurred in the last Collator API function call.
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+
+ /**
+ * (No version information available, might only be in SVN)
+ * Get sorting key for a string
+ * @link https://php.net/manual/en/collator.getsortkey.php
+ * @param string $str
+ * The string to produce the key from.
+ *
+ * @return string the collation key for the string. Collation keys can be compared directly instead of strings.
+ */
+ #[Pure]
+ public function getSortKey($str) { }
+}
+
+class NumberFormatter {
+
+ /**
+ * Decimal format defined by pattern
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PATTERN_DECIMAL = 0;
+
+ /**
+ * Decimal format
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const DECIMAL = 1;
+
+ /**
+ * Currency format
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const CURRENCY = 2;
+
+ /**
+ * Percent format
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PERCENT = 3;
+
+ /**
+ * Scientific format
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const SCIENTIFIC = 4;
+
+ /**
+ * Spellout rule-based format
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const SPELLOUT = 5;
+
+ /**
+ * Ordinal rule-based format
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ORDINAL = 6;
+
+ /**
+ * Duration rule-based format
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const DURATION = 7;
+
+ /**
+ * Rule-based format defined by pattern
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PATTERN_RULEBASED = 9;
+
+ /**
+ * Alias for PATTERN_DECIMAL
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const IGNORE = 0;
+
+ /**
+ * Default format for the locale
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const DEFAULT_STYLE = 1;
+
+ /**
+ * Rounding mode to round towards positive infinity.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUND_CEILING = 0;
+
+ /**
+ * Rounding mode to round towards negative infinity.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUND_FLOOR = 1;
+
+ /**
+ * Rounding mode to round towards zero.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUND_DOWN = 2;
+
+ /**
+ * Rounding mode to round away from zero.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUND_UP = 3;
+
+ /**
+ * Rounding mode to round towards the "nearest neighbor" unless both
+ * neighbors are equidistant, in which case, round towards the even
+ * neighbor.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUND_HALFEVEN = 4;
+
+ /**
+ * Rounding mode to round towards "nearest neighbor" unless both neighbors
+ * are equidistant, in which case round down.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUND_HALFDOWN = 5;
+
+ /**
+ * Rounding mode to round towards "nearest neighbor" unless both neighbors
+ * are equidistant, in which case round up.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUND_HALFUP = 6;
+
+ /**
+ * Pad characters inserted before the prefix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PAD_BEFORE_PREFIX = 0;
+
+ /**
+ * Pad characters inserted after the prefix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PAD_AFTER_PREFIX = 1;
+
+ /**
+ * Pad characters inserted before the suffix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PAD_BEFORE_SUFFIX = 2;
+
+ /**
+ * Pad characters inserted after the suffix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PAD_AFTER_SUFFIX = 3;
+
+ /**
+ * Parse integers only.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PARSE_INT_ONLY = 0;
+
+ /**
+ * Use grouping separator.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const GROUPING_USED = 1;
+
+ /**
+ * Always show decimal point.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const DECIMAL_ALWAYS_SHOWN = 2;
+
+ /**
+ * Maximum integer digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MAX_INTEGER_DIGITS = 3;
+
+ /**
+ * Minimum integer digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MIN_INTEGER_DIGITS = 4;
+
+ /**
+ * Integer digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const INTEGER_DIGITS = 5;
+
+ /**
+ * Maximum fraction digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MAX_FRACTION_DIGITS = 6;
+
+ /**
+ * Minimum fraction digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MIN_FRACTION_DIGITS = 7;
+
+ /**
+ * Fraction digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const FRACTION_DIGITS = 8;
+
+ /**
+ * Multiplier.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MULTIPLIER = 9;
+
+ /**
+ * Grouping size.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const GROUPING_SIZE = 10;
+
+ /**
+ * Rounding Mode.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUNDING_MODE = 11;
+
+ /**
+ * Rounding increment.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ROUNDING_INCREMENT = 12;
+
+ /**
+ * The width to which the output of format() is padded.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const FORMAT_WIDTH = 13;
+
+ /**
+ * The position at which padding will take place. See pad position
+ * constants for possible argument values.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PADDING_POSITION = 14;
+
+ /**
+ * Secondary grouping size.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const SECONDARY_GROUPING_SIZE = 15;
+
+ /**
+ * Use significant digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const SIGNIFICANT_DIGITS_USED = 16;
+
+ /**
+ * Minimum significant digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MIN_SIGNIFICANT_DIGITS = 17;
+
+ /**
+ * Maximum significant digits.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MAX_SIGNIFICANT_DIGITS = 18;
+
+ /**
+ * Lenient parse mode used by rule-based formats.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const LENIENT_PARSE = 19;
+
+ /**
+ * Positive prefix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const POSITIVE_PREFIX = 0;
+
+ /**
+ * Positive suffix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const POSITIVE_SUFFIX = 1;
+
+ /**
+ * Negative prefix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const NEGATIVE_PREFIX = 2;
+
+ /**
+ * Negative suffix.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const NEGATIVE_SUFFIX = 3;
+
+ /**
+ * The character used to pad to the format width.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PADDING_CHARACTER = 4;
+
+ /**
+ * The ISO currency code.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const CURRENCY_CODE = 5;
+
+ /**
+ * The default rule set. This is only available with rule-based
+ * formatters.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const DEFAULT_RULESET = 6;
+
+ /**
+ * The public rule sets. This is only available with rule-based
+ * formatters. This is a read-only attribute. The public rulesets are
+ * returned as a single string, with each ruleset name delimited by ';'
+ * (semicolon).
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PUBLIC_RULESETS = 7;
+
+ /**
+ * The decimal separator.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const DECIMAL_SEPARATOR_SYMBOL = 0;
+
+ /**
+ * The grouping separator.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const GROUPING_SEPARATOR_SYMBOL = 1;
+
+ /**
+ * The pattern separator.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PATTERN_SEPARATOR_SYMBOL = 2;
+
+ /**
+ * The percent sign.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PERCENT_SYMBOL = 3;
+
+ /**
+ * Zero.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const ZERO_DIGIT_SYMBOL = 4;
+
+ /**
+ * Character representing a digit in the pattern.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const DIGIT_SYMBOL = 5;
+
+ /**
+ * The minus sign.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MINUS_SIGN_SYMBOL = 6;
+
+ /**
+ * The plus sign.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PLUS_SIGN_SYMBOL = 7;
+
+ /**
+ * The currency symbol.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const CURRENCY_SYMBOL = 8;
+
+ /**
+ * The international currency symbol.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const INTL_CURRENCY_SYMBOL = 9;
+
+ /**
+ * The monetary separator.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MONETARY_SEPARATOR_SYMBOL = 10;
+
+ /**
+ * The exponential symbol.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const EXPONENTIAL_SYMBOL = 11;
+
+ /**
+ * Per mill symbol.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PERMILL_SYMBOL = 12;
+
+ /**
+ * Escape padding character.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const PAD_ESCAPE_SYMBOL = 13;
+
+ /**
+ * Infinity symbol.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const INFINITY_SYMBOL = 14;
+
+ /**
+ * Not-a-number symbol.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const NAN_SYMBOL = 15;
+
+ /**
+ * Significant digit symbol.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const SIGNIFICANT_DIGIT_SYMBOL = 16;
+
+ /**
+ * The monetary grouping separator.
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const MONETARY_GROUPING_SEPARATOR_SYMBOL = 17;
+
+ /**
+ * Derive the type from variable type
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const TYPE_DEFAULT = 0;
+
+ /**
+ * Format/parse as 32-bit integer
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const TYPE_INT32 = 1;
+
+ /**
+ * Format/parse as 64-bit integer
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const TYPE_INT64 = 2;
+
+ /**
+ * Format/parse as floating point value
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const TYPE_DOUBLE = 3;
+
+ /**
+ * Format/parse as currency value
+ * @link https://php.net/manual/en/class.locale.php#intl.locale-constants
+ */
+ const TYPE_CURRENCY = 4;
+
+
+ /**
+ * @link https://www.php.net/manual/en/class.numberformatter.php
+ * @param string $locale
+ * @param int $style
+ * @param string $pattern [optional]
+ */
+ #[Pure]
+ public function __construct($locale, $style, $pattern = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Create a number formatter
+ * @link https://php.net/manual/en/numberformatter.create.php
+ * @param string $locale
+ * Locale in which the number would be formatted (locale name, e.g. en_CA).
+ *
+ * @param int $style
+ * Style of the formatting, one of the
+ * format style constants. If
+ * NumberFormatter::PATTERN_DECIMAL
+ * or NumberFormatter::PATTERN_RULEBASED
+ * is passed then the number format is opened using the given pattern,
+ * which must conform to the syntax described in
+ * ICU DecimalFormat
+ * documentation or
+ * ICU RuleBasedNumberFormat
+ * documentation, respectively.
+ *
+ * @param string $pattern [optional]
+ * Pattern string if the chosen style requires a pattern.
+ *
+ * @return NumberFormatter|false NumberFormatter object or FALSE on error.
+ */
+ public static function create($locale, $style, $pattern = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Format a number
+ * @link https://php.net/manual/en/numberformatter.format.php
+ * @param int|float $value
+ * The value to format. Can be integer or float,
+ * other values will be converted to a numeric value.
+ *
+ * @param int $type [optional]
+ * The
+ * formatting type to use.
+ *
+ * @return string|false the string containing formatted value, or FALSE on error.
+ */
+ #[Pure]
+ public function format($value, $type = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Parse a number
+ * @link https://php.net/manual/en/numberformatter.parse.php
+ * @param string $value
+ * @param int $type [optional]
+ * The
+ * formatting type to use. By default,
+ * NumberFormatter::TYPE_DOUBLE is used.
+ *
+ * @param int &$position [optional]
+ * Offset in the string at which to begin parsing. On return, this value
+ * will hold the offset at which parsing ended.
+ *
+ * @return mixed The value of the parsed number or FALSE on error.
+ */
+ public function parse($value, $type = null, &$position = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Format a currency value
+ * @link https://php.net/manual/en/numberformatter.formatcurrency.php
+ * @param float $value
+ * The numeric currency value.
+ *
+ * @param string $currency
+ * The 3-letter ISO 4217 currency code indicating the currency to use.
+ *
+ * Parameter to receive the currency name (3-letter ISO 4217 currency
+ * code).
+ *
+ * @param int &$position [optional]
+ * Offset in the string at which to begin parsing. On return, this value
+ * will hold the offset at which parsing ended.
+ *
+ * @return float|false The parsed numeric value or FALSE on error.
+ */
+ public function parseCurrency($value, &$currency, &$position = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set an attribute
+ * @link https://php.net/manual/en/numberformatter.setattribute.php
+ * @param int $attr
+ * Attribute specifier - one of the
+ * numeric attribute constants.
+ *
+ * @param int $value
+ * The attribute value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setAttribute($attr, $value) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get an attribute
+ * @link https://php.net/manual/en/numberformatter.getattribute.php
+ * @param int $attr
+ * Attribute specifier - one of the
+ * numeric attribute constants.
+ *
+ * @return int|false Return attribute value on success, or FALSE on error.
+ */
+ #[Pure]
+ public function getAttribute($attr) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set a text attribute
+ * @link https://php.net/manual/en/numberformatter.settextattribute.php
+ * @param int $attr
+ * Attribute specifier - one of the
+ * text attribute
+ * constants.
+ *
+ * @param string $value
+ * Text for the attribute value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setTextAttribute($attr, $value) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get a text attribute
+ * @link https://php.net/manual/en/numberformatter.gettextattribute.php
+ * @param int $attr
+ * Attribute specifier - one of the
+ * text attribute constants.
+ *
+ * @return string|false Return attribute value on success, or FALSE on error.
+ */
+ #[Pure]
+ public function getTextAttribute($attr) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set a symbol value
+ * @link https://php.net/manual/en/numberformatter.setsymbol.php
+ * @param int $attr
+ * Symbol specifier, one of the
+ * format symbol constants.
+ *
+ * @param string $value
+ * Text for the symbol.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setSymbol($attr, $value) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get a symbol value
+ * @link https://php.net/manual/en/numberformatter.getsymbol.php
+ * @param int $attr
+ * Symbol specifier, one of the
+ * format symbol constants.
+ *
+ * @return string|false The symbol string or FALSE on error.
+ */
+ #[Pure]
+ public function getSymbol($attr) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set formatter pattern
+ * @link https://php.net/manual/en/numberformatter.setpattern.php
+ * @param string $pattern
+ * Pattern in syntax described in
+ * ICU DecimalFormat
+ * documentation.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setPattern($pattern) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter pattern
+ * @link https://php.net/manual/en/numberformatter.getpattern.php
+ * @return string|false Pattern string that is used by the formatter, or FALSE if an error happens.
+ */
+ #[Pure]
+ public function getPattern() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter locale
+ * @link https://php.net/manual/en/numberformatter.getlocale.php
+ * @param int $type [optional]
+ * You can choose between valid and actual locale (
+ * Locale::VALID_LOCALE,
+ * Locale::ACTUAL_LOCALE,
+ * respectively). The default is the actual locale.
+ *
+ * @return string The locale name used to create the formatter.
+ */
+ #[Pure]
+ public function getLocale($type = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter's last error code.
+ * @link https://php.net/manual/en/numberformatter.geterrorcode.php
+ * @return int error code from last formatter call.
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter's last error message.
+ * @link https://php.net/manual/en/numberformatter.geterrormessage.php
+ * @return string error message from last formatter call.
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+}
+
+class Normalizer {
+
+ /**
+ * Default normalization options
+ * @link https://secure.php.net/manual/en/class.normalizer.php
+ */
+ const OPTION_DEFAULT = "";
+
+ /**
+ * No decomposition/composition
+ * @link https://secure.php.net/manual/en/class.normalizer.php
+ * @removed 8.0
+ */
+ const NONE = "1";
+
+ /**
+ * Normalization Form D (NFD) - Canonical Decomposition
+ * @link https://secure.php.net/manual/en/class.normalizer.php
+ */
+ const FORM_D = "2";
+ const NFD = 2;
+
+ /**
+ * Normalization Form KD (NFKD) - Compatibility Decomposition
+ * @link https://secure.php.net/manual/en/class.normalizer.php
+ */
+ const FORM_KD = "3";
+ const NFKD = 3;
+
+ /**
+ * Normalization Form C (NFC) - Canonical Decomposition followed by
+ * Canonical Composition
+ * @link https://secure.php.net/manual/en/class.normalizer.php
+ */
+ const FORM_C = 16;
+ const NFC = 4;
+
+ /**
+ * Normalization Form KC (NFKC) - Compatibility Decomposition, followed by
+ * Canonical Composition
+ * @link https://secure.php.net/manual/en/class.normalizer.php
+ */
+ const FORM_KC = 32;
+ const NFKC = 5;
+
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Normalizes the input provided and returns the normalized string
+ * @link https://php.net/manual/en/normalizer.normalize.php
+ * @param string $input
The input string to normalize
+ * @param int $form [optional]
One of the normalization forms.
+ * @return string|false The normalized string or FALSE if an error occurred.
+ */
+ public static function normalize($input, $form = Normalizer::FORM_C) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Checks if the provided string is already in the specified normalization form.
+ * @link https://php.net/manual/en/normalizer.isnormalized.php
+ * @param string $input
The input string to normalize
+ * @param int $form [optional]
+ * One of the normalization forms.
+ *
+ * @return bool TRUE if normalized, FALSE otherwise or if there an error
+ */
+ public static function isNormalized($input, $form = Normalizer::FORM_C) { }
+}
+
+class Locale {
+
+ /**
+ * This is locale the data actually comes from.
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const ACTUAL_LOCALE = 0;
+
+ /**
+ * This is the most specific locale supported by ICU.
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const VALID_LOCALE = 1;
+
+ /**
+ * Used as locale parameter with the methods of the various locale affected classes,
+ * such as NumberFormatter. This constant would make the methods to use default
+ * locale.
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const DEFAULT_LOCALE = null;
+
+ /**
+ * Language subtag
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const LANG_TAG = "language";
+
+ /**
+ * Extended language subtag
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const EXTLANG_TAG = "extlang";
+
+ /**
+ * Script subtag
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const SCRIPT_TAG = "script";
+
+ /**
+ * Region subtag
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const REGION_TAG = "region";
+
+ /**
+ * Variant subtag
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const VARIANT_TAG = "variant";
+
+ /**
+ * Grandfathered Language subtag
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const GRANDFATHERED_LANG_TAG = "grandfathered";
+
+ /**
+ * Private subtag
+ * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants
+ */
+ const PRIVATE_TAG = "private";
+
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the default locale value from the INTL global 'default_locale'
+ * @link https://php.net/manual/en/locale.getdefault.php
+ * @return string The current runtime locale
+ */
+ public static function getDefault() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * sets the default runtime locale
+ * @link https://php.net/manual/en/locale.setdefault.php
+ * @param string $locale
+ * Is a BCP 47 compliant language tag containing the
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public static function setDefault($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the primary language for the input locale
+ * @link https://php.net/manual/en/locale.getprimarylanguage.php
+ * @param string $locale
+ * The locale to extract the primary language code from
+ *
+ * @return string|null The language code associated with the language or NULL in case of error.
+ */
+ public static function getPrimaryLanguage($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the script for the input locale
+ * @link https://php.net/manual/en/locale.getscript.php
+ * @param string $locale
+ * The locale to extract the script code from
+ *
+ * @return string|null The script subtag for the locale or NULL if not present
+ */
+ public static function getScript($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the region for the input locale
+ * @link https://php.net/manual/en/locale.getregion.php
+ * @param string $locale
+ * The locale to extract the region code from
+ *
+ * @return string|null The region subtag for the locale or NULL if not present
+ */
+ public static function getRegion($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the keywords for the input locale
+ * @link https://php.net/manual/en/locale.getkeywords.php
+ * @param string $locale
+ * The locale to extract the keywords from
+ *
+ * @return array Associative array containing the keyword-value pairs for this locale
+ */
+ public static function getKeywords($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for script of the input locale
+ * @link https://php.net/manual/en/locale.getdisplayscript.php
+ * @param string $locale
+ * The locale to return a display script for
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the script name
+ *
+ * @return string Display name of the script for the $locale in the format appropriate for
+ * $in_locale.
+ */
+ public static function getDisplayScript($locale, $in_locale = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for region of the input locale
+ * @link https://php.net/manual/en/locale.getdisplayregion.php
+ * @param string $locale
+ * The locale to return a display region for.
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the region name
+ *
+ * @return string display name of the region for the $locale in the format appropriate for
+ * $in_locale.
+ */
+ public static function getDisplayRegion($locale, $in_locale = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for the input locale
+ * @link https://php.net/manual/en/locale.getdisplayname.php
+ * @param string $locale
+ * The locale to return a display name for.
+ *
+ * @param string $in_locale [optional]
optional format locale
+ * @return string Display name of the locale in the format appropriate for $in_locale.
+ */
+ public static function getDisplayName($locale, $in_locale = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for language of the inputlocale
+ * @link https://php.net/manual/en/locale.getdisplaylanguage.php
+ * @param string $locale
+ * The locale to return a display language for
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the language name
+ *
+ * @return string display name of the language for the $locale in the format appropriate for
+ * $in_locale.
+ */
+ public static function getDisplayLanguage($locale, $in_locale = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for variants of the input locale
+ * @link https://php.net/manual/en/locale.getdisplayvariant.php
+ * @param string $locale
+ * The locale to return a display variant for
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the variant name
+ *
+ * @return string Display name of the variant for the $locale in the format appropriate for
+ * $in_locale.
+ */
+ public static function getDisplayVariant($locale, $in_locale = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns a correctly ordered and delimited locale ID
+ * @link https://php.net/manual/en/locale.composelocale.php
+ * @param array $subtags
+ * an array containing a list of key-value pairs, where the keys identify
+ * the particular locale ID subtags, and the values are the associated
+ * subtag values.
+ *
+ * The 'variant' and 'private' subtags can take maximum 15 values
+ * whereas 'extlang' can take maximum 3 values.e.g. Variants are allowed
+ * with the suffix ranging from 0-14. Hence the keys for the input array
+ * can be variant0, variant1, ...,variant14. In the returned locale id,
+ * the subtag is ordered by suffix resulting in variant0 followed by
+ * variant1 followed by variant2 and so on.
+ *
+ *
+ * The 'variant', 'private' and 'extlang' multiple values can be specified both
+ * as array under specific key (e.g. 'variant') and as multiple numbered keys
+ * (e.g. 'variant0', 'variant1', etc.).
+ *
+ *
+ * @return string The corresponding locale identifier.
+ */
+ public static function composeLocale(array $subtags) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns a key-value array of locale ID subtag elements.
+ * @link https://php.net/manual/en/locale.parselocale.php
+ * @param string $locale
+ * The locale to extract the subtag array from. Note: The 'variant' and
+ * 'private' subtags can take maximum 15 values whereas 'extlang' can take
+ * maximum 3 values.
+ *
+ * @return array an array containing a list of key-value pairs, where the keys
+ * identify the particular locale ID subtags, and the values are the
+ * associated subtag values. The array will be ordered as the locale id
+ * subtags e.g. in the locale id if variants are '-varX-varY-varZ' then the
+ * returned array will have variant0=>varX , variant1=>varY ,
+ * variant2=>varZ
+ */
+ public static function parseLocale($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the variants for the input locale
+ * @link https://php.net/manual/en/locale.getallvariants.php
+ * @param string $locale
+ * The locale to extract the variants from
+ *
+ * @return array|null The array containing the list of all variants subtag for the locale
+ * or NULL if not present
+ */
+ public static function getAllVariants($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Checks if a language tag filter matches with locale
+ * @link https://php.net/manual/en/locale.filtermatches.php
+ * @param string $langtag
+ * The language tag to check
+ *
+ * @param string $locale
+ * The language range to check against
+ *
+ * @param bool $canonicalize [optional]
+ * If true, the arguments will be converted to canonical form before
+ * matching.
+ *
+ * @return bool TRUE if $locale matches $langtag FALSE otherwise.
+ */
+ public static function filterMatches($langtag, $locale, $canonicalize = false) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Searches the language tag list for the best match to the language
+ * @link https://php.net/manual/en/locale.lookup.php
+ * @param array $langtag
+ * An array containing a list of language tags to compare to
+ * locale. Maximum 100 items allowed.
+ *
+ * @param string $locale
+ * The locale to use as the language range when matching.
+ *
+ * @param bool $canonicalize [optional]
+ * If true, the arguments will be converted to canonical form before
+ * matching.
+ *
+ * @param string $default [optional]
+ * The locale to use if no match is found.
+ *
+ * @return string The closest matching language tag or default value.
+ */
+ public static function lookup(array $langtag, $locale, $canonicalize = false, $default = null) { }
+
+ /**
+ * @link https://php.net/manual/en/locale.canonicalize.php
+ * @param string $locale
+ * @return string
+ */
+ public static function canonicalize($locale) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Tries to find out best available locale based on HTTP "Accept-Language" header
+ * @link https://php.net/manual/en/locale.acceptfromhttp.php
+ * @param string $header
+ * The string containing the "Accept-Language" header according to format in RFC 2616.
+ *
+ * The locale to use when formatting arguments
+ *
+ * @param string $pattern
+ * The pattern string to stick arguments into.
+ * The pattern uses an 'apostrophe-friendly' syntax; it is run through
+ * umsg_autoQuoteApostrophe
+ * before being interpreted.
+ *
+ */
+ #[Pure]
+ public function __construct($locale, $pattern) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Constructs a new Message Formatter
+ * @link https://php.net/manual/en/messageformatter.create.php
+ * @param string $locale
+ * The locale to use when formatting arguments
+ *
+ * @param string $pattern
+ * The pattern string to stick arguments into.
+ * The pattern uses an 'apostrophe-friendly' syntax; it is run through
+ * umsg_autoQuoteApostrophe
+ * before being interpreted.
+ *
+ * @return MessageFormatter The formatter object
+ */
+ public static function create($locale, $pattern) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Format the message
+ * @link https://php.net/manual/en/messageformatter.format.php
+ * @param array $args
+ * Arguments to insert into the format string
+ *
+ * @return string|false The formatted string, or FALSE if an error occurred
+ */
+ #[Pure]
+ public function format(array $args) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Quick format message
+ * @link https://php.net/manual/en/messageformatter.formatmessage.php
+ * @param string $locale
+ * The locale to use for formatting locale-dependent parts
+ *
+ * @param string $pattern
+ * The pattern string to insert things into.
+ * The pattern uses an 'apostrophe-friendly' syntax; it is run through
+ * umsg_autoQuoteApostrophe
+ * before being interpreted.
+ *
+ * @param array $args
+ * The array of values to insert into the format string
+ *
+ * @return string|false The formatted pattern string or FALSE if an error occurred
+ */
+ public static function formatMessage($locale, $pattern, array $args) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Parse input string according to pattern
+ * @link https://php.net/manual/en/messageformatter.parse.php
+ * @param string $value
+ * The string to parse
+ *
+ * @return array|false An array containing the items extracted, or FALSE on error
+ */
+ #[Pure]
+ public function parse($value) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Quick parse input string
+ * @link https://php.net/manual/en/messageformatter.parsemessage.php
+ * @param string $locale
+ * The locale to use for parsing locale-dependent parts
+ *
+ * @param string $pattern
+ * The pattern with which to parse the value.
+ *
+ * @param string $source
+ * The string to parse, conforming to the pattern.
+ *
+ * @return array|false An array containing items extracted, or FALSE on error
+ */
+ public static function parseMessage($locale, $pattern, $source) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set the pattern used by the formatter
+ * @link https://php.net/manual/en/messageformatter.setpattern.php
+ * @param string $pattern
+ * The pattern string to use in this message formatter.
+ * The pattern uses an 'apostrophe-friendly' syntax; it is run through
+ * umsg_autoQuoteApostrophe
+ * before being interpreted.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setPattern($pattern) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the pattern used by the formatter
+ * @link https://php.net/manual/en/messageformatter.getpattern.php
+ * @return string The pattern string for this message formatter
+ */
+ #[Pure]
+ public function getPattern() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the locale for which the formatter was created.
+ * @link https://php.net/manual/en/messageformatter.getlocale.php
+ * @return string The locale name
+ */
+ #[Pure]
+ public function getLocale() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error code from last operation
+ * @link https://php.net/manual/en/messageformatter.geterrorcode.php
+ * @return int The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error text from the last operation
+ * @link https://php.net/manual/en/messageformatter.geterrormessage.php
+ * @return string Description of the last error.
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+}
+
+class IntlDateFormatter {
+
+ /**
+ * Completely specified style (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
+ * @link https://php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
+ */
+ const FULL = 0;
+
+ /**
+ * Long style (January 12, 1952 or 3:30:32pm)
+ * @link https://php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
+ */
+ const LONG = 1;
+
+ /**
+ * Medium style (Jan 12, 1952)
+ * @link https://php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
+ */
+ const MEDIUM = 2;
+
+ /**
+ * Most abbreviated style, only essential data (12/13/52 or 3:30pm)
+ * @link https://php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
+ */
+ const SHORT = 3;
+
+ /**
+ * Do not include this element
+ * @link https://php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
+ */
+ const NONE = -1;
+
+ /**
+ * Gregorian Calendar
+ * @link https://php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
+ */
+ const GREGORIAN = 1;
+
+ /**
+ * Non-Gregorian Calendar
+ * @link https://php.net/manual/en/class.intldateformatter.php#intl.intldateformatter-constants
+ */
+ const TRADITIONAL = 0;
+
+ const RELATIVE_FULL = 0;
+ const RELATIVE_LONG = 1;
+ const RELATIVE_MEDIUM = 2;
+ const RELATIVE_SHORT = 3;
+
+
+ /**
+ * @param string|null $locale
+ * @param int $datetype
+ * @param int $timetype
+ * @param mixed|null $timezone [optional]
+ * @param mixed|null $calendar [optional]
+ * @param string $pattern [optional]
+ */
+ #[Pure]
+ public function __construct($locale, $datetype, $timetype, $timezone = null, $calendar = null, $pattern = '') { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Create a date formatter
+ * @link https://php.net/manual/en/intldateformatter.create.php
+ * @param string $locale
+ * Locale to use when formatting or parsing; default is specified in the ini setting intl.default_locale.
+ *
+ * @param int $datetype
+ * Date type to use (none,
+ * short, medium,
+ * long, full).
+ * This is one of the
+ * IntlDateFormatter constants.
+ *
+ * @param int $timetype
+ * Time type to use (none,
+ * short, medium,
+ * long, full).
+ * This is one of the
+ * IntlDateFormatter constants.
+ *
+ * @param string $timezone [optional]
+ * Time zone ID, default is system default.
+ *
+ * @param int $calendar [optional]
+ * Calendar to use for formatting or parsing; default is Gregorian.
+ * This is one of the
+ * IntlDateFormatter calendar constants.
+ *
+ * @param string $pattern [optional]
+ * Optional pattern to use when formatting or parsing.
+ * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime.
+ *
+ * @return IntlDateFormatter
+ */
+ public static function create($locale, $datetype, $timetype, $timezone = null, $calendar = null, $pattern = '') { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the datetype used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.getdatetype.php
+ * @return int The current date type value of the formatter.
+ */
+ #[Pure]
+ public function getDateType() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the timetype used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.gettimetype.php
+ * @return int The current date type value of the formatter.
+ */
+ #[Pure]
+ public function getTimeType() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the calendar used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.getcalendar.php
+ * @return int The calendar being used by the formatter.
+ */
+ #[Pure]
+ public function getCalendar() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * sets the calendar used to the appropriate calendar, which must be
+ * @link https://php.net/manual/en/intldateformatter.setcalendar.php
+ * @param int $which
+ * The calendar to use.
+ * Default is IntlDateFormatter::GREGORIAN.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setCalendar($which) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the timezone-id used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.gettimezoneid.php
+ * @return string ID string for the time zone used by this formatter.
+ */
+ #[Pure]
+ public function getTimeZoneId() { }
+
+ /**
+ * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)
+ * Get copy of formatter's calendar object
+ * @link https://secure.php.net/manual/en/intldateformatter.getcalendarobject.php
+ * @return IntlCalendar A copy of the internal calendar object used by this formatter.
+ */
+ #[Pure]
+ public function getCalendarObject() { }
+
+ /**
+ * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)
+ * Get formatter's timezone
+ * @link https://secure.php.net/manual/en/intldateformatter.gettimezone.php
+ * @return IntlTimeZone|false The associated IntlTimeZone object or FALSE on failure.
+ */
+ #[Pure]
+ public function getTimeZone() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Sets the time zone to use
+ * @link https://php.net/manual/en/intldateformatter.settimezoneid.php
+ * @param string $zone
+ * The time zone ID string of the time zone to use.
+ * If NULL or the empty string, the default time zone for the runtime is used.
+ *
+ * The timezone to use for this formatter. This can be specified in the
+ * following forms:
+ *
+ *
+ *
+ * NULL, in which case the default timezone will be used, as specified in
+ * the ini setting {@link "https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone" date.timezone} or
+ * through the function {@link "https://secure.php.net/manual/en/function.date-default-timezone-set.php" date_default_timezone_set()} and as
+ * returned by {@link "https://secure.php.net/manual/en/function.date-default-timezone-get.php" date_default_timezone_get()}.
+ *
+ *
+ *
+ *
+ * An {@link "https://secure.php.net/manual/en/class.intltimezone.php" IntlTimeZone}, which will be used directly.
+ *
+ *
+ *
+ *
+ * A {@link "https://secure.php.net/manual/en/class.datetimezone.php" DateTimeZone}. Its identifier will be extracted
+ * and an ICU timezone object will be created; the timezone will be backed
+ * by ICU's database, not PHP's.
+ *
+ *
+ *
+ *
+ * A {@link "https://secure.php.net/manual/en/language.types.string.php" string}, which should be a valid ICU timezone identifier.
+ * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.
+ *
+ *
+ *
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setTimeZone($zone) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set the pattern used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.setpattern.php
+ * @param string $pattern
+ * New pattern string to use.
+ * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * Bad formatstrings are usually the cause of the failure.
+ */
+ public function setPattern($pattern) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the pattern used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.getpattern.php
+ * @return string The pattern string being used to format/parse.
+ */
+ #[Pure]
+ public function getPattern() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the locale used by formatter
+ * @link https://php.net/manual/en/intldateformatter.getlocale.php
+ * @param int $which [optional]
+ * @return string|false the locale of this formatter or 'false' if error
+ */
+ #[Pure]
+ public function getLocale($which = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set the leniency of the parser
+ * @link https://php.net/manual/en/intldateformatter.setlenient.php
+ * @param bool $lenient
+ * Sets whether the parser is lenient or not, default is TRUE (lenient).
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setLenient($lenient) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the lenient used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.islenient.php
+ * @return bool TRUE if parser is lenient, FALSE if parser is strict. By default the parser is lenient.
+ */
+ #[Pure]
+ public function isLenient() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Format the date/time value as a string
+ * @link https://php.net/manual/en/intldateformatter.format.php
+ * @param mixed $value
+ * Value to format. This may be a DateTime object,
+ * an integer representing a Unix timestamp value (seconds
+ * since epoch, UTC) or an array in the format output by
+ * localtime.
+ *
+ * @return string|false The formatted string or, if an error occurred, FALSE.
+ */
+ public function format($value) { }
+
+ /**
+ * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)
+ * Formats an object
+ * @link https://secure.php.net/manual/en/intldateformatter.formatobject.php
+ * @param object $object
+ * An object of type {@link "https://secure.php.net/manual/en/class.intlcalendar.php" IntlCalendar} or {@link "https://secure.php.net/manual/en/class.datetime.php" DateTime}. The timezone information in the object will be used.
+ *
+ * @param mixed $format [optional]
+ * How to format the date/time. This can either be an {@link "https://secure.php.net/manual/en/language.types.array.php" array} with
+ * two elements (first the date style, then the time style, these being one
+ * of the constants IntlDateFormatter::NONE,
+ * IntlDateFormatter::SHORT,
+ * IntlDateFormatter::MEDIUM,
+ * IntlDateFormatter::LONG,
+ * IntlDateFormatter::FULL), a long with
+ * the value of one of these constants (in which case it will be used both
+ * for the time and the date) or a {@link "https://secure.php.net/manual/en/language.types.string.php" string} with the format
+ * described in {@link "http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details" the ICU documentation}.
+ * If NULL, the default style will be used.
+ *
+ * @param string|null $locale [optional]
+ * The locale to use, or NULL to use the {@link "https://secure.php.net/manual/en/intl.configuration.php#ini.intl.default-locale"default one}.
+ * @return string|false A string with result or FALSE on failure.
+ */
+ public static function formatObject($object, $format = null, $locale = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Parse string to a timestamp value
+ * @link https://php.net/manual/en/intldateformatter.parse.php
+ * @param string $value
+ * string to convert to a time
+ *
+ * @param int &$position [optional]
+ * Position at which to start the parsing in $value (zero-based).
+ * If no error occurs before $value is consumed, $parse_pos will contain -1
+ * otherwise it will contain the position at which parsing ended (and the error occurred).
+ * This variable will contain the end position if the parse fails.
+ * If $parse_pos > strlen($value), the parse fails immediately.
+ *
+ * @return int timestamp parsed value
+ */
+ public function parse($value, &$position = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Parse string to a field-based time value
+ * @link https://php.net/manual/en/intldateformatter.localtime.php
+ * @param string $value
+ * string to convert to a time
+ *
+ * @param int &$position [optional]
+ * Position at which to start the parsing in $value (zero-based).
+ * If no error occurs before $value is consumed, $parse_pos will contain -1
+ * otherwise it will contain the position at which parsing ended .
+ * If $parse_pos > strlen($value), the parse fails immediately.
+ *
+ * @return array Localtime compatible array of integers : contains 24 hour clock value in tm_hour field
+ */
+ public function localtime($value, &$position = null) { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error code from last operation
+ * @link https://php.net/manual/en/intldateformatter.geterrorcode.php
+ * @return int The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error text from the last operation.
+ * @link https://php.net/manual/en/intldateformatter.geterrormessage.php
+ * @return string Description of the last error.
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+}
+
+class ResourceBundle implements IteratorAggregate {
+
+ /**
+ * @link https://www.php.net/manual/en/resourcebundle.create.php
+ * @param string $locale
Locale for which the resources should be loaded (locale name, e.g. en_CA).
+ * @param string $bundlename
The directory where the data is stored or the name of the .dat file.
+ * @param bool $fallback [optional]
Whether locale should match exactly or fallback to parent locale is allowed.
+ * Locale for which the resources should be loaded (locale name, e.g. en_CA).
+ *
+ * @param string $bundlename
+ * The directory where the data is stored or the name of the .dat file.
+ *
+ * @param bool $fallback [optional]
+ * Whether locale should match exactly or fallback to parent locale is allowed.
+ *
+ * @return ResourceBundle|false ResourceBundle object or FALSE on error.
+ */
+ public static function create($locale, $bundlename, $fallback = null) { }
+
+ /**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get data from the bundle
+ * @link https://php.net/manual/en/resourcebundle.get.php
+ * @param string|int $index
+ * Data index, must be string or integer.
+ *
+ * @return mixed the data located at the index or NULL on error. Strings, integers and binary data strings
+ * are returned as corresponding PHP types, integer array is returned as PHP array. Complex types are
+ * returned as ResourceBundle object.
+ */
+ #[Pure]
+ public function get($index) { }
+
+ /**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get number of elements in the bundle
+ * @link https://php.net/manual/en/resourcebundle.count.php
+ * @return int number of elements in the bundle.
+ */
+ #[Pure]
+ public function count() { }
+
+ /**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get supported locales
+ * @link https://php.net/manual/en/resourcebundle.locales.php
+ * @param string $bundlename
+ * Path of ResourceBundle for which to get available locales, or
+ * empty string for default locales list.
+ *
+ * @return array the list of locales supported by the bundle.
+ */
+ public static function getLocales($bundlename) { }
+
+ /**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get bundle's last error code.
+ * @link https://php.net/manual/en/resourcebundle.geterrorcode.php
+ * @return int error code from last bundle object call.
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get bundle's last error message.
+ * @link https://php.net/manual/en/resourcebundle.geterrormessage.php
+ * @return string error message from last bundle object's call.
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+
+ /**
+ * @since 8.0
+ */
+ #[Pure]
+ public function getIterator(){}
+}
+
+/**
+ * @since 5.4
+ */
+class Transliterator {
+ const FORWARD = 0;
+ const REVERSE = 1;
+
+ public $id;
+
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Private constructor to deny instantiation
+ * @link https://php.net/manual/en/transliterator.construct.php
+ */
+ final private function __construct() { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Create a transliterator
+ * @link https://php.net/manual/en/transliterator.create.php
+ * @param string $id
+ * The id.
+ *
+ * @param int $direction [optional]
+ * The direction, defaults to
+ * >Transliterator::FORWARD.
+ * May also be set to
+ * Transliterator::REVERSE.
+ *
+ * @return Transliterator|null a Transliterator object on success,
+ * or NULL on failure.
+ */
+ public static function create($id, $direction = null) { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Create transliterator from rules
+ * @link https://php.net/manual/en/transliterator.createfromrules.php
+ * @param string $rules
+ * The rules.
+ *
+ * @param int $direction [optional]
+ * The direction, defaults to
+ * {@see Transliterator::FORWARD}.
+ * May also be set to
+ * {@see Transliterator::REVERSE}.
+ *
+ * @return Transliterator|null a Transliterator object on success,
+ * or NULL on failure.
+ */
+ public static function createFromRules($rules, $direction = null) { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Create an inverse transliterator
+ * @link https://php.net/manual/en/transliterator.createinverse.php
+ * @return Transliterator|null a Transliterator object on success,
+ * or NULL on failure
+ */
+ #[Pure]
+ public function createInverse() { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Get transliterator IDs
+ * @link https://php.net/manual/en/transliterator.listids.php
+ * @return array An array of registered transliterator IDs on success,
+ * or FALSE on failure.
+ */
+ public static function listIDs() { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Transliterate a string
+ * @link https://php.net/manual/en/transliterator.transliterate.php
+ * @param string $subject
+ * The string to be transformed.
+ *
+ * @param int $start [optional]
+ * The start index (in UTF-16 code units) from which the string will start
+ * to be transformed, inclusive. Indexing starts at 0. The text before will
+ * be left as is.
+ *
+ * @param int $end [optional]
+ * The end index (in UTF-16 code units) until which the string will be
+ * transformed, exclusive. Indexing starts at 0. The text after will be
+ * left as is.
+ *
+ * @return string|false The transfomed string on success, or FALSE on failure.
+ */
+ #[Pure]
+ public function transliterate($subject, $start = null, $end = null) { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Get last error code
+ * @link https://php.net/manual/en/transliterator.geterrorcode.php
+ * @return int|false The error code on success,
+ * or FALSE if none exists, or on failure.
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Get last error message
+ * @link https://php.net/manual/en/transliterator.geterrormessage.php
+ * @return string|false The error code on success,
+ * or FALSE if none exists, or on failure.
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+}
+
+/**
+ * @link https://php.net/manual/en/class.spoofchecker.php
+ */
+class Spoofchecker {
+ const SINGLE_SCRIPT_CONFUSABLE = 1;
+ const MIXED_SCRIPT_CONFUSABLE = 2;
+ const WHOLE_SCRIPT_CONFUSABLE = 4;
+ const ANY_CASE = 8;
+ const SINGLE_SCRIPT = 16;
+ const INVISIBLE = 32;
+ const CHAR_LIMIT = 64;
+
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Constructor
+ * @link https://php.net/manual/en/spoofchecker.construct.php
+ */
+ #[Pure]
+ public function __construct() { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Checks if a given text contains any suspicious characters
+ * @link https://php.net/manual/en/spoofchecker.issuspicious.php
+ * @param string $text
+ *
+ * @param string &$error [optional]
+ *
+ * @return bool
+ */
+ public function isSuspicious($text, &$error = null) { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Checks if a given text contains any confusable characters
+ * @link https://php.net/manual/en/spoofchecker.areconfusable.php
+ * @param string $s1
+ *
+ * @param string $s2
+ *
+ * @param string &$error [optional]
+ *
+ * @return bool
+ */
+ public function areConfusable($s1, $s2, &$error = null) { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Locales to use when running checks
+ * @link https://php.net/manual/en/spoofchecker.setallowedlocales.php
+ * @param string $locale_list
+ *
+ * @return void
+ */
+ public function setAllowedLocales($locale_list) { }
+
+ /**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Set the checks to run
+ * @link https://php.net/manual/en/spoofchecker.setchecks.php
+ * @param int $checks
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}.
+ * These are integer values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @param int $amount
The signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant wil be moved into the past. The unit is implicit to the field type.
+ * For instance, hours for IntlCalendar::FIELD_HOUR_OF_DAY.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function add($field, $amount) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether this object's time is after that of the passed object
+ * https://secure.php.net/manual/en/intlcalendar.after.php
+ * @param IntlCalendar $calendar
The calendar whose time will be checked against this object's time.
+ * @return bool
+ * Returns TRUE if this object's current time is after that of the
+ * calendar argument's time. Returns FALSE otherwise.
+ * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions.
+ */
+ #[Pure]
+ public function after(IntlCalendar $calendar) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether this object's time is before that of the passed object
+ * @link https://secure.php.net/manual/en/intlcalendar.before.php
+ * @param IntlCalendar $calendar
The calendar whose time will be checked against this object's time.
+ * @return bool
+ * Returns TRUE if this object's current time is before that of the
+ * calendar argument's time. Returns FALSE otherwise.
+ * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions.
+ *
+ */
+ #[Pure]
+ public function before(IntlCalendar $calendar) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Clear a field or all fields
+ * @link https://secure.php.net/manual/en/intlcalendar.clear.php
+ * @param int $field [optional]
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return bool Returns TRUE on success or FALSE on failure. Failure can only occur is invalid arguments are provided.
+ */
+ public function clear($field = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Private constructor for disallowing instantiation
+ * @link https://secure.php.net/manual/en/intlcalendar.construct.php
+ *
+ */
+ private function __construct() { }
+
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Create a new IntlCalendar
+ * @link https://secure.php.net/manual/en/intlcalendar.createinstance.php
+ * @param mixed $timeZone [optional]
+ * The timezone to use.
+ *
+ *
+ *
+ *
+ *
+ * NULL, in which case the default timezone will be used, as specified in
+ * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or
+ * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as
+ * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}.
+ *
+ *
+ *
+ *
+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted
+ * and an ICU timezone object will be created; the timezone will be backed
+ * by ICU's database, not PHP's.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier.
+ * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw
+ * offsets such as "GMT+08:30" are also accepted.
+ *
+ *
+ *
+ *
+ * @param string|null $locale [optional]
+ * A locale to use or NULL to use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.default-locale the default locale}.
+ *
+ * @return IntlCalendar|null
+ * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} instance or NULL on
+ * failure.
+ */
+ public static function createInstance($timeZone = null, $locale = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Compare time of two IntlCalendar objects for equality
+ * @link https://secure.php.net/manual/en/intlcalendar.equals.php
+ * @param IntlCalendar $calendar
+ * @return bool
+ * Returns TRUE if the current time of both this and the passed in
+ * {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object are the same, or FALSE
+ * otherwise. The value FALSE can also be returned on failure. This can only
+ * happen if bad arguments are passed in. In any case, the two cases can be
+ * distinguished by calling {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()}.
+ *
+ */
+ #[Pure]
+ public function equals($calendar) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Calculate difference between given time and this object's time
+ * @link https://secure.php.net/manual/en/intlcalendar.fielddifference.php
+ * @param float $when
+ * The time against which to compare the quantity represented by the
+ * field. For the result to be positive, the time
+ * given for this parameter must be ahead of the time of the object the
+ * method is being invoked on.
+ *
+ * @param int $field
+ * The field that represents the quantity being compared.
+ *
+ *
+ *
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int Returns a (signed) difference of time in the unit associated with the
+ * specified field or FALSE on failure.
+ *
+ */
+ #[Pure]
+ public function fieldDifference($when, $field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a2)
+ * Create an IntlCalendar from a DateTime object or string
+ * @link https://secure.php.net/manual/en/intlcalendar.fromdatetime.php
+ * @param mixed $dateTime
+ * A {@link https://secure.php.net/manual/en/class.datetime.php DateTime} object or a {@link https://secure.php.net/manual/en/language.types.string.php string} that
+ * can be passed to {@link https://secure.php.net/manual/en/datetime.construct.php DateTime::__construct()}.
+ *
+ * @return IntlCalendar|null
+ * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object or NULL in case of
+ * failure. If a {@link https://secure.php.net/manual/en/language.types.string.php string} is passed, any exception that occurs
+ * inside the {@link https://secure.php.net/manual/en/class.datetime.php DateTime} constructor is propagated.
+ */
+ public static function fromDateTime($dateTime) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.get.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int An integer with the value of the time field.
+ */
+ #[Pure]
+ public function get($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * The maximum value for a field, considering the object's current time
+ * @link https://secure.php.net/manual/en/intlcalendar.getactualmaximum.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the maximum value in the units associated
+ * with the given field or FALSE on failure.
+ */
+ #[Pure]
+ public function getActualMaximum($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * The minimum value for a field, considering the object's current time
+ * @link https://secure.php.net/manual/en/intlcalendar.getactualminimum.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}.
+ * These are integer values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the minimum value in the field's
+ * unit or FALSE on failure.
+ */
+ #[Pure]
+ public function getActualMinimum($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get array of locales for which there is data
+ * @link https://secure.php.net/manual/en/intlcalendar.getavailablelocales.php
+ * @return string[] An array of strings, one for which locale.
+ */
+ public static function getAvailableLocales() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Tell whether a day is a weekday, weekend or a day that has a transition between the two
+ * @param int $dayOfWeek
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY.
+ *
+ * @return int
+ * Returns one of the constants
+ * IntlCalendar::DOW_TYPE_WEEKDAY,
+ * IntlCalendar::DOW_TYPE_WEEKEND,
+ * IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
+ * IntlCalendar::DOW_TYPE_WEEKEND_CEASE or FALSE on failure.
+ *
+ */
+ #[Pure]
+ public function getDayOfWeekType($dayOfWeek) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get last error code on the object
+ * @link https://secure.php.net/manual/en/intlcalendar.geterrorcode.php
+ * @return int An ICU error code indicating either success, failure or a warning.
+ *
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get last error message on the object
+ * @link https://secure.php.net/manual/en/intlcalendar.geterrormessage.php
+ * @return string The error message associated with last error that occurred in a function call on this object, or a string indicating the non-existance of an error.
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the first day of the week for the calendar's locale
+ * @link https://secure.php.net/manual/en/intlcalendar.getfirstdayofweek.php
+ * @return int
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY or FALSE on failure.
+ *
+ */
+ #[Pure]
+ public function getFirstDayOfWeek() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the largest local minimum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getgreatestminimum.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a field value, in the field's
+ * unit, or FALSE on failure.
+ */
+ #[Pure]
+ public function getGreatestMinimum($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get set of locale keyword values
+ * @param string $key
+ * The locale keyword for which relevant values are to be queried. Only
+ * 'calendar' is supported.
+ *
+ * @param string $locale
+ * The locale onto which the keyword/value pair are to be appended.
+ *
+ * @param bool $commonlyUsed
+ *
+ * Whether to show only the values commonly used for the specified locale.
+ *
+ * @return Iterator|false An iterator that yields strings with the locale keyword values or FALSE on failure.
+ */
+ public static function getKeywordValuesForLocale($key, $locale, $commonlyUsed) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the smallest local maximum for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getleastmaximum.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.ph int} representing a field value in the field's
+ * unit or FALSE on failure.
+ *
+ */
+ #[Pure]
+ public function getLeastMaximum($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the locale associated with the object
+ * @link https://secure.php.net/manual/en/intlcalendar.getlocale.php
+ * @param int $localeType
+ * Whether to fetch the actual locale (the locale from which the calendar
+ * data originates, with Locale::ACTUAL_LOCALE) or the
+ * valid locale, i.e., the most specific locale supported by ICU relatively
+ * to the requested locale – see Locale::VALID_LOCALE.
+ * From the most general to the most specific, the locales are ordered in
+ * this fashion – actual locale, valid locale, requested locale.
+ *
+ * @return string
+ * A locale string or FALSE on failure.
+ *
+ */
+ #[Pure]
+ public function getLocale($localeType) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the global maximum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getmaximum.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return string
+ * A locale string or FALSE on failure.
+ */
+ #[Pure]
+ public function getMaximum($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get minimal number of days the first week in a year or month can have
+ * @link https://secure.php.net/manual/en/intlcalendar.getminimaldaysinfirstweek.php
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a number of days or FALSE on failure.
+ */
+ #[Pure]
+ public function getMinimalDaysInFirstWeek() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the global minimum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getminimum.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An int representing a value for the given field in the field's unit or FALSE on failure.
+ */
+ #[Pure]
+ public function getMinimum($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get number representing the current time
+ * @return float A float representing a number of milliseconds since the epoch, not counting leap seconds.
+ */
+ public static function getNow() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get behavior for handling repeating wall time
+ * @link https://secure.php.net/manual/en/intlcalendar.getrepeatedwalltimeoption.php
+ * @return int
+ * One of the constants IntlCalendar::WALLTIME_FIRST or
+ * IntlCalendar::WALLTIME_LAST.
+ *
+ */
+ #[Pure]
+ public function getRepeatedWallTimeOption() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get behavior for handling skipped wall time
+ * @link https://secure.php.net/manual/en/intlcalendar.getskippedwalltimeoption.php
+ * @return int
+ * One of the constants IntlCalendar::WALLTIME_FIRST,
+ * IntlCalendar::WALLTIME_LAST or
+ * IntlCalendar::WALLTIME_NEXT_VALID.
+ */
+ #[Pure]
+ public function getSkippedWallTimeOption() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get time currently represented by the object
+ * @return float
+ * A {@link https://secure.php.net/manual/en/language.types.float.php float} representing the number of milliseconds elapsed since the
+ * reference time (1 Jan 1970 00:00:00 UTC).
+ */
+ #[Pure]
+ public function getTime() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the object's timezone
+ * @link https://secure.php.net/manual/en/intlcalendar.gettimezone.php
+ * @return IntlTimeZone
+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone} object corresponding to the one used
+ * internally in this object.
+ */
+ #[Pure]
+ public function getTimeZone() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the calendar type
+ * @link https://secure.php.net/manual/en/intlcalendar.gettype.php
+ * @return string
+ * A {@link https://secure.php.net/manual/en/language.types.string.php string} representing the calendar type, such as
+ * 'gregorian', 'islamic', etc.
+ */
+ #[Pure]
+ public function getType() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get time of the day at which weekend begins or ends
+ * @link https://secure.php.net/manual/en/intlcalendar.getweekendtransition.php
+ * @param string $dayOfWeek
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY.
+ *
+ * @return int
+ * The number of milliseconds into the day at which the the weekend begins or
+ * ends or FALSE on failure.
+ */
+ #[Pure]
+ public function getWeekendTransition($dayOfWeek) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether the object's time is in Daylight Savings Time
+ * @link https://secure.php.net/manual/en/intlcalendar.indaylighttime.php
+ * @return bool
+ * Returns TRUE if the date is in Daylight Savings Time, FALSE otherwise.
+ * The value FALSE may also be returned on failure, for instance after
+ * specifying invalid field values on non-lenient mode; use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or query
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to disambiguate.
+ */
+ #[Pure]
+ public function inDaylightTime() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether another calendar is equal but for a different time
+ * @link https://secure.php.net/manual/en/intlcalendar.isequivalentto.php
+ * @param IntlCalendar $calendar The other calendar against which the comparison is to be made.
+ * @return bool
+ * Assuming there are no argument errors, returns TRUE iif the calendars are equivalent except possibly for their set time.
+ */
+ #[Pure]
+ public function isEquivalentTo(IntlCalendar $calendar) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether date/time interpretation is in lenient mode
+ * @link https://secure.php.net/manual/en/intlcalendar.islenient.php
+ * @return bool
+ * A {@link https://secure.php.net/manual/en/language.types.boolean.php bool} representing whether the calendar is set to lenient mode.
+ */
+ #[Pure]
+ public function isLenient() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether a certain date/time is in the weekend
+ * @link https://secure.php.net/manual/en/intlcalendar.isweekend.php
+ * @param float|null $date [optional]
+ * An optional timestamp representing the number of milliseconds since the
+ * epoch, excluding leap seconds. If NULL, this object's current time is
+ * used instead.
+ *
+ * @return bool
+ *
A {@link https://secure.php.net/manual/en/language.types.boolean.php bool} indicating whether the given or this object's time occurs
+ * in a weekend.
+ *
+ *
+ * The value FALSE may also be returned on failure, for instance after giving
+ * a date out of bounds on non-lenient mode; use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or query
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to disambiguate.
+ */
+ #[Pure]
+ public function isWeekend($date = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Add value to field without carrying into more significant fields
+ * @link https://secure.php.net/manual/en/intlcalendar.roll.php
+ * @param int $field
+ *
One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time
+ * {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @param mixed $amountOrUpOrDown
+ * The (signed) amount to add to the field, TRUE for rolling up (adding
+ * 1), or FALSE for rolling down (subtracting
+ * 1).
+ *
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function roll($field, $amountOrUpOrDown) { }
+
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether a field is set
+ * @link https://secure.php.net/manual/en/intlcalendar.isset.php
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time
+ * {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}.
+ * These are integer values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return bool Assuming there are no argument errors, returns TRUE iif the field is set.
+ */
+ public function PS_UNRESERVE_PREFIX_isSet($field) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set a time field or several common fields at once
+ * @link https://secure.php.net/manual/en/intlcalendar.set.php
+ * @param int $year
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @param int $month
+ * The new value for IntlCalendar::FIELD_MONTH.
+ *
+ * @param int $dayOfMonth [optional]
+ * The new value for IntlCalendar::FIELD_DAY_OF_MONTH.
+ * The month sequence is zero-based, i.e., January is represented by 0,
+ * February by 1, ..., December is 11 and Undecember (if the calendar has
+ * it) is 12.
+ *
+ * @param int $hour [optional]
+ *
+ * The new value for IntlCalendar::FIELD_HOUR_OF_DAY.
+ *
+ * @param int $minute [optional]
+ *
+ * The new value for IntlCalendar::FIELD_MINUTE.
+ *
+ * @param int $second [optional]
+ * The new value for IntlCalendar::FIELD_SECOND.
+ *
+ * @return bool Returns TRUE on success and FALSE on failure.
+ */
+ public function set($year, $month, $dayOfMonth = null, $hour = null, $minute = null, $second = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set a time field or several common fields at once
+ * @link https://secure.php.net/manual/en/intlcalendar.set.php
+ * @param int $field One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.
+ * @param int $value The new value of the given field.
+ * @return bool Returns TRUE on success and FALSE on failure.
+ * @since 5.5
+ */
+ public function set($field, $value) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set the day on which the week is deemed to start
+ * @link https://secure.php.net/manual/en/intlcalendar.setfirstdayofweek.php
+ * @param int $dayOfWeek
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY.
+ *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters.
+ */
+ public function setFirstDayOfWeek($dayOfWeek) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set whether date/time interpretation is to be lenient
+ * @link https://secure.php.net/manual/en/intlcalendar.setlenient.php
+ * @param bool $isLenient
+ * Use TRUE to activate the lenient mode; FALSE otherwise.
+ *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters.
+ */
+ public function setLenient($isLenient) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set behavior for handling repeating wall times at negative timezone offset transitions
+ * @link https://secure.php.net/manual/en/intlcalendar.setrepeatedwalltimeoption.php
+ * @param int $wallTimeOption
+ * One of the constants IntlCalendar::WALLTIME_FIRST or
+ * IntlCalendar::WALLTIME_LAST.
+ *
+ * @return bool
+ * Returns TRUE on success. Failure can only happen due to invalid parameters.
+ *
+ */
+ public function setRepeatedWallTimeOption($wallTimeOption) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set behavior for handling skipped wall times at positive timezone offset transitions
+ * @link https://secure.php.net/manual/en/intlcalendar.setskippedwalltimeoption.php
+ * @param int $wallTimeOption
+ * One of the constants IntlCalendar::WALLTIME_FIRST,
+ * IntlCalendar::WALLTIME_LAST or
+ * IntlCalendar::WALLTIME_NEXT_VALID.
+ *
+ * @return bool
+ *
+ * Returns TRUE on success. Failure can only happen due to invalid parameters.
+ *
+ */
+ public function setSkippedWallTimeOption($wallTimeOption) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set the calendar time in milliseconds since the epoch
+ * @link https://secure.php.net/manual/en/intlcalendar.settime.php
+ * @param float $date
+ * An instant represented by the number of number of milliseconds between
+ * such instant and the epoch, ignoring leap seconds.
+ *
+ * @return bool
+ * Returns TRUE on success and FALSE on failure.
+ */
+ public function setTime($date) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set the timezone used by this calendar
+ * @link https://secure.php.net/manual/en/intlcalendar.settimezone.php
+ * @param mixed $timeZone
+ * The new timezone to be used by this calendar. It can be specified in the
+ * following ways:
+ *
+ *
+ *
+ *
+ * NULL, in which case the default timezone will be used, as specified in
+ * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or
+ * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as
+ * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}.
+ *
+ *
+ *
+ *
+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted
+ * and an ICU timezone object will be created; the timezone will be backed
+ * by ICU's database, not PHP's.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier.
+ * See b>IntlTimeZone::createTimeZoneIDEnumeration(). Raw
+ * offsets such as "GMT+08:30" are also accepted.
+ *
+ *
+ *
+ * @return bool Returns TRUE on success and FALSE on failure.
+ */
+ public function setTimeZone($timeZone) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a2)
+ * Convert an IntlCalendar into a DateTime object
+ * @link https://secure.php.net/manual/en/intlcalendar.todatetime.php
+ * @return DateTime|false
+ * A {@link https://secure.php.net/manual/en/class.datetime.php DateTime} object with the same timezone as this
+ * object (though using PHP's database instead of ICU's) and the same time,
+ * except for the smaller precision (second precision instead of millisecond).
+ * Returns FALSE on failure.
+ */
+ #[Pure]
+ public function toDateTime() { }
+}
+
+/**
+ * @since 5.5
+ */
+class IntlIterator implements Iterator {
+
+ public function current() { }
+
+ public function key() { }
+
+ public function next() { }
+
+ public function rewind() { }
+
+ public function valid() { }
+}
+
+/**
+ * @since 5.5
+ */
+class IntlException extends Exception {
+
+}
+
+/**
+ * @since 5.5
+ */
+class IntlTimeZone {
+ /* Constants */
+ const DISPLAY_SHORT = 1;
+ const DISPLAY_LONG = 2;
+
+ /* Methods */
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the number of IDs in the equivalency group that includes the given ID
+ * @link https://secure.php.net/manual/en/intltimezone.countequivalentids.php
+ * @param string $zoneId
+ * @return int|false number of IDs or FALSE on failure
+ */
+ public static function countEquivalentIDs($zoneId) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Create a new copy of the default timezone for this host
+ * @link https://secure.php.net/manual/en/intltimezone.createdefault.php
+ * @return IntlTimeZone
+ */
+ public static function createDefault() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get an enumeration over time zone IDs associated with the given country or offset
+ * @link https://secure.php.net/manual/en/intltimezone.createenumeration.php
+ * @param mixed $countryOrRawOffset [optional]
+ * @return IntlIterator|false an iterator or FALSE on failure
+ */
+ public static function createEnumeration($countryOrRawOffset) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Create a timezone object for the given ID
+ * @link https://secure.php.net/manual/en/intltimezone.createtimezone.php
+ * @param string $zoneId
+ * @return IntlTimeZone|null a timezone object or NULL on failure
+ */
+ public static function createTimeZone($zoneId) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get an enumeration over system time zone IDs with the given filter conditions
+ * @link https://secure.php.net/manual/en/intltimezone.createtimezoneidenumeration.php
+ * @param int $zoneType
+ * @param string|null $region [optional]
+ * @param int $rawOffset [optional]
+ * @return IntlIterator|false an iterator or FALSE on failure
+ */
+ public static function createTimeZoneIDEnumeration($zoneType, $region = null, $rawOffset = 0) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Create a timezone object from DateTimeZone
+ * @link https://secure.php.net/manual/en/intltimezone.fromdatetimezone.php
+ * @param DateTimeZone $zoneId
+ * @return IntlTimeZone|null a timezone object or NULL on failure
+ */
+ public static function fromDateTimeZone($zoneId) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
+ * @link https://secure.php.net/manual/en/intltimezone.getcanonicalid.php
+ * @param string $zoneId
+ * @param bool &$isSystemID [optional]
+ * @return string|false the timezone ID or FALSE on failure
+ */
+ public static function getCanonicalID($zoneId, &$isSystemID) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get a name of this time zone suitable for presentation to the user
+ * @param bool $isDaylight [optional]
+ * @param int $style [optional]
+ * @param string $locale [optional]
+ * @return string|false the timezone name or FALSE on failure
+ */
+ #[Pure]
+ public function getDisplayName($isDaylight, $style, $locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the amount of time to be added to local standard time to get local wall clock time
+ * @link https://secure.php.net/manual/en/intltimezone.getequivalentid.php
+ * @return int
+ */
+ #[Pure]
+ public function getDSTSavings() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get an ID in the equivalency group that includes the given ID
+ * @link https://secure.php.net/manual/en/intltimezone.getequivalentid.php
+ * @param string $zoneId
+ * @param int $index
+ * @return string|false the time zone ID or FALSE on failure
+ */
+ public static function getEquivalentID($zoneId, $index) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get last error code on the object
+ * @link https://secure.php.net/manual/en/intltimezone.geterrorcode.php
+ * @return int
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get last error message on the object
+ * @link https://secure.php.net/manual/en/intltimezone.geterrormessage.php
+ * @return string
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Create GMT (UTC) timezone
+ * @link https://secure.php.net/manual/en/intltimezone.getgmt.php
+ * @return IntlTimeZone
+ */
+ public static function getGMT() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get timezone ID
+ * @return string
+ */
+ #[Pure]
+ public function getID() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the time zone raw and GMT offset for the given moment in time
+ * @link https://secure.php.net/manual/en/intltimezone.getoffset.php
+ * @param float $date
+ * moment in time for which to return offsets, in units of milliseconds from
+ * January 1, 1970 0:00 GMT, either GMT time or local wall time, depending on
+ * `local'.
+ * @param bool $local
+ * if true, `date' is local wall time; otherwise it is in GMT time.
+ * @param int &$rawOffset
+ * output parameter to receive the raw offset, that is, the offset not
+ * including DST adjustments
+ * @param int &$dstOffset
+ * output parameter to receive the DST offset, that is, the offset to be added
+ * to `rawOffset' to obtain the total offset between local and GMT time. If
+ * DST is not in effect, this value is zero; otherwise it is a positive value,
+ * typically one hour.
+ * @return bool boolean indication of success
+ */
+ public function getOffset($date, $local, &$rawOffset, &$dstOffset) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the raw GMT offset (before taking daylight savings time into account
+ * @link https://secure.php.net/manual/en/intltimezone.getrawoffset.php
+ * @return int
+ */
+ #[Pure]
+ public function getRawOffset() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the region code associated with the given system time zone ID
+ * @link https://secure.php.net/manual/en/intltimezone.getregion.php
+ * @param string $zoneId
+ * @return string|false region or FALSE on failure
+ */
+ public static function getRegion($zoneId) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the timezone data version currently used by ICU
+ * @link https://secure.php.net/manual/en/intltimezone.gettzdataversion.php
+ * @return string
+ */
+ public static function getTZDataVersion() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the "unknown" time zone
+ * @link https://secure.php.net/manual/en/intltimezone.getunknown.php
+ * @return IntlTimeZone
+ */
+ public static function getUnknown() { }
+
+ /**
+ * (PHP 7 >=7.1.0)
+ * Translates a system timezone (e.g. "America/Los_Angeles") into a Windows
+ * timezone (e.g. "Pacific Standard Time").
+ * @link https://secure.php.net/manual/en/intltimezone.getwindowsid.php
+ * @param string $timezone
+ * @return string|false the Windows timezone or FALSE on failure
+ * @since 7.1
+ */
+ public static function getWindowsID($timezone) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Check if this zone has the same rules and offset as another zone
+ * @link https://secure.php.net/manual/en/intltimezone.hassamerules.php
+ * @param IntlTimeZone $otherTimeZone
+ * @return bool
+ */
+ #[Pure]
+ public function hasSameRules(IntlTimeZone $otherTimeZone) { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Convert to DateTimeZone object
+ * @link https://secure.php.net/manual/en/intltimezone.todatetimezone.php
+ * @return DateTimeZone|false the DateTimeZone object or FALSE on failure
+ */
+ #[Pure]
+ public function toDateTimeZone() { }
+
+ /**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Check if this time zone uses daylight savings time
+ * @link https://secure.php.net/manual/en/intltimezone.usedaylighttime.php
+ * @return bool
+ */
+ public function useDaylightTime() { }
+}
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Create a collator
+ * @link https://php.net/manual/en/collator.create.php
+ * @param string $locale
+ * The locale containing the required collation rules. Special values for
+ * locales can be passed in - if null is passed for the locale, the
+ * default locale collation rules will be used. If empty string ("") or
+ * "root" are passed, UCA rules will be used.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function collator_asort(Collator $object, array &$array, $sort_flag = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the locale name of the collator
+ * @link https://php.net/manual/en/collator.getlocale.php
+ * @param Collator $object
+ * @param int $type [optional]
+ * You can choose between valid and actual locale (
+ * Locale::VALID_LOCALE and
+ * Locale::ACTUAL_LOCALE,
+ * respectively). The default is the actual locale.
+ *
+ * @return string|false Real locale name from which the collation data comes. If the collator was
+ * instantiated from rules or an error occurred, returns
+ * boolean FALSE.
+ */
+#[Pure]
+function collator_get_locale(Collator $object, $type = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get collator's last error code
+ * @link https://php.net/manual/en/collator.geterrorcode.php
+ * @param Collator $object
+ * @return int|false Error code returned by the last Collator API function call.
+ */
+#[Pure]
+function collator_get_error_code(Collator $object) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get text for collator's last error code
+ * @link https://php.net/manual/en/collator.geterrormessage.php
+ * @param Collator $object
+ * @return string|false Description of an error occurred in the last Collator API function call.
+ */
+#[Pure]
+function collator_get_error_message(Collator $object) { }
+
+/**
+ * (PHP 5 >= 5.3.2, PHP 7, PECL intl >= 1.0.3)
+ * Get sorting key for a string
+ * @link https://php.net/manual/en/collator.getsortkey.php
+ * @param Collator $object
+ * @param string $str
+ * The string to produce the key from.
+ *
+ * @return string|false the collation key for the string. Collation keys can be compared directly instead of strings.
+ */
+#[Pure]
+function collator_get_sort_key(Collator $object, $str) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Create a number formatter
+ * @link https://php.net/manual/en/numberformatter.create.php
+ * @param string $locale
+ * Locale in which the number would be formatted (locale name, e.g. en_CA).
+ *
+ * @param int $style
+ * Style of the formatting, one of the
+ * format style constants. If
+ * NumberFormatter::PATTERN_DECIMAL
+ * or NumberFormatter::PATTERN_RULEBASED
+ * is passed then the number format is opened using the given pattern,
+ * which must conform to the syntax described in
+ * ICU DecimalFormat
+ * documentation or
+ * ICU RuleBasedNumberFormat
+ * documentation, respectively.
+ *
+ * @param string $pattern [optional]
+ * Pattern string if the chosen style requires a pattern.
+ *
+ * Pattern in syntax described in
+ * ICU DecimalFormat
+ * documentation.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function numfmt_set_pattern(NumberFormatter $fmt, $pattern) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter pattern
+ * @link https://php.net/manual/en/numberformatter.getpattern.php
+ * @param NumberFormatter $fmt
+ * @return string|false Pattern string that is used by the formatter, or FALSE if an error happens.
+ */
+#[Pure]
+function numfmt_get_pattern(NumberFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter locale
+ * @link https://php.net/manual/en/numberformatter.getlocale.php
+ * @param NumberFormatter $fmt
+ * @param int $type [optional]
+ * You can choose between valid and actual locale (
+ * Locale::VALID_LOCALE,
+ * Locale::ACTUAL_LOCALE,
+ * respectively). The default is the actual locale.
+ *
+ * @return string|false The locale name used to create the formatter.
+ */
+#[Pure]
+function numfmt_get_locale(NumberFormatter $fmt, $type = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter's last error code.
+ * @link https://php.net/manual/en/numberformatter.geterrorcode.php
+ * @param NumberFormatter $fmt
+ * @return int error code from last formatter call.
+ */
+#[Pure]
+function numfmt_get_error_code(NumberFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get formatter's last error message.
+ * @link https://php.net/manual/en/numberformatter.geterrormessage.php
+ * @param NumberFormatter $fmt
+ * @return string error message from last formatter call.
+ */
+#[Pure]
+function numfmt_get_error_message(NumberFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Normalizes the input provided and returns the normalized string
+ * @link https://php.net/manual/en/normalizer.normalize.php
+ * @param string $input
The input string to normalize
+ * @param int $form [optional]
One of the normalization forms.
+ * @return string|false The normalized string or FALSE if an error occurred.
+ */
+#[Pure]
+function normalizer_normalize($input, $form = Normalizer::FORM_C) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Checks if the provided string is already in the specified normalization
+form.
+ * @link https://php.net/manual/en/normalizer.isnormalized.php
+ * @param string $input
The input string to normalize
+ * @param int $form [optional]
+ * One of the normalization forms.
+ *
+ * @return bool TRUE if normalized, FALSE otherwise or if there an error
+ */
+#[Pure]
+function normalizer_is_normalized($input, $form = Normalizer::FORM_C) { }
+
+/**
+ * Gets the default locale value from the intl global 'default_locale'
+ * @link https://php.net/manual/en/function.locale-get-default.php
+ * @return string a string with the current Locale.
+ */
+#[Pure]
+function locale_get_default() { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set the default runtime Locale
+ * @link https://php.net/manual/en/function.locale-set-default.php
+ * @param string $name
+ * The new Locale name. A comprehensive list of the supported locales is
+ * available at .
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function locale_set_default($name) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the primary language for the input locale
+ * @link https://php.net/manual/en/locale.getprimarylanguage.php
+ * @param string $locale
+ * The locale to extract the primary language code from
+ *
+ * @return string|null The language code associated with the language or NULL in case of error.
+ */
+#[Pure]
+function locale_get_primary_language($locale) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the script for the input locale
+ * @link https://php.net/manual/en/locale.getscript.php
+ * @param string $locale
+ * The locale to extract the script code from
+ *
+ * @return string|null The script subtag for the locale or NULL if not present
+ */
+#[Pure]
+function locale_get_script($locale) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the region for the input locale
+ * @link https://php.net/manual/en/locale.getregion.php
+ * @param string $locale
+ * The locale to extract the region code from
+ *
+ * @return string|null The region subtag for the locale or NULL if not present
+ */
+#[Pure]
+function locale_get_region($locale) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the keywords for the input locale
+ * @link https://php.net/manual/en/locale.getkeywords.php
+ * @param string $locale
+ * The locale to extract the keywords from
+ *
+ * @return array|false|null Associative array containing the keyword-value pairs for this locale
+ */
+#[Pure]
+function locale_get_keywords($locale) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for script of the input locale
+ * @link https://php.net/manual/en/locale.getdisplayscript.php
+ * @param string $locale
+ * The locale to return a display script for
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the script name
+ *
+ * @return string|false Display name of the script for the $locale in the format appropriate for
+ * $in_locale.
+ */
+#[Pure]
+function locale_get_display_script($locale, $in_locale = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for region of the input locale
+ * @link https://php.net/manual/en/locale.getdisplayregion.php
+ * @param string $locale
+ * The locale to return a display region for.
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the region name
+ *
+ * @return string display name of the region for the $locale in the format appropriate for
+ * $in_locale.
+ */
+#[Pure]
+function locale_get_display_region($locale, $in_locale = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for the input locale
+ * @link https://php.net/manual/en/locale.getdisplayname.php
+ * @param string $locale
+ * The locale to return a display name for.
+ *
+ * @param string $in_locale [optional]
optional format locale
+ * @return string Display name of the locale in the format appropriate for $in_locale.
+ */
+#[Pure]
+function locale_get_display_name($locale, $in_locale = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for language of the inputlocale
+ * @link https://php.net/manual/en/locale.getdisplaylanguage.php
+ * @param string $locale
+ * The locale to return a display language for
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the language name
+ *
+ * @return string display name of the language for the $locale in the format appropriate for
+ * $in_locale.
+ */
+#[Pure]
+function locale_get_display_language($locale, $in_locale = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns an appropriately localized display name for variants of the input locale
+ * @link https://php.net/manual/en/locale.getdisplayvariant.php
+ * @param string $locale
+ * The locale to return a display variant for
+ *
+ * @param string $in_locale [optional]
+ * Optional format locale to use to display the variant name
+ *
+ * @return string Display name of the variant for the $locale in the format appropriate for
+ * $in_locale.
+ */
+#[Pure]
+function locale_get_display_variant($locale, $in_locale = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns a correctly ordered and delimited locale ID
+ * @link https://php.net/manual/en/locale.composelocale.php
+ * @param string[] $subtags
+ * an array containing a list of key-value pairs, where the keys identify
+ * the particular locale ID subtags, and the values are the associated
+ * subtag values.
+ *
+ * The 'variant' and 'private' subtags can take maximum 15 values
+ * whereas 'extlang' can take maximum 3 values.e.g. Variants are allowed
+ * with the suffix ranging from 0-14. Hence the keys for the input array
+ * can be variant0, variant1, ...,variant14. In the returned locale id,
+ * the subtag is ordered by suffix resulting in variant0 followed by
+ * variant1 followed by variant2 and so on.
+ *
+ *
+ * The 'variant', 'private' and 'extlang' multiple values can be specified both
+ * as array under specific key (e.g. 'variant') and as multiple numbered keys
+ * (e.g. 'variant0', 'variant1', etc.).
+ *
+ * The locale to extract the subtag array from. Note: The 'variant' and
+ * 'private' subtags can take maximum 15 values whereas 'extlang' can take
+ * maximum 3 values.
+ *
+ * @return string[]|null an array containing a list of key-value pairs, where the keys
+ * identify the particular locale ID subtags, and the values are the
+ * associated subtag values. The array will be ordered as the locale id
+ * subtags e.g. in the locale id if variants are '-varX-varY-varZ' then the
+ * returned array will have variant0=>varX , variant1=>varY ,
+ * variant2=>varZ
+ */
+#[Pure]
+function locale_parse($locale) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Gets the variants for the input locale
+ * @link https://php.net/manual/en/locale.getallvariants.php
+ * @param string $locale
+ * The locale to extract the variants from
+ *
+ * @return array|null The array containing the list of all variants subtag for the locale
+ * or NULL if not present
+ */
+#[Pure]
+function locale_get_all_variants($locale) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Checks if a language tag filter matches with locale
+ * @link https://php.net/manual/en/locale.filtermatches.php
+ * @param string $langtag
+ * The language tag to check
+ *
+ * @param string $locale
+ * The language range to check against
+ *
+ * @param bool $canonicalize [optional]
+ * If true, the arguments will be converted to canonical form before
+ * matching.
+ *
+ * @return bool TRUE if $locale matches $langtag FALSE otherwise.
+ */
+#[Pure]
+function locale_filter_matches($langtag, $locale, $canonicalize = false) { }
+
+/**
+ * Canonicalize the locale string
+ * @param string $locale
+ *
+ * @return null|string
+ */
+#[Pure]
+function locale_canonicalize($locale) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Searches the language tag list for the best match to the language
+ * @link https://php.net/manual/en/locale.lookup.php
+ * @param string[] $langtag
+ * An array containing a list of language tags to compare to
+ * locale. Maximum 100 items allowed.
+ *
+ * @param string $locale
+ * The locale to use as the language range when matching.
+ *
+ * @param bool $canonicalize [optional]
+ * If true, the arguments will be converted to canonical form before
+ * matching.
+ *
+ * @param string $default [optional]
+ * The locale to use if no match is found.
+ *
+ * @return string The closest matching language tag or default value.
+ */
+#[Pure]
+function locale_lookup(array $langtag, $locale, $canonicalize = false, $default = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Tries to find out best available locale based on HTTP "Accept-Language" header
+ * @link https://php.net/manual/en/locale.acceptfromhttp.php
+ * @param string $header
+ * The string containing the "Accept-Language" header according to format in RFC 2616.
+ *
+ * Arguments to insert into the format string
+ *
+ * @return string|false The formatted string, or FALSE if an error occurred
+ */
+#[Pure]
+function msgfmt_format(MessageFormatter $fmt, array $args) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Quick format message
+ * @link https://php.net/manual/en/messageformatter.formatmessage.php
+ * @param string $locale
+ * The locale to use for formatting locale-dependent parts
+ *
+ * @param string $pattern
+ * The pattern string to insert things into.
+ * The pattern uses an 'apostrophe-friendly' syntax; it is run through
+ * umsg_autoQuoteApostrophe
+ * before being interpreted.
+ *
+ * @param array $args
+ * The array of values to insert into the format string
+ *
+ * @return string|false The formatted pattern string or FALSE if an error occurred
+ */
+#[Pure]
+function msgfmt_format_message(string $locale, string $pattern, array $args) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Parse input string according to pattern
+ * @link https://php.net/manual/en/messageformatter.parse.php
+ * @param MessageFormatter $fmt
+ * @param string $value
+ * The locale to use for parsing locale-dependent parts
+ *
+ * @param string $pattern
+ * The pattern with which to parse the value.
+ *
+ * @param string $source
+ * The string to parse, conforming to the pattern.
+ *
+ * @return array|false An array containing items extracted, or FALSE on error
+ */
+#[Pure]
+function msgfmt_parse_message($locale, $pattern, $source) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set the pattern used by the formatter
+ * @link https://php.net/manual/en/messageformatter.setpattern.php
+ * @param MessageFormatter $fmt
+ * @param string $pattern
+ * The pattern string to use in this message formatter.
+ * The pattern uses an 'apostrophe-friendly' syntax; it is run through
+ * umsg_autoQuoteApostrophe
+ * before being interpreted.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function msgfmt_set_pattern(MessageFormatter $fmt, $pattern) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the pattern used by the formatter
+ * @link https://php.net/manual/en/messageformatter.getpattern.php
+ * @param MessageFormatter $fmt
+ * @return string|false The pattern string for this message formatter
+ */
+#[Pure]
+function msgfmt_get_pattern(MessageFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the locale for which the formatter was created.
+ * @link https://php.net/manual/en/messageformatter.getlocale.php
+ * @param MessageFormatter $fmt
+ * @return string The locale name
+ */
+#[Pure]
+function msgfmt_get_locale(MessageFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error code from last operation
+ * @link https://php.net/manual/en/messageformatter.geterrorcode.php
+ * @param MessageFormatter $fmt
+ * @return int The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.
+ */
+#[Pure]
+function msgfmt_get_error_code(MessageFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error text from the last operation
+ * @link https://php.net/manual/en/messageformatter.geterrormessage.php
+ * @param MessageFormatter $fmt
+ * @return string Description of the last error.
+ */
+#[Pure]
+function msgfmt_get_error_message(MessageFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Create a date formatter
+ * @link https://php.net/manual/en/intldateformatter.create.php
+ * @param string|null $locale
+ * Locale to use when formatting or parsing.
+ *
+ * @param int $datetype
+ * Date type to use (none,
+ * short, medium,
+ * long, full).
+ * This is one of the
+ * IntlDateFormatter constants.
+ *
+ * @param int $timetype
+ * Time type to use (none,
+ * short, medium,
+ * long, full).
+ * This is one of the
+ * IntlDateFormatter constants.
+ *
+ * @param string|null $timezone [optional]
+ * Time zone ID, default is system default.
+ *
+ * @param int|null $calendar [optional]
+ * Calendar to use for formatting or parsing; default is Gregorian.
+ * This is one of the
+ * IntlDateFormatter calendar constants.
+ *
+ * @param string $pattern [optional]
+ * Optional pattern to use when formatting or parsing.
+ * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime.
+ *
+ * @return IntlDateFormatter
+ */
+#[Pure]
+function datefmt_create($locale, $datetype, $timetype, $timezone = null, $calendar = null, $pattern = '') { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the datetype used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.getdatetype.php
+ * @param IntlDateFormatter $df
+ * @return int|false The current date type value of the formatter.
+ */
+#[Pure]
+function datefmt_get_datetype(IntlDateFormatter $df) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the timetype used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.gettimetype.php
+ * @param IntlDateFormatter $fmt
+ * @return int|false The current date type value of the formatter.
+ */
+#[Pure]
+function datefmt_get_timetype(IntlDateFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the calendar type used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.getcalendar.php
+ * @param IntlDateFormatter $fmt
+ * @return int The calendar being used by the formatter.
+ */
+#[Pure]
+function datefmt_get_calendar(IntlDateFormatter $fmt) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * sets the calendar used to the appropriate calendar, which must be
+ * @link https://php.net/manual/en/intldateformatter.setcalendar.php
+ * @param IntlDateFormatter $df $mf
+ * @param IntlCalendar|int|null $which
+ * The calendar to use.
+ * Default is IntlDateFormatter::GREGORIAN.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function datefmt_set_calendar(IntlDateFormatter $df, $which) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the locale used by formatter
+ * @link https://php.net/manual/en/intldateformatter.getlocale.php
+ * @param IntlDateFormatter $df
+ * @param int $which [optional]
+ * @return string|false the locale of this formatter or 'false' if error
+ */
+#[Pure]
+function datefmt_get_locale(IntlDateFormatter $df, int $which = ULOC_ACTUAL_LOCALE) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the timezone-id used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.gettimezoneid.php
+ * @param IntlDateFormatter $df
+ * @return string|false ID string for the time zone used by this formatter.
+ */
+#[Pure]
+function datefmt_get_timezone_id(IntlDateFormatter $df) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 3.0.0)
+ * Get copy of formatter's calendar object
+ * @link https://secure.php.net/manual/en/intldateformatter.getcalendarobject.php
+ * @param IntlDateFormatter $df
+ * @return IntlCalendar|false|null A copy of the internal calendar object used by this formatter.
+ */
+#[Pure]
+function datefmt_get_calendar_object(IntlDateFormatter $df) { }
+
+/**
+ * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)
+ * Get formatter's timezone
+ * @link https://secure.php.net/manual/en/intldateformatter.gettimezone.php
+ * @return IntlTimeZone|false The associated IntlTimeZone object or FALSE on failure.
+ */
+#[Pure]
+function datefmt_get_timezone() { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Sets the time zone to use
+ * @link https://php.net/manual/en/intldateformatter.settimezoneid.php
+ * @param MessageFormatter $mf
+ * @param string $zone
+ * The time zone ID string of the time zone to use.
+ * If NULL or the empty string, the default time zone for the runtime is used.
+ *
+ * The timezone to use for this formatter. This can be specified in the
+ * following forms:
+ *
+ *
+ *
+ * NULL, in which case the default timezone will be used, as specified in
+ * the ini setting {@link "https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone" date.timezone} or
+ * through the function {@link "https://secure.php.net/manual/en/function.date-default-timezone-set.php" date_default_timezone_set()} and as
+ * returned by {@link "https://secure.php.net/manual/en/function.date-default-timezone-get.php" date_default_timezone_get()}.
+ *
+ *
+ *
+ *
+ * An {@link "https://secure.php.net/manual/en/class.intltimezone.php" IntlTimeZone}, which will be used directly.
+ *
+ *
+ *
+ *
+ * A {@link "https://secure.php.net/manual/en/class.datetimezone.php" DateTimeZone}. Its identifier will be extracted
+ * and an ICU timezone object will be created; the timezone will be backed
+ * by ICU's database, not PHP's.
+ *
+ *
+ *
+ *
+ * A {@link "https://secure.php.net/manual/en/language.types.string.php" string}, which should be a valid ICU timezone identifier.
+ * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted.
+ *
+ *
+ *
+ *
+ * @return bool|null TRUE on success or FALSE on failure.
+ */
+function datefmt_set_timezone(IntlDateFormatter $df, $zone) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the pattern used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.getpattern.php
+ * @param IntlDateFormatter $df
+ * @return string|false The pattern string being used to format/parse.
+ */
+#[Pure]
+function datefmt_get_pattern(IntlDateFormatter $df) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set the pattern used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.setpattern.php
+ * @param IntlDateFormatter $df
+ * @param string $pattern
+ * New pattern string to use.
+ * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * Bad formatstrings are usually the cause of the failure.
+ */
+function datefmt_set_pattern(IntlDateFormatter $df, $pattern) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the lenient used for the IntlDateFormatter
+ * @link https://php.net/manual/en/intldateformatter.islenient.php
+ * @param IntlDateFormatter $df
+ * @return bool TRUE if parser is lenient, FALSE if parser is strict. By default the parser is lenient.
+ */
+#[Pure]
+function datefmt_is_lenient(IntlDateFormatter $df) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Set the leniency of the parser
+ * @link https://php.net/manual/en/intldateformatter.setlenient.php
+ * @param IntlDateFormatter $df
+ * @param bool $lenient
+ * Sets whether the parser is lenient or not, default is TRUE (lenient).
+ *
+ * @return void
+ */
+function datefmt_set_lenient(IntlDateFormatter $df, $lenient) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Format the date/time value as a string
+ * @link https://php.net/manual/en/intldateformatter.format.php
+ * @param IntlDateFormatter $df
+ * @param object|array|string|int|float $value
+ * Value to format. This may be a DateTime object,
+ * an integer representing a Unix timestamp value (seconds
+ * since epoch, UTC) or an array in the format output by
+ * localtime.
+ *
+ * How to format the date/time. This can either be an {https://secure.php.net/manual/en/language.types.array.php array} with
+ * two elements (first the date style, then the time style, these being one
+ * of the constants IntlDateFormatter::NONE,
+ * IntlDateFormatter::SHORT,
+ * IntlDateFormatter::MEDIUM,
+ * IntlDateFormatter::LONG,
+ * IntlDateFormatter::FULL), a long with
+ * the value of one of these constants (in which case it will be used both
+ * for the time and the date) or a {@link https://secure.php.net/manual/en/language.types.string.php} with the format
+ * described in {@link http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details the ICU documentation}
+ * documentation. If NULL, the default style will be used.
+ *
+ * @param string|null $locale [optional]
+ * The locale to use, or NULL to use the default one.
+ * @return string|false The formatted string or, if an error occurred, FALSE.
+ */
+#[Pure]
+function datefmt_format_object($object, $format = null, $locale = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Parse string to a timestamp value
+ * @link https://php.net/manual/en/intldateformatter.parse.php
+ * @param IntlDateFormatter $df
+ * @param string $value
+ * string to convert to a time
+ *
+ * @param int &$position [optional]
+ * Position at which to start the parsing in $value (zero-based).
+ * If no error occurs before $value is consumed, $parse_pos will contain -1
+ * otherwise it will contain the position at which parsing ended (and the error occurred).
+ * This variable will contain the end position if the parse fails.
+ * If $parse_pos > strlen($value), the parse fails immediately.
+ *
+ * Position at which to start the parsing in $value (zero-based).
+ * If no error occurs before $value is consumed, $parse_pos will contain -1
+ * otherwise it will contain the position at which parsing ended .
+ * If $parse_pos > strlen($value), the parse fails immediately.
+ *
+ * @return array|false Localtime compatible array of integers : contains 24 hour clock value in tm_hour field
+ */
+function datefmt_localtime(IntlDateFormatter $df, $value, &$position = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error code from last operation
+ * @link https://php.net/manual/en/intldateformatter.geterrorcode.php
+ * @param IntlDateFormatter $df
+ * @return int The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.
+ */
+#[Pure]
+function datefmt_get_error_code(IntlDateFormatter $df) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the error text from the last operation.
+ * @link https://php.net/manual/en/intldateformatter.geterrormessage.php
+ * @param IntlDateFormatter $df
+ * @return string Description of the last error.
+ */
+#[Pure]
+function datefmt_get_error_message(IntlDateFormatter $df) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get string length in grapheme units
+ * @link https://php.net/manual/en/function.grapheme-strlen.php
+ * @param string $input
+ * The string being measured for length. It must be a valid UTF-8 string.
+ *
+ * @return int|false|null The length of the string on success, and 0 if the string is empty.
+ */
+#[Pure]
+function grapheme_strlen($input) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Find position (in grapheme units) of first occurrence of a string
+ * @link https://php.net/manual/en/function.grapheme-strpos.php
+ * @param string $haystack
+ * The string to look in. Must be valid UTF-8.
+ *
+ * @param string $needle
+ * The string to look for. Must be valid UTF-8.
+ *
+ * @param int $offset [optional]
+ * The optional $offset parameter allows you to specify where in $haystack to
+ * start searching as an offset in grapheme units (not bytes or characters).
+ * The position returned is still relative to the beginning of haystack
+ * regardless of the value of $offset.
+ *
+ * @return int|false the position as an integer. If needle is not found, strpos() will return boolean FALSE.
+ */
+#[Pure]
+function grapheme_strpos($haystack, $needle, $offset = 0) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Find position (in grapheme units) of first occurrence of a case-insensitive string
+ * @link https://php.net/manual/en/function.grapheme-stripos.php
+ * @param string $haystack
+ * The string to look in. Must be valid UTF-8.
+ *
+ * @param string $needle
+ * The string to look for. Must be valid UTF-8.
+ *
+ * @param int $offset [optional]
+ * The optional $offset parameter allows you to specify where in haystack to
+ * start searching as an offset in grapheme units (not bytes or characters).
+ * The position returned is still relative to the beginning of haystack
+ * regardless of the value of $offset.
+ *
+ * @return int|false the position as an integer. If needle is not found, grapheme_stripos() will return boolean FALSE.
+ */
+#[Pure]
+function grapheme_stripos($haystack, $needle, $offset = 0) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Find position (in grapheme units) of last occurrence of a string
+ * @link https://php.net/manual/en/function.grapheme-strrpos.php
+ * @param string $haystack
+ * The string to look in. Must be valid UTF-8.
+ *
+ * @param string $needle
+ * The string to look for. Must be valid UTF-8.
+ *
+ * @param int $offset [optional]
+ * The optional $offset parameter allows you to specify where in $haystack to
+ * start searching as an offset in grapheme units (not bytes or characters).
+ * The position returned is still relative to the beginning of haystack
+ * regardless of the value of $offset.
+ *
+ * @return int|false the position as an integer. If needle is not found, grapheme_strrpos() will return boolean FALSE.
+ */
+#[Pure]
+function grapheme_strrpos($haystack, $needle, $offset = 0) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Find position (in grapheme units) of last occurrence of a case-insensitive string
+ * @link https://php.net/manual/en/function.grapheme-strripos.php
+ * @param string $haystack
+ * The string to look in. Must be valid UTF-8.
+ *
+ * @param string $needle
+ * The string to look for. Must be valid UTF-8.
+ *
+ * @param int $offset [optional]
+ * The optional $offset parameter allows you to specify where in $haystack to
+ * start searching as an offset in grapheme units (not bytes or characters).
+ * The position returned is still relative to the beginning of haystack
+ * regardless of the value of $offset.
+ *
+ * @return int|false the position as an integer. If needle is not found, grapheme_strripos() will return boolean FALSE.
+ */
+#[Pure]
+function grapheme_strripos($haystack, $needle, $offset = 0) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Return part of a string
+ * @link https://php.net/manual/en/function.grapheme-substr.php
+ * @param string $string
+ * The input string. Must be valid UTF-8.
+ *
+ * @param int $start
+ * Start position in default grapheme units.
+ * If $start is non-negative, the returned string will start at the
+ * $start'th position in $string, counting from zero. If $start is negative,
+ * the returned string will start at the $start'th grapheme unit from the
+ * end of string.
+ *
+ * @param int $length [optional]
+ * Length in grapheme units.
+ * If $length is given and is positive, the string returned will contain
+ * at most $length grapheme units beginning from $start (depending on the
+ * length of string). If $length is given and is negative, then
+ * that many grapheme units will be omitted from the end of string (after the
+ * start position has been calculated when a start is negative). If $start
+ * denotes a position beyond this truncation, FALSE will be returned.
+ *
+ * @return string|false
the extracted part of $string,
+ or FALSE if $length is negative and $start denotes a position beyond truncation $length,
+ or also FALSE if $start denotes a position beyond $string length
+ */
+#[Pure]
+function grapheme_substr($string, $start, $length = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns part of haystack string from the first occurrence of needle to the end of haystack.
+ * @link https://php.net/manual/en/function.grapheme-strstr.php
+ * @param string $haystack
+ * The input string. Must be valid UTF-8.
+ *
+ * @param string $needle
+ * The string to look for. Must be valid UTF-8.
+ *
+ * @param bool $before_needle [optional]
+ * If TRUE, grapheme_strstr() returns the part of the
+ * haystack before the first occurrence of the needle (excluding the needle).
+ *
+ * @return string|false the portion of string, or FALSE if needle is not found.
+ */
+#[Pure]
+function grapheme_strstr($haystack, $needle, $before_needle = false) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
+ * @link https://php.net/manual/en/function.grapheme-stristr.php
+ * @param string $haystack
+ * The input string. Must be valid UTF-8.
+ *
+ * @param string $needle
+ * The string to look for. Must be valid UTF-8.
+ *
+ * @param bool $before_needle [optional]
+ * If TRUE, grapheme_strstr() returns the part of the
+ * haystack before the first occurrence of the needle (excluding needle).
+ *
+ * @return string|false the portion of $haystack, or FALSE if $needle is not found.
+ */
+#[Pure]
+function grapheme_stristr($haystack, $needle, $before_needle = false) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.
+ * @link https://php.net/manual/en/function.grapheme-extract.php
+ * @param string $haystack
+ * String to search.
+ *
+ * @param int $size
+ * Maximum number items - based on the $extract_type - to return.
+ *
+ * @param int $extract_type [optional]
+ * Defines the type of units referred to by the $size parameter:
+ *
+ *
+ * GRAPHEME_EXTR_COUNT (default) - $size is the number of default
+ * grapheme clusters to extract.
+ * GRAPHEME_EXTR_MAXBYTES - $size is the maximum number of bytes
+ * returned.
+ * GRAPHEME_EXTR_MAXCHARS - $size is the maximum number of UTF-8
+ * characters returned.
+ *
+ * @param int $start [optional]
+ * Starting position in $haystack in bytes - if given, it must be zero or a
+ * positive value that is less than or equal to the length of $haystack in
+ * bytes. If $start does not point to the first byte of a UTF-8
+ * character, the start position is moved to the next character boundary.
+ *
+ * @param int &$next [optional]
+ * Reference to a value that will be set to the next starting position.
+ * When the call returns, this may point to the first byte position past the end of the string.
+ *
+ * @return string|false A string starting at offset $start and ending on a default grapheme cluster
+ * boundary that conforms to the $size and $extract_type specified.
+ */
+function grapheme_extract($haystack, $size, $extract_type = null, $start = 0, &$next = null) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)
+ * Convert domain name to IDNA ASCII form.
+ * @link https://php.net/manual/en/function.idn-to-ascii.php
+ * @param string $domain
+ * Domain to convert. In PHP 5 must be UTF-8 encoded.
+ * If e.g. an ISO-8859-1 (aka Western Europe latin1) encoded string is
+ * passed it will be converted into an ACE encoded "xn--" string.
+ * It will not be the one you expected though!
+ *
+ * Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 for UTS #46.
+ *
+ * @param array &$idna_info [optional]
+ * This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant.
+ * In that case, it will be filled with an array with the keys 'result',
+ * the possibly illegal result of the transformation, 'isTransitionalDifferent',
+ * a boolean indicating whether the usage of the transitional mechanisms of UTS #46
+ * either has or would have changed the result and 'errors',
+ * which is an int representing a bitset of the error constants IDNA_ERROR_*.
+ *
+ * @return string|false The ACE encoded version of the domain name or FALSE on failure.
+ */
+function idn_to_ascii($domain, $options = 0, $variant = INTL_IDNA_VARIANT_UTS46, array &$idna_info) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)
+ * Convert domain name from IDNA ASCII to Unicode.
+ * @link https://php.net/manual/en/function.idn-to-utf8.php
+ * @param string $domain
+ * Domain to convert in IDNA ASCII-compatible format.
+ * The ASCII encoded domain name. Looks like "xn--..." if the it originally contained non-ASCII characters.
+ *
+ * Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 for UTS #46.
+ *
+ * @param array &$idna_info [optional]
+ * This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant.
+ * In that case, it will be filled with an array with the keys 'result',
+ * the possibly illegal result of the transformation, 'isTransitionalDifferent',
+ * a boolean indicating whether the usage of the transitional mechanisms of UTS #46
+ * either has or would have changed the result and 'errors',
+ * which is an int representing a bitset of the error constants IDNA_ERROR_*.
+ *
+ * @return string|false The UTF-8 encoded version of the domain name or FALSE on failure.
+ * RFC 3490 4.2 states though "ToUnicode never fails. If any step fails, then the original input
+ * sequence is returned immediately in that step."
+ */
+function idn_to_utf8($domain, $options = 0, $variant = INTL_IDNA_VARIANT_UTS46, array &$idna_info) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Create a new IntlCalendar
+ * @link https://secure.php.net/manual/en/intlcalendar.createinstance.php
+ * @param IntlTimeZone|DateTimeZone|string|null $timeZone [optional]
+ * The timezone to use.
+ *
+ *
+ *
+ *
+ *
+ * NULL, in which case the default timezone will be used, as specified in
+ * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or
+ * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as
+ * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}.
+ *
+ *
+ *
+ *
+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted
+ * and an ICU timezone object will be created; the timezone will be backed
+ * by ICU's database, not PHP's.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier.
+ * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw
+ * offsets such as "GMT+08:30" are also accepted.
+ *
+ *
+ *
+ *
+ * @param string|null $locale [optional]
+ * A locale to use or NULL to use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.default-locale the default locale}.
+ *
+ * @return IntlCalendar|null
+ * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} instance or NULL on
+ * failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_create_instance($timeZone = null, $locale = null) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get set of locale keyword values
+ * @param string $key
+ * The locale keyword for which relevant values are to be queried. Only
+ * 'calendar' is supported.
+ *
+ * @param string $locale
+ * The locale onto which the keyword/value pair are to be appended.
+ *
+ * @param bool $commonlyUsed
+ *
+ * Whether to show only the values commonly used for the specified locale.
+ *
+ * @return Iterator|false An iterator that yields strings with the locale keyword values or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_keyword_values_for_locale($key, $locale, $commonlyUsed) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get number representing the current time
+ * @link https://secure.php.net/manual/en/intlcalendar.getnow.php
+ * @return float A float representing a number of milliseconds since the epoch, not counting leap seconds.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_now() { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get array of locales for which there is data
+ * @link https://secure.php.net/manual/en/intlcalendar.getavailablelocales.php
+ * @return string[] An array of strings, one for which locale.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_available_locales() { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.get.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int An integer with the value of the time field.
+ * @since 5.5
+ */
+#[Pure]
+function intl_get($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get time currently represented by the object
+ * @param IntlCalendar $calendar
The calendar whose time will be checked against this object's time.
+ * @return float
+ * A {@link https://secure.php.net/manual/en/language.types.float.php float} representing the number of milliseconds elapsed since the
+ * reference time (1 Jan 1970 00:00:00 UTC).
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_time($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set the calendar time in milliseconds since the epoch
+ * @link https://secure.php.net/manual/en/intlcalendar.settime.php
+ * @param IntlCalendar $cal
+ * The IntlCalendar resource.
+ *
+ * @param float $date
+ * An instant represented by the number of number of milliseconds between
+ * such instant and the epoch, ignoring leap seconds.
+ *
+ * @return bool
+ * Returns TRUE on success and FALSE on failure.
+ * @since 5.5
+ */
+function intlcal_set_time(IntlCalendar $cal, $date) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Add a (signed) amount of time to a field
+ * @link https://secure.php.net/manual/en/intlcalendar.add.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}.
+ * These are integer values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @param int $amount
The signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant wil be moved into the past. The unit is implicit to the field type.
+ * For instance, hours for IntlCalendar::FIELD_HOUR_OF_DAY.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+function intlcal_add($calendar, $field, $amount) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set the timezone used by this calendar
+ * @link https://secure.php.net/manual/en/intlcalendar.settimezone.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * The new timezone to be used by this calendar. It can be specified in the
+ * following ways:
+ *
+ *
+ *
+ *
+ * NULL, in which case the default timezone will be used, as specified in
+ * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or
+ * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as
+ * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}.
+ *
+ *
+ *
+ *
+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted
+ * and an ICU timezone object will be created; the timezone will be backed
+ * by ICU's database, not PHP's.
+ *
+ *
+ *
+ *
+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier.
+ * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw
+ * offsets such as "GMT+08:30" are also accepted.
+ *
+ *
+ *
+ * @return bool Returns TRUE on success and FALSE on failure.
+ * @since 5.5
+ */
+function intlcal_set_time_zone($calendar, $timeZone) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether this object's time is after that of the passed object
+ * https://secure.php.net/manual/en/intlcalendar.after.php
+ * @param IntlCalendar $calendarObject
+ * The calendar object, on the procedural style interface.
+ *
+ * @param IntlCalendar $calendar
The calendar whose time will be checked against this object's time.
+ * @return bool
+ * Returns TRUE if this object's current time is after that of the
+ * calendar argument's time. Returns FALSE otherwise.
+ * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_after(IntlCalendar $calendarObject, IntlCalendar $calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether this object's time is before that of the passed object
+ * @link https://secure.php.net/manual/en/intlcalendar.before.php
+ * @param IntlCalendar $calendarObject
+ * The calendar object, on the procedural style interface.
+ *
+ * @param IntlCalendar $calendar
The calendar whose time will be checked against this object's time.
+ * @return bool
+ * Returns TRUE if this object's current time is before that of the
+ * calendar argument's time. Returns FALSE otherwise.
+ * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions.
+ *
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_before(IntlCalendar $calendarObject, IntlCalendar $calendar) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set a time field or several common fields at once
+ * @link https://secure.php.net/manual/en/intlcalendar.set.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $year
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @param int $month
+ * The new value for IntlCalendar::FIELD_MONTH.
+ *
+ * @param int $dayOfMonth [optional]
+ * The new value for IntlCalendar::FIELD_DAY_OF_MONTH.
+ * The month sequence is zero-based, i.e., January is represented by 0,
+ * February by 1, ..., December is 11 and Undecember (if the calendar has
+ * it) is 12.
+ *
+ * @param int $hour [optional]
+ *
+ * The new value for IntlCalendar::FIELD_HOUR_OF_DAY.
+ *
+ * @param int $minute [optional]
+ *
+ * The new value for IntlCalendar::FIELD_MINUTE.
+ *
+ * @param int $second [optional]
+ * The new value for IntlCalendar::FIELD_SECOND.
+ *
+ * @return bool Returns TRUE on success and FALSE on failure.
+ * @since 5.5
+ */
+function intlcal_set($calendar, $year, $month, $dayOfMonth = null, $hour = null, $minute = null, $second = null) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Add value to field without carrying into more significant fields
+ * @link https://secure.php.net/manual/en/intlcalendar.roll.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
One of the
+ * {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time
+ * {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}.
+ * These are integer values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @param int|bool $amountOrUpOrDown
+ * The (signed) amount to add to the field, TRUE for rolling up (adding
+ * 1), or FALSE for rolling down (subtracting
+ * 1).
+ *
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+function intlcal_roll($calendar, $field, $amountOrUpOrDown) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Clear a field or all fields
+ * @link https://secure.php.net/manual/en/intlcalendar.clear.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field [optional]
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return bool Returns TRUE on success or FALSE on failure. Failure can only occur is invalid arguments are provided.
+ * @since 5.5
+ */
+function intlcal_clear($calendar, $field = null) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Calculate difference between given time and this object's time
+ * @link https://secure.php.net/manual/en/intlcalendar.fielddifference.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param float $when
+ * The time against which to compare the quantity represented by the
+ * field. For the result to be positive, the time
+ * given for this parameter must be ahead of the time of the object the
+ * method is being invoked on.
+ *
+ * @param int $field
+ * The field that represents the quantity being compared.
+ *
+ *
+ *
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int Returns a (signed) difference of time in the unit associated with the
+ * specified field or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_field_difference($calendar, $when, $field) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * The maximum value for a field, considering the object's current time
+ * @link https://secure.php.net/manual/en/intlcalendar.getactualmaximum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the maximum value in the units associated
+ * with the given field or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_actual_maximum($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * The minimum value for a field, considering the object's current time
+ * @link https://secure.php.net/manual/en/intlcalendar.getactualminimum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}.
+ * These are integer values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the minimum value in the field's
+ * unit or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_actual_minimum($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * @link https://secure.php.net/manual/en/intlcalendar.getdayofweektype.php
+ * Tell whether a day is a weekday, weekend or a day that has a transition between the two
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $dayOfWeek
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY.
+ *
+ * @return int
+ * Returns one of the constants
+ * IntlCalendar::DOW_TYPE_WEEKDAY,
+ * IntlCalendar::DOW_TYPE_WEEKEND,
+ * IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
+ * IntlCalendar::DOW_TYPE_WEEKEND_CEASE or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_day_of_week_type($calendar, $dayOfWeek) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the first day of the week for the calendar's locale
+ * @link https://secure.php.net/manual/en/intlcalendar.getfirstdayofweek.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return int
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_first_day_of_week($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the largest local minimum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getgreatestminimum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a field value, in the field's
+ * unit, or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_greates_minimum($calendar, $field) { }
+
+/**
+ * (PHP >= 5.5.0, PECL intl >= 3.0.0a1)
+ * Gets the value for a specific field.
+ * @link https://www.php.net/manual/en/intlcalendar.get.php
+ * @param IntlCalendar $calendar
+ * The IntlCalendar resource.
+ *
+ * @param int $field
+ * One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT.
+ *
+ * @return int An integer with the value of the time field.
+ */
+#[Pure]
+function intlcal_get($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the smallest local maximum for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getleastmaximum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.ph int} representing a field value in the field's
+ * unit or FALSE on failure.
+ *
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_least_maximum($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the largest local minimum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getgreatestminimum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a field value, in the field's
+ * unit, or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_greatest_minimum($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the locale associated with the object
+ * @link https://secure.php.net/manual/en/intlcalendar.getlocale.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $localeType
+ * Whether to fetch the actual locale (the locale from which the calendar
+ * data originates, with Locale::ACTUAL_LOCALE) or the
+ * valid locale, i.e., the most specific locale supported by ICU relatively
+ * to the requested locale – see Locale::VALID_LOCALE.
+ * From the most general to the most specific, the locales are ordered in
+ * this fashion – actual locale, valid locale, requested locale.
+ *
+ * @return string
+ * A locale string or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_locale($calendar, $localeType) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the global maximum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getmaximum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return string
+ * A locale string or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intcal_get_maximum($calendar, $field) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * @link https://secure.php.net/manual/en/intlcalendar.getminimaldaysinfirstweek.php
+ * Get minimal number of days the first week in a year or month can have
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return int
+ * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a number of days or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_minimal_days_in_first_week($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the global minimum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getminimum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return int
+ * An int representing a value for the given field in the field's unit or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_minimum($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the object's timezone
+ * @link https://secure.php.net/manual/en/intlcalendar.gettimezone.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return IntlTimeZone|false
+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone} object corresponding to the one used
+ * internally in this object.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_time_zone($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the calendar type
+ * @link https://secure.php.net/manual/en/intlcalendar.gettype.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return string
+ * A {@link https://secure.php.net/manual/en/language.types.string.php string} representing the calendar type, such as
+ * 'gregorian', 'islamic', etc.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_type($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get time of the day at which weekend begins or ends
+ * @link https://secure.php.net/manual/en/intlcalendar.getweekendtransition.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param string $dayOfWeek
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY.
+ *
+ * @return int
+ * The number of milliseconds into the day at which the the weekend begins or
+ * ends or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_weekend_transition($calendar, $dayOfWeek) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether the object's time is in Daylight Savings Time
+ * @link https://secure.php.net/manual/en/intlcalendar.indaylighttime.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return bool
+ * Returns TRUE if the date is in Daylight Savings Time, FALSE otherwise.
+ * The value FALSE may also be returned on failure, for instance after
+ * specifying invalid field values on non-lenient mode; use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or query
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to disambiguate.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_in_daylight_time($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether date/time interpretation is in lenient mode
+ * @link https://secure.php.net/manual/en/intlcalendar.islenient.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return bool
+ * A {@link https://secure.php.net/manual/en/language.types.boolean.php bool} representing whether the calendar is set to lenient mode.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_is_lenient($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether a field is set
+ * @link https://secure.php.net/manual/en/intlcalendar.isset.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return bool Assuming there are no argument errors, returns TRUE iif the field is set.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_is_set($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the global maximum value for a field
+ * @link https://secure.php.net/manual/en/intlcalendar.getmaximum.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $field
+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer
+ * values between 0 and
+ * IntlCalendar::FIELD_COUNT.
+ *
+ * @return string
+ * A locale string or FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_maximum($calendar, $field) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether another calendar is equal but for a different time
+ * @link https://secure.php.net/manual/en/intlcalendar.isequivalentto.php
+ * @param IntlCalendar $calendarObject
+ * The calendar object, on the procedural style interface.
+ *
+ * @param IntlCalendar $calendar The other calendar against which the comparison is to be made.
+ * @return bool
+ * Assuming there are no argument errors, returns TRUE iif the calendars are equivalent except possibly for their set time.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_is_equivalent_to(IntlCalendar $calendarObject, IntlCalendar $calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Whether a certain date/time is in the weekend
+ * @link https://secure.php.net/manual/en/intlcalendar.isweekend.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param float|null $date [optional]
+ * An optional timestamp representing the number of milliseconds since the
+ * epoch, excluding leap seconds. If NULL, this object's current time is
+ * used instead.
+ *
+ * @return bool
+ *
A {@link https://secure.php.net/manual/en/language.types.boolean.php bool} indicating whether the given or this object's time occurs
+ * in a weekend.
+ *
+ *
+ * The value FALSE may also be returned on failure, for instance after giving
+ * a date out of bounds on non-lenient mode; use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or query
+ * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to disambiguate.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_is_weekend($calendar, $date = null) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set the day on which the week is deemed to start
+ * @link https://secure.php.net/manual/en/intlcalendar.setfirstdayofweek.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param int $dayOfWeek
+ * One of the constants IntlCalendar::DOW_SUNDAY,
+ * IntlCalendar::DOW_MONDAY, ...,
+ * IntlCalendar::DOW_SATURDAY.
+ *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters.
+ * @since 5.5
+ */
+function intlcal_set_first_day_of_week($calendar, $dayOfWeek) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Set whether date/time interpretation is to be lenient
+ * @link https://secure.php.net/manual/en/intlcalendar.setlenient.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @param string $isLenient
+ * Use TRUE to activate the lenient mode; FALSE otherwise.
+ *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters.
+ * @since 5.5
+ */
+function intlcal_set_lenient($calendar, $isLenient) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get behavior for handling repeating wall time
+ * @link https://secure.php.net/manual/en/intlcalendar.getrepeatedwalltimeoption.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return int
+ * One of the constants IntlCalendar::WALLTIME_FIRST or
+ * IntlCalendar::WALLTIME_LAST.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_repeated_wall_time_option($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Compare time of two IntlCalendar objects for equality
+ * @link https://secure.php.net/manual/en/intlcalendar.equals.php
+ * @param IntlCalendar $calendarObject
+ * The calendar object, on the procedural style interface.
+ *
+ * Returns TRUE if the current time of both this and the passed in
+ * {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object are the same, or FALSE
+ * otherwise. The value FALSE can also be returned on failure. This can only
+ * happen if bad arguments are passed in. In any case, the two cases can be
+ * distinguished by calling {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()}.
+ *
+ * A {@link https://secure.php.net/manual/en/class.datetime.php DateTime} object or a {@link https://secure.php.net/manual/en/language.types.string.php string} that
+ * can be passed to {@link https://secure.php.net/manual/en/datetime.construct.php DateTime::__construct()}.
+ *
+ * @param null|string $locale
+ * @return IntlCalendar|null
+ * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object or NULL in case of
+ * failure. If a {@link https://secure.php.net/manual/en/language.types.string.php string} is passed, any exception that occurs
+ * inside the {@link https://secure.php.net/manual/en/class.datetime.php DateTime} constructor is propagated.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_from_date_time($dateTime, $locale = null) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a2)
+ * Convert an IntlCalendar into a DateTime object
+ * @link https://secure.php.net/manual/en/intlcalendar.todatetime.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return DateTime|false
+ * A {@link https://secure.php.net/manual/en/class.datetime.php DateTime} object with the same timezone as this
+ * object (though using PHP's database instead of ICU's) and the same time,
+ * except for the smaller precision (second precision instead of millisecond).
+ * Returns FALSE on failure.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_to_date_time($calendar) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get last error code on the object
+ * @link https://secure.php.net/manual/en/intlcalendar.geterrorcode.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return int An ICU error code indicating either success, failure or a warning.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_error_code($calendar) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get last error message on the object
+ * @link https://secure.php.net/manual/en/intlcalendar.geterrormessage.php
+ * @param IntlCalendar $calendar
+ * The calendar object, on the procedural style interface.
+ *
+ * @return string|false The error message associated with last error that occurred in a function call on this object, or a string indicating the non-existance of an error.
+ * @since 5.5
+ */
+#[Pure]
+function intlcal_get_error_message($calendar) { }
+
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the number of IDs in the equivalency group that includes the given ID
+ * @link https://secure.php.net/manual/en/intltimezone.countequivalentids.php
+ * @param string $zoneId
+ * @return int|false
+ * @since 5.5
+ */
+#[Pure]
+function intltz_count_equivalent_ids($zoneId) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Create a new copy of the default timezone for this host
+ * @link https://secure.php.net/manual/en/intltimezone.createdefault.php
+ * @return IntlTimeZone
+ * @since 5.5
+ */
+#[Pure]
+function intlz_create_default() { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * @link https://secure.php.net/manual/en/intltimezone.createenumeration.php
+ * @param IntlTimeZone|string|int|float|null $countryOrRawOffset [optional]
+ * @return IntlIterator|false
+ * @since 5.5
+ */
+#[Pure]
+function intltz_create_enumeration($countryOrRawOffset) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * @link https://secure.php.net/manual/en/intltimezone.createtimezone.php
+ * @param string $zoneId
+ * @return IntlTimeZone
+ * @since 5.5
+ */
+#[Pure]
+function intltz_create_time_zone($zoneId) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * @link https://secure.php.net/manual/en/intltimezone.fromdatetimezone.php
+ * @param DateTimeZone $zoneId
+ * @return IntlTimeZone
+ * @since 5.5
+ */
+#[Pure]
+function intltz_from_date_time_zone($zoneId) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
+ * @link https://secure.php.net/manual/en/intltimezone.getcanonicalid.php
+ * @param string $zoneId
+ * @param bool &$isSystemID [optional]
+ * @return string|false
+ * @since 5.5
+ */
+#[Pure]
+function intltz_get_canonical_id($zoneId, &$isSystemID) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get a name of this time zone suitable for presentation to the user
+ * @param IntlTimeZone $obj -
+ * The time zone object, on the procedural style interface.
+ *
+ * @param bool $isDaylight [optional]
+ * @param int $style [optional]
+ * @param string $locale [optional]
+ * @return string|false
+ * @since 5.5
+ */
+#[Pure]
+function intltz_get_display_name($obj, $isDaylight, $style, $locale) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get the amount of time to be added to local standard time to get local wall clock time
+ * @param IntlTimeZone $obj -
+ * The time zone object, on the procedural style interface.
+ *
+ * @link https://secure.php.net/manual/en/intltimezone.getequivalentid.php
+ * @return int
+ * @since 5.5
+ */
+#[Pure]
+function intltz_get_dst_savings($obj) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get an ID in the equivalency group that includes the given ID
+ * @link https://secure.php.net/manual/en/intltimezone.getequivalentid.php
+ * @param string $zoneId
+ * @param int $index
+ * @return string|false
+ * @since 5.5
+ */
+#[Pure]
+function intltz_get_equivalent_id($zoneId, $index) { }
+
+/**
+ * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * Get last error code on the object
+ * @link https://secure.php.net/manual/en/intltimezone.geterrorcode.php
+ * @param IntlTimeZone $obj -
+ * The time zone object, on the procedural style interface.
+ *
+ * Locale for which the resources should be loaded (locale name, e.g. en_CA).
+ *
+ * @param string $bundlename
+ * The directory where the data is stored or the name of the .dat file.
+ *
+ * @param bool $fallback [optional]
+ * Whether locale should match exactly or fallback to parent locale is allowed.
+ *
+ * @return ResourceBundle|false ResourceBundle object or FALSE on error.
+ */
+#[Pure]
+function resourcebundle_create($locale, $bundlename, $fallback = null) { }
+
+/**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get data from the bundle
+ * @link https://php.net/manual/en/resourcebundle.get.php
+ * @param ResourceBundle $r
+ * @param string|int $index
+ * Data index, must be string or integer.
+ *
+ * @param bool $fallback
+ * @return mixed the data located at the index or NULL on error. Strings, integers and binary data strings
+ * are returned as corresponding PHP types, integer array is returned as PHP array. Complex types are
+ * returned as ResourceBundle object.
+ */
+#[Pure]
+function resourcebundle_get(ResourceBundle $r, $index, $fallback = true) { }
+
+/**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get number of elements in the bundle
+ * @link https://php.net/manual/en/resourcebundle.count.php
+ * @param ResourceBundle $bundle
+ * @return int number of elements in the bundle.
+ */
+#[Pure]
+function resourcebundle_count(ResourceBundle $bundle) { }
+
+/**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get supported locales
+ * @link https://php.net/manual/en/resourcebundle.locales.php
+ * @param string $bundlename
+ * Path of ResourceBundle for which to get available locales, or
+ * empty string for default locales list.
+ *
+ * @return array the list of locales supported by the bundle.
+ */
+#[Pure]
+function resourcebundle_locales($bundlename) { }
+
+/**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get bundle's last error code.
+ * @link https://php.net/manual/en/resourcebundle.geterrorcode.php
+ * @param $bundle
+ * @return int error code from last bundle object call.
+ */
+#[Pure]
+function resourcebundle_get_error_code(ResourceBundle $bundle) { }
+
+/**
+ * (PHP >= 5.3.2, PECL intl >= 2.0.0)
+ * Get bundle's last error message.
+ * @link https://php.net/manual/en/resourcebundle.geterrormessage.php
+ * @param $bundle
+ * @return string error message from last bundle object's call.
+ */
+#[Pure]
+function resourcebundle_get_error_message(ResourceBundle $bundle) { }
+
+/**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Create a transliterator
+ * @link https://php.net/manual/en/transliterator.create.php
+ * @param string $id
+ * The id.
+ *
+ * @param int $direction [optional]
+ * The direction, defaults to
+ * >Transliterator::FORWARD.
+ * May also be set to
+ * Transliterator::REVERSE.
+ *
+ * The start index (in UTF-16 code units) from which the string will start
+ * to be transformed, inclusive. Indexing starts at 0. The text before will
+ * be left as is.
+ *
+ * @param int $end [optional]
+ * The end index (in UTF-16 code units) until which the string will be
+ * transformed, exclusive. Indexing starts at 0. The text after will be
+ * left as is.
+ *
+ * @return string|false The transfomed string on success, or FALSE on failure.
+ * @since 5.4
+ */
+#[Pure]
+function transliterator_transliterate($transliterator, $subject, $start = null, $end = null) { }
+
+/**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Get last error code
+ * @link https://php.net/manual/en/transliterator.geterrorcode.php
+ * @param Transliterator $trans
+ * @return int|false The error code on success,
+ * or FALSE if none exists, or on failure.
+ * @since 5.4
+ */
+#[Pure]
+function transliterator_get_error_code(Transliterator $trans) { }
+
+/**
+ * (PHP >= 5.4.0, PECL intl >= 2.0.0)
+ * Get last error message
+ * @link https://php.net/manual/en/transliterator.geterrormessage.php
+ * @param Transliterator $trans
+ * @return string|false The error code on success,
+ * or FALSE if none exists, or on failure.
+ * @since 5.4
+ */
+#[Pure]
+function transliterator_get_error_message(Transliterator $trans) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get the last error code
+ * @link https://php.net/manual/en/function.intl-get-error-code.php
+ * @return int Error code returned by the last API function call.
+ */
+#[Pure]
+function intl_get_error_code() { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get description of the last error
+ * @link https://php.net/manual/en/function.intl-get-error-message.php
+ * @return string Description of an error occurred in the last API function call.
+ */
+#[Pure]
+function intl_get_error_message() { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Check whether the given error code indicates failure
+ * @link https://php.net/manual/en/function.intl-is-failure.php
+ * @param int $error_code
+ * is a value that returned by functions:
+ * intl_get_error_code,
+ * collator_get_error_code .
+ *
+ * @return bool TRUE if it the code indicates some failure, and FALSE
+ * in case of success or a warning.
+ */
+#[Pure]
+function intl_is_failure($error_code) { }
+
+/**
+ * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
+ * Get symbolic name for a given error code
+ * @link https://php.net/manual/en/function.intl-error-name.php
+ * @param int $error_code
+ * ICU error code.
+ *
+ * @return string The returned string will be the same as the name of the error code
+ * constant.
+ */
+#[Pure]
+function intl_error_name($error_code) { }
+
+/**
+ * Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
+ *
+ * @link https://www.php.net/manual/en/normalizer.getrawdecomposition.php
+ *
+ * @param string $input
+ * @return string|null
+ *
+ * @since 7.3
+ */
+#[Pure]
+function normalizer_get_raw_decomposition($input) { }
+
+/**
+ * @return IntlTimeZone
+ * @since 5.5
+ */
+#[Pure]
+function intltz_create_default() { }
+
+/**
+ * @return IntlTimeZone
+ * @since 5.5
+ */
+#[Pure]
+function intltz_get_gmt() { }
+
+/**
+ * @return IntlTimeZone
+ * @since 5.5
+ */
+#[Pure]
+function intltz_get_unknown() { }
+
+/**
+ * @param int $zoneType
+ * @param null|string $region
+ * @param null|int $rawOffset
+ * @return IntlIterator|false
+ * @since 5.5
+ */
+#[Pure]
+function intltz_create_time_zone_id_enumeration($zoneType, $region = null, $rawOffset = null) { }
+
+/**
+ * @param string $zoneId
+ * @return string|false
+ * @since 5.5
+ */
+#[Pure]
+function intltz_get_region($zoneId) { }
+
+/**
+ * Set minimal number of days the first week in a year or month can have
+ *
+ * @link https://www.php.net/manual/en/intlcalendar.setminimaldaysinfirstweek.php
+ *
+ * @param IntlCalendar $calendar
+ * @param int $numberOfDays
+ * @return bool
+ *
+ * @since 5.5.1
+ */
+function intlcal_set_minimal_days_in_first_week(IntlCalendar $calendar, $numberOfDays) { }
+
+/**
+ * Limit on locale length, set to 80 in PHP code. Locale names longer
+ * than this limit will not be accepted.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('INTL_MAX_LOCALE_LEN', 80);
+define ('INTL_ICU_VERSION', "4.8.1.1");
+define ('INTL_ICU_DATA_VERSION', "4.8.1");
+define ('ULOC_ACTUAL_LOCALE', 0);
+define ('ULOC_VALID_LOCALE', 1);
+define ('GRAPHEME_EXTR_COUNT', 0);
+define ('GRAPHEME_EXTR_MAXBYTES', 1);
+define ('GRAPHEME_EXTR_MAXCHARS', 2);
+define ('U_USING_FALLBACK_WARNING', -128);
+define ('U_ERROR_WARNING_START', -128);
+define ('U_USING_DEFAULT_WARNING', -127);
+define ('U_SAFECLONE_ALLOCATED_WARNING', -126);
+define ('U_STATE_OLD_WARNING', -125);
+define ('U_STRING_NOT_TERMINATED_WARNING', -124);
+define ('U_SORT_KEY_TOO_SHORT_WARNING', -123);
+define ('U_AMBIGUOUS_ALIAS_WARNING', -122);
+define ('U_DIFFERENT_UCA_VERSION', -121);
+define ('U_ERROR_WARNING_LIMIT', -119);
+define ('U_ZERO_ERROR', 0);
+define ('U_ILLEGAL_ARGUMENT_ERROR', 1);
+define ('U_MISSING_RESOURCE_ERROR', 2);
+define ('U_INVALID_FORMAT_ERROR', 3);
+define ('U_FILE_ACCESS_ERROR', 4);
+define ('U_INTERNAL_PROGRAM_ERROR', 5);
+define ('U_MESSAGE_PARSE_ERROR', 6);
+define ('U_MEMORY_ALLOCATION_ERROR', 7);
+define ('U_INDEX_OUTOFBOUNDS_ERROR', 8);
+define ('U_PARSE_ERROR', 9);
+define ('U_INVALID_CHAR_FOUND', 10);
+define ('U_TRUNCATED_CHAR_FOUND', 11);
+define ('U_ILLEGAL_CHAR_FOUND', 12);
+define ('U_INVALID_TABLE_FORMAT', 13);
+define ('U_INVALID_TABLE_FILE', 14);
+define ('U_BUFFER_OVERFLOW_ERROR', 15);
+define ('U_UNSUPPORTED_ERROR', 16);
+define ('U_RESOURCE_TYPE_MISMATCH', 17);
+define ('U_ILLEGAL_ESCAPE_SEQUENCE', 18);
+define ('U_UNSUPPORTED_ESCAPE_SEQUENCE', 19);
+define ('U_NO_SPACE_AVAILABLE', 20);
+define ('U_CE_NOT_FOUND_ERROR', 21);
+define ('U_PRIMARY_TOO_LONG_ERROR', 22);
+define ('U_STATE_TOO_OLD_ERROR', 23);
+define ('U_TOO_MANY_ALIASES_ERROR', 24);
+define ('U_ENUM_OUT_OF_SYNC_ERROR', 25);
+define ('U_INVARIANT_CONVERSION_ERROR', 26);
+define ('U_INVALID_STATE_ERROR', 27);
+define ('U_COLLATOR_VERSION_MISMATCH', 28);
+define ('U_USELESS_COLLATOR_ERROR', 29);
+define ('U_NO_WRITE_PERMISSION', 30);
+define ('U_STANDARD_ERROR_LIMIT', 31);
+define ('U_BAD_VARIABLE_DEFINITION', 65536);
+define ('U_PARSE_ERROR_START', 65536);
+define ('U_MALFORMED_RULE', 65537);
+define ('U_MALFORMED_SET', 65538);
+define ('U_MALFORMED_SYMBOL_REFERENCE', 65539);
+define ('U_MALFORMED_UNICODE_ESCAPE', 65540);
+define ('U_MALFORMED_VARIABLE_DEFINITION', 65541);
+define ('U_MALFORMED_VARIABLE_REFERENCE', 65542);
+define ('U_MISMATCHED_SEGMENT_DELIMITERS', 65543);
+define ('U_MISPLACED_ANCHOR_START', 65544);
+define ('U_MISPLACED_CURSOR_OFFSET', 65545);
+define ('U_MISPLACED_QUANTIFIER', 65546);
+define ('U_MISSING_OPERATOR', 65547);
+define ('U_MISSING_SEGMENT_CLOSE', 65548);
+define ('U_MULTIPLE_ANTE_CONTEXTS', 65549);
+define ('U_MULTIPLE_CURSORS', 65550);
+define ('U_MULTIPLE_POST_CONTEXTS', 65551);
+define ('U_TRAILING_BACKSLASH', 65552);
+define ('U_UNDEFINED_SEGMENT_REFERENCE', 65553);
+define ('U_UNDEFINED_VARIABLE', 65554);
+define ('U_UNQUOTED_SPECIAL', 65555);
+define ('U_UNTERMINATED_QUOTE', 65556);
+define ('U_RULE_MASK_ERROR', 65557);
+define ('U_MISPLACED_COMPOUND_FILTER', 65558);
+define ('U_MULTIPLE_COMPOUND_FILTERS', 65559);
+define ('U_INVALID_RBT_SYNTAX', 65560);
+define ('U_INVALID_PROPERTY_PATTERN', 65561);
+define ('U_MALFORMED_PRAGMA', 65562);
+define ('U_UNCLOSED_SEGMENT', 65563);
+define ('U_ILLEGAL_CHAR_IN_SEGMENT', 65564);
+define ('U_VARIABLE_RANGE_EXHAUSTED', 65565);
+define ('U_VARIABLE_RANGE_OVERLAP', 65566);
+define ('U_ILLEGAL_CHARACTER', 65567);
+define ('U_INTERNAL_TRANSLITERATOR_ERROR', 65568);
+define ('U_INVALID_ID', 65569);
+define ('U_INVALID_FUNCTION', 65570);
+define ('U_PARSE_ERROR_LIMIT', 65571);
+define ('U_UNEXPECTED_TOKEN', 65792);
+define ('U_FMT_PARSE_ERROR_START', 65792);
+define ('U_MULTIPLE_DECIMAL_SEPARATORS', 65793);
+define ('U_MULTIPLE_DECIMAL_SEPERATORS', 65793);
+define ('U_MULTIPLE_EXPONENTIAL_SYMBOLS', 65794);
+define ('U_MALFORMED_EXPONENTIAL_PATTERN', 65795);
+define ('U_MULTIPLE_PERCENT_SYMBOLS', 65796);
+define ('U_MULTIPLE_PERMILL_SYMBOLS', 65797);
+define ('U_MULTIPLE_PAD_SPECIFIERS', 65798);
+define ('U_PATTERN_SYNTAX_ERROR', 65799);
+define ('U_ILLEGAL_PAD_POSITION', 65800);
+define ('U_UNMATCHED_BRACES', 65801);
+define ('U_UNSUPPORTED_PROPERTY', 65802);
+define ('U_UNSUPPORTED_ATTRIBUTE', 65803);
+define ('U_FMT_PARSE_ERROR_LIMIT', 65810);
+define ('U_BRK_INTERNAL_ERROR', 66048);
+define ('U_BRK_ERROR_START', 66048);
+define ('U_BRK_HEX_DIGITS_EXPECTED', 66049);
+define ('U_BRK_SEMICOLON_EXPECTED', 66050);
+define ('U_BRK_RULE_SYNTAX', 66051);
+define ('U_BRK_UNCLOSED_SET', 66052);
+define ('U_BRK_ASSIGN_ERROR', 66053);
+define ('U_BRK_VARIABLE_REDFINITION', 66054);
+define ('U_BRK_MISMATCHED_PAREN', 66055);
+define ('U_BRK_NEW_LINE_IN_QUOTED_STRING', 66056);
+define ('U_BRK_UNDEFINED_VARIABLE', 66057);
+define ('U_BRK_INIT_ERROR', 66058);
+define ('U_BRK_RULE_EMPTY_SET', 66059);
+define ('U_BRK_UNRECOGNIZED_OPTION', 66060);
+define ('U_BRK_MALFORMED_RULE_TAG', 66061);
+define ('U_BRK_ERROR_LIMIT', 66062);
+define ('U_REGEX_INTERNAL_ERROR', 66304);
+define ('U_REGEX_ERROR_START', 66304);
+define ('U_REGEX_RULE_SYNTAX', 66305);
+define ('U_REGEX_INVALID_STATE', 66306);
+define ('U_REGEX_BAD_ESCAPE_SEQUENCE', 66307);
+define ('U_REGEX_PROPERTY_SYNTAX', 66308);
+define ('U_REGEX_UNIMPLEMENTED', 66309);
+define ('U_REGEX_MISMATCHED_PAREN', 66310);
+define ('U_REGEX_NUMBER_TOO_BIG', 66311);
+define ('U_REGEX_BAD_INTERVAL', 66312);
+define ('U_REGEX_MAX_LT_MIN', 66313);
+define ('U_REGEX_INVALID_BACK_REF', 66314);
+define ('U_REGEX_INVALID_FLAG', 66315);
+define ('U_REGEX_LOOK_BEHIND_LIMIT', 66316);
+define ('U_REGEX_SET_CONTAINS_STRING', 66317);
+define ('U_REGEX_ERROR_LIMIT', 66324);
+define ('U_IDNA_PROHIBITED_ERROR', 66560);
+define ('U_IDNA_ERROR_START', 66560);
+define ('U_IDNA_UNASSIGNED_ERROR', 66561);
+define ('U_IDNA_CHECK_BIDI_ERROR', 66562);
+define ('U_IDNA_STD3_ASCII_RULES_ERROR', 66563);
+define ('U_IDNA_ACE_PREFIX_ERROR', 66564);
+define ('U_IDNA_VERIFICATION_ERROR', 66565);
+define ('U_IDNA_LABEL_TOO_LONG_ERROR', 66566);
+define ('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567);
+define ('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568);
+define ('U_IDNA_ERROR_LIMIT', 66569);
+define ('U_STRINGPREP_PROHIBITED_ERROR', 66560);
+define ('U_STRINGPREP_UNASSIGNED_ERROR', 66561);
+define ('U_STRINGPREP_CHECK_BIDI_ERROR', 66562);
+define ('U_ERROR_LIMIT', 66818);
+
+/**
+ * Prohibit processing of unassigned codepoints in the input for IDN
+ * functions and do not check if the input conforms to domain name ASCII rules.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_DEFAULT', 0);
+
+/**
+ * Allow processing of unassigned codepoints in the input for IDN functions.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_ALLOW_UNASSIGNED', 1);
+
+/**
+ * Check if the input for IDN functions conforms to domain name ASCII rules.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_USE_STD3_RULES', 2);
+
+/**
+ * Check whether the input conforms to the BiDi rules.
+ * Ignored by the IDNA2003 implementation, which always performs this check.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_CHECK_BIDI', 4);
+
+/**
+ * Check whether the input conforms to the CONTEXTJ rules.
+ * Ignored by the IDNA2003 implementation, as this check is new in IDNA2008.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_CHECK_CONTEXTJ', 8);
+
+/**
+ * Option for nontransitional processing in
+ * idn_to_ascii. Transitional processing is activated
+ * by default. This option is ignored by the IDNA2003 implementation.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_NONTRANSITIONAL_TO_ASCII', 16);
+
+/**
+ * Option for nontransitional processing in
+ * idn_to_utf8. Transitional processing is activated
+ * by default. This option is ignored by the IDNA2003 implementation.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_NONTRANSITIONAL_TO_UNICODE', 32);
+
+/**
+ * Use IDNA 2003 algorithm in {@see idn_to_utf8} and
+ * {@see idn_to_ascii}. This is the default.
+ * @link https://php.net/manual/en/intl.constants.php
+ * @deprecated 7.2 Use {@see INTL_IDNA_VARIANT_UTS46} instead.
+ * @removed 8.0
+ */
+define ('INTL_IDNA_VARIANT_2003', 0);
+
+/**
+ * Use UTS #46 algorithm in idn_to_utf8 and
+ * idn_to_ascii.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('INTL_IDNA_VARIANT_UTS46', 1);
+
+/**
+ * Errors reported in a bitset returned by the UTS #46 algorithm in
+ * idn_to_utf8 and
+ * idn_to_ascii.
+ * @link https://php.net/manual/en/intl.constants.php
+ */
+define ('IDNA_ERROR_EMPTY_LABEL', 1);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_LABEL_TOO_LONG', 2);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_LEADING_HYPHEN', 8);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_TRAILING_HYPHEN', 16);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_HYPHEN_3_4', 32);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_LEADING_COMBINING_MARK', 64);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_DISALLOWED', 128);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_PUNYCODE', 256);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_LABEL_HAS_DOT', 512);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_INVALID_ACE_LABEL', 1024);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_BIDI', 2048);
+/**
+ * @link https://secure.php.net/manual/en/migration54.global-constants.php
+ * @since 5.4
+ */
+define ('IDNA_ERROR_CONTEXTJ', 4096);
+
+/**
+ * @since 5.5
+ */
+class IntlBreakIterator implements IteratorAggregate
+{
+ /* Constants */
+ const DONE = -1;
+ const WORD_NONE = 0;
+ const WORD_NONE_LIMIT = 100;
+ const WORD_NUMBER = 100;
+ const WORD_NUMBER_LIMIT = 200;
+ const WORD_LETTER = 200;
+ const WORD_LETTER_LIMIT = 300;
+ const WORD_KANA = 300;
+ const WORD_KANA_LIMIT = 400;
+ const WORD_IDEO = 400;
+ const WORD_IDEO_LIMIT = 500;
+ const LINE_SOFT = 0;
+ const LINE_SOFT_LIMIT = 100;
+ const LINE_HARD = 100;
+ const LINE_HARD_LIMIT = 200;
+ const SENTENCE_TERM = 0;
+ const SENTENCE_TERM_LIMIT = 100;
+ const SENTENCE_SEP = 100;
+ const SENTENCE_SEP_LIMIT = 200;
+
+ /* Methods */
+ /**
+ * (PHP 5 >=5.5.0)
+ * Private constructor for disallowing instantiation
+ */
+ private function __construct() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for boundaries of combining character sequences
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createcharacterinstance.php
+ * @param string $locale
+ * @return IntlBreakIterator
+ */
+ public static function createCharacterInstance($locale = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for boundaries of code points
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createcodepointinstance.php
+ * @return IntlBreakIterator
+ */
+ public static function createCodePointInstance() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for logically possible line breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createlineinstance.php
+ * @param string $locale
+ * @return IntlBreakIterator
+ */
+ public static function createLineInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for sentence breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createsentenceinstance.php
+ * @param string $locale
+ * @return IntlBreakIterator
+ */
+ public static function createSentenceInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for title-casing breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createtitleinstance.php
+ * @param string $locale
+ * @return IntlBreakIterator
+ */
+ public static function createTitleInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for word breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createwordinstance.php
+ * @param string $locale
+ * @return IntlBreakIterator
+ */
+ public static function createWordInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get index of current position
+ * @link https://secure.php.net/manual/en/intlbreakiterator.current.php
+ * @return int
+ */
+ #[Pure]
+ public function current() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Set position to the first character in the text
+ * @link https://secure.php.net/manual/en/intlbreakiterator.first.php
+ */
+ public function first() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Advance the iterator to the first boundary following specified offset
+ * @link https://secure.php.net/manual/en/intlbreakiterator.following.php
+ * @param int $offset
+ */
+ public function following($offset) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get last error code on the object
+ * @link https://secure.php.net/manual/en/intlbreakiterator.geterrorcode.php
+ * @return int
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get last error message on the object
+ * @link https://secure.php.net/manual/en/intlbreakiterator.geterrormessage.php
+ * @return string
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the locale associated with the object
+ * @link https://secure.php.net/manual/en/intlbreakiterator.getlocale.php
+ * @param string $locale_type
+ */
+ #[Pure]
+ public function getLocale($locale_type) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create iterator for navigating fragments between boundaries
+ * @link https://secure.php.net/manual/en/intlbreakiterator.getpartsiterator.php
+ * @param int $key_type [optional]
+ *
+ * Optional key type. Possible values are:
+ *
+ *
+ * {@see IntlPartsIterator::KEY_SEQUENTIAL}
+ * - The default. Sequentially increasing integers used as key.
+ *
+ *
+ * {@see IntlPartsIterator::KEY_LEFT}
+ * - Byte offset left of current part used as key.
+ *
+ *
+ * {@see IntlPartsIterator::KEY_RIGHT}
+ * - Byte offset right of current part used as key.
+ *
+ *
+ */
+ #[Pure]
+ public function getPartsIterator($key_type = IntlPartsIterator::KEY_SEQUENTIAL) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the text being scanned
+ * @link https://secure.php.net/manual/en/intlbreakiterator.gettext.php
+ */
+ #[Pure]
+ public function getText() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Tell whether an offset is a boundary's offset
+ * @link https://secure.php.net/manual/en/intlbreakiterator.isboundary.php
+ * @param int $offset
+ */
+ #[Pure]
+ public function isBoundary($offset) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Set the iterator position to index beyond the last character
+ * @link https://secure.php.net/manual/en/intlbreakiterator.last.php
+ * @return int
+ */
+ public function last() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/intlbreakiterator.next.php
+ * @param int $offset [optional]
+ * @return int
+ */
+ public function next($offset = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/intlbreakiterator.preceding.php
+ * @param int $offset
+ */
+ public function preceding($offset) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Set the iterator position to the boundary immediately before the current
+ * @link https://secure.php.net/manual/en/intlbreakiterator.previous.php
+ * @return int
+ */
+ public function previous() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Set the text being scanned
+ * @link https://secure.php.net/manual/en/intlbreakiterator.settext.php
+ * @param string $text
+ */
+ public function setText($text) { }
+
+ #[Pure]
+ public function getIterator(){}
+}
+
+class IntlRuleBasedBreakIterator extends IntlBreakIterator implements Traversable {
+
+ /* Methods */
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/intlbreakiterator.construct.php
+ * @param string $rules
+ * @param string $areCompiled [optional]
+ */
+ #[Pure]
+ public function __construct($rules, $areCompiled) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for boundaries of combining character sequences
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createcharacterinstance.php
+ * @param string $locale
+ * @return IntlRuleBasedBreakIterator
+ */
+ public static function createCharacterInstance($locale) { }
+
+ /*
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for boundaries of code points
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createcodepointinstance.php
+ * @return IntlRuleBasedBreakIterator
+ */
+ public static function createCodePointInstance() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for logically possible line breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createlineinstance.php
+ * @param string $locale
+ * @return IntlRuleBasedBreakIterator
+ */
+ public static function createLineInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for sentence breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createsentenceinstance.php
+ * @param string $locale
+ * @return IntlRuleBasedBreakIterator
+ */
+ public static function createSentenceInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for title-casing breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createtitleinstance.php
+ * @param string $locale
+ * @return IntlRuleBasedBreakIterator
+ */
+ public static function createTitleInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create break iterator for word breaks
+ * @link https://secure.php.net/manual/en/intlbreakiterator.createwordinstance.php
+ * @param string $locale
+ * @return IntlRuleBasedBreakIterator
+ */
+ public static function createWordInstance($locale) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/intlrulebasedbreakiterator.getbinaryrules.php
+ * Get the binary form of compiled rules
+ * @return string
+ */
+ #[Pure]
+ public function getBinaryRules() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/intlrulebasedbreakiterator.getrules.php
+ * Get the rule set used to create this object
+ * @return string
+ */
+ #[Pure]
+ public function getRules() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/intlrulebasedbreakiterator.getrulesstatus.php
+ * Get the largest status value from the break rules that determined the current break position
+ * @return int
+ */
+ #[Pure]
+ public function getRuleStatus() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * @link https://secure.php.net/manual/en/intlrulebasedbreakiterator.getrulestatusvec.php
+ * Get the status values from the break rules that determined the current break position
+ * @return array
+ */
+ #[Pure]
+ public function getRuleStatusVec() { }
+}
+
+/**
+ * @link https://www.php.net/manual/en/class.intlpartsiterator.php
+ * @since 5.5
+ */
+class IntlPartsIterator extends IntlIterator implements Iterator {
+
+ const KEY_SEQUENTIAL = 0 ;
+ const KEY_LEFT = 1 ;
+ const KEY_RIGHT = 2 ;
+
+ /**
+ * @return IntlBreakIterator
+ */
+ #[Pure]
+ public function getBreakIterator() { }
+}
+
+class IntlCodePointBreakIterator extends IntlBreakIterator implements Traversable {
+
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get last code point passed over after advancing or receding the iterator
+ * @link https://secure.php.net/manual/en/intlcodepointbreakiterator.getlastcodepoint.php
+ * @return int
+ */
+ #[Pure]
+ public function getLastCodePoint() { }
+}
+
+class UConverter {
+
+ /* Constants */
+ const REASON_UNASSIGNED = 0;
+ const REASON_ILLEGAL = 1;
+ const REASON_IRREGULAR = 2;
+ const REASON_RESET = 3;
+ const REASON_CLOSE = 4;
+ const REASON_CLONE = 5;
+ const UNSUPPORTED_CONVERTER = -1;
+ const SBCS = 0;
+ const DBCS = 1;
+ const MBCS = 2;
+ const LATIN_1 = 3;
+ const UTF8 = 4;
+ const UTF16_BigEndian = 5;
+ const UTF16_LittleEndian = 6;
+ const UTF32_BigEndian = 7;
+ const UTF32_LittleEndian = 8;
+ const EBCDIC_STATEFUL = 9;
+ const ISO_2022 = 10;
+ const LMBCS_1 = 11;
+ const LMBCS_2 = 12;
+ const LMBCS_3 = 13;
+ const LMBCS_4 = 14;
+ const LMBCS_5 = 15;
+ const LMBCS_6 = 16;
+ const LMBCS_8 = 17;
+ const LMBCS_11 = 18;
+ const LMBCS_16 = 19;
+ const LMBCS_17 = 20;
+ const LMBCS_18 = 21;
+ const LMBCS_19 = 22;
+ const LMBCS_LAST = 22;
+ const HZ = 23;
+ const SCSU = 24;
+ const ISCII = 25;
+ const US_ASCII = 26;
+ const UTF7 = 27;
+ const BOCU1 = 28;
+ const UTF16 = 29;
+ const UTF32 = 30;
+ const CESU8 = 31;
+ const IMAP_MAILBOX = 32;
+
+ /* Methods */
+ /**
+ * (PHP 5 >=5.5.0)
+ * Create UConverter object
+ * @link https://php.net/manual/en/uconverter.construct.php
+ * @param string $destination_encoding
+ * @param string $source_encoding
+ */
+ #[Pure]
+ public function __construct($destination_encoding = null, $source_encoding = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Convert string from one charset to anothe
+ * @link https://php.net/manual/en/uconverter.convert.php
+ * @param string $str
+ * @param bool $reverse
+ * @return string
+ */
+ #[Pure]
+ public function convert($str, $reverse) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Default "from" callback function
+ * @link https://php.net/manual/en/uconverter.fromucallback.php
+ * @param int $reason
+ * @param string $source
+ * @param string $codePoint
+ * @param int &$error
+ * @return mixed
+ */
+ public function fromUCallback($reason, $source, $codePoint, &$error) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the aliases of the given name
+ * @link https://php.net/manual/en/uconverter.getaliases.php
+ * @param string $name
+ * @return array
+ */
+ public static function getAliases($name = null) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the available canonical converter names
+ * @link https://php.net/manual/en/uconverter.getavailable.php
+ * @return array
+ */
+ public static function getAvailable() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the destination encoding
+ * @link https://php.net/manual/en/uconverter.getdestinationencoding.php
+ * @return string
+ */
+ #[Pure]
+ public function getDestinationEncoding() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the destination converter type
+ * @link https://php.net/manual/en/uconverter.getdestinationtype.php
+ * @return int
+ */
+ #[Pure]
+ public function getDestinationType() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get last error code on the object
+ * @link https://php.net/manual/en/uconverter.geterrorcode.php
+ * @return int
+ */
+ #[Pure]
+ public function getErrorCode() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get last error message on the object
+ * @link https://php.net/manual/en/uconverter.geterrormessage.php
+ * @return string
+ */
+ #[Pure]
+ public function getErrorMessage() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the source encoding
+ * @link https://php.net/manual/en/uconverter.getsourceencoding.php
+ * @return string
+ */
+ #[Pure]
+ public function getSourceEncoding() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get the source convertor type
+ * @link https://php.net/manual/en/uconverter.getsourcetype.php
+ * @return int
+ */
+ #[Pure]
+ public function getSourceType() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get standards associated to converter names
+ * @link https://php.net/manual/en/uconverter.getstandards.php
+ * @return array
+ */
+ #[Pure]
+ public static function getStandards() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get substitution chars
+ * @link https://php.net/manual/en/uconverter.getsubstchars.php
+ * @return string
+ */
+ #[Pure]
+ public function getSubstChars() { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Get string representation of the callback reason
+ * @link https://php.net/manual/en/uconverter.reasontext.php
+ * @param int $reason
+ * @return string
+ */
+ #[Pure]
+ public static function reasonText($reason) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Set the destination encoding
+ * @link https://php.net/manual/en/uconverter.setdestinationencoding.php
+ * @param string $encoding
+ * @return void
+ */
+ public function setDestinationEncoding($encoding) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Set the source encoding
+ * @link https://php.net/manual/en/uconverter.setsourceencoding.php
+ * @param string $encoding
+ * @return void
+ */
+ public function setSourceEncoding($encoding) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Set the substitution chars
+ * @link https://php.net/manual/en/uconverter.setsubstchars.php
+ * @param string $chars
+ * @return void
+ */
+ public function setSubstChars($chars) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Default "to" callback function
+ * @link https://php.net/manual/en/uconverter.toucallback.php
+ * @param int $reason
+ * @param string $source
+ * @param string $codeUnits
+ * @param int &$error
+ * @return mixed
+ */
+ public function toUCallback($reason, $source, $codeUnits, &$error) { }
+
+ /**
+ * (PHP 5 >=5.5.0)
+ * Convert string from one charset to another
+ * @link https://php.net/manual/en/uconverter.transcode.php
+ * @param string $str
+ * @param string $toEncoding
+ * @param string $fromEncoding
+ * @param array $options
+ * @return string
+ */
+ public static function transcode($str, $toEncoding, $fromEncoding, array $options = []) { }
+}
+// End of intl v.1.1.0
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/json/json.php b/vendor/jetbrains/phpstorm-stubs/json/json.php
new file mode 100644
index 0000000000..e3492b8dea
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/json/json.php
@@ -0,0 +1,465 @@
+json_encode.
+ * @link https://php.net/manual/en/class.jsonserializable.php
+ * @since 5.4
+ */
+interface JsonSerializable {
+
+ /**
+ * Specify data which should be serialized to JSON
+ * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode,
+ * which is a value of any type other than a resource.
+ * @since 5.4
+ */
+ public function jsonSerialize ();
+
+}
+
+class JsonIncrementalParser {
+ const JSON_PARSER_SUCCESS = 0;
+ const JSON_PARSER_CONTINUE = 1;
+
+
+ /**
+ * @param int $depth [optional]
+ * @param int $options [optional]
+ */
+ #[Pure]
+ public function __construct ($depth, $options) {}
+
+ #[Pure]
+ public function getError () {}
+
+ public function reset () {}
+
+ /**
+ * @param string $json
+ */
+ public function parse ($json) {}
+
+ /**
+ * @param string $filename
+ */
+ public function parseFile ($filename) {}
+
+ /**
+ * @param int $options [optional]
+ */
+ #[Pure]
+ public function get ($options) {}
+
+}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL json >= 1.2.0)
+ * Returns the JSON representation of a value
+ * @link https://php.net/manual/en/function.json-encode.php
+ * @param mixed $value
+ * The value being encoded. Can be any type except
+ * a resource.
+ *
+ *
+ * All string data must be UTF-8 encoded.
+ *
+ *
PHP implements a superset of
+ * JSON - it will also encode and decode scalar types and NULL. The JSON standard
+ * only supports these values when they are nested inside an array or an object.
+ *
+ * @param int $flags [optional]
+ * Bitmask consisting of JSON_HEX_QUOT,
+ * JSON_HEX_TAG,
+ * JSON_HEX_AMP,
+ * JSON_HEX_APOS,
+ * JSON_NUMERIC_CHECK,
+ * JSON_PRETTY_PRINT,
+ * JSON_UNESCAPED_SLASHES,
+ * JSON_FORCE_OBJECT,
+ * JSON_UNESCAPED_UNICODE.
+ * JSON_THROW_ON_ERROR The behaviour of these
+ * constants is described on
+ * the JSON constants page.
+ *
+ * @param int $depth [optional]
+ * Set the maximum depth. Must be greater than zero.
+ *
+ * @return string|false a JSON encoded string on success or FALSE on failure.
+ */
+function json_encode (mixed $value, int $flags = 0, int $depth = 512): string|false {}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL json >= 1.2.0)
+ * Decodes a JSON string
+ * @link https://php.net/manual/en/function.json-decode.php
+ * @param string $json
+ * The json string being decoded.
+ *
+ *
+ * This function only works with UTF-8 encoded strings.
+ *
+ *
PHP implements a superset of
+ * JSON - it will also encode and decode scalar types and NULL. The JSON standard
+ * only supports these values when they are nested inside an array or an object.
+ *
+ * @param bool|null $associative [optional]
+ * When TRUE, returned objects will be converted into
+ * associative arrays.
+ *
+ * @param int $depth [optional]
+ * User specified recursion depth.
+ *
+ * @param int $flags [optional]
+ * Bitmask of JSON decode options:
+ * {@see JSON_BIGINT_AS_STRING} decodes large integers as their original string value.
+ * {@see JSON_INVALID_UTF8_IGNORE} ignores invalid UTF-8 characters,
+ * {@see JSON_INVALID_UTF8_SUBSTITUTE} converts invalid UTF-8 characters to \0xfffd,
+ * {@see JSON_OBJECT_AS_ARRAY} decodes JSON objects as PHP array, since 7.2.0 used by default if $assoc parameter is null,
+ * {@see JSON_THROW_ON_ERROR} when passed this flag, the error behaviour of these functions is changed. The global error state is left untouched, and if an error occurs that would otherwise set it, these functions instead throw a JsonException
+ *
+ * @return mixed the value encoded in json in appropriate
+ * PHP type. Values true, false and
+ * null (case-insensitive) are returned as TRUE, FALSE
+ * and NULL respectively. NULL is returned if the
+ * json cannot be decoded or if the encoded
+ * data is deeper than the recursion limit.
+ */
+function json_decode (string $json, ?bool $associative = false, int $depth = 512, int $flags = 0): mixed {}
+
+/**
+ * Returns the last error occurred
+ * @link https://php.net/manual/en/function.json-last-error.php
+ * @return int an integer, the value can be one of the following
+ * constants:
+ *
+ *
+ *
+ *
Constant
+ *
Meaning
+ *
Availability
+ *
+ *
+ *
+ *
+ *
+ *
+ *
JSON_ERROR_NONE
+ *
No error has occurred
+ *
+ *
+ *
+ *
+ *
JSON_ERROR_DEPTH
+ *
The maximum stack depth has been exceeded
+ *
+ *
+ *
+ *
+ *
JSON_ERROR_STATE_MISMATCH
+ *
Invalid or malformed JSON
+ *
+ *
+ *
+ *
+ *
JSON_ERROR_CTRL_CHAR
+ *
Control character error, possibly incorrectly encoded
+ */
+#[Pure]
+function json_last_error (): int {}
+
+/**
+ * Returns the error string of the last json_encode() or json_decode() call, which did not specify JSON_THROW_ON_ERROR.
+ * @link https://php.net/manual/en/function.json-last-error-msg.php
+ * @return string Returns the error message on success, "No error" if no error has occurred.
+ * @since 5.5
+ */
+#[Pure]
+function json_last_error_msg (): string {}
+
+
+/**
+ * All < and > are converted to \u003C and \u003E.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_HEX_TAG', 1);
+
+/**
+ * All &s are converted to \u0026.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_HEX_AMP', 2);
+
+/**
+ * All ' are converted to \u0027.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_HEX_APOS', 4);
+
+/**
+ * All " are converted to \u0022.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_HEX_QUOT', 8);
+
+/**
+ * Outputs an object rather than an array when a non-associative array is
+ * used. Especially useful when the recipient of the output is expecting
+ * an object and the array is empty.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_FORCE_OBJECT', 16);
+
+/**
+ * Encodes numeric strings as numbers.
+ * @since 5.3.3
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_NUMERIC_CHECK', 32);
+
+/**
+ * Don't escape /.
+ * @since 5.4
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_UNESCAPED_SLASHES', 64);
+
+/**
+ * Use whitespace in returned data to format it.
+ * @since 5.4
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_PRETTY_PRINT', 128);
+
+/**
+ * Encode multibyte Unicode characters literally (default is to escape as \uXXXX).
+ * @since 5.4
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_UNESCAPED_UNICODE', 256);
+define ('JSON_PARTIAL_OUTPUT_ON_ERROR', 512);
+
+/**
+ * Occurs with underflow or with the modes mismatch.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_ERROR_STATE_MISMATCH', 2);
+
+/**
+ * Control character error, possibly incorrectly encoded.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_ERROR_CTRL_CHAR', 3);
+
+/**
+ * Malformed UTF-8 characters, possibly incorrectly encoded. This
+ * constant is available as of PHP 5.3.3.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_ERROR_UTF8', 5);
+
+/**
+ *
+ * The object or array passed to json_encode include
+ * recursive references and cannot be encoded.
+ * If the JSON_PARTIAL_OUTPUT_ON_ERROR option was
+ * given, NULL will be encoded in the place of the recursive reference.
+ *
+ *
+ * This constant is available as of PHP 5.5.0.
+ *
+ * The value passed to json_encode includes either
+ * NAN
+ * or INF.
+ * If the JSON_PARTIAL_OUTPUT_ON_ERROR option was
+ * given, 0 will be encoded in the place of these
+ * special numbers.
+ *
+ *
+ * This constant is available as of PHP 5.5.0.
+ *
+ * A value of an unsupported type was given to
+ * json_encode, such as a resource.
+ * If the JSON_PARTIAL_OUTPUT_ON_ERROR option was
+ * given, NULL will be encoded in the place of the unsupported value.
+ *
+ *
+ * This constant is available as of PHP 5.5.0.
+ *
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_ERROR_UNSUPPORTED_TYPE', 8);
+
+/**
+ * No error has occurred.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_ERROR_NONE', 0);
+
+/**
+ * The maximum stack depth has been exceeded.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_ERROR_DEPTH', 1);
+
+/**
+ * Syntax error.
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_ERROR_SYNTAX', 4);
+
+/**
+ * Decodes JSON objects as PHP array.
+ * @since 5.4
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_OBJECT_AS_ARRAY', 1);
+define ('JSON_PARSER_NOTSTRICT', 4);
+
+/**
+ * Decodes large integers as their original string value.
+ * @since 5.4
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_BIGINT_AS_STRING', 2);
+
+/**
+ * Ensures that float values are always encoded as a float value.
+ * @since 5.6.6
+ * @link https://php.net/manual/en/json.constants.php
+ */
+define ('JSON_PRESERVE_ZERO_FRACTION', 1024);
+
+/**
+ * The line terminators are kept unescaped when JSON_UNESCAPED_UNICODE is supplied.
+ * It uses the same behaviour as it was before PHP 7.1 without this constant. Available since PHP 7.1.0.
+ * @link https://php.net/manual/en/json.constants.php
+ * @since 7.1
+ */
+define('JSON_UNESCAPED_LINE_TERMINATORS', 2048);
+
+/**
+ * Ignore invalid UTF-8 characters.
+ * @since 7.2
+ */
+define('JSON_INVALID_UTF8_IGNORE', 1048576);
+
+/**
+ * Convert invalid UTF-8 characters to \0xfffd (Unicode Character 'REPLACEMENT CHARACTER').
+ * @since 7.2
+ */
+define('JSON_INVALID_UTF8_SUBSTITUTE', 2097152);
+
+/**
+ * A key starting with \u0000 character was in the string passed to json_decode() when decoding a JSON object into a PHP object.
+ * Available since PHP 7.0.0.
+ * @link https://php.net/manual/en/json.constants.php
+ * @since 7.0
+ */
+define('JSON_ERROR_INVALID_PROPERTY_NAME',9);
+
+/**
+ * Single unpaired UTF-16 surrogate in unicode escape contained in the JSON string passed to json_encode().
+ * Available since PHP 7.0.0.
+ * @link https://php.net/manual/en/json.constants.php
+ * @since 7.0
+ */
+define('JSON_ERROR_UTF16',10);
+
+/**
+ * Throws JsonException if an error occurs instead of setting the global error state
+ * that is retrieved with json_last_error() and json_last_error_msg().
+ *
+ * {@see JSON_PARTIAL_OUTPUT_ON_ERROR} takes precedence over JSON_THROW_ON_ERROR.
+ * @since 7.3
+ */
+define('JSON_THROW_ON_ERROR', 4194304);
+
+/**
+ * Class JsonException
+ *
+ *
A new flag has been added, JSON_THROW_ON_ERROR, which can be used with
+ * json_decode() or json_encode() and causes these functions to throw a
+ * JsonException upon an error, instead of setting the global error state that
+ * is retrieved with json_last_error(). JSON_PARTIAL_OUTPUT_ON_ERROR takes
+ * precedence over JSON_THROW_ON_ERROR.
+ *
+ *
+ * @since 7.3
+ * @link https://wiki.php.net/rfc/json_throw_on_error
+ */
+class JsonException extends \Exception {
+}
+
+// End of json v.1.3.1
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/judy/judy.php b/vendor/jetbrains/phpstorm-stubs/judy/judy.php
new file mode 100644
index 0000000000..091c2fdbd1
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/judy/judy.php
@@ -0,0 +1,214 @@
+
+ * Construct a new Judy object. A Judy object can be accessed like a PHP Array.
+ * @link https://php.net/manual/en/judy.construct.php
+ * @param int $judy_type
The Judy type to be used.
+ */
+ public function __construct($judy_type) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Destruct a Judy object.
+ * @link https://php.net/manual/en/judy.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Locate the Nth index present in the Judy array.
+ * @link https://php.net/manual/en/judy.bycount.php
+ * @param int $nth_index
Nth index to return. If nth_index equal 1, then it will return the first index in the array.
+ * @return int
Return the index at the given Nth position.
+ */
+ public function byCount($nth_index) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Count the number of elements in the Judy array.
+ * @link https://php.net/manual/en/judy.count.php
+ * @param int $index_start [optional]
Start counting from the given index. Default is first index.
+ * @param int $index_end [optional]
Stop counting when reaching this index. Default is last index.
+ * @return int
Return the number of elements.
+ */
+ public function count($index_start = 0, $index_end = -1) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (inclusive) for the first index present that is equal to or greater than the passed Index.
+ * @link https://php.net/manual/en/judy.first.php
+ * @param mixed $index [optional]
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function first($index = 0) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (inclusive) for the first absent index that is equal to or greater than the passed Index.
+ * @link https://php.net/manual/en/judy.firstempty.php
+ * @param mixed $index [optional]
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function firstEmpty($index = 0) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Free the entire Judy array.
+ * @link https://php.net/manual/en/judy.free.php
+ */
+ public function free() {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Return an integer corresponding to the Judy type of the current object.
+ * @link https://php.net/manual/en/judy.gettype.php
+ * @return int
Return an integer corresponding to a Judy type.
+ */
+ public function getType() {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (inclusive) for the last index present that is equal to or less than the passed Index.
+ * @link https://php.net/manual/en/judy.last.php
+ * @param int|string $index [optional]
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function last($index = -1) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (inclusive) for the last absent index that is equal to or less than the passed Index.
+ * @link https://php.net/manual/en/judy.lastempty.php
+ * @param int|string $index [optional]
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function lastEmpty($index = -1) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Return the memory used by the Judy array.
+ * @link https://php.net/manual/en/judy.memoryusage.php
+ * @return int
Return the memory used in bytes.
+ */
+ public function memoryUsage() {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (exclusive) for the next index present that is greater than the passed Index.
+ * @link https://php.net/manual/en/judy.next.php
+ * @param mixed $index
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function next($index) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (exclusive) for the next absent index that is greater than the passed Index.
+ * @link https://php.net/manual/en/judy.nextempty.php
+ * @param int|string $index
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function nextEmpty($index) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Whether or not an offset exists.
+ * @link https://php.net/manual/en/judy.offsetexists.php
+ * @param mixed $offset
An offset to check for.
+ * @return bool
Returns TRUE on success or FALSE on failure.
+ */
+ public function offsetExists($offset) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Returns the value at specified offset.
+ * @link https://php.net/manual/en/judy.offsetget.php
+ * @param mixed $offset
An offset to check for.
+ * @return mixed
Can return all value types.
+ */
+ public function offsetGet($offset) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Assigns a value to the specified offset.
+ * @link https://php.net/manual/en/judy.offsetset.php
+ * @param mixed $offset
+ */
+ public function offsetUnset($offset) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (exclusive) for the previous index present that is less than the passed Index.
+ * @link https://php.net/manual/en/judy.prev.php
+ * @param mixed $index
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function prev($index) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Search (exclusive) for the previous index absent that is less than the passed Index.
+ * @link https://php.net/manual/en/judy.prevempty.php
+ * @param mixed $index
The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixed
Return the corresponding index in the array.
+ */
+ public function prevEmpty($index) {}
+
+ /**
+ * (PECL judy >= 0.1.1)
+ * Count the number of elements in the Judy array.
+ * This method is an alias of const count.
+ * @link https://php.net/manual/en/judy.size.php
+ * @param int $index_start [optional]
Start counting from the given index. Default is first index.
+ * @param int $index_end [optional]
Stop counting when reaching this index. Default is last index.
+ * @return int
Return the number of elements.
+ */
+ public function size($index_start = 0, $index_end = -1) {}
+}
+
+// End of judy.
+
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/ldap/ldap.php b/vendor/jetbrains/phpstorm-stubs/ldap/ldap.php
new file mode 100644
index 0000000000..fa9731836c
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/ldap/ldap.php
@@ -0,0 +1,1620 @@
+
+ * If you are using OpenLDAP 2.x.x you can specify a URL instead of the
+ * hostname. To use LDAP with SSL, compile OpenLDAP 2.x.x with SSL
+ * support, configure PHP with SSL, and set this parameter as
+ * ldaps://hostname/.
+ *
+ * @param int $port [optional]
+ * The port to connect to. Not used when using URLs.
+ *
+ * @return resource|false a positive LDAP link identifier on success, or FALSE on error.
+ * When OpenLDAP 2.x.x is used, ldap_connect will always
+ * return a resource as it does not actually connect but just
+ * initializes the connecting parameters. The actual connect happens with
+ * the next calls to ldap_* funcs, usually with
+ * ldap_bind.
+ *
+ *
+ * If no arguments are specified then the link identifier of the already
+ * opened link will be returned.
+ */
+function ldap_connect (?string $uri, int $port = 389)
+{}
+
+/**
+ * Alias of ldap_unbind
+ * @link https://php.net/manual/en/function.ldap-close.php
+ * @param $ldap
+ */
+function ldap_close ($ldap): bool {}
+
+/**
+ * Bind to LDAP directory
+ * @link https://php.net/manual/en/function.ldap-bind.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string|null $dn [optional]
+ * @param string|null $password [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_bind ($ldap, ?string $dn, ?string $password): bool
+{}
+
+/**
+ * Bind to LDAP directory
+ * Does the same thing as ldap_bind() but returns the LDAP result resource to be parsed with ldap_parse_result().
+ * @link https://php.net/manual/en/function.ldap-bind.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_unbind ($ldap): bool
+{}
+
+/**
+ * Read an entry
+ * @link https://php.net/manual/en/function.ldap-read.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param array|array|string $base
+ * The base DN for the directory.
+ *
+ * @param array|string $filter
+ * An empty filter is not allowed. If you want to retrieve absolutely all
+ * information for this entry, use a filter of
+ * objectClass=*. If you know which entry types are
+ * used on the directory server, you might use an appropriate filter such
+ * as objectClass=inetOrgPerson.
+ *
+ * @param array $attributes [optional]
+ * An array of the required attributes, e.g. array("mail", "sn", "cn").
+ * Note that the "dn" is always returned irrespective of which attributes
+ * types are requested.
+ *
+ *
+ * Using this parameter is much more efficient than the default action
+ * (which is to return all attributes and their associated values).
+ * The use of this parameter should therefore be considered good
+ * practice.
+ *
+ * @param int $attributes_only [optional]
+ * Should be set to 1 if only attribute types are wanted. If set to 0
+ * both attributes types and attribute values are fetched which is the
+ * default behaviour.
+ *
+ * @param int $sizelimit [optional]
+ * Enables you to limit the count of entries fetched. Setting this to 0
+ * means no limit.
+ *
+ *
+ * This parameter can NOT override server-side preset sizelimit. You can
+ * set it lower though.
+ *
+ *
+ * Some directory server hosts will be configured to return no more than
+ * a preset number of entries. If this occurs, the server will indicate
+ * that it has only returned a partial results set. This also occurs if
+ * you use this parameter to limit the count of fetched entries.
+ *
+ * @param int $timelimit [optional]
+ * Sets the number of seconds how long is spend on the search. Setting
+ * this to 0 means no limit.
+ *
+ *
+ * This parameter can NOT override server-side preset timelimit. You can
+ * set it lower though.
+ *
+ * @param int $deref [optional]
+ * Specifies how aliases should be handled during the search. It can be
+ * one of the following:
+ * LDAP_DEREF_NEVER - (default) aliases are never
+ * dereferenced.
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false a search result identifier or FALSE on error.
+ */
+function ldap_read ($ldap, array|string $base, array|string $filter, array $attributes, int $attributes_only, int $sizelimit, int $timelimit, int $deref, ?array $controls = [])
+{}
+
+/**
+ * Single-level search
+ * @link https://php.net/manual/en/function.ldap-list.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * An array of the required attributes, e.g. array("mail", "sn", "cn").
+ * Note that the "dn" is always returned irrespective of which attributes
+ * types are requested.
+ *
+ *
+ * Using this parameter is much more efficient than the default action
+ * (which is to return all attributes and their associated values).
+ * The use of this parameter should therefore be considered good
+ * practice.
+ *
+ * @param int $attributes_only [optional]
+ * Should be set to 1 if only attribute types are wanted. If set to 0
+ * both attributes types and attribute values are fetched which is the
+ * default behaviour.
+ *
+ * @param int $sizelimit [optional]
+ * Enables you to limit the count of entries fetched. Setting this to 0
+ * means no limit.
+ *
+ *
+ * This parameter can NOT override server-side preset sizelimit. You can
+ * set it lower though.
+ *
+ *
+ * Some directory server hosts will be configured to return no more than
+ * a preset number of entries. If this occurs, the server will indicate
+ * that it has only returned a partial results set. This also occurs if
+ * you use this parameter to limit the count of fetched entries.
+ *
+ * @param int $timelimit [optional]
+ * Sets the number of seconds how long is spend on the search. Setting
+ * this to 0 means no limit.
+ *
+ *
+ * This parameter can NOT override server-side preset timelimit. You can
+ * set it lower though.
+ *
+ * @param int $deref [optional]
+ * Specifies how aliases should be handled during the search. It can be
+ * one of the following:
+ * LDAP_DEREF_NEVER - (default) aliases are never
+ * dereferenced.
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false a search result identifier or FALSE on error.
+ */
+function ldap_list ($ldap, array|string $base, array|string $filter, array $attributes, int $attributes_only, int $sizelimit, int $timelimit, int $deref, ?array $controls = [])
+{}
+
+/**
+ * Search LDAP tree
+ * @link https://php.net/manual/en/function.ldap-search.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param array|string $base
+ * The base DN for the directory.
+ *
+ * @param array|string $filter
+ * The search filter can be simple or advanced, using boolean operators in
+ * the format described in the LDAP documentation (see the Netscape Directory SDK for full
+ * information on filters).
+ *
+ * @param array $attributes [optional]
+ * An array of the required attributes, e.g. array("mail", "sn", "cn").
+ * Note that the "dn" is always returned irrespective of which attributes
+ * types are requested.
+ *
+ *
+ * Using this parameter is much more efficient than the default action
+ * (which is to return all attributes and their associated values).
+ * The use of this parameter should therefore be considered good
+ * practice.
+ *
+ * @param int $attributes_only [optional]
+ * Should be set to 1 if only attribute types are wanted. If set to 0
+ * both attributes types and attribute values are fetched which is the
+ * default behaviour.
+ *
+ * @param int $sizelimit [optional]
+ * Enables you to limit the count of entries fetched. Setting this to 0
+ * means no limit.
+ *
+ *
+ * This parameter can NOT override server-side preset sizelimit. You can
+ * set it lower though.
+ *
+ *
+ * Some directory server hosts will be configured to return no more than
+ * a preset number of entries. If this occurs, the server will indicate
+ * that it has only returned a partial results set. This also occurs if
+ * you use this parameter to limit the count of fetched entries.
+ *
+ * @param int $timelimit [optional]
+ * Sets the number of seconds how long is spend on the search. Setting
+ * this to 0 means no limit.
+ *
+ *
+ * This parameter can NOT override server-side preset timelimit. You can
+ * set it lower though.
+ *
+ * @param int $deref [optional]
+ * Specifies how aliases should be handled during the search. It can be
+ * one of the following:
+ * LDAP_DEREF_NEVER - (default) aliases are never
+ * dereferenced.
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false a search result identifier or FALSE on error.
+ */
+function ldap_search ($ldap, array|string $base, array|string $filter, array $attributes, int $attributes_only, int $sizelimit, int $timelimit, int $deref, ?array $controls = [])
+{}
+
+/**
+ * Free result memory
+ * @link https://php.net/manual/en/function.ldap-free-result.php
+ * @param resource $ldap
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_free_result ($ldap): bool
+{}
+
+/**
+ * Count the number of entries in a search
+ * @link https://php.net/manual/en/function.ldap-count-entries.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $result
+ * The internal LDAP result.
+ *
+ * @return int|false number of entries in the result or FALSE on error.
+ */
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function ldap_count_entries ($ldap, $result)
+{}
+
+/**
+ * Return first result id
+ * @link https://php.net/manual/en/function.ldap-first-entry.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $result
+ * @return resource|false the result entry identifier for the first entry on success and
+ * FALSE on error.
+ */
+function ldap_first_entry ($ldap, $result)
+{}
+
+/**
+ * Get next result entry
+ * @link https://php.net/manual/en/function.ldap-next-entry.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $result
+ * @return resource|false entry identifier for the next entry in the result whose entries
+ * are being read starting with ldap_first_entry. If
+ * there are no more entries in the result then it returns FALSE.
+ */
+function ldap_next_entry ($ldap, $result)
+{}
+
+/**
+ * Get all result entries
+ * @link https://php.net/manual/en/function.ldap-get-entries.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $result
+ * @return array|false a complete result information in a multi-dimensional array on
+ * success and FALSE on error.
+ *
+ *
+ * The structure of the array is as follows.
+ * The attribute index is converted to lowercase. (Attributes are
+ * case-insensitive for directory servers, but not when used as
+ * array indices.)
+ *
+ * return_value["count"] = number of entries in the result
+ * return_value[0] : refers to the details of first entry
+ * return_value[i]["dn"] = DN of the ith entry in the result
+ * return_value[i]["count"] = number of attributes in ith entry
+ * return_value[i][j] = NAME of the jth attribute in the ith entry in the result
+ * return_value[i]["attribute"]["count"] = number of values for
+ * attribute in ith entry
+ * return_value[i]["attribute"][j] = jth value of attribute in ith entry
+ *
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $entry
+ * @return string|false the first attribute in the entry on success and FALSE on
+ * error.
+ */
+function ldap_first_attribute ($ldap, $entry): string|false
+{}
+
+/**
+ * Get the next attribute in result
+ * @link https://php.net/manual/en/function.ldap-next-attribute.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $entry
+ * @return string|false the next attribute in an entry on success and FALSE on
+ * error.
+ */
+function ldap_next_attribute ($ldap, $entry): string|false
+{}
+
+/**
+ * Get attributes from a search result entry
+ * @link https://php.net/manual/en/function.ldap-get-attributes.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $entry
+ * @return array a complete entry information in a multi-dimensional array
+ * on success and FALSE on error.
+ */
+function ldap_get_attributes ($ldap, $entry): array
+{}
+
+/**
+ * Get all values from a result entry
+ * @link https://php.net/manual/en/function.ldap-get-values.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $entry
+ * @param string $attribute
+ * @return array|false an array of values for the attribute on success and FALSE on
+ * error. The number of values can be found by indexing "count" in the
+ * resultant array. Individual values are accessed by integer index in the
+ * array. The first index is 0.
+ *
+ *
+ * LDAP allows more than one entry for an attribute, so it can, for example,
+ * store a number of email addresses for one person's directory entry all
+ * labeled with the attribute "mail"
+ * return_value["count"] = number of values for attribute
+ * return_value[0] = first value of attribute
+ * return_value[i] = ith value of attribute
+ */
+function ldap_get_values ($ldap, $entry, string $attribute): array|false
+{}
+
+/**
+ * Get all binary values from a result entry
+ * @link https://php.net/manual/en/function.ldap-get-values-len.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $entry
+ * @param string $attribute
+ * @return array|false an array of values for the attribute on success and FALSE on
+ * error. Individual values are accessed by integer index in the array. The
+ * first index is 0. The number of values can be found by indexing "count"
+ * in the resultant array.
+ */
+function ldap_get_values_len ($ldap, $entry, string $attribute): array|false
+{}
+
+/**
+ * Get the DN of a result entry
+ * @link https://php.net/manual/en/function.ldap-get-dn.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $entry
+ * @return string|false the DN of the result entry and FALSE on error.
+ */
+function ldap_get_dn ($ldap, $entry): string|false
+{}
+
+/**
+ * Splits DN into its component parts
+ * @link https://php.net/manual/en/function.ldap-explode-dn.php
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param int $with_attrib
+ * Used to request if the RDNs are returned with only values or their
+ * attributes as well. To get RDNs with the attributes (i.e. in
+ * attribute=value format) set with_attrib to 0
+ * and to get only values set it to 1.
+ *
+ * @return array|false an array of all DN components.
+ * The first element in this array has count key and
+ * represents the number of returned values, next elements are numerically
+ * indexed DN components.
+ */
+function ldap_explode_dn (string $dn, int $with_attrib): array|false
+{}
+
+/**
+ * Convert DN to User Friendly Naming format
+ * @link https://php.net/manual/en/function.ldap-dn2ufn.php
+ * @param string $dn
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * An array that specifies the information about the entry. The values in
+ * the entries are indexed by individual attributes.
+ * In case of multiple values for an attribute, they are indexed using
+ * integers starting with 0.
+ *
+ * $entree["attribut1"] = "value";
+ * $entree["attribut2"][0] = "value1";
+ * $entree["attribut2"][1] = "value2";
+ *
+ *
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_add ($ldap, string $dn, array $entry, ?array $controls = []): bool
+{}
+
+/**
+ * Add entries to LDAP directory
+ * Does the same thing as ldap_add() but returns the LDAP result resource to be parsed with ldap_parse_result().
+ * @link https://www.php.net/manual/en/function.ldap-add-ext.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * An array that specifies the information about the entry. The values in
+ * the entries are indexed by individual attributes.
+ * In case of multiple values for an attribute, they are indexed using
+ * integers starting with 0.
+ *
+ * $entree["attribut1"] = "value";
+ * $entree["attribut2"][0] = "value1";
+ * $entree["attribut2"][1] = "value2";
+ *
+ *
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false
+ * @since 7.4
+ */
+function ldap_add_ext ($ldap, string $dn, array $entry, ?array $controls = [])
+{}
+
+/**
+ * Delete an entry from a directory
+ * @link https://php.net/manual/en/function.ldap-delete.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_delete ($ldap, string $dn, ?array $controls = []): bool
+{}
+
+/**
+ * Delete an entry from a directory
+ * Does the same thing as ldap_delete() but returns the LDAP result resource to be parsed with ldap_parse_result().
+ * @link https://php.net/manual/en/function.ldap-delete-ext.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false
+ * @since 7.3
+ */
+function ldap_delete_ext ($ldap, string $dn, ?array $controls = [])
+{}
+
+/**
+ * This function is an alias of: ldap_mod_replace().
+ * Replace attribute values with new ones
+ * @link https://php.net/manual/en/function.ldap-mod-replace.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 7.0
+ */
+function ldap_modify ($ldap, string $dn, array $entry, ?array $controls = []): bool
+{}
+
+/**
+ * Add attribute values to current attributes
+ * @link https://php.net/manual/en/function.ldap-mod-add.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_mod_add ($ldap, string $dn, array $entry, ?array $controls = []): bool
+{}
+
+/**
+ * Add attribute values to current attributes
+ * Does the same thing as ldap_mod_add() but returns the LDAP result resource to be parsed with ldap_parse_result().
+ * @link https://php.net/manual/en/function.ldap-mod-add-ext.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false
+ */
+function ldap_mod_add_ext ($ldap, string $dn, array $entry, ?array $controls = [])
+{}
+
+/**
+ * Replace attribute values with new ones
+ * @link https://php.net/manual/en/function.ldap-mod-replace.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_mod_replace ($ldap, string $dn, array $entry, ?array $controls = []): bool
+{}
+
+/**
+ * Replace attribute values with new ones
+ * Does the same thing as ldap_mod_replace() but returns the LDAP result resource to be parsed with ldap_parse_result().
+ * @link https://php.net/manual/en/function.ldap-mod-replace-ext.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_mod_del ($ldap, string $dn, array $entry, ?array $controls = []): bool
+{}
+
+/**
+ * Delete attribute values from current attributes
+ * Does the same thing as ldap_mod_del() but returns the LDAP result resource to be parsed with ldap_parse_result().
+ * @link https://php.net/manual/en/function.ldap-mod-del-ext.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param array $entry
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false
+ * @since 7.3
+ */
+function ldap_mod_del_ext ($ldap, string $dn, array $entry, ?array $controls = [])
+{}
+
+/**
+ * Return the LDAP error number of the last LDAP command
+ * @link https://php.net/manual/en/function.ldap-errno.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @return int Return the LDAP error number of the last LDAP command for this
+ * link.
+ */
+function ldap_errno ($ldap): int
+{}
+
+/**
+ * Convert LDAP error number into string error message
+ * @link https://php.net/manual/en/function.ldap-err2str.php
+ * @param int $errno
+ * The error number.
+ *
+ * @return string the error message, as a string.
+ */
+function ldap_err2str (int $errno): string
+{}
+
+/**
+ * Return the LDAP error message of the last LDAP command
+ * @link https://php.net/manual/en/function.ldap-error.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @return string string error message.
+ */
+function ldap_error ($ldap): string
+{}
+
+/**
+ * Compare value of attribute found in entry specified with DN
+ * @link https://php.net/manual/en/function.ldap-compare.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param string $attribute
+ * The attribute name.
+ *
+ * @param string $value
+ * The compared value.
+ *
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return int|bool TRUE if value matches otherwise returns
+ * FALSE. Returns -1 on error.
+ */
+function ldap_compare ($ldap, string $dn, string $attribute, string $value, ?array $controls = []): int|bool
+{}
+
+/**
+ * Sort LDAP result entries
+ * @link https://php.net/manual/en/function.ldap-sort.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param resource $result
+ * An search result identifier, returned by
+ * ldap_search.
+ *
+ * @param string $sortfilter
+ * The attribute to use as a key in the sort.
+ *
+ * @removed 8.0
+ * @return bool
+ */
+#[Deprecated(since: "7.0")]
+function ldap_sort ($ldap, $result, string $sortfilter): bool
+{}
+
+/**
+ * Modify the name of an entry
+ * @link https://php.net/manual/en/function.ldap-rename.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param string $new_rdn
+ * The new RDN.
+ *
+ * @param string $new_parent
+ * The new parent/superior entry.
+ *
+ * @param bool $delete_old_rdn
+ * If TRUE the old RDN value(s) is removed, else the old RDN value(s)
+ * is retained as non-distinguished values of the entry.
+ *
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_rename ($ldap, string $dn, string $new_rdn, string $new_parent, bool $delete_old_rdn, ?array $controls = []): bool
+{}
+
+/**
+ * Modify the name of an entry
+ * Does the same thing as ldap_rename() but returns the LDAP result resource to be parsed with ldap_parse_result().
+ * @link https://php.net/manual/en/function.ldap-rename-ext.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param string $dn
+ * The distinguished name of an LDAP entity.
+ *
+ * @param string $new_rdn
+ * The new RDN.
+ *
+ * @param string $new_parent
+ * The new parent/superior entry.
+ *
+ * @param bool $delete_old_rdn
+ * If TRUE the old RDN value(s) is removed, else the old RDN value(s)
+ * is retained as non-distinguished values of the entry.
+ *
+ * @param array|null $controls [optional] Array of LDAP Controls to send with the request.
+ * @return resource|false
+ * @since 7.3
+ */
+function ldap_rename_ext ($ldap, string $dn, string $new_rdn, string $new_parent, bool $delete_old_rdn, ?array $controls = [])
+{}
+
+/**
+ * Get the current value for given option
+ * @link https://php.net/manual/en/function.ldap-get-option.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param int $option
+ * The parameter option can be one of:
+ *
+ *
Option
+ *
Type
+ *
+ *
+ *
LDAP_OPT_DEREF
+ *
integer
+ *
+ *
+ *
LDAP_OPT_SIZELIMIT
+ *
integer
+ *
+ *
+ *
LDAP_OPT_TIMELIMIT
+ *
integer
+ *
+ *
+ *
LDAP_OPT_NETWORK_TIMEOUT
+ *
integer
+ *
+ *
+ *
LDAP_OPT_PROTOCOL_VERSION
+ *
integer
+ *
+ *
+ *
LDAP_OPT_ERROR_NUMBER
+ *
integer
+ *
+ *
+ *
LDAP_OPT_REFERRALS
+ *
bool
+ *
+ *
+ *
LDAP_OPT_RESTART
+ *
bool
+ *
+ *
+ *
LDAP_OPT_HOST_NAME
+ *
string
+ *
+ *
+ *
LDAP_OPT_ERROR_STRING
+ *
string
+ *
+ *
+ *
LDAP_OPT_MATCHED_DN
+ *
string
+ *
+ *
+ *
LDAP_OPT_SERVER_CONTROLS
+ *
array
+ *
+ *
+ *
LDAP_OPT_CLIENT_CONTROLS
+ *
array
+ *
+ *
+ * @param mixed &$value
+ * This will be set to the option value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function ldap_get_option ($ldap, int $option, &$value): bool
+{}
+
+/**
+ * Set the value of the given option
+ * @link https://php.net/manual/en/function.ldap-set-option.php
+ * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param int $option
+ * The parameter option can be one of:
+ *
+ *
Option
+ *
Type
+ *
Available since
+ *
+ *
+ *
LDAP_OPT_DEREF
+ *
integer
+ *
+ *
+ *
+ *
LDAP_OPT_SIZELIMIT
+ *
integer
+ *
+ *
+ *
+ *
LDAP_OPT_TIMELIMIT
+ *
integer
+ *
+ *
+ *
+ *
LDAP_OPT_NETWORK_TIMEOUT
+ *
integer
+ *
PHP 5.3.0
+ *
+ *
+ *
LDAP_OPT_PROTOCOL_VERSION
+ *
integer
+ *
+ *
+ *
+ *
LDAP_OPT_ERROR_NUMBER
+ *
integer
+ *
+ *
+ *
+ *
LDAP_OPT_REFERRALS
+ *
bool
+ *
+ *
+ *
+ *
LDAP_OPT_RESTART
+ *
bool
+ *
+ *
+ *
+ *
LDAP_OPT_HOST_NAME
+ *
string
+ *
+ *
+ *
+ *
LDAP_OPT_ERROR_STRING
+ *
string
+ *
+ *
+ *
+ *
LDAP_OPT_MATCHED_DN
+ *
string
+ *
+ *
+ *
+ *
LDAP_OPT_SERVER_CONTROLS
+ *
array
+ *
+ *
+ *
+ *
LDAP_OPT_CLIENT_CONTROLS
+ *
array
+ *
+ *
+ *
+ *
+ * LDAP_OPT_SERVER_CONTROLS and
+ * LDAP_OPT_CLIENT_CONTROLS require a list of
+ * controls, this means that the value must be an array of controls. A
+ * control consists of an oid identifying the control,
+ * an optional value, and an optional flag for
+ * criticality. In PHP a control is given by an
+ * array containing an element with the key oid
+ * and string value, and two optional elements. The optional
+ * elements are key value with string value
+ * and key iscritical with boolean value.
+ * iscritical defaults to FALSE
+ * if not supplied. See draft-ietf-ldapext-ldap-c-api-xx.txt
+ * for details. See also the second example below.
+ *
+ * An LDAP link identifier, returned by ldap_connect.
+ *
+ * @param int $pagesize
+ * The number of entries by page.
+ *
+ * @param bool $iscritical [optional]
+ * Indicates whether the pagination is critical of not.
+ * If true and if the server doesn't support pagination, the search
+ * will return no result.
+ *
+ * @param string $cookie [optional]
+ * An opaque structure sent by the server
+ * (ldap_control_paged_result_response).
+ *
+ * The estimated number of entries to retrieve.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.4
+ * @removed 8.0
+ */
+#[Deprecated(since: "7.4")]
+function ldap_control_paged_result_response ($ldap, $result, &$cookie = null, &$estimated = null): bool
+{}
+
+/**
+ * Escape a string for use in an LDAP filter or DN
+ * @param string $value The value to escape.
+ * @param string $ignore [optional] Characters to ignore when escaping.
+ * @param int $flags [optional] The context the escaped string will be used in: LDAP_ESCAPE_FILTER for filters to be used with ldap_search(), or LDAP_ESCAPE_DN for DNs. If neither flag is passed, all chars are escaped.
+ * @return string
+ * @since 5.6
+ */
+
+function ldap_escape (string $value, string $ignore = "", int $flags = 0): string
+{}
+
+/**
+ * (PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0)
+ * Batch and execute modifications on an LDAP entry
+ * @link https://php.net/manual/en/function.ldap-modify-batch.php
+ * @param $ldap
+ * An LDAP link identifier, returned by
+ * {@see ldap_connect()}.
+ *
+ * @param string $dn
The distinguished name of an LDAP entity.
+ * @param array $modifications_info
An array that specifies the modifications to make. Each entry in this
+ * array is an associative array with two or three keys:
+ * attrib maps to the name of the attribute to modify,
+ * modtype maps to the type of modification to perform,
+ * and (depending on the type of modification) values
+ * maps to an array of attribute values relevant to the modification.
+ *
+ *
+ * Possible values for modtype include:
+ *
+ *
+ *
+ *
+ * LDAP_MODIFY_BATCH_ADD
+ *
+ *
+ *
+ *
+ * Each value specified through values is added (as
+ * an additional value) to the attribute named by
+ * attrib.
+ *
+ *
+ *
+ *
+ * LDAP_MODIFY_BATCH_REMOVE
+ *
+ *
+ *
+ *
+ * Each value specified through values is removed
+ * from the attribute named by attrib. Any value of
+ * the attribute not contained in the values array
+ * will remain untouched.
+ *
+ *
+ *
+ * LDAP_MODIFY_BATCH_REMOVE_ALL
+ *
+ *
+ *
+ *
+ * All values are removed from the attribute named by
+ * attrib. A values entry must
+ * not be provided.
+ *
+ *
+ *
+ *
+ * LDAP_MODIFY_BATCH_REPLACE
+ *
+ *
+ *
+ *
+ * All current values of the attribute named by
+ * attrib are replaced with the values specified
+ * through values.
+ *
+ *
+ *
+ *
+ * Note that any value for attrib must be a string, any
+ * value for values must be an array of strings, and
+ * any value for modtype must be one of the
+ * LDAP_MODIFY_BATCH_* constants listed above.
+ *
+ * Specifies the maximum number of entries that can be
+ * returned on a search operation.
+ *
+ * The actual size limit for operations is also bounded
+ * by the server's configured maximum number of return entries.
+ * The lesser of these two settings is the actual size limit.
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_SIZELIMIT', 3);
+
+/**
+ * Specifies the number of seconds to wait for search results.
+ * The actual time limit for operations is also bounded
+ * by the server's configured maximum time.
+ * The lesser of these two settings is the actual time limit.
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_TIMELIMIT', 4);
+
+/**
+ * Option for ldap_set_option to allow setting network timeout.
+ * (Available as of PHP 5.3.0)
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_NETWORK_TIMEOUT', 20485);
+
+/**
+ * Specifies the LDAP protocol to be used (V2 or V3).
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_PROTOCOL_VERSION', 17);
+define ('LDAP_OPT_ERROR_NUMBER', 49);
+
+/**
+ * Specifies whether to automatically follow referrals returned
+ * by the LDAP server.
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_REFERRALS', 8);
+define ('LDAP_OPT_RESTART', 9);
+define ('LDAP_OPT_HOST_NAME', 48);
+define ('LDAP_OPT_ERROR_STRING', 50);
+define ('LDAP_OPT_MATCHED_DN', 51);
+
+/**
+ * Specifies a default list of server controls to be sent with each request.
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_SERVER_CONTROLS', 18);
+
+/**
+ * Specifies a default list of client controls to be processed with each request.
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_CLIENT_CONTROLS', 19);
+
+/**
+ * Specifies a bitwise level for debug traces.
+ * @link https://php.net/manual/en/ldap.constants.php
+ */
+define ('LDAP_OPT_DEBUG_LEVEL', 20481);
+define ('LDAP_OPT_X_SASL_MECH', 24832);
+define ('LDAP_OPT_X_SASL_REALM', 24833);
+define ('LDAP_OPT_X_SASL_AUTHCID', 24834);
+define ('LDAP_OPT_X_SASL_AUTHZID', 24835);
+
+/**
+ * Specifies the path of the directory containing CA certificates.
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.1
+ */
+define('LDAP_OPT_X_TLS_CACERTDIR', 24579);
+
+/**
+ * Specifies the full-path of the CA certificate file.
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.1
+ */
+define('LDAP_OPT_X_TLS_CACERTFILE', 24578);
+
+define('LDAP_MODIFY_BATCH_ATTRIB', 'attrib');
+define('LDAP_MODIFY_BATCH_MODTYPE', 'modtype');
+define('LDAP_MODIFY_BATCH_VALUES', 'values');
+define('LDAP_OPT_TIMEOUT', 20482);
+define('LDAP_OPT_DIAGNOSTIC_MESSAGE', 50);
+
+
+/**
+ * Control Constant - Manage DSA IT (» RFC 3296)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_MANAGEDSAIT", "2.16.840.1.113730.3.4.2");
+echo
+
+/**
+ * Control Constant - Proxied Authorization (» RFC 4370)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_PROXY_AUTHZ", "2.16.840.1.113730.3.4.18");
+
+/**
+ * Control Constant - Subentries (» RFC 3672)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_SUBENTRIES", "1.3.6.1.4.1.4203.1.10.1");
+
+/**
+ * Control Constant - Filter returned values (» RFC 3876)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_VALUESRETURNFILTER", "1.2.826.0.1.3344810.2.3");
+
+/**
+ * Control Constant - Assertion (» RFC 4528)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_ASSERT", "1.3.6.1.1.12");
+
+/**
+ * Control Constant - Pre read (» RFC 4527)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_PRE_READ", "1.3.6.1.1.13.1");
+
+/**
+ * Control Constant - Post read (» RFC 4527)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_POST_READ", "1.3.6.1.1.13.2");
+
+/**
+ * Control Constant - Sort request (» RFC 2891)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_SORTREQUEST", "1.2.840.113556.1.4.473");
+
+/**
+ * Control Constant - Sort response (» RFC 2891)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_SORTRESPONSE", "1.2.840.113556.1.4.474");
+
+/**
+ * Control Constant - Paged results (» RFC 2696)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_PAGEDRESULTS", "1.2.840.113556.1.4.319");
+
+/**
+ * Control Constant - Content Synchronization Operation (» RFC 4533)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_SYNC", "1.3.6.1.4.1.4203.1.9.1.1");
+
+/**
+ * Control Constant - Content Synchronization Operation State (» RFC 4533)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_SYNC_STATE", "1.3.6.1.4.1.4203.1.9.1.2");
+
+/**
+ * Control Constant - Content Synchronization Operation Done (» RFC 4533)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_SYNC_DONE", "1.3.6.1.4.1.4203.1.9.1.3");
+
+/**
+ * Control Constant - Don't Use Copy (» RFC 6171)
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_DONTUSECOPY", "1.3.6.1.1.22");
+
+/**
+ * Control Constant - Password Policy Request
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_PASSWORDPOLICYREQUEST", "1.3.6.1.4.1.42.2.27.8.5.1");
+
+/**
+ * Control Constant - Password Policy Response
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_PASSWORDPOLICYRESPONSE", "1.3.6.1.4.1.42.2.27.8.5.1");
+
+/**
+ * Control Constant - Active Directory Incremental Values
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_X_INCREMENTAL_VALUES", "1.2.840.113556.1.4.802");
+
+/**
+ * Control Constant - Active Directory Domain Scope
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_X_DOMAIN_SCOPE", "1.2.840.113556.1.4.1339");
+
+/**
+ * Control Constant - Active Directory Permissive Modify
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_X_PERMISSIVE_MODIFY", "1.2.840.113556.1.4.1413");
+
+/**
+ * Control Constant - Active Directory Search Options
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_X_SEARCH_OPTIONS", "1.2.840.113556.1.4.1340");
+
+/**
+ * Control Constant - Active Directory Tree Delete
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_X_TREE_DELETE", "1.2.840.113556.1.4.805");
+
+/**
+ * Control Constant - Active Directory Extended DN
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_X_EXTENDED_DN", "1.2.840.113556.1.4.529");
+
+/**
+ * Control Constant - Virtual List View Request
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_VLVREQUEST", "2.16.840.1.113730.3.4.9");
+
+/**
+ * Control Constant - Virtual List View Response
+ * @link https://php.net/manual/en/ldap.constants.php
+ * @since 7.3
+ */
+define("LDAP_CONTROL_VLVRESPONSE", "2.16.840.1.113730.3.4.10");
+
+
+/**
+ * Extended Operation constant - Modify password
+ */
+define("LDAP_EXOP_MODIFY_PASSWD", "1.3.6.1.4.1.4203.1.11.1");
+
+/**
+ * Extended Operation Constant - Refresh
+ */
+define("LDAP_EXOP_REFRESH", "1.3.6.1.4.1.1466.101.119.1");
+
+/**
+ * Extended Operation constant - Start TLS
+ */
+define("LDAP_EXOP_START_TLS", "1.3.6.1.4.1.1466.20037");
+
+/**
+ * Extended Operation Constant - Turn
+ */
+define("LDAP_EXOP_TURN", "1.3.6.1.1.19");
+
+/**
+ * Extended Operation Constant - WHOAMI
+ */
+define("LDAP_EXOP_WHO_AM_I", "1.3.6.1.4.1.4203.1.11.3");
+
+// End of ldap v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/leveldb/LevelDB.php b/vendor/jetbrains/phpstorm-stubs/leveldb/LevelDB.php
new file mode 100644
index 0000000000..e8e034a7de
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/leveldb/LevelDB.php
@@ -0,0 +1,158 @@
+ true, // if the specified database does not exist will create a new one
+ 'error_if_exists' => false, // if the opened database exists will throw exception
+ 'paranoid_checks' => false,
+ 'block_cache_size' => 8 * (2 << 20),
+ 'write_buffer_size' => 4<<20,
+ 'block_size' => 4096,
+ 'max_open_files' => 1000,
+ 'block_restart_interval' => 16,
+ 'compression' => LEVELDB_SNAPPY_COMPRESSION,
+ 'comparator' => null, // any callable parameter return 0, -1, 1
+ ], array $read_options = [
+ 'verify_check_sum' => false, //may be set to true to force checksum verification of all data that is read from the file system on behalf of a particular read. By default, no such verification is done.
+ 'fill_cache' => true, //When performing a bulk read, the application may set this to false to disable the caching so that the data processed by the bulk read does not end up displacing most of the cached contents.
+ ], array $write_options = [
+ //Only one element named sync in the write option array. By default, each write to leveldb is asynchronous.
+ 'sync' => false
+ ]){}
+
+ /**
+ * @param string $key
+ * @param array $read_options
+ *
+ * @return string|false
+ */
+ public function get($key, array $read_options = []){}
+
+ /**
+ * Alias of LevelDB::put()
+ *
+ * @param string $key
+ * @param string $value
+ * @param array $write_options
+ */
+ public function set($key, $value, array $write_options = []){}
+
+ /**
+ * @param string $key
+ * @param string $value
+ * @param array $write_options
+ */
+ public function put($key, $value, array $write_options = []){}
+
+ /**
+ * @param string $key
+ * @param array $write_options
+ *
+ * @return bool
+ */
+ public function delete($key, array $write_options = []){}
+
+ /**
+ * Executes all of the operations added in the write batch.
+ *
+ * @param LevelDBWriteBatch $batch
+ * @param array $write_options
+ */
+ public function write(LevelDBWriteBatch $batch, array $write_options = []){}
+
+ /**
+ * Valid properties:
+ * - leveldb.stats: returns the status of the entire db
+ * - leveldb.num-files-at-level: returns the number of files for each level. For example, you can use leveldb.num-files-at-level0 the number of files for zero level.
+ * - leveldb.sstables: returns current status of sstables
+ *
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public function getProperty($name){}
+
+ public function getApproximateSizes($start, $limit){}
+
+ public function compactRange($start, $limit){}
+
+ public function close(){}
+
+ /**
+ * @param array $options
+ *
+ * @return LevelDBIterator
+ */
+ public function getIterator(array $options = []){}
+
+ /**
+ * @return LevelDBSnapshot
+ */
+ public function getSnapshot(){}
+
+ static public function destroy($name, array $options = []){}
+
+ static public function repair($name, array $options = []){}
+}
+
+class LevelDBIterator implements Iterator{
+
+ public function __construct(LevelDB $db, array $read_options = []){}
+
+ public function valid(){}
+
+ public function rewind(){}
+
+ public function last(){}
+
+ public function seek($key){}
+
+ public function next(){}
+
+ public function prev(){}
+
+ public function key(){}
+
+ public function current(){}
+
+ public function getError(){}
+
+ public function destroy(){}
+
+}
+
+class LevelDBWriteBatch{
+ public function __construct(){}
+
+ public function set($key, $value, array $write_options = []){}
+
+ public function put($key, $value, array $write_options = []){}
+
+ public function delete($key, array $write_options = []){}
+
+ public function clear(){}
+}
+
+class LevelDBSnapshot{
+ public function __construct(LevelDB $db){}
+
+ public function release(){}
+
+}
+
+class LevelDBException extends Exception{
+
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/libevent/libevent.php b/vendor/jetbrains/phpstorm-stubs/libevent/libevent.php
new file mode 100644
index 0000000000..2d86878597
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/libevent/libevent.php
@@ -0,0 +1,697 @@
+Create and initialize new event base
+ *
+ *
Returns new event base, which can be used later in {@link event_base_set}(), {@link event_base_loop}() and other functions.
+ *
+ * @link https://php.net/event_base_new
+ *
+ * @return resource|false returns valid event base resource on success or FALSE on error.
+ */
+function event_base_new(){}
+
+/**
+ *
Destroy event base
+ *
(PECL libevent >= 0.0.1)
+ *
+ *
Destroys the specified event_base and frees all the resources associated.
+ * Note that it's not possible to destroy an event base with events attached to it.
By default, the {@link event_base_loop}() function runs an event_base until
+ * there are no more events registered in it. To run the loop, it repeatedly
+ * checks whether any of the registered events has triggered (for example,
+ * if a read event's file descriptor is ready to read, or if a timeout event's
+ * timeout is ready to expire). Once this happens, it marks all triggered events
+ * as "active", and starts to run them.
+ *
+ *
+ *
You can change the behavior of event_base_loop() by setting one or more flags
+ * in its flags argument. If EVLOOP_ONCE is set, then the loop will wait until some
+ * events become active, then run active events until there are no more to run, then
+ * return. If EVLOOP_NONBLOCK is set, then the loop will not wait for events to trigger:
+ * it will only check whether any events are ready to trigger immediately,
+ * and run their callbacks if so.
+ *
+ *
+ * @link https://php.net/event_base_loop
+ *
+ * @param resource $event_base Valid event base resource.
+ * @param int $flags [optional] Optional parameter, which can take any combination of EVLOOP_ONCE and EVLOOP_NONBLOCK.
+ *
+ * @return int
+ * Returns 0 if it exited normally,
+ * -1 if it exited because of some unhandled error in the backend
+ * and 1 if no events were registered.
+ *
Tells the event_base to exit its loop immediately.
+ *
(PECL libevent >= 0.0.1)
+ *
+ *
It differs from {@link event_base_loopexit}() in that if the event_base is currently
+ * running callbacks for any active events, it will exit immediately after finishing the
+ * one it's currently processing. The behaviour is similar to break statement.
+ *
+ * @link https://php.net/event_base_loopbreak
+ *
+ * @param resource $event_base Valid event base resource.
+ *
+ * @return bool returns TRUE on success or FALSE on error.
+ */
+function event_base_loopbreak($event_base) {}
+
+/**
+ *
Tells an event_base to stop looping after a given time has elapsed
+ *
(PECL libevent >= 0.0.1)
+ *
+ *
If the event_base is currently running callbacks for any active events,
+ * it will continue running them, and not exit until they have all been run.
+ *
+ *
If event loop isn't running {@link event_base_loopexit}() schedules the next instance
+ * of the event loop to stop right after the next round of callbacks are run (as if it had
+ * been invoked with EVLOOP_ONCE).
By default all events are scheduled with the same priority (npriorities/2).
+ * Using {@link event_base_priority_init}() you can change the number of event priority
+ * levels and then set a desired priority for each event.
+ *
+ * @link https://php.net/event_base_priority_init
+ *
+ * @param resource $event_base Valid event base resource.
+ * @param int $npriorities The number of event priority levels.
+ *
+ * @return bool returns TRUE on success or FALSE on error.
+ */
+function event_base_priority_init($event_base, $npriorities) {}
+
+
+/**
+ *
Creates and returns a new event resource.
+ *
(PECL libevent >= 0.0.1)
+ *
+ * @link https://php.net/event_new
+ *
+ * @return resource|false returns a new event resource on success or FALSE on error.
+ */
+function event_new() {}
+
+/**
+ *
Schedules the execution of the non-pending event (makes it pending in it's
+ * configured base) when the event specified in {@link event_set}() occurs or in
+ * at least the time specified by the timeout argument. If timeout was not specified,
+ * not timeout is set. The event must be already initialized by
+ * {@link event_set}() and {@link event_base_set}() functions.
+ * If the event already has a timeout set,
+ * it is replaced by the new one.
+ *
+ *
If you call {@link event_add}() on an event that is already pending,
+ * it will leave it pending, and reschedule it with the provided timeout.
+ *
+ * @return bool returns TRUE on success or FALSE on error.
+ */
+function event_add($event, $timeout = -1) {}
+
+/**
+ *
Prepares the event to be used in {@link event_add}().
+ *
(PECL libevent >= 0.0.1)
+ *
+ *
The event is prepared to call the function specified by the callback
+ * on the events specified in parameter events, which is a set of the following
+ * flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST.
+ *
+ *
EV_SIGNAL support was added in version 0.0.4
+ *
+ *
After initializing the event, use {@link event_base_set}() to associate the event with its event base.
+ *
+ *
In case of matching event, these three arguments are passed to the callback function:
+ *
+ *
+ *
$fd
+ *
Signal number or resource indicating the stream.
+ *
+ *
+ *
$events
+ *
A flag indicating the event. Consists of the following flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST.
+ *
+ *
+ *
$arg
+ *
Optional parameter, previously passed to {@link event_set}() as arg.
+ * Valid PHP stream resource. The stream must be castable to file descriptor,
+ * so you most likely won't be able to use any of filtered streams.
+ *
+ * @param int $events
+ * A set of flags indicating the desired event, can be EV_READ and/or EV_WRITE.
+ * The additional flag EV_PERSIST makes the event to persist until {@link event_del}() is
+ * called, otherwise the callback is invoked only once.
+ *
+ * @param callback $callback
+ * Callback function to be called when the matching event occurs.
+ *
+ * @param mixed $arg [optional]
+ * Optional callback parameter.
+ *
+ *
+ * @return bool returns TRUE on success or FALSE on error.
+ */
+function event_set($event, $fd, $events, $callback, $arg = null) {}
+
+/**
+ *
Remove an event from the set of monitored events.
+ *
(PECL libevent >= 0.0.1)
+ *
+ *
Calling {@link event_del}() on an initialized event makes it non-pending
+ * and non-active. If the event was not pending or active, there is no effect.
Libevent provides an abstraction layer on top of the regular event API.
+ * Using buffered event you don't need to deal with the I/O manually, instead
+ * it provides input and output buffers that get filled and drained automatically.
+ *
+ *
Every bufferevent has two data-related callbacks: a read callback and a write
+ * callback. By default, the read callback is called whenever any data is read from
+ * the underlying transport, and the write callback is called whenever enough data
+ * from the output buffer is emptied to the underlying transport. You can override
+ * the behavior of these functions by adjusting the read and write "watermarks"
+ * of the bufferevent (see {@link event_buffer_watermark_set}()).
+ *
+ *
A bufferevent also has an "error" or "event" callback that gets invoked to tell
+ * the application about non-data-oriented events, like when a connection is closed or
+ * an error occurs.
+ *
+ * @link https://php.net/event_buffer_new
+ *
+ * @param resource $stream Valid PHP stream resource. Must be castable to file descriptor.
+ * @param callback|null $readcb Callback to invoke where there is data to read, or NULL if no callback is desired.
+ * @param callback|null $writecb Callback to invoke where the descriptor is ready for writing, or NULL if no callback is desired.
+ * @param callback $errorcb Callback to invoke where there is an error on the descriptor, cannot be NULL.
+ * @param mixed $arg An argument that will be passed to each of the callbacks (optional).
+ *
+ * @return resource|false returns new buffered event resource on success or FALSE on error.
+ */
+function event_buffer_new($stream, $readcb, $writecb, $errorcb, $arg = null) {}
+
+/**
+ *
Destroys the specified buffered event and frees all the resources associated.
Assign a priority to a buffered event. Use it after
+ * initializing event, but before adding an event to the event_base.
+ *
(PECL libevent >= 0.0.1)
+ *
+ *
When multiple events trigger at the same time, Libevent
+ * does not define any order with respect to when their callbacks
+ * will be executed. You can define some events as more important
+ * than others by using priorities.
+ *
+ *
When multiple events of multiple priorities become active,
+ * the low-priority events are not run. Instead, Libevent runs
+ * the high priority events, then checks for events again. Only
+ * when no high-priority events are active are the low-priority
+ * events run.
+ *
+ *
When you do not set the priority for an event, the default
+ * is the number of queues in the event base, divided by 2.
Read low-water mark
+ * Whenever a read occurs that leaves the bufferevent's input buffer at this
+ * level or higher, the bufferevent's read callback is invoked. Defaults to 0,
+ * so that every read results in the read callback being invoked.
+ *
+ *
Read high-water mark
+ * If the bufferevent's input buffer ever gets to this level, the bufferevent
+ * stops reading until enough data is drained from the input buffer to take us
+ * below it again. Defaults to unlimited, so that we never stop reading because
+ * of the size of the input buffer.
+ *
+ *
Write low-water mark
+ * Whenever a write occurs that takes us to this level or below, we invoke the write
+ * callback. Defaults to 0, so that a write callback is not invoked unless the output
+ * buffer is emptied.
+ *
+ *
Write high-water mark
+ * Not used by a bufferevent directly, this watermark can have special meaning when
+ * a bufferevent is used as the underlying transport of another bufferevent.
+ *
+ *
Libevent does not invoke read callback unless there is at least lowmark
+ * bytes in the input buffer; if the read buffer is beyond the highmark,
+ * reading is stopped. On output, the write callback is invoked whenever
+ * the buffered data falls below the lowmark.
+ *
+ * @link https://php.net/event_buffer_watermark_set
+ *
+ * @param resource $bevent Valid buffered event resource.
+ * @param int $events Any combination of EV_READ and EV_WRITE.
+ * @param int $lowmark Low watermark.
+ * @param int $highmark High watermark.
+ *
+ * @return void
+ */
+function event_buffer_watermark_set($bevent, $events, $lowmark, $highmark) {}
+
+/**
+ *
Changes the file descriptor on which the buffered event operates.
Sets or changes existing callbacks for the buffered event.
+ *
+ * @link https://php.net/event_buffer_set_callback
+ *
+ * @param resource $bevent Valid buffered event resource.
+ * @param callback|null $readcb Callback to invoke where there is data to read, or NULL if no callback is desired.
+ * @param callback|null $writecb Callback to invoke where the descriptor is ready for writing, or NULL if no callback is desired.
+ * @param callback $errorcb Callback to invoke where there is an error on the descriptor, cannot be NULL.
+ * @param mixed $arg An argument that will be passed to each of the callbacks (optional).
+ *
+ * @return bool returns TRUE on success or FALSE on error.
+ */
+function event_buffer_set_callback($bevent, $readcb, $writecb, $errorcb, $arg = null) {}
+
+
+/**
+ *
Alias of {@link event_new}().
+ *
+ * @return resource|false returns valid event base resource on success or FALSE on error.
+ */
+function event_timer_new() {}
+
+/**
+ *
Prepares the timer event to be used in {@link event_add}().
+ *
+ *
The event is prepared to call the function specified by the callback
+ * on the timeout event (EV_TIMEOUT).
+ *
+ *
After initializing the event, use {@link event_base_set}() to associate the event with its event base.
+ *
+ *
In case of matching event, these three arguments are passed to the callback function:
+ *
+ *
+ *
$fd
+ *
null
+ *
+ *
+ *
$events
+ *
A flag indicating the event. EV_TIMEOUT.
+ *
+ *
+ *
$arg
+ *
Optional parameter, previously passed to {@link event_timer_set}() as arg.
+ *
+ *
+ *
+ *
+ * @param resource $event
+ * Valid event resource.
+ *
+ * @param callback $callback
+ * Callback function to be called when the matching event occurs.
+ *
+ * @var int
+ */
+ public int $line;
+
+}
+
+/**
+ * Set the streams context for the next libxml document load or write
+ * @link https://php.net/manual/en/function.libxml-set-streams-context.php
+ * @param resource $context
+ * The stream context resource (created with
+ * stream_context_create)
+ *
+ * @return void No value is returned.
+ */
+function libxml_set_streams_context ($context):void {}
+
+/**
+ * Disable libxml errors and allow user to fetch error information as needed
+ * @link https://php.net/manual/en/function.libxml-use-internal-errors.php
+ * @param bool|null $use_errors [optional]
+ * Enable (TRUE) user error handling or disable (FALSE) user error handling. Disabling will also clear any existing libxml errors.
+ *
+ * @return bool This function returns the previous value of
+ * use_errors.
+ */
+function libxml_use_internal_errors (?bool $use_errors = false): bool {}
+
+/**
+ * Retrieve last error from libxml
+ * @link https://php.net/manual/en/function.libxml-get-last-error.php
+ * @return LibXMLError|false a LibXMLError object if there is any error in the
+ * buffer, FALSE otherwise.
+ */
+#[Pure]
+function libxml_get_last_error (): LibXMLError|false
+{}
+
+/**
+ * Clear libxml error buffer
+ * @link https://php.net/manual/en/function.libxml-clear-errors.php
+ * @return void No value is returned.
+ */
+function libxml_clear_errors (): void {}
+
+/**
+ * Retrieve array of errors
+ * @link https://php.net/manual/en/function.libxml-get-errors.php
+ * @return LibXMLError[] an array with LibXMLError objects if there are any
+ * errors in the buffer, or an empty array otherwise.
+ */
+#[Pure]
+function libxml_get_errors (): array
+{}
+
+/**
+ * Disable the ability to load external entities
+ * @link https://php.net/manual/en/function.libxml-disable-entity-loader.php
+ * @param bool $disable [optional]
+ * Disable (TRUE) or enable (FALSE) libxml extensions (such as
+ * ,
+ * and ) to load external entities.
+ *
+ * A callable that takes three arguments. Two strings, a public id
+ * and system id, and a context (an array with four keys) as the third argument.
+ * This callback should return a resource, a string from which a resource can be
+ * opened, or NULL.
+ *
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_COMPACT', 65536);
+
+/**
+ * Allows line numbers greater than 65535 to be reported correctly.
+ *
+ * Only available in Libxml >= 2.9.0
+ *
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_BIGLINES', 65535);
+
+
+/**
+ * Drop the XML declaration when saving a document
+ *
+ * Only available in Libxml >= 2.6.21
+ *
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_NOXMLDECL', 2);
+
+/**
+ * Sets XML_PARSE_HUGE flag, which relaxes any hardcoded limit from the parser. This affects
+ * limits like maximum depth of a document or the entity recursion, as well as limits of the
+ * size of text nodes.
+ *
+ * Only available in Libxml >= 2.7.0 (as of PHP >= 5.3.2 and PHP >= 5.2.12)
+ *
+ * Only available in Libxml >= 2.6.14 (as of PHP >= 5.5.2)
+ *
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_SCHEMA_CREATE', 1);
+
+/**
+ * Sets HTML_PARSE_NOIMPLIED flag, which turns off the
+ * automatic adding of implied html/body... elements.
+ *
+ * Only available in Libxml >= 2.7.7 (as of PHP >= 5.4.0)
+ *
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_HTML_NOIMPLIED', 8192);
+
+/**
+ * Sets HTML_PARSE_NODEFDTD flag, which prevents a default doctype
+ * being added when one is not found.
+ *
+ * Only available in Libxml >= 2.7.8 (as of PHP >= 5.4.0)
+ *
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_HTML_NODEFDTD', 4);
+
+/**
+ * No errors
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_ERR_NONE', 0);
+
+/**
+ * A simple warning
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_ERR_WARNING', 1);
+
+/**
+ * A recoverable error
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_ERR_ERROR', 2);
+
+/**
+ * A fatal error
+ * @link https://php.net/manual/en/libxml.constants.php
+ */
+define ('LIBXML_ERR_FATAL', 3);
+
+// End of libxml v.
diff --git a/vendor/jetbrains/phpstorm-stubs/lua/lua.php b/vendor/jetbrains/phpstorm-stubs/lua/lua.php
new file mode 100644
index 0000000000..ddd09ef02a
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/lua/lua.php
@@ -0,0 +1,79 @@
+
diff --git a/vendor/jetbrains/phpstorm-stubs/lzf/lzf.php b/vendor/jetbrains/phpstorm-stubs/lzf/lzf.php
new file mode 100644
index 0000000000..4dfcb28575
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/lzf/lzf.php
@@ -0,0 +1,38 @@
+= 0.9.0)
+ * Figures out the best way of encoding the content read from the given file pointer.
+ * @link https://php.net/manual/en/function.mailparse-determine-best-xfer-encoding.php
+ * @param resource $fp
+ * A valid file pointer, which must be seek-able.
+ *
+ * @return string Returns one of the character encodings supported by the
+ * {@link https://php.net/manual/en/ref.mbstring.php mbstring} module.
+ */
+function mailparse_determine_best_xfer_encoding ($fp) {}
+
+/**
+ * (PECL mailparse >= 0.9.0)
+ * Create a MIME mail resource.
+ * @link https://php.net/manual/en/function.mailparse-msg-create.php
+ * @return resource Returns a handle that can be used to parse a message.
+ */
+function mailparse_msg_create () {}
+
+/**
+ * (PECL mailparse >= 0.9.0)
+ * Extracts/decodes a message section from the supplied filename.
+ * The contents of the section will be decoded according to their transfer encoding - base64, quoted-printable and
+ * uuencoded text are supported.
+ * @link https://php.net/manual/en/function.mailparse-msg-extract-part-file.php
+ * @param resource $mimemail
+ * A valid MIME resource, created with {@link https://php.net/manual/en/function.mailparse-msg-create.php mailparse_msg_create()}.
+ *
+ * @param mixed $filename
+ * Can be a file name or a valid stream resource.
+ *
+ * @param callable $callbackfunc [optional]
+ * If set, this must be either a valid callback that will be passed the extracted section, or NULL to make this
+ * function return the extracted section.
+ *
+ *
+ * If not specified, the contents will be sent to "stdout".
+ *
+ * @return string
+ * If callbackfunc is not NULL returns TRUE on success.
+ *
+ *
+ * If callbackfunc is set to NULL, returns the extracted section as a string.
+ *
+ * @return array
+ */
+function mailparse_msg_get_structure ($mimemail) {}
+
+/**
+ * (PECL mailparse >= 0.9.0)
+ * Parses a file. This is the optimal way of parsing a mail file that you have on disk.
+ * @link https://php.net/manual/en/function.mailparse-msg-parse-file.php
+ * @param string $filename
+ * Path to the file holding the message. The file is opened and streamed through the parser.
+ *
+ * @return resource|false Returns a MIME resource representing the structure, or FALSE on error.
+ */
+function mailparse_msg_parse_file ($filename) {}
+
+/**
+ * (PECL mailparse >= 0.9.0)
+ * Incrementally parse data into the supplied mime mail resource.
+ * This function allow you to stream portions of a file at a time, rather than read and parse the whole thing.
+ * @link https://php.net/manual/en/function.mailparse-msg-parse.php
+ * @param resource $mimemail
+ * A valid MIME resource.
+ *
+ * @param string $data
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function mailparse_msg_parse ($mimemail, $data) {}
+
+/**
+ * (PECL mailparse >= 0.9.0)
+ * Parses a {@link http://www.faqs.org/rfcs/rfc822 RFC 822} compliant recipient list, such as that found in the To: header.
+ * @link https://php.net/manual/en/function.mailparse-rfc822-parse-addresses.php
+ * @param string $addresses
+ * A string containing addresses, like in: Wez Furlong , doe@example.com
+ * Note: This string must not include the header name.
+ *
+ * @return array
+ * Returns an array of associative arrays with the following keys for each recipient:
+ *
+ *
+ *
+ *
display
+ *
The recipient name, for display purpose. If this part is not set for a recipient, this key will hold the same value as address.
+ *
+ *
+ *
address
+ *
The email address
+ *
+ *
+ *
is_group
+ *
TRUE if the recipient is a newsgroup, FALSE otherwise.
+ *
+ *
+ */
+function mailparse_rfc822_parse_addresses ($addresses) {}
+
+/**
+ * (PECL mailparse >= 0.9.0)
+ * Streams data from the source file pointer, apply encoding and write to the destination file pointer.
+ * @link https://php.net/manual/en/function.mailparse-stream-encode.php
+ * @param resource $sourcefp
+ * A valid file handle. The file is streamed through the parser.
+ *
+ * @param resource $destfp
+ * The destination file handle in which the encoded data will be written.
+ *
+ * @param string $encoding
+ * One of the character encodings supported by the {@link https://php.net/manual/en/ref.mbstring.php mbstring} module.
+ *
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function mailparse_stream_encode ($sourcefp, $destfp, $encoding) {}
+
+/**
+ * (PECL mailparse >= 0.9.0)
+ * Scans the data from the given file pointer and extract each embedded uuencoded file into a temporary file.
+ * @link https://php.net/manual/en/function.mailparse-uudecode-all.php
+ * @param resource $fp
+ * A valid file pointer.
+ *
+ * @return array
+ * Returns an array of associative arrays listing filename information.
+ *
+ *
+ *
+ *
filename
+ *
Path to the temporary file name created
+ *
+ *
+ *
origfilename
+ *
The original filename, for uuencoded parts only
+ *
+ *
+ *
+ * The first filename entry is the message body. The next entries are the decoded uuencoded files.
+ *
+ */
+function mailparse_uudecode_all ($fp) {}
+
+define ('MAILPARSE_EXTRACT_OUTPUT', 0);
+define ('MAILPARSE_EXTRACT_STREAM', 1);
+define ('MAILPARSE_EXTRACT_RETURN', 2);
+
+// End of mailparse v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/mapscript/mapscript.php b/vendor/jetbrains/phpstorm-stubs/mapscript/mapscript.php
new file mode 100644
index 0000000000..5eade37336
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mapscript/mapscript.php
@@ -0,0 +1,4986 @@
+next() method.
+ *
+ * @return void
+ */
+function ms_ResetErrorList() {}
+
+/**
+ * Class Objects can be returned by the `layerObj`_ class, or can be
+ * created using:
+ */
+final class classObj
+{
+ /**
+ * @var string
+ */
+ public $group;
+
+ /**
+ * @var string
+ */
+ public $keyimage;
+
+ /**
+ * Removed (6.2) - use addLabel, getLabel, ...
+ *
+ * @var labelObj
+ */
+ public $label;
+
+ /**
+ * @var float
+ */
+ public $maxscaledenom;
+
+ /**
+ * @var hashTableObj
+ */
+ public $metadata;
+
+ /**
+ * @var float
+ */
+ public $minscaledenom;
+
+ /**
+ * @var string
+ */
+ public $name;
+
+ /**
+ * read-only (since 6.2)
+ *
+ * @var int
+ */
+ public $numlabels;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numstyles;
+
+ /**
+ * MS_ON, MS_OFF or MS_DELETE
+ *
+ * @var int
+ */
+ public $status;
+
+ /**
+ * @var string
+ */
+ public $template;
+
+ /**
+ * @var string
+ */
+ public $title;
+
+ /**
+ * @var int
+ */
+ public $type;
+
+ /**
+ * The second argument class is optional. If given, the new class
+ * created will be a copy of this class.
+ *
+ * @param layerObj $layer
+ * @param classObj $class
+ */
+ final public function __construct(layerObj $layer, classObj $class) {}
+
+ /**
+ * Old style constructor
+ *
+ * @param layerObj $layer
+ * @param classObj $class
+ * @return classObj
+ */
+ final public function ms_newClassObj(layerObj $layer, classObj $class) {}
+
+ /**
+ * Add a labelObj to the classObj and return its index in the labels
+ * array.
+ * .. versionadded:: 6.2
+ *
+ * @param labelObj $label
+ * @return int
+ */
+ final public function addLabel(labelObj $label) {}
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Draw the legend icon and return a new imageObj.
+ *
+ * @param int $width
+ * @param int $height
+ * @return imageObj
+ */
+ final public function createLegendIcon($width, $height) {}
+
+ /**
+ * Delete the style specified by the style index. If there are any
+ * style that follow the deleted style, their index will decrease by 1.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function deletestyle($index) {}
+
+ /**
+ * Draw the legend icon on im object at dstX, dstY.
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param int $width
+ * @param int $height
+ * @param imageObj $im
+ * @param int $dstX
+ * @param int $dstY
+ * @return int
+ */
+ final public function drawLegendIcon($width, $height, imageObj $im, $dstX, $dstY) {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Returns the :ref:`expression ` string for the class
+ * object.
+ *
+ * @return string
+ */
+ final public function getExpressionString() {}
+
+ /**
+ * Return a reference to the labelObj at *index* in the labels array.
+ * See the labelObj_ section for more details on multiple class
+ * labels.
+ * .. versionadded:: 6.2
+ *
+ * @param int $index
+ * @return labelObj
+ */
+ final public function getLabel($index) {}
+
+ /**
+ * Fetch class metadata entry by name. Returns "" if no entry
+ * matches the name. Note that the search is case sensitive.
+ * .. note::
+ * getMetaData's query is case sensitive.
+ *
+ * @param string $name
+ * @return int
+ */
+ final public function getMetaData($name) {}
+
+ /**
+ * Return the style object using an index. index >= 0 &&
+ * index < class->numstyles.
+ *
+ * @param int $index
+ * @return styleObj
+ */
+ final public function getStyle($index) {}
+
+ /**
+ * Returns the text string for the class object.
+ *
+ * @return string
+ */
+ final public function getTextString() {}
+
+ /**
+ * The style specified by the style index will be moved down into
+ * the array of classes. Returns MS_SUCCESS or MS_FAILURE.
+ * ex class->movestyledown(0) will have the effect of moving style 0
+ * up to position 1, and the style at position 1 will be moved
+ * to position 0.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function movestyledown($index) {}
+
+ /**
+ * The style specified by the style index will be moved up into
+ * the array of classes. Returns MS_SUCCESS or MS_FAILURE.
+ * ex class->movestyleup(1) will have the effect of moving style 1
+ * up to position 0, and the style at position 0 will be moved
+ * to position 1.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function movestyleup($index) {}
+
+ /**
+ * Remove the labelObj at *index* from the labels array and return a
+ * reference to the labelObj. numlabels is decremented, and the
+ * array is updated.
+ * .. versionadded:: 6.2
+ *
+ * @param int $index
+ * @return labelObj
+ */
+ final public function removeLabel($index) {}
+
+ /**
+ * Remove a metadata entry for the class. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $name
+ * @return int
+ */
+ final public function removeMetaData($name) {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Set the :ref:`expression ` string for the class
+ * object.
+ *
+ * @param string $expression
+ * @return int
+ */
+ final public function setExpression($expression) {}
+
+ /**
+ * Set a metadata entry for the class. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $name
+ * @param string $value
+ * @return int
+ */
+ final public function setMetaData($name, $value) {}
+
+ /**
+ * Set the text string for the class object.
+ *
+ * @param string $text
+ * @return int
+ */
+ final public function settext($text) {}
+
+ /**
+ * Update a class from a string snippet. Returns MS_SUCCESS/MS_FAILURE.
+ * .. code-block:: php
+ * set the color
+ * $oClass->updateFromString('CLASS STYLE COLOR 255 0 255 END END');
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+/**
+ * Instance of clusterObj is always embedded inside the `layerObj`_.
+ */
+final class clusterObj
+{
+ /**
+ * @var float
+ */
+ public $buffer;
+
+ /**
+ * @var float
+ */
+ public $maxdistance;
+
+ /**
+ * @var string
+ */
+ public $region;
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Returns the :ref:`expression ` for this cluster
+ * filter or NULL on error.
+ *
+ * @return string
+ */
+ final public function getFilterString() {}
+
+ /**
+ * Returns the :ref:`expression ` for this cluster group
+ * or NULL on error.
+ *
+ * @return string
+ */
+ final public function getGroupString() {}
+
+ /**
+ * Set layer filter :ref:`expression `.
+ *
+ * @param string $expression
+ * @return int
+ */
+ final public function setFilter($expression) {}
+
+ /**
+ * Set layer group :ref:`expression `.
+ *
+ * @param string $expression
+ * @return int
+ */
+ final public function setGroup($expression) {}
+
+}
+
+/**
+ * Instances of colorObj are always embedded inside other classes.
+ */
+final class colorObj
+{
+ /**
+ * @var int
+ */
+ public $red;
+
+ /**
+ * @var int
+ */
+ public $green;
+
+ /**
+ * @var int
+ */
+ public $blue;
+
+ /**
+ * @var int
+ */
+ public $alpha;
+
+ /**
+ * Get the color as a hex string "#rrggbb" or (if alpha is not 255)
+ * "#rrggbbaa".
+ *
+ * @return string
+ */
+ final public function toHex() {}
+
+ /**
+ * Set red, green, blue and alpha values. The hex string should have the form
+ * "#rrggbb" (alpha will be set to 255) or "#rrggbbaa". Returns MS_SUCCESS.
+ *
+ * @param string $hex
+ * @return int
+ */
+ final public function setHex($hex) {}
+
+}
+
+final class errorObj
+{
+ /**
+ * //See error code constants above
+ *
+ * @var int
+ */
+ public $code;
+
+ /**
+ * @var string
+ */
+ public $message;
+
+ /**
+ * @var string
+ */
+ public $routine;
+
+}
+
+/**
+ * The grid is always embedded inside a layer object defined as
+ * a grid (layer->connectiontype = MS_GRATICULE)
+ * (for more docs : https://github.com/mapserver/mapserver/wiki/MapServerGrid)
+ * A layer can become a grid layer by adding a grid object to it using :
+ * ms_newGridObj(layerObj layer)
+ * $oLayer = ms_newlayerobj($oMap);
+ * $oLayer->set("name", "GRID");
+ * ms_newgridobj($oLayer);
+ * $oLayer->grid->set("labelformat", "DDMMSS");
+ */
+final class gridObj
+{
+ /**
+ * @var string
+ */
+ public $labelformat;
+
+ /**
+ * @var float
+ */
+ public $maxacrs;
+
+ /**
+ * @var float
+ */
+ public $maxinterval;
+
+ /**
+ * @var float
+ */
+ public $maxsubdivide;
+
+ /**
+ * @var float
+ */
+ public $minarcs;
+
+ /**
+ * @var float
+ */
+ public $mininterval;
+
+ /**
+ * @var float
+ */
+ public $minsubdivide;
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+}
+
+/**
+ * Instance of hashTableObj is always embedded inside the `classObj`_,
+ * `layerObj`_, `mapObj`_ and `webObj`_. It is uses a read only.
+ * $hashTable = $oLayer->metadata;
+ * $key = null;
+ * while ($key = $hashTable->nextkey($key))
+ * echo "Key: ".$key." value: ".$hashTable->get($key)." ";
+ */
+final class hashTableObj
+{
+ /**
+ * Clear all items in the hashTable (To NULL).
+ *
+ * @return void
+ */
+ final public function clear() {}
+
+ /**
+ * Fetch class metadata entry by name. Returns "" if no entry
+ * matches the name. Note that the search is case sensitive.
+ *
+ * @param string $key
+ * @return string
+ */
+ final public function get($key) {}
+
+ /**
+ * Return the next key or first key if previousKey = NULL.
+ * Return NULL if no item is in the hashTable or end of hashTable is
+ * reached
+ *
+ * @param string $previousKey
+ * @return string
+ */
+ final public function nextkey($previousKey) {}
+
+ /**
+ * Remove a metadata entry in the hashTable. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $key
+ * @return int
+ */
+ final public function remove($key) {}
+
+ /**
+ * Set a metadata entry in the hashTable. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $key
+ * @param string $value
+ * @return int
+ */
+ final public function set($key, $value) {}
+
+}
+
+/**
+ * Instances of imageObj are always created by the `mapObj`_ class methods.
+ */
+final class imageObj
+{
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $width;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $height;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $resolution;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $resolutionfactor;
+
+ /**
+ * @var string
+ */
+ public $imagepath;
+
+ /**
+ * @var string
+ */
+ public $imageurl;
+
+ /**
+ * Copy srcImg on top of the current imageObj.
+ * transparentColorHex is the color (in 0xrrggbb format) from srcImg
+ * that should be considered transparent (i.e. those pixels won't
+ * be copied). Pass -1 if you don't want any transparent color.
+ * If optional dstx,dsty are provided then it defines the position
+ * where the image should be copied (dstx,dsty = top-left corner
+ * position).
+ * The optional angle is a value between 0 and 360 degrees to rotate
+ * the source image counterclockwise. Note that if an angle is specified
+ * (even if its value is zero) then the dstx and dsty coordinates
+ * specify the CENTER of the destination area.
+ * Note: this function works only with 8 bits GD images (PNG or GIF).
+ *
+ * @param imageObj $srcImg
+ * @param int $transparentColorHex
+ * @param int $dstX
+ * @param int $dstY
+ * @param int $angle
+ * @return void
+ */
+ final public function pasteImage(imageObj $srcImg, $transparentColorHex, $dstX, $dstY, $angle) {}
+
+ /**
+ * Writes image object to specified filename.
+ * Passing no filename or an empty filename sends output to stdout. In
+ * this case, the PHP header() function should be used to set the
+ * document's content-type prior to calling saveImage(). The output
+ * format is the one that is currently selected in the map file. The
+ * second argument oMap is not manadatory. It is usful when saving to
+ * formats like GTIFF that needs georeference information contained in
+ * the map file. On success, it returns either MS_SUCCESS if writing to an
+ * external file, or the number of bytes written if output is sent to
+ * stdout.
+ *
+ * @param string $filename
+ * @param MapObj $oMap
+ * @return int
+ */
+ final public function saveImage($filename, MapObj $oMap) {}
+
+ /**
+ * Writes image to temp directory. Returns image URL.
+ * The output format is the one that is currently selected in the
+ * map file.
+ *
+ * @return string
+ */
+ final public function saveWebImage() {}
+
+}
+
+final class labelcacheMemberObj
+{
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $classindex;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $featuresize;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $layerindex;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $markerid;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numstyles;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $shapeindex;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $status;
+
+ /**
+ * read-only
+ *
+ * @var string
+ */
+ public $text;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $tileindex;
+
+}
+
+final class labelcacheObj
+{
+ /**
+ * Free the label cache. Always returns MS_SUCCESS.
+ * Ex : map->labelcache->freeCache();
+ *
+ * @return bool
+ */
+ final public function freeCache() {}
+
+}
+
+/**
+ * labelObj are always embedded inside other classes.
+ */
+final class labelObj
+{
+ /**
+ * @var int
+ */
+ public $align;
+
+ /**
+ * @var float
+ */
+ public $angle;
+
+ /**
+ * @var int
+ */
+ public $anglemode;
+
+ /**
+ * @var int
+ */
+ public $antialias;
+
+ /**
+ * @var int
+ */
+ public $autominfeaturesize;
+
+ /**
+ * (deprecated since 6.0)
+ *
+ * @var colorObj
+ */
+ public $backgroundcolor;
+
+ /**
+ * (deprecated since 6.0)
+ *
+ * @var colorObj
+ */
+ public $backgroundshadowcolor;
+
+ /**
+ * (deprecated since 6.0)
+ *
+ * @var int
+ */
+ public $backgroundshadowsizex;
+
+ /**
+ * (deprecated since 6.0)
+ *
+ * @var int
+ */
+ public $backgroundshadowsizey;
+
+ /**
+ * @var int
+ */
+ public $buffer;
+
+ /**
+ * @var colorObj
+ */
+ public $color;
+
+ /**
+ * @var string
+ */
+ public $encoding;
+
+ /**
+ * @var string
+ */
+ public $font;
+
+ /**
+ * @var int
+ */
+ public $force;
+
+ /**
+ * @var int
+ */
+ public $maxlength;
+
+ /**
+ * @var int
+ */
+ public $maxsize;
+
+ /**
+ * @var int
+ */
+ public $mindistance;
+
+ /**
+ * @var int
+ */
+ public $minfeaturesize;
+
+ /**
+ * @var int
+ */
+ public $minlength;
+
+ /**
+ * @var int
+ */
+ public $minsize;
+
+ /**
+ * @var int
+ */
+ public $numstyles;
+
+ /**
+ * @var int
+ */
+ public $offsetx;
+
+ /**
+ * @var int
+ */
+ public $offsety;
+
+ /**
+ * @var colorObj
+ */
+ public $outlinecolor;
+
+ /**
+ * @var int
+ */
+ public $outlinewidth;
+
+ /**
+ * @var int
+ */
+ public $partials;
+
+ /**
+ * @var int
+ */
+ public $position;
+
+ /**
+ * @var int
+ */
+ public $priority;
+
+ /**
+ * @var int
+ */
+ public $repeatdistance;
+
+ /**
+ * @var colorObj
+ */
+ public $shadowcolor;
+
+ /**
+ * @var int
+ */
+ public $shadowsizex;
+
+ /**
+ * @var int
+ */
+ public $shadowsizey;
+
+ /**
+ * @var int
+ */
+ public $size;
+
+ /**
+ * @var int
+ */
+ public $wrap;
+
+ /**
+ *
+ */
+ final public function __construct() {}
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Delete the style specified by the style index. If there are any
+ * style that follow the deleted style, their index will decrease by 1.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function deleteStyle($index) {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Get the attribute binding for a specified label property. Returns
+ * NULL if there is no binding for this property.
+ * Example:
+ * .. code-block:: php
+ * $oLabel->setbinding(MS_LABEL_BINDING_COLOR, "FIELD_NAME_COLOR");
+ * echo $oLabel->getbinding(MS_LABEL_BINDING_COLOR); // FIELD_NAME_COLOR
+ *
+ * @param mixed $labelbinding
+ * @return string
+ */
+ final public function getBinding($labelbinding) {}
+
+ /**
+ * Returns the label expression string.
+ *
+ * @return string
+ */
+ final public function getExpressionString() {}
+
+ /**
+ * Return the style object using an index. index >= 0 &&
+ * index < label->numstyles.
+ *
+ * @param int $index
+ * @return styleObj
+ */
+ final public function getStyle($index) {}
+
+ /**
+ * Returns the label text string.
+ *
+ * @return string
+ */
+ final public function getTextString() {}
+
+ /**
+ * The style specified by the style index will be moved down into
+ * the array of classes. Returns MS_SUCCESS or MS_FAILURE.
+ * ex label->movestyledown(0) will have the effect of moving style 0
+ * up to position 1, and the style at position 1 will be moved
+ * to position 0.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function moveStyleDown($index) {}
+
+ /**
+ * The style specified by the style index will be moved up into
+ * the array of classes. Returns MS_SUCCESS or MS_FAILURE.
+ * ex label->movestyleup(1) will have the effect of moving style 1
+ * up to position 0, and the style at position 0 will be moved
+ * to position 1.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function moveStyleUp($index) {}
+
+ /**
+ * Remove the attribute binding for a specfiled style property.
+ * Example:
+ * .. code-block:: php
+ * $oStyle->removebinding(MS_LABEL_BINDING_COLOR);
+ *
+ * @param mixed $labelbinding
+ * @return int
+ */
+ final public function removeBinding($labelbinding) {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Set the attribute binding for a specified label property.
+ * Example:
+ * .. code-block:: php
+ * $oLabel->setbinding(MS_LABEL_BINDING_COLOR, "FIELD_NAME_COLOR");
+ * This would bind the color parameter with the data (ie will extract
+ * the value of the color from the field called "FIELD_NAME_COLOR"
+ *
+ * @param mixed $labelbinding
+ * @param string $value
+ * @return int
+ */
+ final public function setBinding($labelbinding, $value) {}
+
+ /**
+ * Set the label expression.
+ *
+ * @param string $expression
+ * @return int
+ */
+ final public function setExpression($expression) {}
+
+ /**
+ * Set the label text.
+ *
+ * @param string $text
+ * @return int
+ */
+ final public function setText($text) {}
+
+ /**
+ * Update a label from a string snippet. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+/**
+ * Layer Objects can be returned by the `mapObj`_ class, or can be
+ * created using:
+ * A second optional argument can be given to ms_newLayerObj() to create
+ * the new layer as a copy of an existing layer. If a layer is given as
+ * argument then all members of a this layer will be copied in the new
+ * layer created.
+ */
+final class layerObj
+{
+ /**
+ * @var int
+ */
+ public $annotate;
+
+ /**
+ * @var hashTableObj
+ */
+ public $bindvals;
+
+ /**
+ * @var string
+ */
+ public $classgroup;
+
+ /**
+ * @var string
+ */
+ public $classitem;
+
+ /**
+ * @var clusterObj
+ */
+ public $cluster;
+
+ /**
+ * @var string
+ */
+ public $connection;
+
+ /**
+ * read-only, use setConnectionType() to set it
+ *
+ * @var int
+ */
+ public $connectiontype;
+
+ /**
+ * @var string
+ */
+ public $data;
+
+ /**
+ * @var int
+ */
+ public $debug;
+
+ /**
+ * deprecated since 6.0
+ *
+ * @var int
+ */
+ public $dump;
+
+ /**
+ * @var string
+ */
+ public $filteritem;
+
+ /**
+ * @var string
+ */
+ public $footer;
+
+ /**
+ * only available on a layer defined as grid (MS_GRATICULE)
+ *
+ * @var gridObj
+ */
+ public $grid;
+
+ /**
+ * @var string
+ */
+ public $group;
+
+ /**
+ * @var string
+ */
+ public $header;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $index;
+
+ /**
+ * @var int
+ */
+ public $labelcache;
+
+ /**
+ * @var string
+ */
+ public $labelitem;
+
+ /**
+ * @var float
+ */
+ public $labelmaxscaledenom;
+
+ /**
+ * @var float
+ */
+ public $labelminscaledenom;
+
+ /**
+ * @var string
+ */
+ public $labelrequires;
+
+ /**
+ * @var string
+ */
+ public $mask;
+
+ /**
+ * @var int
+ */
+ public $maxfeatures;
+
+ /**
+ * @var float
+ */
+ public $maxscaledenom;
+
+ /**
+ * @var hashTableObj
+ */
+ public $metadata;
+
+ /**
+ * @var float
+ */
+ public $minscaledenom;
+
+ /**
+ * @var string
+ */
+ public $name;
+
+ /**
+ * @var int
+ */
+ public $num_processing;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numclasses;
+
+ /**
+ * @var colorObj
+ */
+ public $offsite;
+
+ /**
+ * @var int
+ */
+ public $opacity;
+
+ /**
+ * @var projectionObj
+ */
+ public $projection;
+
+ /**
+ * @var int
+ */
+ public $postlabelcache;
+
+ /**
+ * @var string
+ */
+ public $requires;
+
+ /**
+ * @var int
+ */
+ public $sizeunits;
+
+ /**
+ * @var int
+ */
+ public $startindex;
+
+ /**
+ * MS_ON, MS_OFF, MS_DEFAULT or MS_DELETE
+ *
+ * @var int
+ */
+ public $status;
+
+ /**
+ * @var string
+ */
+ public $styleitem;
+
+ /**
+ * @var float
+ */
+ public $symbolscaledenom;
+
+ /**
+ * @var string
+ */
+ public $template;
+
+ /**
+ * @var string
+ */
+ public $tileindex;
+
+ /**
+ * @var string
+ */
+ public $tileitem;
+
+ /**
+ * @var float
+ */
+ public $tolerance;
+
+ /**
+ * @var int
+ */
+ public $toleranceunits;
+
+ /**
+ * @var int
+ */
+ public $transform;
+
+ /**
+ * @var int
+ */
+ public $type;
+
+ /**
+ * Old style constructor
+ *
+ * @param MapObj $map
+ * @param layerObj $layer
+ * @return layerObj
+ */
+ final public function ms_newLayerObj(MapObj $map, layerObj $layer) {}
+
+ /**
+ * Add a new feature in a layer. Returns MS_SUCCESS or MS_FAILURE on
+ * error.
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function addFeature(shapeObj $shape) {}
+
+ /**
+ * Apply the :ref:`SLD ` document to the layer object.
+ * The matching between the sld document and the layer will be done
+ * using the layer's name.
+ * If a namedlayer argument is passed (argument is optional),
+ * the NamedLayer in the sld that matchs it will be used to style
+ * the layer.
+ * See :ref:`SLD HowTo ` for more information on the SLD support.
+ *
+ * @param string $sldxml
+ * @param string $namedlayer
+ * @return int
+ */
+ final public function applySLD($sldxml, $namedlayer) {}
+
+ /**
+ * Apply the :ref:`SLD ` document pointed by the URL to the
+ * layer object. The matching between the sld document and the layer
+ * will be done using the layer's name. If a namedlayer argument is
+ * passed (argument is optional), the NamedLayer in the sld that
+ * matchs it will be used to style the layer. See :ref:`SLD HowTo
+ * ` for more information on the SLD support.
+ *
+ * @param string $sldurl
+ * @param string $namedlayer
+ * @return int
+ */
+ final public function applySLDURL($sldurl, $namedlayer) {}
+
+ /**
+ * Clears all the processing strings.
+ *
+ * @return void
+ */
+ final public function clearProcessing() {}
+
+ /**
+ * Close layer previously opened with open().
+ *
+ * @return void
+ */
+ final public function close() {}
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Draw a single layer, add labels to cache if required.
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param imageObj $image
+ * @return int
+ */
+ final public function draw(imageObj $image) {}
+
+ /**
+ * Draw query map for a single layer.
+ * string executeWFSGetfeature()
+ * Executes a GetFeature request on a WFS layer and returns the
+ * name of the temporary GML file created. Returns an empty
+ * string on error.
+ *
+ * @param imageObj $image
+ * @return int
+ */
+ final public function drawQuery(imageObj $image) {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Returns an SLD XML string based on all the classes found in the
+ * layer (the layer must have `STATUS` `on`).
+ *
+ * @return string
+ */
+ final public function generateSLD() {}
+
+ /**
+ * Returns a classObj from the layer given an index value (0=first class)
+ *
+ * @param int $classIndex
+ * @return classObj
+ */
+ final public function getClass($classIndex) {}
+
+ /**
+ * Get the class index of a shape for a given scale. Returns -1 if no
+ * class matches. classgroup is an array of class ids to check
+ * (Optional). numclasses is the number of classes that the classgroup
+ * array contains. By default, all the layer classes will be checked.
+ *
+ * @param $shape
+ * @param $classgroup
+ * @param $numclasses
+ * @return int
+ */
+ final public function getClassIndex( $shape, $classgroup, $numclasses) {}
+
+ /**
+ * Returns the layer's data extents or NULL on error.
+ * If the layer's EXTENT member is set then this value is used,
+ * otherwise this call opens/closes the layer to read the
+ * extents. This is quick on shapefiles, but can be
+ * an expensive operation on some file formats or data sources.
+ * This function is safe to use on both opened or closed layers: it
+ * is not necessary to call open()/close() before/after calling it.
+ *
+ * @return rectObj
+ */
+ final public function getExtent() {}
+
+ /**
+ * Returns the :ref:`expression ` for this layer or NULL
+ * on error.
+ *
+ * @return string|null
+ */
+ final public function getFilterString() {}
+
+ /**
+ * Returns an array containing the grid intersection coordinates. If
+ * there are no coordinates, it returns an empty array.
+ *
+ * @return array
+ */
+ final public function getGridIntersectionCoordinates() {}
+
+ /**
+ * Returns an array containing the items. Must call open function first.
+ * If there are no items, it returns an empty array.
+ *
+ * @return array
+ */
+ final public function getItems() {}
+
+ /**
+ * Fetch layer metadata entry by name. Returns "" if no entry
+ * matches the name. Note that the search is case sensitive.
+ * .. note::
+ * getMetaData's query is case sensitive.
+ *
+ * @param string $name
+ * @return int
+ */
+ final public function getMetaData($name) {}
+
+ /**
+ * Returns the number of results in the last query.
+ *
+ * @return int
+ */
+ final public function getNumResults() {}
+
+ /**
+ * Returns an array containing the processing strings.
+ * If there are no processing strings, it returns an empty array.
+ *
+ * @return array
+ */
+ final public function getProcessing() {}
+
+ /**
+ * Returns a string representation of the :ref:`projection `.
+ * Returns NULL on error or if no projection is set.
+ *
+ * @return string
+ */
+ final public function getProjection() {}
+
+ /**
+ * Returns a resultObj by index from a layer object with
+ * index in the range 0 to numresults-1.
+ * Returns a valid object or FALSE(0) if index is invalid.
+ *
+ * @param int $index
+ * @return resultObj
+ */
+ final public function getResult($index) {}
+
+ /**
+ * Returns the bounding box of the latest result.
+ *
+ * @return rectObj
+ */
+ final public function getResultsBounds() {}
+
+ /**
+ * If the resultObj passed has a valid resultindex, retrieve shapeObj from
+ * a layer's resultset. (You get it from the resultObj returned by
+ * getResult() for instance). Otherwise, it will do a single query on
+ * the layer to fetch the shapeindex
+ * .. code-block:: php
+ * $map = new mapObj("gmap75.map");
+ * $l = $map->getLayerByName("popplace");
+ * $l->queryByRect($map->extent);
+ * for ($i = 0; $i < $l->getNumResults(); $i++) {
+ * $s = $l->getShape($l->getResult($i));
+ * echo $s->getValue($l,"Name");
+ * echo "\n";
+ * }
+ *
+ * @param resultObj $result
+ * @return shapeObj
+ */
+ final public function getShape(resultObj $result) {}
+
+ /**
+ * Returns a WMS GetFeatureInfo URL (works only for WMS layers)
+ * clickX, clickY is the location of to query in pixel coordinates
+ * with (0,0) at the top left of the image.
+ * featureCount is the number of results to return.
+ * infoFormat is the format the format in which the result should be
+ * requested. Depends on remote server's capabilities. MapServer
+ * WMS servers support only "MIME" (and should support "GML.1" soon).
+ * Returns "" and outputs a warning if layer is not a WMS layer
+ * or if it is not queriable.
+ *
+ * @param int $clickX
+ * @param int $clickY
+ * @param int $featureCount
+ * @param string $infoFormat
+ * @return string
+ */
+ final public function getWMSFeatureInfoURL($clickX, $clickY, $featureCount, $infoFormat) {}
+
+ /**
+ * Returns MS_TRUE/MS_FALSE depending on whether the layer is
+ * currently visible in the map (i.e. turned on, in scale, etc.).
+ *
+ * @return bool
+ */
+ final public function isVisible() {}
+
+ /**
+ * The class specified by the class index will be moved down into
+ * the array of layers. Returns MS_SUCCESS or MS_FAILURE.
+ * ex layer->moveclassdown(0) will have the effect of moving class 0
+ * up to position 1, and the class at position 1 will be moved
+ * to position 0.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function moveclassdown($index) {}
+
+ /**
+ * The class specified by the class index will be moved up into
+ * the array of layers. Returns MS_SUCCESS or MS_FAILURE.
+ * ex layer->moveclassup(1) will have the effect of moving class 1
+ * up to position 0, and the class at position 0 will be moved
+ * to position 1.
+ *
+ * @param int $index
+ * @return int
+ */
+ final public function moveclassup($index) {}
+
+ /**
+ * Open the layer for use with getShape().
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @return int
+ */
+ final public function open() {}
+
+ /**
+ * Called after msWhichShapes has been called to actually retrieve
+ * shapes within a given area. Returns a shape object or NULL on
+ * error.
+ * .. code-block:: php
+ * $map = ms_newmapobj("d:/msapps/gmap-ms40/htdocs/gmap75.map");
+ * $layer = $map->getLayerByName('road');
+ * $status = $layer->open();
+ * $status = $layer->whichShapes($map->extent);
+ * while ($shape = $layer->nextShape())
+ * {
+ * echo $shape->index ." \n";
+ * }
+ * $layer->close();
+ *
+ * @return shapeObj
+ */
+ final public function nextShape() {}
+
+ /**
+ * Query layer for shapes that intersect current map extents. qitem
+ * is the item (attribute) on which the query is performed, and
+ * qstring is the expression to match. The query is performed on all
+ * the shapes that are part of a :ref:`CLASS` that contains a
+ * :ref:`TEMPLATE ` value or that match any class in a
+ * layer that contains a :ref:`LAYER` :ref:`TEMPLATE `
+ * value. Note that the layer's FILTER/FILTERITEM are ignored by
+ * this function. Mode is MS_SINGLE or MS_MULTIPLE depending on
+ * number of results you want. Returns MS_SUCCESS if shapes were
+ * found or MS_FAILURE if nothing was found or if some other error
+ * happened (note that the error message in case nothing was found
+ * can be avoided in PHP using the '@' control operator).
+ *
+ * @param string $qitem
+ * @param string $qstring
+ * @param int $mode
+ * @return int
+ */
+ final public function queryByAttributes($qitem, $qstring, $mode) {}
+
+ /**
+ * Perform a query set based on a previous set of results from
+ * another layer. At present the results MUST be based on a polygon
+ * layer.
+ * Returns MS_SUCCESS if shapes were found or MS_FAILURE if nothing
+ * was found or if some other error happened (note that the error
+ * message in case nothing was found can be avoided in PHP using
+ * the '@' control operator).
+ *
+ * @param int $slayer
+ * @return int
+ */
+ final public function queryByFeatures($slayer) {}
+
+ /**
+ * Query layer at point location specified in georeferenced map
+ * coordinates (i.e. not pixels).
+ * The query is performed on all the shapes that are part of a CLASS
+ * that contains a TEMPLATE value or that match any class in a
+ * layer that contains a LAYER TEMPLATE value.
+ * Mode is MS_SINGLE or MS_MULTIPLE depending on number of results
+ * you want.
+ * Passing buffer -1 defaults to tolerances set in the map file
+ * (in pixels) but you can use a constant buffer (specified in
+ * ground units) instead.
+ * Returns MS_SUCCESS if shapes were found or MS_FAILURE if nothing
+ * was found or if some other error happened (note that the error
+ * message in case nothing was found can be avoided in PHP using
+ * the '@' control operator).
+ *
+ * @param pointObj $point
+ * @param int $mode
+ * @param float $buffer
+ * @return int
+ */
+ final public function queryByPoint(pointObj $point, $mode, $buffer) {}
+
+ /**
+ * Query layer using a rectangle specified in georeferenced map
+ * coordinates (i.e. not pixels).
+ * The query is performed on all the shapes that are part of a CLASS
+ * that contains a TEMPLATE value or that match any class in a
+ * layer that contains a LAYER TEMPLATE value.
+ * Returns MS_SUCCESS if shapes were found or MS_FAILURE if nothing
+ * was found or if some other error happened (note that the error
+ * message in case nothing was found can be avoided in PHP using
+ * the '@' control operator).
+ *
+ * @param rectObj $rect
+ * @return int
+ */
+ final public function queryByRect(rectObj $rect) {}
+
+ /**
+ * Query layer based on a single shape, the shape has to be a polygon
+ * at this point.
+ * Returns MS_SUCCESS if shapes were found or MS_FAILURE if nothing
+ * was found or if some other error happened (note that the error
+ * message in case nothing was found can be avoided in PHP using
+ * the '@' control operator).
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function queryByShape(shapeObj $shape) {}
+
+ /**
+ * Removes the class indicated and returns a copy, or NULL in the case
+ * of a failure. Note that subsequent classes will be renumbered by
+ * this operation. The numclasses field contains the number of classes
+ * available.
+ *
+ * @param int $index
+ * @return classObj|null
+ */
+ final public function removeClass($index) {}
+
+ /**
+ * Remove a metadata entry for the layer. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $name
+ * @return int
+ */
+ final public function removeMetaData($name) {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Changes the connectiontype of the layer and recreates the vtable
+ * according to the new connection type. This method should be used
+ * instead of setting the connectiontype parameter directly.
+ * In the case when the layer.connectiontype = MS_PLUGIN the plugin_library
+ * parameter should also be specified so as to select the library to
+ * load by MapServer. For the other connection types this parameter
+ * is not used.
+ *
+ * @param int $connectiontype
+ * @param string $plugin_library
+ * @return int
+ */
+ final public function setConnectionType($connectiontype, $plugin_library) {}
+
+ /**
+ * Set layer filter :ref:`expression `.
+ *
+ * @param string $expression
+ * @return int
+ */
+ final public function setFilter($expression) {}
+
+ /**
+ * Set a metadata entry for the layer. Returns MS_SUCCESS/MS_FAILURE.
+ * int setProcessing(string)
+ * Add the string to the processing string list for the layer.
+ * The layer->num_processing is incremented by 1.
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ * .. code-block:: php
+ * $oLayer->setprocessing("SCALE_1=AUTO");
+ * $oLayer->setprocessing("SCALE_2=AUTO");
+ *
+ * @param string $name
+ * @param string $value
+ * @return int
+ */
+ final public function setMetaData($name, $value) {}
+
+ /**
+ * Set layer :ref:`projection ` and coordinate system.
+ * Parameters are given as a single string of comma-delimited PROJ.4
+ * parameters. Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param string $proj_params
+ * @return int
+ */
+ final public function setProjection($proj_params) {}
+
+ /**
+ * Same as setProjection(), but takes an OGC WKT projection
+ * definition string as input.
+ * .. note::
+ * setWKTProjection requires GDAL support
+ *
+ * @param string $proj_params
+ * @return int
+ */
+ final public function setWKTProjection($proj_params) {}
+
+ /**
+ * Update a layer from a string snippet. Returns MS_SUCCESS/MS_FAILURE.
+ * .. code-block:: php
+ * modify the name
+ * $oLayer->updateFromString('LAYER NAME land_fn2 END');
+ * add a new class
+ * $oLayer->updateFromString('LAYER CLASS STYLE COLOR 255 255 0 END END END');
+ * int whichshapes(rectobj)
+ * Performs a spatial, and optionally an attribute based feature
+ * search. The function basically prepares things so that candidate
+ * features can be accessed by query or drawing functions (eg using
+ * nextshape function). Returns MS_SUCCESS, MS_FAILURE or MS_DONE.
+ * MS_DONE is returned if the layer extent does not overlap the
+ * rectObj.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+/**
+ * Instances of legendObj are always are always embedded inside the `mapObj`_.
+ */
+final class legendObj
+{
+ /**
+ * @var int
+ */
+ public $height;
+
+ /**
+ * @var colorObj
+ */
+ public $imagecolor;
+
+ /**
+ * @var int
+ */
+ public $keysizex;
+
+ /**
+ * @var int
+ */
+ public $keysizey;
+
+ /**
+ * @var int
+ */
+ public $keyspacingx;
+
+ /**
+ * @var int
+ */
+ public $keyspacingy;
+
+ /**
+ * @var labelObj
+ */
+ public $label;
+
+ /**
+ * Color of outline of box, -1 for no outline
+ *
+ * @var colorObj
+ */
+ public $outlinecolor;
+
+ /**
+ * for embedded legends, MS_UL, MS_UC, ...
+ *
+ * @var int
+ */
+ public $position;
+
+ /**
+ * MS_TRUE, MS_FALSE
+ *
+ * @var int
+ */
+ public $postlabelcache;
+
+ /**
+ * MS_ON, MS_OFF, MS_EMBED
+ *
+ * @var int
+ */
+ public $status;
+
+ /**
+ * @var string
+ */
+ public $template;
+
+ /**
+ * @var int
+ */
+ public $width;
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Update a legend from a string snippet. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+final class lineObj
+{
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numpoints;
+
+ /**
+ *
+ */
+ final public function __construct() {}
+
+ /**
+ * Old style constructor
+ *
+ * @return LineObj
+ */
+ final public function ms_newLineObj() {}
+
+ /**
+ * Add a point to the end of line. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param pointObj $point
+ * @return int
+ */
+ final public function add(pointObj $point) {}
+
+ /**
+ * Add a point to the end of line. Returns MS_SUCCESS/MS_FAILURE.
+ * .. note::
+ * the 3rd parameter m is used for measured shape files only.
+ * It is not mandatory.
+ *
+ * @param float $x
+ * @param float $y
+ * @param float $m
+ * @return int
+ */
+ final public function addXY($x, $y, $m) {}
+
+ /**
+ * Add a point to the end of line. Returns MS_SUCCESS/MS_FAILURE.
+ * .. note::
+ * the 4th parameter m is used for measured shape files only.
+ * It is not mandatory.
+ *
+ * @param float $x
+ * @param float $y
+ * @param float $z
+ * @param float $m
+ * @return int
+ */
+ final public function addXYZ($x, $y, $z, $m) {}
+
+ /**
+ * Returns a reference to point number i.
+ *
+ * @param int $i
+ * @return PointObj
+ */
+ final public function point($i) {}
+
+ /**
+ * Project the line from "in" projection (1st argument) to "out"
+ * projection (2nd argument). Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param projectionObj $in
+ * @param projectionObj $out
+ * @return int
+ */
+ final public function project(projectionObj $in, projectionObj $out) {}
+
+}
+
+final class mapObj
+{
+ /**
+ * @var float
+ */
+ public $cellsize;
+
+ /**
+ * @var int
+ */
+ public $debug;
+
+ /**
+ * pixels per inch, defaults to 72
+ *
+ * @var float
+ */
+ public $defresolution;
+
+ /**
+ * ;
+ *
+ * @var rectObj
+ */
+ public $extent;
+
+ /**
+ * read-only, set by setFontSet()
+ *
+ * @var string
+ */
+ public $fontsetfilename;
+
+ /**
+ * see setSize()
+ *
+ * @var int
+ */
+ public $height;
+
+ /**
+ * @var colorObj
+ */
+ public $imagecolor;
+
+ /**
+ * @var int
+ */
+ public $keysizex;
+
+ /**
+ * @var int
+ */
+ public $keysizey;
+
+ /**
+ * @var int
+ */
+ public $keyspacingx;
+
+ /**
+ * @var int
+ */
+ public $keyspacingy;
+
+ /**
+ * no members. Used only to free the
+ * label cache (map->labelcache->free()
+ *
+ * @var labelcacheObj
+ */
+ public $labelcache;
+
+ /**
+ * @var legendObj
+ */
+ public $legend;
+
+ /**
+ * @var string
+ */
+ public $mappath;
+
+ /**
+ * @var int
+ */
+ public $maxsize;
+
+ /**
+ * @var hashTableObj
+ */
+ public $metadata;
+
+ /**
+ * @var string
+ */
+ public $name;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numlayers;
+
+ /**
+ * @var outputformatObj
+ */
+ public $outputformat;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numoutputformats;
+
+ /**
+ * @var projectionObj
+ */
+ public $projection;
+
+ /**
+ * @var querymapObj
+ */
+ public $querymap;
+
+ /**
+ * @var referenceMapObj
+ */
+ public $reference;
+
+ /**
+ * pixels per inch, defaults to 72
+ *
+ * @var float
+ */
+ public $resolution;
+
+ /**
+ * @var scalebarObj
+ */
+ public $scalebar;
+
+ /**
+ * read-only, set by drawMap()
+ *
+ * @var float
+ */
+ public $scaledenom;
+
+ /**
+ * @var string
+ */
+ public $shapepath;
+
+ /**
+ * @var int
+ */
+ public $status;
+
+ /**
+ * read-only, set by setSymbolSet()
+ *
+ * @var string
+ */
+ public $symbolsetfilename;
+
+ /**
+ * map units type
+ *
+ * @var int
+ */
+ public $units;
+
+ /**
+ * @var webObj
+ */
+ public $web;
+
+ /**
+ * see setSize()
+ *
+ * @var int
+ */
+ public $width;
+
+ /**
+ * Returns a new object to deal with a MapServer map file.
+ * Construct a new mapObj from a mapfile string. Returns a new object to deal
+ * with a MapServer map file.
+ * .. note::
+ * By default, the SYMBOLSET, FONTSET, and other paths in the mapfile
+ * are relative to the mapfile location. If new_map_path is provided
+ * then this directory will be used as the base path for all the
+ * rewlative paths inside the mapfile.
+ *
+ * @param string $map_file_name
+ * @param string $new_map_path
+ */
+ final public function __construct($map_file_name, $new_map_path) {}
+
+ /**
+ * Old style constructor
+ *
+ * @param string $map_file_string
+ * @param string $new_map_path
+ * @return mapObj
+ */
+ final public function ms_newMapObjFromString($map_file_string, $new_map_path) {}
+
+ /**
+ * Applies the config options set in the map file. For example
+ * setting the PROJ_LIB using the setconfigoption only modifies
+ * the value in the map object. applyconfigoptions will actually
+ * change the PROJ_LIB value that will be used when dealing with
+ * projection.
+ *
+ * @return int
+ */
+ final public function applyconfigoptions() {}
+
+ /**
+ * Apply the :ref:`SLD` document to the map file. The matching between the
+ * sld document and the map file will be done using the layer's name.
+ * See :ref:`SLD HowTo ` for more information on the SLD support.
+ *
+ * @param string $sldxml
+ * @return int
+ */
+ final public function applySLD($sldxml) {}
+
+ /**
+ * Apply the SLD document pointed by the URL to the map file. The
+ * matching between the sld document and the map file will be done
+ * using the layer's name.
+ * See :ref:`SLD HowTo ` for more information on the SLD support.
+ *
+ * @param string $sldurl
+ * @return int
+ */
+ final public function applySLDURL($sldurl) {}
+
+ /**
+ * Saves the object to a string.
+ * .. note::
+ * The inverse method updateFromString does not exist for the mapObj
+ * .. versionadded:: 6.4
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Render map and return an image object or NULL on error.
+ *
+ * @return imageObj|null
+ */
+ final public function draw() {}
+
+ /**
+ * Renders the labels for a map. Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param imageObj $image
+ * @return int
+ */
+ final public function drawLabelCache(imageObj $image) {}
+
+ /**
+ * Render legend and return an image object.
+ *
+ * @return imageObj
+ */
+ final public function drawLegend() {}
+
+ /**
+ * Render a query map and return an image object or NULL on error.
+ *
+ * @return imageObj|null
+ */
+ final public function drawQuery() {}
+
+ /**
+ * Render reference map and return an image object.
+ *
+ * @return imageObj
+ */
+ final public function drawReferenceMap() {}
+
+ /**
+ * Render scale bar and return an image object.
+ *
+ * @return imageObj
+ */
+ final public function drawScaleBar() {}
+
+ /**
+ * embeds a legend. Actually the legend is just added to the label
+ * cache so you must invoke drawLabelCache() to actually do the
+ * rendering (unless postlabelcache is set in which case it is
+ * drawn right away). Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param imageObj $image
+ * @return int
+ */
+ final public function embedLegend(imageObj $image) {}
+
+ /**
+ * embeds a scalebar. Actually the scalebar is just added to the label
+ * cache so you must invoke drawLabelCache() to actually do the rendering
+ * (unless postlabelcache is set in which case it is drawn right away).
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param imageObj $image
+ * @return int
+ */
+ final public function embedScalebar(imageObj $image) {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ * void freeQuery(layerindex)
+ * Frees the query result on a specified layer. If the layerindex is -1,
+ * all queries on layers will be freed.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Returns an SLD XML string based on all the classes found in all
+ * the layers that have `STATUS` `on`.
+ *
+ * @return string
+ */
+ final public function generateSLD() {}
+
+ /**
+ * Return an array containing all the group names used in the
+ * layers. If there are no groups, it returns an empty array.
+ *
+ * @return array
+ */
+ final public function getAllGroupNames() {}
+
+ /**
+ * Return an array containing all the layer names.
+ * If there are no layers, it returns an empty array.
+ *
+ * @return array
+ */
+ final public function getAllLayerNames() {}
+
+ /**
+ * Returns a colorObj corresponding to the color index in the
+ * palette.
+ *
+ * @param int $iCloIndex
+ * @return colorObj
+ */
+ final public function getColorbyIndex($iCloIndex) {}
+
+ /**
+ * Returns the config value associated with the key.
+ * Returns an empty sting if key not found.
+ *
+ * @param string $key
+ * @return string
+ */
+ final public function getConfigOption($key) {}
+
+ /**
+ * Returns a labelcacheMemberObj from the map given an index value
+ * (0=first label). Labelcache has to be enabled.
+ * .. code-block:: php
+ * while ($oLabelCacheMember = $oMap->getLabel($i)) {
+ * do something with the labelcachemember
+ * ++$i;
+ * }
+ *
+ * @param int $index
+ * @return labelcacheMemberObj
+ */
+ final public function getLabel($index) {}
+
+ /**
+ * Returns a layerObj from the map given an index value (0=first layer)
+ *
+ * @param int $index
+ * @return layerObj
+ */
+ final public function getLayer($index) {}
+
+ /**
+ * Returns a layerObj from the map given a layer name.
+ * Returns NULL if layer doesn't exist.
+ *
+ * @param string $layer_name
+ * @return layerObj
+ */
+ final public function getLayerByName($layer_name) {}
+
+ /**
+ * Return an array containing layer's index in the order which they
+ * are drawn. If there are no layers, it returns an empty array.
+ *
+ * @return array
+ */
+ final public function getLayersDrawingOrder() {}
+
+ /**
+ * Return an array containing all the layer's indexes given
+ * a group name. If there are no layers, it returns an empty array.
+ *
+ * @param string $groupname
+ * @return array
+ */
+ final public function getLayersIndexByGroup($groupname) {}
+
+ /**
+ * Fetch metadata entry by name (stored in the :ref:`WEB` object in
+ * the map file). Returns "" if no entry matches the name.
+ * .. note::
+ * getMetaData's query is case sensitive.
+ *
+ * @param string $name
+ * @return int
+ */
+ final public function getMetaData($name) {}
+
+ /**
+ * Return the number of symbols in map.
+ *
+ * @return int
+ */
+ final public function getNumSymbols() {}
+
+ /**
+ * Returns a string representation of the projection.
+ * Returns NULL on error or if no projection is set.
+ *
+ * @return string
+ */
+ final public function getProjection() {}
+
+ /**
+ * Returns the symbol index using the name.
+ *
+ * @param string $symbol_name
+ * @return int
+ */
+ final public function getSymbolByName($symbol_name) {}
+
+ /**
+ * Returns the symbol object using a symbol id. Refer to
+ * the symbol object reference section for more details.
+ * int insertLayer( layerObj layer [, int nIndex=-1 ] )
+ * Insert a copy of *layer* into the Map at index *nIndex*. The
+ * default value of *nIndex* is -1, which means the last possible
+ * index. Returns the index of the new Layer, or -1 in the case of a
+ * failure.
+ *
+ * @param int $symbolid
+ * @return symbolObj
+ */
+ final public function getSymbolObjectById($symbolid) {}
+
+ /**
+ * Available only if WMS support is enabled. Load a :ref:`WMS Map
+ * Context ` XML file into the current mapObj. If the
+ * map already contains some layers then the layers defined in the
+ * WMS Map context document are added to the current map. The 2nd
+ * argument unique_layer_name is optional and if set to MS_TRUE
+ * layers created will have a unique name (unique prefix added to the
+ * name). If set to MS_FALSE the layer name will be the the same name
+ * as in the context. The default value is MS_FALSE. Returns
+ * MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $filename
+ * @param bool $unique_layer_name
+ * @return int
+ */
+ final public function loadMapContext($filename, $unique_layer_name) {}
+
+ /**
+ * Load OWS request parameters (BBOX, LAYERS, &c.) into map. Returns
+ * MS_SUCCESS or MS_FAILURE. 2nd argument version is not mandatory.
+ * If not given, the version will be set to 1.1.1
+ * int loadQuery(filename)
+ * Loads a query from a file. Returns MS_SUCCESS or MS_FAILURE.
+ * To be used with savequery.
+ *
+ * @param OwsrequestObj $request
+ * @param string $version
+ * @return int
+ */
+ final public function loadOWSParameters(OwsrequestObj $request, $version) {}
+
+ /**
+ * Move layer down in the hierarchy of drawing.
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param int $layerindex
+ * @return int
+ */
+ final public function moveLayerDown($layerindex) {}
+
+ /**
+ * Move layer up in the hierarchy of drawing.
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param int $layerindex
+ * @return int
+ */
+ final public function moveLayerUp($layerindex) {}
+
+ /**
+ * Offset the map extent based on the given distances in map coordinates.
+ * Returns MS_SUCCESS or MS_FAILURE.
+ *
+ * @param float $x
+ * @param float $y
+ * @return int
+ */
+ final public function offsetExtent($x, $y) {}
+
+ /**
+ * Processes and executes the passed OpenGIS Web Services request on
+ * the map. Returns MS_DONE (2) if there is no valid OWS request in
+ * the req object, MS_SUCCESS (0) if an OWS request was successfully
+ * processed and MS_FAILURE (1) if an OWS request was not
+ * successfully processed. OWS requests include :ref:`WMS
+ * `, :ref:`WFS `, :ref:`WCS `
+ * and :ref:`SOS ` requests supported by MapServer.
+ * Results of a dispatched request are written to stdout and can be
+ * captured using the msIO services (ie. ms_ioinstallstdouttobuffer()
+ * and ms_iogetstdoutbufferstring())
+ *
+ * @param OwsrequestObj $request
+ * @return int
+ */
+ final public function owsDispatch(OwsrequestObj $request) {}
+
+ /**
+ * Return a blank image object.
+ *
+ * @return imageObj
+ */
+ final public function prepareImage() {}
+
+ /**
+ * Calculate the scale of the map and set map->scaledenom.
+ *
+ * @return void
+ */
+ final public function prepareQuery() {}
+
+ /**
+ * Process legend template files and return the result in a buffer.
+ * .. seealso::
+ * :ref:`processtemplate `
+ *
+ * @param array $params
+ * @return string
+ */
+ final public function processLegendTemplate(array $params) {}
+
+ /**
+ * Process query template files and return the result in a buffer.
+ * Second argument generateimages is not mandatory. If not given
+ * it will be set to TRUE.
+ * .. seealso::
+ * :ref:`processtemplate `
+ * .. _processtemplate:
+ *
+ * @param array $params
+ * @param bool $generateimages
+ * @return string
+ */
+ final public function processQueryTemplate(array $params, $generateimages) {}
+
+ /**
+ * Process the template file specified in the web object and return the
+ * result in a buffer. The processing consists of opening the template
+ * file and replace all the tags found in it. Only tags that have an
+ * equivalent element in the map object are replaced (ex [scaledenom]).
+ * The are two exceptions to the previous statement :
+ * - [img], [scalebar], [ref], [legend] would be replaced with the
+ * appropriate url if the parameter generateimages is set to
+ * MS_TRUE. (Note : the images corresponding to the different objects
+ * are generated if the object is set to MS_ON in the map file)
+ * - the user can use the params parameter to specify tags and
+ * their values. For example if the user have a specific tag call
+ * [my_tag] and would like it to be replaced by "value_of_my_tag"
+ * he would do
+ * .. code-block:: php
+ * $tmparray["my_tag"] = "value_of_my_tag";
+ * $map->processtemplate($tmparray, MS_FALSE);
+ *
+ * @param array $params
+ * @param bool $generateimages
+ * @return string
+ */
+ final public function processTemplate(array $params, $generateimages) {}
+
+ /**
+ * Perform a query based on a previous set of results from
+ * a layer. At present the results MUST be based on a polygon layer.
+ * Returns MS_SUCCESS if shapes were found or MS_FAILURE if nothing
+ * was found or if some other error happened (note that the error
+ * message in case nothing was found can be avoided in PHP using
+ * the '@' control operator).
+ *
+ * @param int $slayer
+ * @return int
+ */
+ final public function queryByFeatures($slayer) {}
+
+ /**
+ * Add a specific shape on a given layer to the query result.
+ * If addtoquery (which is a non mandatory argument) is set to MS_TRUE,
+ * the shape will be added to the existing query list. Default behavior
+ * is to free the existing query list and add only the new shape.
+ *
+ * @param $layerindex
+ * @param $tileindex
+ * @param $shapeindex
+ * @param $addtoquery
+ * @return int
+ */
+ final public function queryByIndex( $layerindex, $tileindex, $shapeindex, $addtoquery) {}
+
+ /**
+ * Query all selected layers in map at point location specified in
+ * georeferenced map coordinates (i.e. not pixels).
+ * The query is performed on all the shapes that are part of a :ref:`CLASS`
+ * that contains a :ref:`TEMPLATE` value or that match any class in a
+ * layer that contains a :ref:`LAYER` :ref:`TEMPLATE ` value.
+ * Mode is MS_SINGLE or MS_MULTIPLE depending on number of results
+ * you want.
+ * Passing buffer -1 defaults to tolerances set in the map file
+ * (in pixels) but you can use a constant buffer (specified in
+ * ground units) instead.
+ * Returns MS_SUCCESS if shapes were found or MS_FAILURE if nothing
+ * was found or if some other error happened (note that the error
+ * message in case nothing was found can be avoided in PHP using
+ * the '@' control operator).
+ *
+ * @param pointObj $point
+ * @param int $mode
+ * @param float $buffer
+ * @return int
+ */
+ final public function queryByPoint(pointObj $point, $mode, $buffer) {}
+
+ /**
+ * Query all selected layers in map using a rectangle specified in
+ * georeferenced map coordinates (i.e. not pixels). The query is
+ * performed on all the shapes that are part of a :ref:`CLASS` that
+ * contains a :ref:`TEMPLATE` value or that match any class in a
+ * layer that contains a :ref:`LAYER` :ref:`TEMPLATE `
+ * value. Returns MS_SUCCESS if shapes were found or MS_FAILURE if
+ * nothing was found or if some other error happened (note that the
+ * error message in case nothing was found can be avoided in PHP
+ * using the '@' control operator).
+ *
+ * @param rectObj $rect
+ * @return int
+ */
+ final public function queryByRect(rectObj $rect) {}
+
+ /**
+ * Query all selected layers in map based on a single shape, the
+ * shape has to be a polygon at this point.
+ * Returns MS_SUCCESS if shapes were found or MS_FAILURE if nothing
+ * was found or if some other error happened (note that the error
+ * message in case nothing was found can be avoided in PHP using
+ * the '@' control operator).
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function queryByShape(shapeObj $shape) {}
+
+ /**
+ * Remove a layer from the mapObj. The argument is the index of the
+ * layer to be removed. Returns the removed layerObj on success, else
+ * null.
+ *
+ * @param int $nIndex
+ * @return layerObj
+ */
+ final public function removeLayer($nIndex) {}
+
+ /**
+ * Remove a metadata entry for the map (stored in the WEB object in the map
+ * file). Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $name
+ * @return int
+ */
+ final public function removeMetaData($name) {}
+
+ /**
+ * Save current map object state to a file. Returns -1 on error.
+ * Use absolute path. If a relative path is used, then it will be
+ * relative to the mapfile location.
+ *
+ * @param string $filename
+ * @return int
+ */
+ final public function save($filename) {}
+
+ /**
+ * Available only if WMS support is enabled. Save current map object
+ * state in :ref:`WMS Map Context ` format. Only WMS
+ * layers are saved in the WMS Map Context XML file. Returns
+ * MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $filename
+ * @return int
+ */
+ final public function saveMapContext($filename) {}
+
+ /**
+ * Save the current query in a file. Results determines the save format -
+ * MS_TRUE (or 1/true) saves the query results (tile index and shape index),
+ * MS_FALSE (or 0/false) the query parameters (and the query will be re-run
+ * in loadquery). Returns MS_SUCCESS or MS_FAILURE. Either save format can be
+ * used with loadquery. See RFC 65 and ticket #3647 for details of different
+ * save formats.
+ *
+ * @param string $filename
+ * @param int $results
+ * @return int
+ */
+ final public function saveQuery($filename, $results) {}
+
+ /**
+ * Scale the map extent using the zoomfactor and ensure the extent
+ * within the minscaledenom and maxscaledenom domain. If
+ * minscaledenom and/or maxscaledenom is 0 then the parameter is not
+ * taken into account. Returns MS_SUCCESS or MS_FAILURE.
+ *
+ * @param float $zoomfactor
+ * @param float $minscaledenom
+ * @param float $maxscaledenom
+ * @return int
+ */
+ final public function scaleExtent($zoomfactor, $minscaledenom, $maxscaledenom) {}
+
+ /**
+ * Selects the output format to be used in the map.
+ * Returns MS_SUCCESS/MS_FAILURE.
+ * .. note::
+ * the type used should correspond to one of the output formats
+ * declared in the map file. The type argument passed is compared
+ * with the mimetype parameter in the output format structure and
+ * then to the name parameter in the structure.
+ *
+ * @param string $type
+ * @return int
+ */
+ final public function selectOutputFormat($type) {}
+
+ /**
+ * Appends outputformat object in the map object.
+ * Returns the new numoutputformats value.
+ *
+ * @param outputFormatObj $outputFormat
+ * @return int
+ */
+ final public function appendOutputFormat(outputFormatObj $outputFormat) {}
+
+ /**
+ * Remove outputformat from the map.
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $name
+ * @return int
+ */
+ final public function removeOutputFormat($name) {}
+
+ /**
+ * Returns the outputformat at index position.
+ *
+ * @param int $index
+ * @return outputFormatObj
+ */
+ final public function getOutputFormat($index) {}
+
+ /**
+ * Set map object property to new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Set the map center to the given map point.
+ * Returns MS_SUCCESS or MS_FAILURE.
+ *
+ * @param pointObj $center
+ * @return int
+ */
+ final public function setCenter(pointObj $center) {}
+
+ /**
+ * Sets a config parameter using the key and the value passed
+ *
+ * @param string $key
+ * @param string $value
+ * @return int
+ */
+ final public function setConfigOption($key, $value) {}
+
+ /**
+ * Set the map extents using the georef extents passed in argument.
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param float $minx
+ * @param float $miny
+ * @param float $maxx
+ * @param float $maxy
+ * @return void
+ */
+ final public function setExtent($minx, $miny, $maxx, $maxy) {}
+
+ /**
+ * Load and set a new :ref:`fontset`.
+ * boolean setLayersDrawingOrder(array layeryindex)
+ * Set the layer's order array. The argument passed must be a valid
+ * array with all the layer's index.
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param string $fileName
+ * @return int
+ */
+ final public function setFontSet($fileName) {}
+
+ /**
+ * Set a metadata entry for the map (stored in the WEB object in the map
+ * file). Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $name
+ * @param string $value
+ * @return int
+ */
+ final public function setMetaData($name, $value) {}
+
+ /**
+ * Set map projection and coordinate system. Returns MS_SUCCESS or
+ * MS_FAILURE on error.
+ * Parameters are given as a single string of comma-delimited PROJ.4
+ * parameters. The argument : bSetUnitsAndExtents is used to
+ * automatically update the map units and extents based on the new
+ * projection. Possible values are MS_TRUE and MS_FALSE. By default it is
+ * set at MS_FALSE.
+ *
+ * @param string $proj_params
+ * @param bool $bSetUnitsAndExtents
+ * @return int
+ */
+ final public function setProjection($proj_params, $bSetUnitsAndExtents) {}
+
+ /**
+ * Set map rotation angle. The map view rectangle (specified in
+ * EXTENTS) will be rotated by the indicated angle in the counter-
+ * clockwise direction. Note that this implies the rendered map
+ * will be rotated by the angle in the clockwise direction.
+ * Returns MS_SUCCESS or MS_FAILURE.
+ *
+ * @param float $rotation_angle
+ * @return int
+ */
+ final public function setRotation($rotation_angle) {}
+
+ /**
+ * Set the map width and height. This method updates the internal
+ * geotransform and other data structures required for map rotation
+ * so it should be used instead of setting the width and height members
+ * directly.
+ * Returns MS_SUCCESS or MS_FAILURE.
+ *
+ * @param int $width
+ * @param int $height
+ * @return int
+ */
+ final public function setSize($width, $height) {}
+
+ /**
+ * Load and set a symbol file dynamically.
+ *
+ * @param string $fileName
+ * @return int
+ */
+ final public function setSymbolSet($fileName) {}
+
+ /**
+ * Same as setProjection(), but takes an OGC WKT projection
+ * definition string as input. Returns MS_SUCCESS or MS_FAILURE on error.
+ * .. note::
+ * setWKTProjection requires GDAL support
+ *
+ * @param string $proj_params
+ * @param bool $bSetUnitsAndExtents
+ * @return int
+ */
+ final public function setWKTProjection($proj_params, $bSetUnitsAndExtents) {}
+
+ /**
+ * Zoom to a given XY position. Returns MS_SUCCESS or MS_FAILURE on error.
+ * Parameters are
+ * - Zoom factor : positive values do zoom in, negative values
+ * zoom out. Factor of 1 will recenter.
+ * - Pixel position (pointObj) : x, y coordinates of the click,
+ * with (0,0) at the top-left
+ * - Width : width in pixel of the current image.
+ * - Height : Height in pixel of the current image.
+ * - Georef extent (rectObj) : current georef extents.
+ * - MaxGeoref extent (rectObj) : (optional) maximum georef extents.
+ * If provided then it will be impossible to zoom/pan outside of
+ * those extents.
+ *
+ * @param int $nZoomFactor
+ * @param pointObj $oPixelPos
+ * @param int $nImageWidth
+ * @param int $nImageHeight
+ * @param rectObj $oGeorefExt
+ * @return int
+ */
+ final public function zoomPoint($nZoomFactor, pointObj $oPixelPos, $nImageWidth, $nImageHeight, rectObj $oGeorefExt) {}
+
+ /**
+ * Set the map extents to a given extents. Returns MS_SUCCESS or
+ * MS_FAILURE on error.
+ * Parameters are :
+ * - oPixelExt (rect object) : Pixel Extents
+ * - Width : width in pixel of the current image.
+ * - Height : Height in pixel of the current image.
+ * - Georef extent (rectObj) : current georef extents.
+ *
+ * @param rectObj $oPixelExt
+ * @param int $nImageWidth
+ * @param int $nImageHeight
+ * @param rectObj $oGeorefExt
+ * @return int
+ */
+ final public function zoomRectangle(rectObj $oPixelExt, $nImageWidth, $nImageHeight, rectObj $oGeorefExt) {}
+
+ /**
+ * Zoom in or out to a given XY position so that the map is
+ * displayed at specified scale. Returns MS_SUCCESS or MS_FAILURE on error.
+ * Parameters are :
+ * - ScaleDenom : Scale denominator of the scale at which the map
+ * should be displayed.
+ * - Pixel position (pointObj) : x, y coordinates of the click,
+ * with (0,0) at the top-left
+ * - Width : width in pixel of the current image.
+ * - Height : Height in pixel of the current image.
+ * - Georef extent (rectObj) : current georef extents.
+ * - MaxGeoref extent (rectObj) : (optional) maximum georef extents.
+ * If provided then it will be impossible to zoom/pan outside of
+ * those extents.
+ *
+ * @param float $nScaleDenom
+ * @param pointObj $oPixelPos
+ * @param int $nImageWidth
+ * @param int $nImageHeight
+ * @param rectObj $oGeorefExt
+ * @param rectObj $oMaxGeorefExt
+ * @return int
+ */
+ final public function zoomScale($nScaleDenom, pointObj $oPixelPos, $nImageWidth, $nImageHeight, rectObj $oGeorefExt, rectObj $oMaxGeorefExt) {}
+
+}
+
+/**
+ * Instance of outputformatObj is always embedded inside the `mapObj`_.
+ * It is uses a read only.
+ * No constructor available (coming soon, see ticket 979)
+ */
+final class outputformatObj
+{
+ /**
+ * @var string
+ */
+ public $driver;
+
+ /**
+ * @var string
+ */
+ public $extension;
+
+ /**
+ * MS_IMAGEMODE_* value.
+ *
+ * @var int
+ */
+ public $imagemode;
+
+ /**
+ * @var string
+ */
+ public $mimetype;
+
+ /**
+ * @var string
+ */
+ public $name;
+
+ /**
+ * @var int
+ */
+ public $renderer;
+
+ /**
+ * @var int
+ */
+ public $transparent;
+
+ /**
+ * Returns the associated value for the format option property passed
+ * as argument. Returns an empty string if property not found.
+ *
+ * @param string $property_name
+ * @return string
+ */
+ final public function getOption($property_name) {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Add or Modify the format option list. return true on success.
+ * .. code-block:: php
+ * $oMap->outputformat->setOption("OUTPUT_TYPE", "RASTER");
+ *
+ * @param string $property_name
+ * @param string $new_value
+ * @return void
+ */
+ final public function setOption($property_name, $new_value) {}
+
+ /**
+ * Checks some internal consistency issues, Returns MS_SUCCESS or
+ * MS_FAILURE. Some problems are fixed up internally. May produce debug
+ * output if issues encountered.
+ *
+ * @return int
+ */
+ final public function validate() {}
+
+}
+
+final class OwsrequestObj
+{
+ /**
+ * (read-only)
+ *
+ * @var int
+ */
+ public $numparams;
+
+ /**
+ * (read-only): MS_GET_REQUEST or MS_POST_REQUEST
+ *
+ * @var int
+ */
+ public $type;
+
+ /**
+ * request = ms_newOwsrequestObj();
+ * Create a new ows request object.
+ *
+ */
+ final public function __construct() {}
+
+ /**
+ * Add a request parameter, even if the parameter key was previousely set.
+ * This is useful when multiple parameters with the same key are required.
+ * For example :
+ * .. code-block:: php
+ * $request->addparameter('SIZE', 'x(100)');
+ * $request->addparameter('SIZE', 'y(100)');
+ *
+ * @param string $name
+ * @param string $value
+ * @return int
+ */
+ final public function addParameter($name, $value) {}
+
+ /**
+ * Return the name of the parameter at *index* in the request's array
+ * of parameter names.
+ *
+ * @param int $index
+ * @return string
+ */
+ final public function getName($index) {}
+
+ /**
+ * Return the value of the parameter at *index* in the request's array
+ * of parameter values.
+ *
+ * @param int $index
+ * @return string
+ */
+ final public function getValue($index) {}
+
+ /**
+ * Return the value associated with the parameter *name*.
+ *
+ * @param string $name
+ * @return string
+ */
+ final public function getValueByName($name) {}
+
+ /**
+ * Initializes the OWSRequest object from the cgi environment variables
+ * REQUEST_METHOD, QUERY_STRING and HTTP_COOKIE. Returns the number of
+ * name/value pairs collected.
+ *
+ * @return int
+ */
+ final public function loadParams() {}
+
+ /**
+ * Set a request parameter. For example :
+ * .. code-block:: php
+ * $request->setparameter('REQUEST', 'GetMap');
+ *
+ * @param string $name
+ * @param string $value
+ * @return int
+ */
+ final public function setParameter($name, $value) {}
+
+}
+
+final class pointObj
+{
+ /**
+ * @var float
+ */
+ public $x;
+
+ /**
+ * @var float
+ */
+ public $y;
+
+ /**
+ * used for 3d shape files. set to 0 for other types
+ *
+ * @var float
+ */
+ public $z;
+
+ /**
+ * used only for measured shape files - set to 0 for other types
+ *
+ * @var float
+ */
+ public $m;
+
+ /**
+ *
+ */
+ final public function __construct() {}
+
+ /**
+ * Old style constructor
+ *
+ * @return PointObj
+ */
+ final public function ms_newPointObj() {}
+
+ /**
+ * Calculates distance between a point ad a lined defined by the
+ * two points passed in argument.
+ *
+ * @param pointObj $p1
+ * @param pointObj $p2
+ * @return float
+ */
+ final public function distanceToLine(pointObj $p1, pointObj $p2) {}
+
+ /**
+ * Calculates distance between two points.
+ *
+ * @param pointObj $poPoint
+ * @return float
+ */
+ final public function distanceToPoint(pointObj $poPoint) {}
+
+ /**
+ * Calculates the minimum distance between a point and a shape.
+ *
+ * @param shapeObj $shape
+ * @return float
+ */
+ final public function distanceToShape(shapeObj $shape) {}
+
+ /**
+ * Draws the individual point using layer. The class_index is used
+ * to classify the point based on the classes defined for the layer.
+ * The text string is used to annotate the point. (Optional)
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param mapObj $map
+ * @param layerObj $layer
+ * @param imageObj $img
+ * @param int $class_index
+ * @param string $text
+ * @return int
+ */
+ final public function draw(mapObj $map, layerObj $layer, imageObj $img, $class_index, $text) {}
+
+ /**
+ * Project the point from "in" projection (1st argument) to "out"
+ * projection (2nd argument). Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param projectionObj $in
+ * @param projectionObj $out
+ * @return int
+ */
+ final public function project(projectionObj $in, projectionObj $out) {}
+
+ /**
+ * Set X,Y coordinate values.
+ * .. note::
+ * the 3rd parameter m is used for measured shape files only.
+ * It is not mandatory.
+ *
+ * @param float $x
+ * @param float $y
+ * @param float $m
+ * @return int
+ */
+ final public function setXY($x, $y, $m) {}
+
+ /**
+ * Set X,Y,Z coordinate values.
+ * .. note::
+ * the 4th parameter m is used for measured shape files only.
+ * It is not mandatory.
+ *
+ * @param float $x
+ * @param float $y
+ * @param float $z
+ * @param float $m
+ * @return int
+ */
+ final public function setXYZ($x, $y, $z, $m) {}
+
+}
+
+final class projectionObj
+{
+ /**
+ * Creates a projection object based on the projection string passed
+ * as argument.
+ * $projInObj = ms_newprojectionobj("proj=latlong")
+ * will create a geographic projection class.
+ * The following example will convert a lat/long point to an LCC
+ * projection:
+ * $projInObj = ms_newprojectionobj("proj=latlong");
+ * $projOutObj = ms_newprojectionobj("proj=lcc,ellps=GRS80,lat_0=49,".
+ * "lon_0=-95,lat_1=49,lat_2=77");
+ * $poPoint = ms_newpointobj();
+ * $poPoint->setXY(-92.0, 62.0);
+ * $poPoint->project($projInObj, $projOutObj);
+ *
+ * @param string $projectionString
+ */
+ final public function __construct($projectionString) {}
+
+ /**
+ * Old style constructor
+ *
+ * @param string $projectionString
+ * @return ProjectionObj
+ */
+ final public function ms_newProjectionObj($projectionString) {}
+
+ /**
+ * Returns the units of a projection object. Returns -1 on error.
+ *
+ * @return int
+ */
+ final public function getUnits() {}
+
+}
+
+/**
+ * Instances of querymapObj are always are always embedded inside the
+ * `mapObj`_.
+ */
+final class querymapObj
+{
+ /**
+ * @var colorObj
+ */
+ public $color;
+
+ /**
+ * @var int
+ */
+ public $height;
+
+ /**
+ * @var int
+ */
+ public $width;
+
+ /**
+ * MS_NORMAL, MS_HILITE, MS_SELECTED
+ *
+ * @var int
+ */
+ public $style;
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Update a queryMap object from a string snippet. Returns
+ * MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+/**
+ * rectObj are sometimes embedded inside other objects. New ones can
+ * also be created with:
+ */
+final class rectObj
+{
+ /**
+ * @var float
+ */
+ public $minx;
+
+ /**
+ * @var float
+ */
+ public $miny;
+
+ /**
+ * @var float
+ */
+ public $maxx;
+
+ /**
+ * @var float
+ */
+ public $maxy;
+
+ /**
+ * .. note:: the members (minx, miny, maxx ,maxy) are initialized to -1;
+ *
+ */
+ final public function __construct() {}
+
+ /**
+ * Old style constructor
+ *
+ * @return RectObj
+ */
+ final public function ms_newRectObj() {}
+
+ /**
+ * Draws the individual rectangle using layer. The class_index is used
+ * to classify the rectangle based on the classes defined for the layer.
+ * The text string is used to annotate the rectangle. (Optional)
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param mapObj $map
+ * @param layerObj $layer
+ * @param imageObj $img
+ * @param int $class_index
+ * @param string $text
+ * @return int
+ */
+ final public function draw(mapObj $map, layerObj $layer, imageObj $img, $class_index, $text) {}
+
+ /**
+ * Adjust extents of the rectangle to fit the width/height specified.
+ *
+ * @param int $width
+ * @param int $height
+ * @return float
+ */
+ final public function fit($width, $height) {}
+
+ /**
+ * Project the rectangle from "in" projection (1st argument) to "out"
+ * projection (2nd argument). Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param projectionObj $in
+ * @param projectionObj $out
+ * @return int
+ */
+ final public function project(projectionObj $in, projectionObj $out) {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Set the rectangle extents.
+ *
+ * @param float $minx
+ * @param float $miny
+ * @param float $maxx
+ * @param float $maxy
+ * @return void
+ */
+ final public function setextent($minx, $miny, $maxx, $maxy) {}
+
+}
+
+/**
+ * Instances of referenceMapObj are always embedded inside the `mapObj`_.
+ */
+final class referenceMapObj
+{
+ /**
+ * @var ColorObj
+ */
+ public $color;
+
+ /**
+ * @var int
+ */
+ public $height;
+
+ /**
+ * @var rectObj
+ */
+ public $extent;
+
+ /**
+ * @var string
+ */
+ public $image;
+
+ /**
+ * @var int
+ */
+ public $marker;
+
+ /**
+ * @var string
+ */
+ public $markername;
+
+ /**
+ * @var int
+ */
+ public $markersize;
+
+ /**
+ * @var int
+ */
+ public $maxboxsize;
+
+ /**
+ * @var int
+ */
+ public $minboxsize;
+
+ /**
+ * @var ColorObj
+ */
+ public $outlinecolor;
+
+ /**
+ * @var int
+ */
+ public $status;
+
+ /**
+ * @var int
+ */
+ public $width;
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Update a referenceMap object from a string snippet.
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+final class resultObj
+{
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $classindex;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $resultindex;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $shapeindex;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $tileindex;
+
+ /**
+ * or using the `layerObj`_'s getResult() method.
+ *
+ * @param int $shapeindex
+ */
+ final public function __construct($shapeindex) {}
+
+}
+
+/**
+ * Instances of scalebarObj are always embedded inside the `mapObj`_.
+ */
+final class scalebarObj
+{
+ /**
+ * @var int
+ */
+ public $align;
+
+ /**
+ * @var colorObj
+ */
+ public $backgroundcolor;
+
+ /**
+ * @var colorObj
+ */
+ public $color;
+
+ /**
+ * @var int
+ */
+ public $height;
+
+ /**
+ * @var colorObj
+ */
+ public $imagecolor;
+
+ /**
+ * @var int
+ */
+ public $intervals;
+
+ /**
+ * @var labelObj
+ */
+ public $label;
+
+ /**
+ * @var colorObj
+ */
+ public $outlinecolor;
+
+ /**
+ * for embedded scalebars, MS_UL, MS_UC, ...
+ *
+ * @var int
+ */
+ public $position;
+
+ /**
+ * @var int
+ */
+ public $postlabelcache;
+
+ /**
+ * MS_ON, MS_OFF, MS_EMBED
+ *
+ * @var int
+ */
+ public $status;
+
+ /**
+ * @var int
+ */
+ public $style;
+
+ /**
+ * @var int
+ */
+ public $units;
+
+ /**
+ * @var int
+ */
+ public $width;
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Sets the imagecolor property (baclground) of the object.
+ * Returns MS_SUCCESS or MS_FAILURE on error.
+ *
+ * @param int $red
+ * @param int $green
+ * @param int $blue
+ * @return int
+ */
+ final public function setImageColor($red, $green, $blue) {}
+
+ /**
+ * Update a scalebar from a string snippet. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+final class shapefileObj
+{
+ /**
+ * read-only
+ *
+ * @var rectObj
+ */
+ public $bounds;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numshapes;
+
+ /**
+ * read-only
+ *
+ * @var string
+ */
+ public $source;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $type;
+
+ /**
+ * Opens a shapefile and returns a new object to deal with it. Filename
+ * should be passed with no extension. To create a new file (or
+ * overwrite an existing one), type should be one of MS_SHP_POINT,
+ * MS_SHP_ARC, MS_SHP_POLYGON or MS_SHP_MULTIPOINT. Pass type as -1 to
+ * open an existing file for read-only access, and type=-2 to open an
+ * existing file for update (append).
+ *
+ * @param string $filename
+ * @param int $type
+ */
+ final public function __construct($filename, $type) {}
+
+ /**
+ * Old style constructor
+ *
+ * @param string $filename
+ * @param int $type
+ * @return shapefileObj
+ */
+ final public function ms_newShapefileObj($filename, $type) {}
+
+ /**
+ * Appends a point to an open shapefile.
+ *
+ * @param pointObj $point
+ * @return int
+ */
+ final public function addPoint(pointObj $point) {}
+
+ /**
+ * Appends a shape to an open shapefile.
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function addShape(shapeObj $shape) {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ * .. note::
+ * The shape file is closed (and changes committed) when
+ * the object is destroyed. You can explicitly close and save
+ * the changes by calling $shapefile->free();
+ * unset($shapefile), which will also free the php object.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Retrieve a shape's bounding box by index.
+ *
+ * @param int $i
+ * @return rectObj
+ */
+ final public function getExtent($i) {}
+
+ /**
+ * Retrieve point by index.
+ *
+ * @param int $i
+ * @return shapeObj
+ */
+ final public function getPoint($i) {}
+
+ /**
+ * Retrieve shape by index.
+ *
+ * @param int $i
+ * @return shapeObj
+ */
+ final public function getShape($i) {}
+
+ /**
+ * Retrieve shape by index.
+ *
+ * @param mapObj $map
+ * @param int $i
+ * @return shapeObj
+ */
+ final public function getTransformed(mapObj $map, $i) {}
+
+}
+
+final class shapeObj
+{
+ /**
+ * read-only
+ *
+ * @var rectObj
+ */
+ public $bounds;
+
+ /**
+ * @var int
+ */
+ public $classindex;
+
+ /**
+ * @var int
+ */
+ public $index;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numlines;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numvalues;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $tileindex;
+
+ /**
+ * @var string
+ */
+ public $text;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $type;
+
+ /**
+ * read-only
+ *
+ * @var array
+ */
+ public $values;
+
+ /**
+ * 'type' is one of MS_SHAPE_POINT, MS_SHAPE_LINE, MS_SHAPE_POLYGON or
+ * MS_SHAPE_NULL
+ * Creates new shape object from WKT string.
+ *
+ * @param int $type
+ */
+ final public function __construct($type) {}
+
+ /**
+ * Old style constructor
+ *
+ * @param string $wkt
+ * @return ShapeObj
+ */
+ final public function ms_shapeObjFromWkt($wkt) {}
+
+ /**
+ * Add a line (i.e. a part) to the shape.
+ *
+ * @param lineObj $line
+ * @return int
+ */
+ final public function add(lineObj $line) {}
+
+ /**
+ * Returns the boundary of the shape.
+ * Only available if php/mapscript is built with GEOS library.
+ * shapeObj buffer(width)
+ * Returns a new buffered shapeObj based on the supplied distance (given
+ * in the coordinates of the existing shapeObj).
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @return shapeObj
+ */
+ final public function boundary() {}
+
+ /**
+ * Returns true if shape2 passed as argument is entirely within the shape.
+ * Else return false.
+ * Only available if php/mapscript is built with GEOS
+ * library.
+ *
+ * @param shapeObj $shape2
+ * @return int
+ */
+ final public function containsShape(shapeObj $shape2) {}
+
+ /**
+ * Returns a shape object representing the convex hull of shape.
+ * Only available if php/mapscript is built with GEOS
+ * library.
+ *
+ * @return shapeObj
+ */
+ final public function convexhull() {}
+
+ /**
+ * Returns MS_TRUE if the point is inside the shape, MS_FALSE otherwise.
+ *
+ * @param pointObj $point
+ * @return bool
+ */
+ final public function contains(pointObj $point) {}
+
+ /**
+ * Returns true if the shape passed as argument crosses the shape.
+ * Else return false.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function crosses(shapeObj $shape) {}
+
+ /**
+ * Returns a shape object representing the difference of the
+ * shape object with the one passed as parameter.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return shapeObj
+ */
+ final public function difference(shapeObj $shape) {}
+
+ /**
+ * Returns true if the shape passed as argument is disjoint to the
+ * shape. Else return false.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function disjoint(shapeObj $shape) {}
+
+ /**
+ * Draws the individual shape using layer.
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param mapObj $map
+ * @param layerObj $layer
+ * @param imageObj $img
+ * @return int
+ */
+ final public function draw(mapObj $map, layerObj $layer, imageObj $img) {}
+
+ /**
+ * Returns true if the shape passed as argument is equal to the
+ * shape (geometry only). Else return false.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function equals(shapeObj $shape) {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Returns the area of the shape (if applicable).
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @return float
+ */
+ final public function getArea() {}
+
+ /**
+ * Returns a point object representing the centroid of the shape.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @return pointObj
+ */
+ final public function getCentroid() {}
+
+ /**
+ * Returns a point object with coordinates suitable for labelling
+ * the shape.
+ *
+ * @return pointObj
+ */
+ final public function getLabelPoint() {}
+
+ /**
+ * Returns the length (or perimeter) of the shape.
+ * Only available if php/mapscript is built with GEOS library.
+ * pointObj getMeasureUsingPoint(pointObj point)
+ * Apply only on Measured shape files. Given an XY Location, find the
+ * nearest point on the shape object. Return a point object
+ * of this point with the m value set.
+ *
+ * @return float
+ */
+ final public function getLength() {}
+
+ /**
+ * Apply only on Measured shape files. Given a measure m, retun the
+ * corresponding XY location on the shapeobject.
+ *
+ * @param float $m
+ * @return pointObj
+ */
+ final public function getPointUsingMeasure($m) {}
+
+ /**
+ * Returns the value for a given field name.
+ *
+ * @param layerObj $layer
+ * @param string $filedname
+ * @return string
+ */
+ final public function getValue(layerObj $layer, $filedname) {}
+
+ /**
+ * Returns a shape object representing the intersection of the shape
+ * object with the one passed as parameter.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return shapeObj
+ */
+ final public function intersection(shapeObj $shape) {}
+
+ /**
+ * Returns MS_TRUE if the two shapes intersect, MS_FALSE otherwise.
+ *
+ * @param shapeObj $shape
+ * @return bool
+ */
+ final public function intersects(shapeObj $shape) {}
+
+ /**
+ * Returns a reference to line number i.
+ *
+ * @param int $i
+ * @return LineObj
+ */
+ final public function line($i) {}
+
+ /**
+ * Returns true if the shape passed as argument overlaps the shape.
+ * Else returns false.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function overlaps(shapeObj $shape) {}
+
+ /**
+ * Project the shape from "in" projection (1st argument) to "out"
+ * projection (2nd argument). Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param projectionObj $in
+ * @param projectionObj $out
+ * @return int
+ */
+ final public function project(projectionObj $in, projectionObj $out) {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Updates the bounds property of the shape.
+ * Must be called to calculate new bounding box after new parts have been
+ * added.
+ *
+ * @return int
+ */
+ final public function setBounds() {}
+
+ /**
+ * Given a tolerance, returns a simplified shape object or NULL on
+ * error. Only available if php/mapscript is built with GEOS library
+ * (>=3.0).
+ *
+ * @param float $tolerance
+ * @return shapeObj|null
+ */
+ final public function simplify($tolerance) {}
+
+ /**
+ * Returns the computed symmetric difference of the supplied and
+ * existing shape.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return shapeObj
+ */
+ final public function symdifference(shapeObj $shape) {}
+
+ /**
+ * Given a tolerance, returns a simplified shape object or NULL on
+ * error. Only available if php/mapscript is built with GEOS library
+ * (>=3.0).
+ *
+ * @param float $tolerance
+ * @return shapeObj|null
+ */
+ final public function topologyPreservingSimplify($tolerance) {}
+
+ /**
+ * Returns true if the shape passed as argument touches the shape.
+ * Else return false.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape
+ * @return int
+ */
+ final public function touches(shapeObj $shape) {}
+
+ /**
+ * Returns WKT representation of the shape's geometry.
+ *
+ * @return string
+ */
+ final public function toWkt() {}
+
+ /**
+ * Returns a shape object representing the union of the shape object
+ * with the one passed as parameter.
+ * Only available if php/mapscript is built with GEOS
+ * library
+ *
+ * @param shapeObj $shape
+ * @return shapeObj
+ */
+ final public function union(shapeObj $shape) {}
+
+ /**
+ * Returns true if the shape is entirely within the shape2 passed as
+ * argument.
+ * Else returns false.
+ * Only available if php/mapscript is built with GEOS library.
+ *
+ * @param shapeObj $shape2
+ * @return int
+ */
+ final public function within(shapeObj $shape2) {}
+
+}
+
+/**
+ * Instances of styleObj are always embedded inside a `classObj`_ or `labelObj`_.
+ */
+final class styleObj
+{
+ /**
+ * @var float
+ */
+ public $angle;
+
+ /**
+ * @var int
+ */
+ public $antialias;
+
+ /**
+ * @var colorObj
+ */
+ public $backgroundcolor;
+
+ /**
+ * @var colorObj
+ */
+ public $color;
+
+ /**
+ * @var float
+ */
+ public $maxsize;
+
+ /**
+ * @var float
+ */
+ public $maxvalue;
+
+ /**
+ * @var float
+ */
+ public $maxwidth;
+
+ /**
+ * @var float
+ */
+ public $minsize;
+
+ /**
+ * @var float
+ */
+ public $minvalue;
+
+ /**
+ * @var float
+ */
+ public $minwidth;
+
+ /**
+ * @var int
+ */
+ public $offsetx;
+
+ /**
+ * @var int
+ */
+ public $offsety;
+
+ /**
+ * only supported for the AGG driver
+ *
+ * @var int
+ */
+ public $opacity;
+
+ /**
+ * @var colorObj
+ */
+ public $outlinecolor;
+
+ /**
+ * @var string
+ */
+ public $rangeitem;
+
+ /**
+ * @var float
+ */
+ public $size;
+
+ /**
+ * @var int
+ */
+ public $symbol;
+
+ /**
+ * @var string
+ */
+ public $symbolname;
+
+ /**
+ * @var float
+ */
+ public $width;
+
+ /**
+ * The second argument 'style' is optional. If given, the new style
+ * created will be a copy of the style passed as argument.
+ *
+ * @param labelObj $label
+ * @param styleObj $style
+ */
+ final public function __construct(labelObj $label, styleObj $style) {}
+
+ /**
+ * Old style constructor
+ *
+ * @param classObj $class
+ * @param styleObj $style
+ * @return styleObj
+ */
+ final public function ms_newStyleObj(classObj $class, styleObj $style) {}
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Get the attribute binding for a specfiled style property. Returns
+ * NULL if there is no binding for this property.
+ * .. code-block:: php
+ * $oStyle->setbinding(MS_STYLE_BINDING_COLOR, "FIELD_NAME_COLOR");
+ * echo $oStyle->getbinding(MS_STYLE_BINDING_COLOR); // FIELD_NAME_COLOR
+ *
+ * @param mixed $stylebinding
+ * @return string
+ */
+ final public function getBinding($stylebinding) {}
+
+ /**
+ *
+ * @return string
+ */
+ final public function getGeomTransform() {}
+
+ /**
+ * Remove the attribute binding for a specfiled style property.
+ * Added in MapServer 5.0.
+ * .. code-block:: php
+ * $oStyle->removebinding(MS_STYLE_BINDING_COLOR);
+ *
+ * @param mixed $stylebinding
+ * @return int
+ */
+ final public function removeBinding($stylebinding) {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Set the attribute binding for a specfiled style property.
+ * Added in MapServer 5.0.
+ * .. code-block:: php
+ * $oStyle->setbinding(MS_STYLE_BINDING_COLOR, "FIELD_NAME_COLOR");
+ * This would bind the color parameter with the data (ie will extract
+ * the value of the color from the field called "FIELD_NAME_COLOR"
+ *
+ * @param mixed $stylebinding
+ * @param string $value
+ * @return int
+ */
+ final public function setBinding($stylebinding, $value) {}
+
+ /**
+ *
+ * @param string $value
+ * @return int
+ */
+ final public function setGeomTransform($value) {}
+
+ /**
+ * Update a style from a string snippet. Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
+
+final class symbolObj
+{
+ /**
+ * @var int
+ */
+ public $antialias;
+
+ /**
+ * @var string
+ */
+ public $character;
+
+ /**
+ * @var int
+ */
+ public $filled;
+
+ /**
+ * @var string
+ */
+ public $font;
+
+ /**
+ * read-only
+ *
+ * @var string
+ */
+ public $imagepath;
+
+ /**
+ * If set to TRUE, the symbol will be saved
+ * inside the mapfile.
+ *
+ * @var int
+ */
+ public $inmapfile;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $patternlength;
+
+ /**
+ * @var int
+ */
+ public $position;
+
+ /**
+ * @var string
+ */
+ public $name;
+
+ /**
+ * read-only
+ *
+ * @var int
+ */
+ public $numpoints;
+
+ /**
+ * @var float
+ */
+ public $sizex;
+
+ /**
+ * @var float
+ */
+ public $sizey;
+
+ /**
+ * @var int
+ */
+ public $transparent;
+
+ /**
+ * @var int
+ */
+ public $transparentcolor;
+
+ /**
+ * Creates a new symbol with default values in the symbolist.
+ * .. note::
+ * Using the new constructor, the symbol is automatically returned. The
+ * If a symbol with the same name exists, it (or its id) will be returned.
+ * $nId = ms_newSymbolObj($map, "symbol-test");
+ * $oSymbol = $map->getSymbolObjectById($nId);
+ *
+ * @param mapObj $map
+ * @param string $symbolname
+ */
+ final public function __construct(mapObj $map, $symbolname) {}
+
+ /**
+ * Old style constructor
+ *
+ * @param mapObj $map
+ * @param string $symbolname
+ * @return int
+ */
+ final public function ms_newSymbolObj(mapObj $map, $symbolname) {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Returns an array containing the pattern. If there is no pattern, it
+ * returns an empty array.
+ *
+ * @return array
+ */
+ final public function getPatternArray() {}
+
+ /**
+ * Returns an array containing the points of the symbol. Refer to
+ * setpoints to see how the array should be interpreted. If there are no
+ * points, it returns an empty array.
+ *
+ * @return array
+ */
+ final public function getPointsArray() {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Loads a pixmap symbol specified by the filename.
+ * The file should be of either Gif or Png format.
+ *
+ * @param string $filename
+ * @return int
+ */
+ final public function setImagePath($filename) {}
+
+ /**
+ * Set the pattern of the symbol (used for dash patterns).
+ * Returns MS_SUCCESS/MS_FAILURE.
+ *
+ * @param array $int
+ * @return int
+ */
+ final public function setPattern(array $int) {}
+
+ /**
+ * Set the points of the symbol. Note that the values passed is an
+ * array containing the x and y values of the points. Returns
+ * MS_SUCCESS/MS_FAILURE.
+ * Example:
+ * .. code-block:: php
+ * $array[0] = 1 # x value of the first point
+ * $array[1] = 0 # y values of the first point
+ * $array[2] = 1 # x value of the 2nd point
+ * ....
+ *
+ * @param array $double
+ * @return int
+ */
+ final public function setPoints(array $double) {}
+
+}
+
+/**
+ * Instances of webObj are always are always embedded inside the `mapObj`_.
+ */
+final class webObj
+{
+ /**
+ * @var string
+ */
+ public $browseformat;
+
+ /**
+ * read-only
+ *
+ * @var string
+ */
+ public $empty;
+
+ /**
+ * read-only
+ *
+ * @var string
+ */
+ public $error;
+
+ /**
+ * read-only
+ *
+ * @var rectObj
+ */
+ public $extent;
+
+ /**
+ * @var string
+ */
+ public $footer;
+
+ /**
+ * @var string
+ */
+ public $header;
+
+ /**
+ * @var string
+ */
+ public $imagepath;
+
+ /**
+ * @var string
+ */
+ public $imageurl;
+
+ /**
+ * @var string
+ */
+ public $legendformat;
+
+ /**
+ * @var string
+ */
+ public $log;
+
+ /**
+ * @var float
+ */
+ public $maxscaledenom;
+
+ /**
+ * @var string
+ */
+ public $maxtemplate;
+
+ /**
+ * @var hashTableObj
+ */
+ public $metadata;
+
+ /**
+ * @var float
+ */
+ public $minscaledenom;
+
+ /**
+ * @var string
+ */
+ public $mintemplate;
+
+ /**
+ * @var string
+ */
+ public $queryformat;
+
+ /**
+ * @var string
+ */
+ public $template;
+
+ /**
+ * @var string
+ */
+ public $temppath;
+
+ /**
+ * Saves the object to a string. Provides the inverse option for
+ * updateFromString.
+ *
+ * @return string
+ */
+ final public function convertToString() {}
+
+ /**
+ * Free the object properties and break the internal references.
+ * Note that you have to unset the php variable to free totally the
+ * resources.
+ *
+ * @return void
+ */
+ final public function free() {}
+
+ /**
+ * Set object property to a new value.
+ *
+ * @param string $property_name
+ * @param $new_value
+ * @return int
+ */
+ final public function set($property_name, $new_value) {}
+
+ /**
+ * Update a web object from a string snippet. Returns
+ * MS_SUCCESS/MS_FAILURE.
+ *
+ * @param string $snippet
+ * @return int
+ */
+ final public function updateFromString($snippet) {}
+
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/mbstring/mbstring.php b/vendor/jetbrains/phpstorm-stubs/mbstring/mbstring.php
new file mode 100644
index 0000000000..9e2caf3658
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mbstring/mbstring.php
@@ -0,0 +1,1506 @@
+
+ * The string being converted.
+ *
+ * @param int $mode
+ * The mode of the conversion. It can be one of
+ * MB_CASE_UPPER,
+ * MB_CASE_LOWER, or
+ * MB_CASE_TITLE.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return string A case folded version of string converted in the
+ * way specified by mode.
+ */
+#[Pure]
+function mb_convert_case (string $string, int $mode, ?string $encoding): string
+{}
+
+/**
+ * Make a string uppercase
+ * @link https://php.net/manual/en/function.mb-strtoupper.php
+ * @param string $string
+ * The string being uppercased.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return string str with all alphabetic characters converted to uppercase.
+ */
+#[Pure]
+function mb_strtoupper (string $string, ?string $encoding): string
+{}
+
+/**
+ * Make a string lowercase
+ * @link https://php.net/manual/en/function.mb-strtolower.php
+ * @param string $string
+ * The string being lowercased.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return string str with all alphabetic characters converted to lowercase.
+ */
+#[Pure]
+function mb_strtolower (string $string, ?string $encoding): string
+{}
+
+/**
+ * Set/Get current language
+ * @link https://php.net/manual/en/function.mb-language.php
+ * @param string|null $language [optional]
+ * Used for encoding
+ * e-mail messages. Valid languages are "Japanese",
+ * "ja","English","en" and "uni"
+ * (UTF-8). mb_send_mail uses this setting to
+ * encode e-mail.
+ *
+ *
+ * Language and its setting is ISO-2022-JP/Base64 for
+ * Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for
+ * English.
+ *
+ * @return bool|string If language is set and
+ * language is valid, it returns
+ * true. Otherwise, it returns false.
+ * When language is omitted, it returns the language
+ * name as a string. If no language is set previously, it then returns
+ * false.
+ */
+function mb_language (?string $language): string|bool
+{}
+
+/**
+ * Set/Get internal character encoding
+ * @link https://php.net/manual/en/function.mb-internal-encoding.php
+ * @param string|null $encoding [optional]
+ * encoding is the character encoding name
+ * used for the HTTP input character encoding conversion, HTTP output
+ * character encoding conversion, and the default character encoding
+ * for string functions defined by the mbstring module.
+ *
+ * @return bool|string If encoding is set, then
+ * true on success or false on failure.
+ * If encoding is omitted, then
+ * the current character encoding name is returned.
+ */
+function mb_internal_encoding (?string $encoding): string|bool
+{}
+
+/**
+ * Detect HTTP input character encoding
+ * @link https://php.net/manual/en/function.mb-http-input.php
+ * @param string|null $type [optional]
+ * Input string specifies the input type.
+ * "G" for GET, "P" for POST, "C" for COOKIE, "S" for string, "L" for list, and
+ * "I" for the whole list (will return array).
+ * If type is omitted, it returns the last input type processed.
+ *
+ * @return array|false|string The character encoding name, as per the type.
+ * If mb_http_input does not process specified
+ * HTTP input, it returns false.
+ */
+#[Pure]
+function mb_http_input (?string $type): array|string|false
+{}
+
+/**
+ * Set/Get HTTP output character encoding
+ * @link https://php.net/manual/en/function.mb-http-output.php
+ * @param string|null $encoding [optional]
+ * If encoding is set,
+ * mb_http_output sets the HTTP output character
+ * encoding to encoding.
+ *
+ *
+ * If encoding is omitted,
+ * mb_http_output returns the current HTTP output
+ * character encoding.
+ *
+ * @return bool|string If encoding is omitted,
+ * mb_http_output returns the current HTTP output
+ * character encoding. Otherwise,
+ * true on success or false on failure.
+ */
+function mb_http_output (?string $encoding): string|bool
+{}
+
+/**
+ * Set/Get character encoding detection order
+ * @link https://php.net/manual/en/function.mb-detect-order.php
+ * @param array|string|null $encoding [optional]
+ * encoding_list is an array or
+ * comma separated list of character encoding. ("auto" is expanded to
+ * "ASCII, JIS, UTF-8, EUC-JP, SJIS")
+ *
+ *
+ * If encoding_list is omitted, it returns
+ * the current character encoding detection order as array.
+ *
+ *
+ * This setting affects mb_detect_encoding and
+ * mb_send_mail.
+ *
+ *
+ * mbstring currently implements the following
+ * encoding detection filters. If there is an invalid byte sequence
+ * for the following encodings, encoding detection will fail.
+ *
+ * For ISO-8859-*, mbstring
+ * always detects as ISO-8859-*.
+ *
+ *
+ * For UTF-16, UTF-32,
+ * UCS2 and UCS4, encoding
+ * detection will fail always.
+ *
+ *
+ * Useless detect order example
+ *
+ * @return bool|string[] When setting the encoding detection order,
+ * true is returned on success or FALSE on failure.
+ * When getting the encoding detection order, an ordered array
+ * of the encodings is returned.
+ */
+function mb_detect_order (array|string $encoding = null): array|bool
+{}
+
+/**
+ * Set/Get substitution character
+ * @link https://php.net/manual/en/function.mb-substitute-character.php
+ * @param int|string $substitute_character [optional]
+ * Specify the Unicode value as an integer,
+ * or as one of the following strings:
+ *
"none" : no output
+ *
"long": Output character code value (Example: U+3000, JIS+7E7E)
+ *
"entity": Output character entity (Example: Ȁ)
+ * @return bool|int|string If substchar is set, it returns true for success,
+ * otherwise returns false.
+ * If substchar is not set, it returns the Unicode value,
+ * or "none" or "long".
+ */
+function mb_substitute_character (string|int $substitute_character = null): string|int|bool
+{}
+
+#[PhpStormStubsElementAvailable(to: '7.4')]
+/**
+ * Parse GET/POST/COOKIE data and set global variable
+ * @link https://php.net/manual/en/function.mb-parse-str.php
+ * @param string $string
+ * The URL encoded data.
+ *
+ * @param array &$result [optional]
+ * An array containing decoded and character encoded converted values.
+ *
+ * @return bool true on success or false on failure.
+ */
+function mb_parse_str (string $string, &$result): bool
+{}
+
+#[PhpStormStubsElementAvailable('8.0')]
+/**
+ * Parse GET/POST/COOKIE data and set global variable
+ * @link https://php.net/manual/en/function.mb-parse-str.php
+ * @param string $string
+ * The URL encoded data.
+ *
+ * @param array &$result
+ * An array containing decoded and character encoded converted values.
+ *
+ * @return bool true on success or false on failure.
+ */
+function mb_parse_str (string $string, &$result): bool
+{}
+
+/**
+ * Callback function converts character encoding in output buffer
+ * @link https://php.net/manual/en/function.mb-output-handler.php
+ * @param string $string
+ * @return string|false The MIME charset string for character encoding
+ * encoding.
+ */
+#[Pure]
+function mb_preferred_mime_name (string $encoding): string|false
+{}
+
+/**
+ * Get string length
+ * @link https://php.net/manual/en/function.mb-strlen.php
+ * @param string $string
+ * The string being checked for length.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return int the number of characters in
+ * string str having character encoding
+ * encoding. A multi-byte character is
+ * counted as 1.
+ */
+#[Pure]
+function mb_strlen (string $string, ?string $encoding): int
+{}
+
+/**
+ * Find position of first occurrence of string in a string
+ * @link https://php.net/manual/en/function.mb-strpos.php
+ * @param string $haystack
+ * The string being checked.
+ *
+ * @param string $needle
+ * The position counted from the beginning of haystack.
+ *
+ * @param int $offset [optional]
+ * The search offset. If it is not specified, 0 is used.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return int|false the numeric position of
+ * the first occurrence of needle in the
+ * haystack string. If
+ * needle is not found, it returns false.
+ */
+#[Pure]
+function mb_strpos (string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false
+{}
+
+/**
+ * Find position of last occurrence of a string in a string
+ * @link https://php.net/manual/en/function.mb-strrpos.php
+ * @param string $haystack
+ * The string being checked, for the last occurrence
+ * of needle
+ *
+ * @param string $needle
+ * The string to find in haystack.
+ *
+ * @param int $offset [optional] May be specified to begin searching an arbitrary number of characters into
+ * the string. Negative values will stop searching at an arbitrary point
+ * prior to the end of the string.
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return int|false the numeric position of
+ * the last occurrence of needle in the
+ * haystack string. If
+ * needle is not found, it returns false.
+ */
+#[Pure]
+function mb_strrpos (string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false
+{}
+
+/**
+ * Finds position of first occurrence of a string within another, case insensitive
+ * @link https://php.net/manual/en/function.mb-stripos.php
+ * @param string $haystack
+ * The string from which to get the position of the first occurrence
+ * of needle
+ *
+ * @param string $needle
+ * The string to find in haystack
+ *
+ * @param int $offset [optional]
+ * The position in haystack
+ * to start searching
+ *
+ * @param string|null $encoding [optional]
+ * Character encoding name to use.
+ * If it is omitted, internal character encoding is used.
+ *
+ * @return int|false Return the numeric position of the first occurrence of
+ * needle in the haystack
+ * string, or false if needle is not found.
+ */
+#[Pure]
+function mb_stripos (string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false
+{}
+
+/**
+ * Finds position of last occurrence of a string within another, case insensitive
+ * @link https://php.net/manual/en/function.mb-strripos.php
+ * @param string $haystack
+ * The string from which to get the position of the last occurrence
+ * of needle
+ *
+ * @param string $needle
+ * The string to find in haystack
+ *
+ * @param int $offset [optional]
+ * The position in haystack
+ * to start searching
+ *
+ * @param string|null $encoding [optional]
+ * Character encoding name to use.
+ * If it is omitted, internal character encoding is used.
+ *
+ * @return int|false Return the numeric position of
+ * the last occurrence of needle in the
+ * haystack string, or false
+ * if needle is not found.
+ */
+#[Pure]
+function mb_strripos (string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false
+{}
+
+/**
+ * Finds first occurrence of a string within another
+ * @link https://php.net/manual/en/function.mb-strstr.php
+ * @param string $haystack
+ * The string from which to get the first occurrence
+ * of needle
+ *
+ * @param string $needle
+ * The string to find in haystack
+ *
+ * @param bool $before_needle [optional]
+ * Determines which portion of haystack
+ * this function returns.
+ * If set to true, it returns all of haystack
+ * from the beginning to the first occurrence of needle.
+ * If set to false, it returns all of haystack
+ * from the first occurrence of needle to the end,
+ *
+ * @param string|null $encoding [optional]
+ * Character encoding name to use.
+ * If it is omitted, internal character encoding is used.
+ *
+ * @return string|false the portion of haystack,
+ * or false if needle is not found.
+ */
+#[Pure]
+function mb_strstr (string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false
+{}
+
+/**
+ * Finds the last occurrence of a character in a string within another
+ * @link https://php.net/manual/en/function.mb-strrchr.php
+ * @param string $haystack
+ * The string from which to get the last occurrence
+ * of needle
+ *
+ * @param string $needle
+ * The string to find in haystack
+ *
+ * @param bool $before_needle [optional]
+ * Determines which portion of haystack
+ * this function returns.
+ * If set to true, it returns all of haystack
+ * from the beginning to the last occurrence of needle.
+ * If set to false, it returns all of haystack
+ * from the last occurrence of needle to the end,
+ *
+ * @param string|null $encoding [optional]
+ * Character encoding name to use.
+ * If it is omitted, internal character encoding is used.
+ *
+ * @return string|false the portion of haystack.
+ * or false if needle is not found.
+ */
+#[Pure]
+function mb_strrchr (string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false
+{}
+
+/**
+ * Finds first occurrence of a string within another, case insensitive
+ * @link https://php.net/manual/en/function.mb-stristr.php
+ * @param string $haystack
+ * The string from which to get the first occurrence
+ * of needle
+ *
+ * @param string $needle
+ * The string to find in haystack
+ *
+ * @param bool $before_needle [optional]
+ * Determines which portion of haystack
+ * this function returns.
+ * If set to true, it returns all of haystack
+ * from the beginning to the first occurrence of needle.
+ * If set to false, it returns all of haystack
+ * from the first occurrence of needle to the end,
+ *
+ * @param string|null $encoding [optional]
+ * Character encoding name to use.
+ * If it is omitted, internal character encoding is used.
+ *
+ * @return string|false the portion of haystack,
+ * or false if needle is not found.
+ */
+#[Pure]
+function mb_stristr (string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false
+{}
+
+/**
+ * Finds the last occurrence of a character in a string within another, case insensitive
+ * @link https://php.net/manual/en/function.mb-strrichr.php
+ * @param string $haystack
+ * The string from which to get the last occurrence
+ * of needle
+ *
+ * @param string $needle
+ * The string to find in haystack
+ *
+ * @param bool $before_needle [optional]
+ * Determines which portion of haystack
+ * this function returns.
+ * If set to true, it returns all of haystack
+ * from the beginning to the last occurrence of needle.
+ * If set to false, it returns all of haystack
+ * from the last occurrence of needle to the end,
+ *
+ * @param string|null $encoding [optional]
+ * Character encoding name to use.
+ * If it is omitted, internal character encoding is used.
+ *
+ * @return string|false the portion of haystack.
+ * or false if needle is not found.
+ */
+#[Pure]
+function mb_strrichr (string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false
+{}
+
+/**
+ * Count the number of substring occurrences
+ * @link https://php.net/manual/en/function.mb-substr-count.php
+ * @param string $haystack
+ * The string being checked.
+ *
+ * @param string $needle
+ * The string being found.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return int The number of times the
+ * needle substring occurs in the
+ * haystack string.
+ */
+#[Pure]
+function mb_substr_count (string $haystack, string $needle, ?string $encoding): int
+{}
+
+/**
+ * Get part of string
+ * @link https://php.net/manual/en/function.mb-substr.php
+ * @param string $string
+ * The string being checked.
+ *
+ * @param int $start
+ * The first position used in str.
+ *
+ * @param int|null $length [optional]
+ * The maximum length of the returned string.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return string mb_substr returns the portion of
+ * str specified by the
+ * start and
+ * length parameters.
+ */
+#[Pure]
+function mb_substr (string $string, int $start, ?int $length, ?string $encoding): string
+{}
+
+/**
+ * Get part of string
+ * @link https://php.net/manual/en/function.mb-strcut.php
+ * @param string $string
+ * The string being cut.
+ *
+ * @param int $start
+ * The position that begins the cut.
+ *
+ * @param int|null $length [optional]
+ * The string being decoded.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return string mb_strcut returns the portion of
+ * str specified by the
+ * start and
+ * length parameters.
+ */
+#[Pure]
+function mb_strcut (string $string, int $start, ?int $length, ?string $encoding): string
+{}
+
+/**
+ * Return width of string
+ * @link https://php.net/manual/en/function.mb-strwidth.php
+ * @param string $string
+ * The string being decoded.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return int The width of string str.
+ */
+#[Pure]
+function mb_strwidth (string $string, ?string $encoding): int
+{}
+
+/**
+ * Get truncated string with specified width
+ * @link https://php.net/manual/en/function.mb-strimwidth.php
+ * @param string $string
+ * The string being decoded.
+ *
+ * @param int $start
+ * The start position offset. Number of
+ * characters from the beginning of string. (First character is 0)
+ *
+ * @param int $width
+ * The width of the desired trim.
+ *
+ * @param string $trim_marker [optional]
+ * A string that is added to the end of string
+ * when string is truncated.
+ *
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return string The truncated string. If trimmarker is set,
+ * trimmarker is appended to the return value.
+ */
+#[Pure]
+function mb_strimwidth (string $string, int $start, int $width, string $trim_marker, ?string $encoding): string
+{}
+
+/**
+ * Convert character encoding
+ * @link https://php.net/manual/en/function.mb-convert-encoding.php
+ * @param string|array $string
+ * The string being encoded.
+ *
+ * @param string $to_encoding
+ * The type of encoding that str is being converted to.
+ *
+ * Is specified by character code names before conversion. It is either
+ * an array, or a comma separated enumerated list.
+ * If from_encoding is not specified, the internal
+ * encoding will be used.
+ *
+ *
+ * "auto" may be used, which expands to
+ * "ASCII,JIS,UTF-8,EUC-JP,SJIS".
+ *
+ * encoding_list is list of character
+ * encoding. Encoding order may be specified by array or comma
+ * separated list string.
+ *
+ *
+ * If encoding_list is omitted,
+ * detect_order is used.
+ *
+ * @param bool $strict [optional]
+ * strict specifies whether to use
+ * the strict encoding detection or not.
+ * Default is false.
+ *
+ * @return string|false The detected character encoding or false if the encoding cannot be
+ * detected from the given string.
+ */
+#[Pure]
+function mb_detect_encoding (string $string, array|string $encodings = null, bool $strict = false): string|false
+{}
+
+/**
+ * Returns an array of all supported encodings
+ * @link https://php.net/manual/en/function.mb-list-encodings.php
+ * @return string[] a numerically indexed array.
+ */
+#[Pure]
+function mb_list_encodings (): array
+{}
+
+/**
+ * Get aliases of a known encoding type
+ * @param string $encoding The encoding type being checked, for aliases.
+ * @return string[]|false a numerically indexed array of encoding aliases on success, or FALSE on failure
+ * @link https://php.net/manual/en/function.mb-encoding-aliases.php
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function mb_encoding_aliases (string $encoding)
+{}
+
+/**
+ * Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
+ * @link https://php.net/manual/en/function.mb-convert-kana.php
+ * @param string $string
+ * The string being converted.
+ *
+ * @param string $mode [optional]
+ * The conversion option.
+ *
+ *
+ * Specify with a combination of following options.
+ *
+ * Applicable Conversion Options
+ *
+ *
Option
+ *
Meaning
+ *
+ *
+ *
r
+ *
+ * Convert "zen-kaku" alphabets to "han-kaku"
+ *
+ *
+ *
+ *
R
+ *
+ * Convert "han-kaku" alphabets to "zen-kaku"
+ *
+ *
+ *
+ *
n
+ *
+ * Convert "zen-kaku" numbers to "han-kaku"
+ *
+ *
+ *
+ *
N
+ *
+ * Convert "han-kaku" numbers to "zen-kaku"
+ *
+ *
+ *
+ *
a
+ *
+ * Convert "zen-kaku" alphabets and numbers to "han-kaku"
+ *
+ *
+ *
+ *
A
+ *
+ * Convert "han-kaku" alphabets and numbers to "zen-kaku"
+ * (Characters included in "a", "A" options are
+ * U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
+ *
+ *
+ *
+ *
s
+ *
+ * Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
+ *
+ *
+ *
+ *
S
+ *
+ * Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
+ *
+ *
+ *
+ *
k
+ *
+ * Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
+ *
+ *
+ *
+ *
K
+ *
+ * Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
+ *
+ *
+ *
+ *
h
+ *
+ * Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
+ *
+ *
+ *
+ *
H
+ *
+ * Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
+ *
+ *
+ *
+ *
c
+ *
+ * Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
+ *
+ *
+ *
+ *
C
+ *
+ * Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
+ *
+ *
+ *
+ *
V
+ *
+ * Collapse voiced sound notation and convert them into a character. Use with "K","H"
+ *
+ * charset specifies the name of the character set
+ * in which str is represented in. The default value
+ * is determined by the current NLS setting (mbstring.language).
+ * mb_internal_encoding should be set to same encoding.
+ *
+ * transfer_encoding specifies the scheme of MIME
+ * encoding. It should be either "B" (Base64) or
+ * "Q" (Quoted-Printable). Falls back to
+ * "B" if not given.
+ *
+ * @param string $newline [optional]
+ * linefeed specifies the EOL (end-of-line) marker
+ * with which mb_encode_mimeheader performs
+ * line-folding (a RFC term,
+ * the act of breaking a line longer than a certain length into multiple
+ * lines. The length is currently hard-coded to 74 characters).
+ * Falls back to "\r\n" (CRLF) if not given.
+ *
+ * @param int $indent [optional]
+ * Indentation of the first line (number of characters in the header
+ * before str).
+ *
+ * @return string A converted version of the string represented in ASCII.
+ */
+#[Pure]
+function mb_encode_mimeheader (string $string, ?string $charset, ?string $transfer_encoding, string $newline, int $indent): string
+{}
+
+/**
+ * Decode string in MIME header field
+ * @link https://php.net/manual/en/function.mb-decode-mimeheader.php
+ * @param string $string
+ * The string being decoded.
+ *
+ * @return string The decoded string in internal character encoding.
+ */
+#[Pure]
+function mb_decode_mimeheader (string $string): string
+{}
+
+/**
+ * Convert character code in variable(s)
+ * @link https://php.net/manual/en/function.mb-convert-variables.php
+ * @param string $to_encoding
+ * The encoding that the string is being converted to.
+ *
+ * @param string|string[] $from_encoding
+ * from_encoding is specified as an array
+ * or comma separated string, it tries to detect encoding from
+ * from-coding. When from_encoding
+ * is omitted, detect_order is used.
+ *
+ * @param string|array|object &$var var is the reference to the variable being converted.
+ * @param string|array|object &...$vars
+ * vars is the other references to the
+ * variables being converted. String, Array and Object are accepted.
+ * mb_convert_variables assumes all parameters
+ * have the same encoding.
+ *
+ * @return string|false The character encoding before conversion for success,
+ * or false for failure.
+ */
+function mb_convert_variables (string $to_encoding, array|string $from_encoding, mixed &$var, mixed &...$vars): string|false
+{}
+
+/**
+ * Encode character to HTML numeric string reference
+ * @link https://php.net/manual/en/function.mb-encode-numericentity.php
+ * @param string $string
+ * The string being encoded.
+ *
+ * @param int[] $map
+ * convmap is array specifies code area to
+ * convert.
+ *
+ * The mail addresses being sent to. Multiple
+ * recipients may be specified by putting a comma between each
+ * address in to.
+ * This parameter is not automatically encoded.
+ *
+ * String or array to be inserted at the end of the email header.
+ * Since 7.2.0 accepts an array. Its keys are the header names and its values are the respective header values.
+ * This is typically used to add extra
+ * headers. Multiple extra headers are separated with a
+ * newline ("\n").
+ *
+ * additional_parameter is a MTA command line
+ * parameter. It is useful when setting the correct Return-Path
+ * header when using sendmail.
+ *
+ * @return bool true on success or false on failure.
+ */
+function mb_send_mail (string $to, string $subject, string $message, array|string $additional_headers, ?string $additional_params): bool
+{}
+
+/**
+ * Get internal settings of mbstring
+ * @link https://php.net/manual/en/function.mb-get-info.php
+ * @param string $type [optional]
+ * If type isn't specified or is specified to
+ * "all", an array having the elements "internal_encoding",
+ * "http_output", "http_input", "func_overload", "mail_charset",
+ * "mail_header_encoding", "mail_body_encoding" will be returned.
+ *
+ *
+ * If type is specified as "http_output",
+ * "http_input", "internal_encoding", "func_overload",
+ * the specified setting parameter will be returned.
+ *
+ * @return array|string|int|false An array of type information if type
+ * is not specified, otherwise a specific type.
+ */
+#[Pure]
+function mb_get_info (string $type): array|string|int|false
+{}
+
+/**
+ * Check if the string is valid for the specified encoding
+ * @link https://php.net/manual/en/function.mb-check-encoding.php
+ * @param string|array $value [optional]
+ * The byte stream to check. If it is omitted, this function checks
+ * all the input from the beginning of the request.
+ *
+ * @param string|null $encoding [optional]
+ * The expected encoding.
+ *
+ * @return bool true on success or false on failure.
+ * @since 5.1.3
+ */
+#[Pure]
+function mb_check_encoding (array|string $value = null, ?string $encoding): bool
+{}
+
+/**
+ * Returns current encoding for multibyte regex as string
+ * @link https://php.net/manual/en/function.mb-regex-encoding.php
+ * @param string|null $encoding [optional] &mbstring.encoding.parameter;
+ * @return bool|string If encoding is set, then Returns TRUE on success
+ * or FALSE on failure. In this case, the internal character encoding
+ * is NOT changed. If encoding is omitted, then the current character
+ * encoding name for a multibyte regex is returned.
+ */
+function mb_regex_encoding (?string $encoding): string|bool
+{}
+
+/**
+ * Set/Get the default options for mbregex functions
+ * @link https://php.net/manual/en/function.mb-regex-set-options.php
+ * @param string|null $options [optional]
+ * The options to set.
+ *
+ * @return string The previous options. If options is omitted,
+ * it returns the string that describes the current options.
+ */
+function mb_regex_set_options (?string $options): string
+{}
+
+/**
+ * Regular expression match with multibyte support
+ * @link https://php.net/manual/en/function.mb-ereg.php
+ * @param string $pattern
+ * The search pattern.
+ *
+ * @param string $string
+ * The search string.
+ *
+ * @param string[] &$matches [optional]
+ * Contains a substring of the matched string.
+ *
+ * @return bool
+ */
+function mb_ereg (string $pattern, string $string, &$matches): bool
+{}
+
+/**
+ * Regular expression match ignoring case with multibyte support
+ * @link https://php.net/manual/en/function.mb-eregi.php
+ * @param string $pattern
+ * The regular expression pattern.
+ *
+ * @param string $string
+ * The string being searched.
+ *
+ * @param string[] &$matches [optional]
+ * Contains a substring of the matched string.
+ *
+ * Multibyte characters may be used in pattern.
+ *
+ * @param string $replacement
+ * The replacement text.
+ *
+ * @param string $string
+ * The string being checked.
+ *
+ * @param string|null $options [optional] Matching condition can be set by option
+ * parameter. If i is specified for this
+ * parameter, the case will be ignored. If x is
+ * specified, white space will be ignored. If m
+ * is specified, match will be executed in multiline mode and line
+ * break will be included in '.'. If p is
+ * specified, match will be executed in POSIX mode, line break
+ * will be considered as normal character. If e
+ * is specified, replacement string will be
+ * evaluated as PHP expression.
+ *
PHP 7.1: The e modifier has been deprecated.
+ * @return string|false|null The resultant string on success, or false on error.
+ */
+#[Pure]
+function mb_ereg_replace (string $pattern, string $replacement, string $string, ?string $options = "msr"): string|false|null
+{}
+
+/**
+ * Perform a regular expresssion seach and replace with multibyte support using a callback
+ * @link https://secure.php.net/manual/en/function.mb-ereg-replace-callback.php
+ * @param string $pattern
+ * The regular expression pattern.
+ *
+ *
+ * Multibyte characters may be used in pattern.
+ *
+ * @param callable $callback
+ * A callback that will be called and passed an array of matched elements
+ * in the subject string. The callback should
+ * return the replacement string.
+ *
+ *
+ * You'll often need the callback function
+ * for a mb_ereg_replace_callback() in just one place.
+ * In this case you can use an anonymous function to
+ * declare the callback within the call to
+ * mb_ereg_replace_callback(). By doing it this way
+ * you have all information for the call in one place and do not
+ * clutter the function namespace with a callback function's name
+ * not used anywhere else.
+ *
+ * @param string $string
+ * The string being checked.
+ *
+ * @param string $options [optional
+ * Matching condition can be set by option
+ * parameter. If i is specified for this
+ * parameter, the case will be ignored. If x is
+ * specified, white space will be ignored. If m
+ * is specified, match will be executed in multiline mode and line
+ * break will be included in '.'. If p is
+ * specified, match will be executed in POSIX mode, line break
+ * will be considered as normal character. Note that e
+ * cannot be used for mb_ereg_replace_callback().
+ *
+ * @return string|false|null
+ * The resultant string on success, or FALSE on error.
+ *
+ * @param int $limit [optional] If optional parameter limit is specified,
+ * it will be split in limit elements as
+ * maximum.
+ * @return string[]|false The result as an array.
+ */
+#[Pure]
+function mb_split (string $pattern, string $string, int $limit): array|false
+{}
+
+/**
+ * Regular expression match for multibyte string
+ * @link https://php.net/manual/en/function.mb-ereg-match.php
+ * @param string $pattern
+ * @return bool
+ */
+#[Pure]
+function mb_ereg_search (?string $pattern, ?string $options): bool
+{}
+
+/**
+ * Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string
+ * @link https://php.net/manual/en/function.mb-ereg-search-pos.php
+ * @param string|null $pattern [optional]
+ * The search pattern.
+ *
+ * @param string|null $options [optional]
+ * The search option.
+ *
+ * @return int[]|false An array containing two elements. The first
+ * element is the offset, in bytes, where the match begins relative
+ * to the start of the search string, and the second element is the
+ * length in bytes of the match. If an error occurs, FALSE is returned.
+ */
+#[Pure]
+function mb_ereg_search_pos (?string $pattern, ?string $options): array|false
+{}
+
+/**
+ * Returns the matched part of a multibyte regular expression
+ * @link https://php.net/manual/en/function.mb-ereg-search-regs.php
+ * @param string|null $pattern [optional]
+ * The search pattern.
+ *
+ * @param string|null $options [optional]
+ * The search option.
+ *
+ * @return string[]|false mb_ereg_search_regs() executes the multibyte
+ * regular expression match, and if there are some matched part, it
+ * returns an array including substring of matched part as first element,
+ * the first grouped part with brackets as second element, the second grouped
+ * part as third element, and so on. It returns FALSE on error.
+ */
+#[Pure]
+function mb_ereg_search_regs (?string $pattern, ?string $options): array|false
+{}
+
+/**
+ * Setup string and regular expression for a multibyte regular expression match
+ * @link https://php.net/manual/en/function.mb-ereg-search-init.php
+ * @param string $string
+ * The search string.
+ *
+ * @param string|null $pattern [optional]
+ * The search pattern.
+ *
+ * @param string|null $options [optional]
+ * The search option.
+ *
+ * @return bool
+ */
+function mb_ereg_search_init (string $string, ?string $pattern, ?string $options): bool
+{}
+
+/**
+ * Retrieve the result from the last multibyte regular expression match
+ * @link https://php.net/manual/en/function.mb-ereg-search-getregs.php
+ * @return string[]|false An array including the sub-string of matched
+ * part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs().
+ * If there are some matches, the first element will have the matched
+ * sub-string, the second element will have the first part grouped with
+ * brackets, the third element will have the second part grouped with
+ * brackets, and so on. It returns FALSE on error;
+ */
+#[Pure]
+function mb_ereg_search_getregs (): array|false
+{}
+
+/**
+ * Returns start point for next regular expression match
+ * @link https://php.net/manual/en/function.mb-ereg-search-getpos.php
+ * @return int
+ */
+#[Pure]
+#[Deprecated(since: '7.3')]
+function mb_ereg_search_getpos (): int
+{}
+
+/**
+ * Set start point of next regular expression match
+ * @link https://php.net/manual/en/function.mb-ereg-search-setpos.php
+ * @param int $offset
+ * One of the MCRYPT_MODE_modename constants, or one of the following strings: "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
+ * @return int Gets the block size, as an integer.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_get_block_size ($cipher, $mode) {}
+
+/**
+ * Get the name of the specified cipher
+ * @link https://php.net/manual/en/function.mcrypt-get-cipher-name.php
+ * @param int|string $cipher
+ * One of the MCRYPT_ciphername constants or the name
+ * of the algorithm as string.
+ *
+ * @return string|false This function returns the name of the cipher or false, if the cipher does
+ * not exist.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_get_cipher_name ($cipher) {}
+
+/**
+ * Creates an initialization vector (IV) from a random source
+ * @link https://php.net/manual/en/function.mcrypt-create-iv.php
+ * @param int $size
+ * Determines the size of the IV, parameter source
+ * (defaults to random value) specifies the source of the IV.
+ *
+ * @param int $source [optional]
+ * The source can be MCRYPT_RAND (system random
+ * number generator), MCRYPT_DEV_RANDOM (read
+ * data from /dev/random) and
+ * MCRYPT_DEV_URANDOM (read data from
+ * /dev/urandom). MCRYPT_RAND
+ * is the only one supported on Windows because Windows (of course)
+ * doesn't have /dev/random or
+ * /dev/urandom.
+ *
+ *
+ * When using MCRYPT_RAND, remember to call
+ * srand before
+ * mcrypt_create_iv to initialize the random
+ * number generator; it is not seeded automatically like
+ * rand is.
+ *
+ * @return string|false the initialization vector, or false on error.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_create_iv ($size, $source = MCRYPT_DEV_URANDOM) {}
+
+/**
+ * Gets an array of all supported ciphers
+ * @link https://php.net/manual/en/function.mcrypt-list-algorithms.php
+ * @param string $lib_dir [optional]
+ * Specifies the directory where all algorithms are located. If not
+ * specifies, the value of the mcrypt.algorithms_dir &php.ini; directive
+ * is used.
+ *
+ * @return array an array with all the supported algorithms.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_list_algorithms ($lib_dir = null) {}
+
+/**
+ * Gets an array of all supported modes
+ * @link https://php.net/manual/en/function.mcrypt-list-modes.php
+ * @param string $lib_dir [optional]
+ * Specifies the directory where all modes are located. If not
+ * specifies, the value of the mcrypt.modes_dir
+ * &php.ini; directive is used.
+ *
+ * @return array an array with all the supported modes.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_list_modes ($lib_dir = null) {}
+
+/**
+ * Returns the size of the IV belonging to a specific cipher/mode combination
+ * @link https://php.net/manual/en/function.mcrypt-get-iv-size.php
+ * @param string $cipher
+ * One of the MCRYPT_ciphername constants of the name
+ * of the algorithm as string.
+ *
+ * @param string $mode
+ * mode is one of the MCRYPT_MODE_modename constants
+ * or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is
+ * ignored in ECB mode as this mode does not require it. You will need to
+ * have the same IV (think: starting point) both at encryption and
+ * decryption stages, otherwise your encryption will fail.
+ *
+ * @return int|false the size of the Initialisation Vector (IV) in bytes. On error the
+ * function returns false. If the IV is ignored in the specified cipher/mode
+ * combination zero is returned.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_get_iv_size ($cipher, $mode) {}
+
+/**
+ * Encrypts plaintext with given parameters
+ * @link https://php.net/manual/en/function.mcrypt-encrypt.php
+ * @param string $cipher
+ * One of the MCRYPT_ciphername
+ * constants of the name of the algorithm as string.
+ *
+ * @param string $key
+ * The key with which the data will be encrypted. If it's smaller that
+ * the required keysize, it is padded with '\0'. It is
+ * better not to use ASCII strings for keys.
+ *
+ *
+ * It is recommended to use the mhash functions to create a key from a
+ * string.
+ *
+ * @param string $data
+ * The data that will be encrypted with the given cipher and mode. If the
+ * size of the data is not n * blocksize, the data will be padded with
+ * '\0'.
+ *
+ *
+ * The returned crypttext can be larger that the size of the data that is
+ * given by data.
+ *
+ * @param string $mode
+ * One of the MCRYPT_MODE_modename
+ * constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or
+ * "stream".
+ *
+ * @param string $iv [optional]
+ * Used for the initialisation in CBC, CFB, OFB modes, and in some
+ * algorithms in STREAM mode. If you do not supply an IV, while it is
+ * needed for an algorithm, the function issues a warning and uses an
+ * IV with all bytes set to '\0'.
+ *
+ * @return string the encrypted data, as a string.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_encrypt ($cipher, $key, $data, $mode, $iv = null) {}
+
+/**
+ * Decrypts crypttext with given parameters
+ * @link https://php.net/manual/en/function.mcrypt-decrypt.php
+ * @param string $cipher
+ * cipher is one of the MCRYPT_ciphername constants
+ * of the name of the algorithm as string.
+ *
+ * @param string $key
+ * key is the key with which the data is encrypted.
+ * If it's smaller that the required keysize, it is padded with
+ * '\0'.
+ *
+ * @param string $data
+ * data is the data that will be decrypted with
+ * the given cipher and mode. If the size of the data is not n * blocksize,
+ * the data will be padded with '\0'.
+ *
+ * @param string $mode
+ * mode is one of the MCRYPT_MODE_modename
+ * constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
+ *
+ * @param string $iv [optional]
+ * The iv parameter is used for the initialisation
+ * in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you
+ * do not supply an IV, while it is needed for an algorithm, the function
+ * issues a warning and uses an IV with all bytes set to
+ * '\0'.
+ *
+ * @return string the decrypted data as a string.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_decrypt ($cipher, $key, $data, $mode, $iv = null) {}
+
+/**
+ * Opens the module of the algorithm and the mode to be used
+ * @link https://php.net/manual/en/function.mcrypt-module-open.php
+ * @param string $algorithm
+ * The algorithm to be used.
+ *
+ * @param string $algorithm_directory
+ * The algorithm_directory and
+ * mode_directory are used to locate the encryption
+ * modules. When you supply a directory name, it is used. When you set one
+ * of these to the empty string (""), the value set by
+ * the mcrypt.algorithms_dir or
+ * mcrypt.modes_dir ini-directive is used. When
+ * these are not set, the default directories that are used are the ones
+ * that were compiled in into libmcrypt (usually
+ * /usr/local/lib/libmcrypt).
+ *
+ * @param string $mode
+ * The mode to be used.
+ *
+ * @param string $mode_directory
+ *
+ * @return resource|false Normally it returns an encryption descriptor, or false on error.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_open ($algorithm, $algorithm_directory, $mode, $mode_directory) {}
+
+/**
+ * This function initializes all buffers needed for encryption
+ * @link https://php.net/manual/en/function.mcrypt-generic-init.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @param string $key
+ * The maximum length of the key should be the one obtained by calling
+ * mcrypt_enc_get_key_size and every value smaller
+ * than this is legal.
+ *
+ * @param string $iv
+ * The IV should normally have the size of the algorithms block size, but
+ * you must obtain the size by calling
+ * mcrypt_enc_get_iv_size. IV is ignored in ECB. IV
+ * MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be
+ * random and unique (but not secret). The same IV must be used for
+ * encryption/decryption. If you do not want to use it you should set it
+ * to zeros, but this is not recommended.
+ *
+ * @return int|false The function returns a negative value on error, -3 when the key length
+ * was incorrect, -4 when there was a memory allocation problem and any
+ * other return value is an unknown error. If an error occurs a warning will
+ * be displayed accordingly. false is returned if incorrect parameters
+ * were passed.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_generic_init ($td, $key, $iv) {}
+
+/**
+ * This function encrypts data
+ * @link https://php.net/manual/en/function.mcrypt-generic.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ *
+ * The encryption handle should always be initialized with
+ * mcrypt_generic_init with a key and an IV before
+ * calling this function. Where the encryption is done, you should free the
+ * encryption buffers by calling mcrypt_generic_deinit.
+ * See mcrypt_module_open for an example.
+ *
+ * @return bool true on success or false on failure.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_generic_deinit ($td) {}
+
+/**
+ * Runs a self test on the opened module
+ * @link https://php.net/manual/en/function.mcrypt-enc-self-test.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return int Returns 0 on success and a negative integer on failure
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_self_test ($td) {}
+
+/**
+ * Checks whether the encryption of the opened mode works on blocks
+ * @link https://php.net/manual/en/function.mcrypt-enc-is-block-algorithm-mode.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return bool true if the mode is for use with block algorithms, otherwise it
+ * returns false.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_is_block_algorithm_mode ($td) {}
+
+/**
+ * Checks whether the algorithm of the opened mode is a block algorithm
+ * @link https://php.net/manual/en/function.mcrypt-enc-is-block-algorithm.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return bool true if the algorithm is a block algorithm or false if it is
+ * a stream one.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_is_block_algorithm ($td) {}
+
+/**
+ * Checks whether the opened mode outputs blocks
+ * @link https://php.net/manual/en/function.mcrypt-enc-is-block-mode.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return bool true if the mode outputs blocks of bytes or false if it outputs bytes.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_is_block_mode ($td) {}
+
+/**
+ * Returns the blocksize of the opened algorithm
+ * @link https://php.net/manual/en/function.mcrypt-enc-get-block-size.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return int the block size of the specified algorithm in bytes.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_get_block_size ($td) {}
+
+/**
+ * Returns the maximum supported keysize of the opened mode
+ * @link https://php.net/manual/en/function.mcrypt-enc-get-key-size.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return int the maximum supported key size of the algorithm in bytes.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_get_key_size ($td) {}
+
+/**
+ * Returns an array with the supported keysizes of the opened algorithm
+ * @link https://php.net/manual/en/function.mcrypt-enc-get-supported-key-sizes.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return array an array with the key sizes supported by the algorithm
+ * specified by the encryption descriptor. If it returns an empty
+ * array then all key sizes between 1 and
+ * mcrypt_enc_get_key_size are supported by the
+ * algorithm.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_get_supported_key_sizes ($td) {}
+
+/**
+ * Returns the size of the IV of the opened algorithm
+ * @link https://php.net/manual/en/function.mcrypt-enc-get-iv-size.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return int the size of the IV, or 0 if the IV is ignored in the algorithm.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_get_iv_size ($td) {}
+
+/**
+ * Returns the name of the opened algorithm
+ * @link https://php.net/manual/en/function.mcrypt-enc-get-algorithms-name.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return string the name of the opened algorithm as a string.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_get_algorithms_name ($td) {}
+
+/**
+ * Returns the name of the opened mode
+ * @link https://php.net/manual/en/function.mcrypt-enc-get-modes-name.php
+ * @param resource $td
+ * The encryption descriptor.
+ *
+ * @return string the name as a string.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_enc_get_modes_name ($td) {}
+
+/**
+ * This function runs a self test on the specified module
+ * @link https://php.net/manual/en/function.mcrypt-module-self-test.php
+ * @param string $algorithm
+ * One of the MCRYPT_ciphername constants, or the name of the algorithm as string.
+ *
+ * @param string $lib_dir [optional]
+ * The optional lib_dir parameter can contain the
+ * location of where the algorithm module is on the system.
+ *
+ * @return bool The function returns true if the self test succeeds, or false when if
+ * fails.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_self_test ($algorithm, $lib_dir = null) {}
+
+/**
+ * Returns if the specified module is a block algorithm or not
+ * @link https://php.net/manual/en/function.mcrypt-module-is-block-algorithm-mode.php
+ * @param string $mode
+ * The mode to check.
+ *
+ * @param string $lib_dir [optional]
+ * The optional lib_dir parameter can contain the
+ * location of where the algorithm module is on the system.
+ *
+ * @return bool This function returns true if the mode is for use with block
+ * algorithms, otherwise it returns false. (e.g. false for stream, and
+ * true for cbc, cfb, ofb).
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_is_block_algorithm_mode ($mode, $lib_dir = null) {}
+
+/**
+ * This function checks whether the specified algorithm is a block algorithm
+ * @link https://php.net/manual/en/function.mcrypt-module-is-block-algorithm.php
+ * @param string $algorithm
+ * The algorithm to check.
+ *
+ * @param string $lib_dir [optional]
+ * The optional lib_dir parameter can contain the
+ * location of where the algorithm module is on the system.
+ *
+ * @return bool This function returns true if the specified algorithm is a block
+ * algorithm, or false is it is a stream algorithm.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_is_block_algorithm ($algorithm, $lib_dir = null) {}
+
+/**
+ * Returns if the specified mode outputs blocks or not
+ * @link https://php.net/manual/en/function.mcrypt-module-is-block-mode.php
+ * @param string $mode
+ * The mode to check.
+ *
+ * @param string $lib_dir [optional]
+ * The optional lib_dir parameter can contain the
+ * location of where the algorithm module is on the system.
+ *
+ * @return bool This function returns true if the mode outputs blocks of bytes or
+ * false if it outputs just bytes. (e.g. true for cbc and ecb, and
+ * false for cfb and stream).
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_is_block_mode ($mode, $lib_dir = null) {}
+
+/**
+ * Returns the blocksize of the specified algorithm
+ * @link https://php.net/manual/en/function.mcrypt-module-get-algo-block-size.php
+ * @param string $algorithm
+ * The algorithm name.
+ *
+ * @param string $lib_dir [optional]
+ * This optional parameter can contain the location where the mode module
+ * is on the system.
+ *
+ * @return int the block size of the algorithm specified in bytes.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_get_algo_block_size ($algorithm, $lib_dir = null) {}
+
+/**
+ * Returns the maximum supported keysize of the opened mode
+ * @link https://php.net/manual/en/function.mcrypt-module-get-algo-key-size.php
+ * @param string $algorithm
+ * The algorithm name.
+ *
+ * @param string $lib_dir [optional]
+ * This optional parameter can contain the location where the mode module
+ * is on the system.
+ *
+ * @return int This function returns the maximum supported key size of the
+ * algorithm specified in bytes.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_get_algo_key_size ($algorithm, $lib_dir = null) {}
+
+/**
+ * Returns an array with the supported keysizes of the opened algorithm
+ * @link https://php.net/manual/en/function.mcrypt-module-get-supported-key-sizes.php
+ * @param string $algorithm
+ * The algorithm to used.
+ *
+ * @param string $lib_dir [optional]
+ * The optional lib_dir parameter can contain the
+ * location of where the algorithm module is on the system.
+ *
+ * @return array an array with the key sizes supported by the specified algorithm.
+ * If it returns an empty array then all key sizes between 1 and
+ * mcrypt_module_get_algo_key_size are supported by the
+ * algorithm.
+ */
+#[Deprecated(since: '7.1')]
+function mcrypt_module_get_supported_key_sizes ($algorithm, $lib_dir = null) {}
+
+/**
+ * Closes the mcrypt module
+ * @link https://php.net/manual/en/function.mcrypt-module-close.php
+ * @param resource $td
+ * Point to the host where memcached is listening for connections. This parameter
+ * may also specify other transports like unix:///path/to/memcached.sock
+ * to use UNIX domain sockets, in this case port must also
+ * be set to 0.
+ *
+ * @param int $port [optional]
+ * Point to the port where memcached is listening for connections. Set this
+ * parameter to 0 when using UNIX domain sockets.
+ *
+ *
+ * Please note: port defaults to
+ * {@link https://php.net/manual/en/memcache.ini.php#ini.memcache.default-port memcache.default_port}
+ * if not specified. For this reason it is wise to specify the port
+ * explicitly in this method call.
+ *
+ * @param int $timeout [optional]
Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.
+ * @return bool
Returns TRUE on success or FALSE on failure.
+ */
+ public function connect ($host, $port, $timeout = 1) {}
+
+ /**
+ * (PECL memcache >= 2.0.0)
+ * Add a memcached server to connection pool
+ * @link https://php.net/manual/en/memcache.addserver.php
+ * @param string $host
+ * Point to the host where memcached is listening for connections. This parameter
+ * may also specify other transports like unix:///path/to/memcached.sock
+ * to use UNIX domain sockets, in this case port must also
+ * be set to 0.
+ *
+ * @param int $port [optional]
+ * Point to the port where memcached is listening for connections.
+ * Set this
+ * parameter to 0 when using UNIX domain sockets.
+ *
+ *
+ * Please note: port defaults to
+ * memcache.default_port
+ * if not specified. For this reason it is wise to specify the port
+ * explicitly in this method call.
+ *
+ * @param bool $persistent [optional]
+ * Controls the use of a persistent connection. Default to TRUE.
+ *
+ * @param int $weight [optional]
+ * Number of buckets to create for this server which in turn control its
+ * probability of it being selected. The probability is relative to the
+ * total weight of all servers.
+ *
+ * @param int $timeout [optional]
+ * Value in seconds which will be used for connecting to the daemon. Think
+ * twice before changing the default value of 1 second - you can lose all
+ * the advantages of caching if your connection is too slow.
+ *
+ * @param int $retry_interval [optional]
+ * Controls how often a failed server will be retried, the default value
+ * is 15 seconds. Setting this parameter to -1 disables automatic retry.
+ * Neither this nor the persistent parameter has any
+ * effect when the extension is loaded dynamically via dl.
+ *
+ *
+ * Each failed connection struct has its own timeout and before it has expired
+ * the struct will be skipped when selecting backends to serve a request. Once
+ * expired the connection will be successfully reconnected or marked as failed
+ * for another retry_interval seconds. The typical
+ * effect is that each web server child will retry the connection about every
+ * retry_interval seconds when serving a page.
+ *
+ * @param bool $status [optional]
+ * Controls if the server should be flagged as online. Setting this parameter
+ * to FALSE and retry_interval to -1 allows a failed
+ * server to be kept in the pool so as not to affect the key distribution
+ * algorithm. Requests for this server will then failover or fail immediately
+ * depending on the memcache.allow_failover setting.
+ * Default to TRUE, meaning the server should be considered online.
+ *
+ * @param callable $failure_callback [optional]
+ * Allows the user to specify a callback function to run upon encountering an
+ * error. The callback is run before failover is attempted. The function takes
+ * two parameters, the hostname and port of the failed server.
+ *
+ * @param int $timeoutms [optional]
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addServer ($host, $port = 11211, $persistent = true, $weight = null, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null, $timeoutms = null) {}
+
+ /**
+ * (PECL memcache >= 2.1.0)
+ * Changes server parameters and status at runtime
+ * @link https://secure.php.net/manual/en/memcache.setserverparams.php
+ * @param string $host
Point to the host where memcached is listening for connections.
+ * Point to the port where memcached is listening for connections.
+ *
+ * @param int $timeout [optional]
+ * Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.
+ *
+ * @param int $retry_interval [optional]
+ * Controls how often a failed server will be retried, the default value
+ * is 15 seconds. Setting this parameter to -1 disables automatic retry.
+ * Neither this nor the persistent parameter has any
+ * effect when the extension is loaded dynamically via {@link https://secure.php.net/manual/en/function.dl.php dl()}.
+ *
+ * @param bool $status [optional]
+ * Controls if the server should be flagged as online. Setting this parameter
+ * to FALSE and retry_interval to -1 allows a failed
+ * server to be kept in the pool so as not to affect the key distribution
+ * algorithm. Requests for this server will then failover or fail immediately
+ * depending on the memcache.allow_failover setting.
+ * Default to TRUE, meaning the server should be considered online.
+ *
+ * @param callable $failure_callback [optional]
+ * Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted.
+ * The function takes two parameters, the hostname and port of the failed server.
+ *
+ * @return bool
Returns TRUE on success or FALSE on failure.
+ */
+ public function setServerParams ($host, $port = 11211, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null) {}
+
+ /**
+ *
+ */
+ public function setFailureCallback () {}
+
+ /**
+ * (PECL memcache >= 2.1.0)
+ * Returns server status
+ * @link https://php.net/manual/en/memcache.getserverstatus.php
+ * @param string $host Point to the host where memcached is listening for connections.
+ * @param int $port Point to the port where memcached is listening for connections.
+ * @return int Returns a the servers status. 0 if server is failed, non-zero otherwise
+ */
+ public function getServerStatus ($host, $port = 11211) {}
+
+ /**
+ *
+ */
+ public function findServer () {}
+
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Return version of the server
+ * @link https://php.net/manual/en/memcache.getversion.php
+ * @return string|false Returns a string of server version number or FALSE on failure.
+ */
+ public function getVersion () {}
+
+ /**
+ * (PECL memcache >= 2.0.0)
+ * Add an item to the server. If the key already exists, the value will not be added and FALSE will be returned.
+ * @link https://php.net/manual/en/memcache.add.php
+ * @param string $key The key that will be associated with the item.
+ * @param mixed $var The variable to store. Strings and integers are stored as is, other types are stored serialized.
+ * @param int $flag [optional]
+ * Use MEMCACHE_COMPRESSED to store the item
+ * compressed (uses zlib).
+ *
+ * @param int $expire [optional]
Expiration time of the item.
+ * If it's equal to zero, the item will never expire.
+ * You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).
+ * @return bool Returns TRUE on success or FALSE on failure. Returns FALSE if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set().
+ */
+ public function add ($key , $var, $flag = null, $expire = null) {}
+
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Stores an item var with key on the memcached server. Parameter expire is expiration time in seconds.
+ * If it's 0, the item never expires (but memcached server doesn't guarantee this item to be stored all the time,
+ * it could be deleted from the cache to make place for other items).
+ * You can use MEMCACHE_COMPRESSED constant as flag value if you want to use on-the-fly compression (uses zlib).
+ * @link https://php.net/manual/en/memcache.set.php
+ * @param string $key The key that will be associated with the item.
+ * @param mixed $var The variable to store. Strings and integers are stored as is, other types are stored serialized.
+ * @param int $flag [optional] Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).
+ * @param int $expire [optional] Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function set ($key, $var, $flag = null, $expire = null) {}
+
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Replace value of the existing item
+ * @link https://php.net/manual/en/memcache.replace.php
+ * @param string $key
The key that will be associated with the item.
+ * @param mixed $var
The variable to store. Strings and integers are stored as is, other types are stored serialized.
+ * @param int $flag [optional]
Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).
+ * @param int $expire [optional]
Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function replace ($key, $var, $flag = null, $expire = null) {}
+
+ public function cas () {}
+
+ public function append () {}
+
+ /**
+ * @return string
+ */
+ public function prepend () {}
+
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Retrieve item from the server
+ * @link https://php.net/manual/en/memcache.get.php
+ * @param string|array $key
+ * The key or array of keys to fetch.
+ *
+ * @param int|array &$flags [optional]
+ * If present, flags fetched along with the values will be written to this parameter. These
+ * flags are the same as the ones given to for example {@link https://php.net/manual/en/memcache.set.php Memcache::set()}.
+ * The lowest byte of the int is reserved for pecl/memcache internal usage (e.g. to indicate
+ * compression and serialization status).
+ *
+ * @return string|array|false
+ * Returns the string associated with the key or
+ * an array of found key-value pairs when key is an {@link https://php.net/manual/en/language.types.array.php array}.
+ * Returns FALSE on failure, key is not found or
+ * key is an empty {@link https://php.net/manual/en/language.types.array.php array}.
+ *
+ */
+ public function get ($key, &$flags = null) {}
+
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Delete item from the server
+ * https://secure.php.net/manual/en/memcache.delete.php
+ * @param string $key The key associated with the item to delete.
+ * @param int $timeout [optional] This deprecated parameter is not supported, and defaults to 0 seconds. Do not use this parameter.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function delete ($key, $timeout = 0 ) {}
+
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Get statistics of the server
+ * @link https://php.net/manual/en/memcache.getstats.php
+ * @param string $type [optional]
+ * The type of statistics to fetch.
+ * Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}.
+ * According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".
+ * @param int $slabid [optional]
+ * Used in conjunction with type set to
+ * cachedump to identify the slab to dump from. The cachedump
+ * command ties up the server and is strictly to be used for
+ * debugging purposes.
+ *
+ * @param int $limit [optional]
+ * Used in conjunction with type set to cachedump to limit the number of entries to dump.
+ *
+ * @return array|false Returns an associative array of server statistics or FALSE on failure.
+ */
+ public function getStats ($type = null, $slabid = null, $limit = 100) {}
+
+ /**
+ * (PECL memcache >= 2.0.0)
+ * Get statistics from all servers in pool
+ * @link https://php.net/manual/en/memcache.getextendedstats.php
+ * @param string $type [optional]
The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".
+ * @param int $slabid [optional]
+ * Used in conjunction with type set to
+ * cachedump to identify the slab to dump from. The cachedump
+ * command ties up the server and is strictly to be used for
+ * debugging purposes.
+ *
+ * @param int $limit Used in conjunction with type set to cachedump to limit the number of entries to dump.
+ * @return array|false Returns a two-dimensional associative array of server statistics or FALSE
+ * Returns a two-dimensional associative array of server statistics or FALSE
+ * on failure.
+ */
+ public function getExtendedStats ($type = null, $slabid = null, $limit = 100) {}
+
+ /**
+ * (PECL memcache >= 2.0.0)
+ * Enable automatic compression of large values
+ * @link https://php.net/manual/en/memcache.setcompressthreshold.php
+ * @param int $thresold
Controls the minimum value length before attempting to compress automatically.
+ * @param float $min_saving [optional]
Specifies the minimum amount of savings to actually store the value compressed. The supplied value must be between 0 and 1. Default value is 0.2 giving a minimum 20% compression savings.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function setCompressThreshold ($thresold, $min_saving = 0.2) {}
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Increment item's value
+ * @link https://php.net/manual/en/memcache.increment.php
+ * @param string $key Key of the item to increment.
+ * @param int $value [optional] increment the item by value
+ * @return int|false Returns new items value on success or FALSE on failure.
+ */
+ public function increment ($key, $value = 1) {}
+
+ /**
+ * (PECL memcache >= 0.2.0)
+ * Decrement item's value
+ * @link https://php.net/manual/en/memcache.decrement.php
+ * @param string $key Key of the item do decrement.
+ * @param int $value Decrement the item by value.
+ * @return int|false Returns item's new value on success or FALSE on failure.
+ */
+ public function decrement ($key, $value = 1) {}
+
+ /**
+ * (PECL memcache >= 0.4.0)
+ * Close memcached server connection
+ * @link https://php.net/manual/en/memcache.close.php
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function close () {}
+
+ /**
+ * (PECL memcache >= 1.0.0)
+ * Flush all existing items at the server
+ * @link https://php.net/manual/en/memcache.flush.php
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function flush () {}
+
+}
+
+/**
+ * Represents a connection to a set of memcache servers.
+ * @link https://php.net/manual/en/class.memcache.php
+ */
+class Memcache extends MemcachePool {
+
+
+ /**
+ * (PECL memcache >= 0.4.0)
+ * Open memcached server persistent connection
+ * @link https://php.net/manual/en/memcache.pconnect.php
+ * @param string $host
+ * Point to the host where memcached is listening for connections. This parameter
+ * may also specify other transports like unix:///path/to/memcached.sock
+ * to use UNIX domain sockets, in this case port must also
+ * be set to 0.
+ *
+ * @param int $port [optional]
+ * Point to the port where memcached is listening for connections. Set this
+ * parameter to 0 when using UNIX domain sockets.
+ *
+ * @param int $timeout [optional]
+ * Value in seconds which will be used for connecting to the daemon. Think
+ * twice before changing the default value of 1 second - you can lose all
+ * the advantages of caching if your connection is too slow.
+ *
+ * @return mixed a Memcache object or FALSE on failure.
+ */
+ public function pconnect ($host, $port, $timeout = 1) {}
+}
+
+// string $host [, int $port [, int $timeout ]]
+
+/**
+ * (PECL memcache >= 0.2.0)
+ * Memcache::connect — Open memcached server connection
+ * @link https://php.net/manual/en/memcache.connect.php
+ * @param string $host
+ * Point to the host where memcached is listening for connections.
+ * This parameter may also specify other transports like
+ * unix:///path/to/memcached.sock to use UNIX domain sockets,
+ * in this case port must also be set to 0.
+ *
+ * @param int $port [optional]
+ * Point to the port where memcached is listening for connections.
+ * Set this parameter to 0 when using UNIX domain sockets.
+ * Note: port defaults to memcache.default_port if not specified.
+ * For this reason it is wise to specify the port explicitly in this method call.
+ *
+ * @param int $timeout [optional]
+ * Value in seconds which will be used for connecting to the daemon.
+ *
This can be used to create a "domain" for your item keys. The value
+ * specified here will be prefixed to each of the keys. It cannot be
+ * longer than 128 characters and will reduce the
+ * maximum available key size. The prefix is applied only to the item keys,
+ * not to the server keys.
+ * Specifies the serializer to use for serializing non-scalar values.
+ * The valid serializers are Memcached::SERIALIZER_PHP
+ * or Memcached::SERIALIZER_IGBINARY. The latter is
+ * supported only when memcached is configured with
+ * --enable-memcached-igbinary option and the
+ * igbinary extension is loaded.
+ *
Specifies the hashing algorithm used for the item keys. The valid
+ * values are supplied via Memcached::HASH_* constants.
+ * Each hash algorithm has its advantages and its disadvantages. Go with the
+ * default if you don't know or don't care.
Specifies the method of distributing item keys to the servers.
+ * Currently supported methods are modulo and consistent hashing. Consistent
+ * hashing delivers better distribution and allows servers to be added to
+ * the cluster with minimal cache losses.
Enables or disables compatibility with libketama-like behavior. When
+ * enabled, the item key hashing algorithm is set to MD5 and distribution is
+ * set to be weighted consistent hashing distribution. This is useful
+ * because other libketama-based clients (Python, Ruby, etc.) with the same
+ * server configuration will be able to access the keys transparently.
+ *
+ *
+ * It is highly recommended to enable this option if you want to use
+ * consistent hashing, and it may be enabled by default in future
+ * releases.
+ *
Enables or disables buffered I/O. Enabling buffered I/O causes
+ * storage commands to "buffer" instead of being sent. Any action that
+ * retrieves data causes this buffer to be sent to the remote connection.
+ * Quitting the connection or closing down the connection will also cause
+ * the buffered data to be pushed to the remote connection.
Socket sending timeout, in microseconds. In cases where you cannot
+ * use non-blocking I/O this will allow you to still have timeouts on the
+ * sending of data.
Socket reading timeout, in microseconds. In cases where you cannot
+ * use non-blocking I/O this will allow you to still have timeouts on the
+ * reading of data.
Item was not stored: but not because of an error. This normally
+ * means that either the condition for an "add" or a "replace" command
+ * wasn't met, or that the item is in a delete queue.
MEMCACHED_UNKNOWN_STAT_KEY: The server you are communicating with has a stat key which has not be defined in the protocol.
+ */
+ const RES_UNKNOWN_STAT_KEY = 36;
+ /**
+ *
MEMCACHED_INVALID_HOST_PROTOCOL: The server you are connecting too has an invalid protocol. Most likely you are connecting to an older server that does not speak the binary protocol.
MEMORY_ALLOCATION_FAILURE: An error has occurred while trying to allocate memory.
+ *
+ * #if defined(LIBMEMCACHED_VERSION_HEX) && LIBMEMCACHED_VERSION_HEX >= 0x01000008
MEMCACHED_AUTH_PROBLEM: An unknown issue has occured during authentication.
+ */
+ const RES_AUTH_PROBLEM = 40;
+ /**
+ *
MEMCACHED_AUTH_FAILURE: The credentials provided are not valid for this server.
+ */
+ const RES_AUTH_FAILURE = 41;
+ /**
+ *
MEMCACHED_AUTH_CONTINUE: Authentication has been paused.
+ */
+ const RES_AUTH_CONTINUE = 42;
+ /**
+ *
MEMCACHED_CONNECTION_FAILURE: A unknown error has occured while trying to connect to a server.
+ */
+ const RES_CONNECTION_FAILURE = 3;
+ /**
+ * MEMCACHED_CONNECTION_BIND_FAILURE: We were not able to bind() to the socket.
+ */
+ #[Deprecated('Deprecated since version 0.30(libmemcached)')]
+ const RES_CONNECTION_BIND_FAILURE = 4;
+ /**
+ *
MEMCACHED_READ_FAILURE: A read failure has occurred.
+ */
+ const RES_READ_FAILURE = 6;
+ /**
+ *
MEMCACHED_DATA_DOES_NOT_EXIST: The data requested with the key given was not found.
The igbinary serializer.
+ * Instead of textual representation it stores PHP data structures in a
+ * compact binary form, resulting in space and time gains.
A flag for Memcached::getMulti and
+ * Memcached::getMultiByKey to ensure that the keys are
+ * returned in the same order as they were requested in. Non-existing keys
+ * get a default value of NULL.
+ * @link https://php.net/manual/en/memcached.constants.php
+ */
+ const GET_PRESERVE_ORDER = 1;
+
+ /**
+ * A flag for Memcached::get(), Memcached::getMulti() and
+ * Memcached::getMultiByKey() to ensure that the CAS token values are returned as well.
+ * @link https://php.net/manual/en/memcached.constants.php
+ */
+ const GET_EXTENDED = 2;
+
+ const GET_ERROR_RETURN_VALUE = false;
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Create a Memcached instance
+ * @link https://php.net/manual/en/memcached.construct.php, https://github.com/php-memcached-dev/php-memcached/blob/v3.1.5/php_memcached.c
+ * @param string $persistent_id [optional]
+ * @param callable $on_new_object_cb [optional]
+ * @param string $connection_str [optional]
+ */
+ public function __construct ($persistent_id = '', $on_new_object_cb = null, $connection_str = '') {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Return the result code of the last operation
+ * @link https://php.net/manual/en/memcached.getresultcode.php
+ * @return int Result code of the last Memcached operation.
+ */
+ public function getResultCode () {}
+
+ /**
+ * (PECL memcached >= 1.0.0)
+ * Return the message describing the result of the last operation
+ * @link https://php.net/manual/en/memcached.getresultmessage.php
+ * @return string Message describing the result of the last Memcached operation.
+ */
+ public function getResultMessage () {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Retrieve an item
+ * @link https://php.net/manual/en/memcached.get.php
+ * @param string $key
+ * The key of the item to retrieve.
+ *
+ * @param callable $cache_cb [optional]
+ * Read-through caching callback or NULL.
+ *
+ * @param int $flags [optional]
+ * The flags for the get operation.
+ *
+ * @return mixed the value stored in the cache or FALSE otherwise.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTFOUND if the key does not exist.
+ */
+ public function get ($key, callable $cache_cb = null, $flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Retrieve an item from a specific server
+ * @link https://php.net/manual/en/memcached.getbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key of the item to fetch.
+ *
+ * @param callable $cache_cb [optional]
+ * Read-through caching callback or NULL
+ *
+ * @param int $flags [optional]
+ * The flags for the get operation.
+ *
+ * @return mixed the value stored in the cache or FALSE otherwise.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTFOUND if the key does not exist.
+ */
+ public function getByKey ($server_key, $key, callable $cache_cb = null, $flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Retrieve multiple items
+ * @link https://php.net/manual/en/memcached.getmulti.php
+ * @param array $keys
+ * Array of keys to retrieve.
+ *
+ * @param int $flags [optional]
+ * The flags for the get operation.
+ *
+ * @return mixed the array of found items or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function getMulti (array $keys, $flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Retrieve multiple items from a specific server
+ * @link https://php.net/manual/en/memcached.getmultibykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param array $keys
+ * Array of keys to retrieve.
+ *
+ * @param int $flags [optional]
+ * The flags for the get operation.
+ *
+ * @return array|false the array of found items or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function getMultiByKey ($server_key, array $keys, $flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Request multiple items
+ * @link https://php.net/manual/en/memcached.getdelayed.php
+ * @param array $keys
+ * Array of keys to request.
+ *
+ * @param bool $with_cas [optional]
+ * Whether to request CAS token values also.
+ *
+ * @param callable $value_cb [optional]
+ * The result callback or NULL.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function getDelayed (array $keys, $with_cas = null, callable $value_cb = null) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Request multiple items from a specific server
+ * @link https://php.net/manual/en/memcached.getdelayedbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param array $keys
+ * Array of keys to request.
+ *
+ * @param bool $with_cas [optional]
+ * Whether to request CAS token values also.
+ *
+ * @param callable $value_cb [optional]
+ * The result callback or NULL.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function getDelayedByKey ($server_key, array $keys, $with_cas = null, callable $value_cb = null) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Fetch the next result
+ * @link https://php.net/manual/en/memcached.fetch.php
+ * @return array|false the next result or FALSE otherwise.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_END if result set is exhausted.
+ */
+ public function fetch () {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Fetch all the remaining results
+ * @link https://php.net/manual/en/memcached.fetchall.php
+ * @return array|false the results or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function fetchAll () {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Store an item
+ * @link https://php.net/manual/en/memcached.set.php
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function set ($key, $value, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Store an item on a specific server
+ * @link https://php.net/manual/en/memcached.setbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function setByKey ($server_key, $key, $value, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Set a new expiration on an item
+ * @link https://php.net/manual/en/memcached.touch.php
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param int $expiration
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function touch ($key, $expiration = 0) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Set a new expiration on an item on a specific server
+ * @link https://php.net/manual/en/memcached.touchbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param int $expiration
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function touchByKey ($server_key, $key, $expiration) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Store multiple items
+ * @link https://php.net/manual/en/memcached.setmulti.php
+ * @param array $items
+ * An array of key/value pairs to store on the server.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function setMulti (array $items, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Store multiple items on a specific server
+ * @link https://php.net/manual/en/memcached.setmultibykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param array $items
+ * An array of key/value pairs to store on the server.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function setMultiByKey ($server_key, array $items, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Compare and swap an item
+ * @link https://php.net/manual/en/memcached.cas.php
+ * @param float $cas_token
+ * Unique value associated with the existing item. Generated by memcache.
+ *
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_DATA_EXISTS if the item you are trying
+ * to store has been modified since you last fetched it.
+ */
+ public function cas ($cas_token, $key, $value, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Compare and swap an item on a specific server
+ * @link https://php.net/manual/en/memcached.casbykey.php
+ * @param float $cas_token
+ * Unique value associated with the existing item. Generated by memcache.
+ *
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_DATA_EXISTS if the item you are trying
+ * to store has been modified since you last fetched it.
+ */
+ public function casByKey ($cas_token, $server_key, $key, $value, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Add an item under a new key
+ * @link https://php.net/manual/en/memcached.add.php
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key already exists.
+ */
+ public function add ($key, $value, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Add an item under a new key on a specific server
+ * @link https://php.net/manual/en/memcached.addbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key already exists.
+ */
+ public function addByKey ($server_key, $key, $value, $expiration = 0, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Append data to an existing item
+ * @link https://php.net/manual/en/memcached.append.php
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param string $value
+ * The string to append.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key does not exist.
+ */
+ public function append ($key, $value) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Append data to an existing item on a specific server
+ * @link https://php.net/manual/en/memcached.appendbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param string $value
+ * The string to append.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key does not exist.
+ */
+ public function appendByKey ($server_key, $key, $value) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Prepend data to an existing item
+ * @link https://php.net/manual/en/memcached.prepend.php
+ * @param string $key
+ * The key of the item to prepend the data to.
+ *
+ * @param string $value
+ * The string to prepend.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key does not exist.
+ */
+ public function prepend ($key, $value) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Prepend data to an existing item on a specific server
+ * @link https://php.net/manual/en/memcached.prependbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key of the item to prepend the data to.
+ *
+ * @param string $value
+ * The string to prepend.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key does not exist.
+ */
+ public function prependByKey ($server_key, $key, $value) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Replace the item under an existing key
+ * @link https://php.net/manual/en/memcached.replace.php
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key does not exist.
+ */
+ public function replace ($key, $value, $expiration = null, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Replace the item under an existing key on a specific server
+ * @link https://php.net/manual/en/memcached.replacebykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key under which to store the value.
+ *
+ * @param mixed $value
+ * The value to store.
+ *
+ * @param int $expiration [optional]
+ * The expiration time, defaults to 0. See Expiration Times for more info.
+ *
+ * @param int $udf_flags [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTSTORED if the key does not exist.
+ */
+ public function replaceByKey ($server_key, $key, $value, $expiration = null, $udf_flags = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Delete an item
+ * @link https://php.net/manual/en/memcached.delete.php
+ * @param string $key
+ * The key to be deleted.
+ *
+ * @param int $time [optional]
+ * The amount of time the server will wait to delete the item.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTFOUND if the key does not exist.
+ */
+ public function delete ($key, $time = 0) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Delete multiple items
+ * @link https://php.net/manual/en/memcached.deletemulti.php
+ * @param array $keys
+ * The keys to be deleted.
+ *
+ * @param int $time [optional]
+ * The amount of time the server will wait to delete the items.
+ *
+ * @return array Returns array indexed by keys and where values are indicating whether operation succeeded or not.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTFOUND if the key does not exist.
+ */
+ public function deleteMulti (array $keys, $time = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Delete an item from a specific server
+ * @link https://php.net/manual/en/memcached.deletebykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key to be deleted.
+ *
+ * @param int $time [optional]
+ * The amount of time the server will wait to delete the item.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTFOUND if the key does not exist.
+ */
+ public function deleteByKey ($server_key, $key, $time = 0) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Delete multiple items from a specific server
+ * @link https://php.net/manual/en/memcached.deletemultibykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param array $keys
+ * The keys to be deleted.
+ *
+ * @param int $time [optional]
+ * The amount of time the server will wait to delete the items.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * The Memcached::getResultCode will return
+ * Memcached::RES_NOTFOUND if the key does not exist.
+ */
+ public function deleteMultiByKey ($server_key, array $keys, $time = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Increment numeric item's value
+ * @link https://php.net/manual/en/memcached.increment.php
+ * @param string $key
+ * The key of the item to increment.
+ *
+ * @param int $offset [optional]
+ * The amount by which to increment the item's value.
+ *
+ * @param int $initial_value [optional]
+ * The value to set the item to if it doesn't currently exist.
+ *
+ * @param int $expiry [optional]
+ * The expiry time to set on the item.
+ *
+ * @return int|false new item's value on success or FALSE on failure.
+ */
+ public function increment ($key, $offset = 1, $initial_value = 0, $expiry = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Decrement numeric item's value
+ * @link https://php.net/manual/en/memcached.decrement.php
+ * @param string $key
+ * The key of the item to decrement.
+ *
+ * @param int $offset [optional]
+ * The amount by which to decrement the item's value.
+ *
+ * @param int $initial_value [optional]
+ * The value to set the item to if it doesn't currently exist.
+ *
+ * @param int $expiry [optional]
+ * The expiry time to set on the item.
+ *
+ * @return int|false item's new value on success or FALSE on failure.
+ */
+ public function decrement ($key, $offset = 1, $initial_value = 0, $expiry = 0) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Increment numeric item's value, stored on a specific server
+ * @link https://php.net/manual/en/memcached.incrementbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key of the item to increment.
+ *
+ * @param int $offset [optional]
+ * The amount by which to increment the item's value.
+ *
+ * @param int $initial_value [optional]
+ * The value to set the item to if it doesn't currently exist.
+ *
+ * @param int $expiry [optional]
+ * The expiry time to set on the item.
+ *
+ * @return int|false new item's value on success or FALSE on failure.
+ */
+ public function incrementByKey ($server_key, $key, $offset = 1, $initial_value = 0, $expiry = 0) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Decrement numeric item's value, stored on a specific server
+ * @link https://php.net/manual/en/memcached.decrementbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @param string $key
+ * The key of the item to decrement.
+ *
+ * @param int $offset [optional]
+ * The amount by which to decrement the item's value.
+ *
+ * @param int $initial_value [optional]
+ * The value to set the item to if it doesn't currently exist.
+ *
+ * @param int $expiry [optional]
+ * The expiry time to set on the item.
+ *
+ * @return int|false item's new value on success or FALSE on failure.
+ */
+ public function decrementByKey ($server_key, $key, $offset = 1, $initial_value = 0, $expiry = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Add a server to the server pool
+ * @link https://php.net/manual/en/memcached.addserver.php
+ * @param string $host
+ * The hostname of the memcache server. If the hostname is invalid, data-related
+ * operations will set
+ * Memcached::RES_HOST_LOOKUP_FAILURE result code.
+ *
+ * @param int $port
+ * The port on which memcache is running. Usually, this is
+ * 11211.
+ *
+ * @param int $weight [optional]
+ * The weight of the server relative to the total weight of all the
+ * servers in the pool. This controls the probability of the server being
+ * selected for operations. This is used only with consistent distribution
+ * option and usually corresponds to the amount of memory available to
+ * memcache on that server.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addServer ($host, $port, $weight = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.1)
+ * Add multiple servers to the server pool
+ * @link https://php.net/manual/en/memcached.addservers.php
+ * @param array $servers
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addServers (array $servers) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Get the list of the servers in the pool
+ * @link https://php.net/manual/en/memcached.getserverlist.php
+ * @return array The list of all servers in the server pool.
+ */
+ public function getServerList () {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Map a key to a server
+ * @link https://php.net/manual/en/memcached.getserverbykey.php
+ * @param string $server_key
+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations.
+ *
+ * @return array an array containing three keys of host,
+ * port, and weight on success or FALSE
+ * on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function getServerByKey ($server_key) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Clears all servers from the server list
+ * @link https://php.net/manual/en/memcached.resetserverlist.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function resetServerList () {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Close any open connections
+ * @link https://php.net/manual/en/memcached.quit.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function quit () {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Get server pool statistics
+ * @link https://php.net/manual/en/memcached.getstats.php
+ * @param string $type
items, slabs, sizes ...
+ * @return array Array of server statistics, one entry per server.
+ */
+ public function getStats ($type = null) {}
+
+ /**
+ * (PECL memcached >= 0.1.5)
+ * Get server pool version info
+ * @link https://php.net/manual/en/memcached.getversion.php
+ * @return array Array of server versions, one entry per server.
+ */
+ public function getVersion () {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Gets the keys stored on all the servers
+ * @link https://php.net/manual/en/memcached.getallkeys.php
+ * @return array|false the keys stored on all the servers on success or FALSE on failure.
+ */
+ public function getAllKeys () {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Invalidate all items in the cache
+ * @link https://php.net/manual/en/memcached.flush.php
+ * @param int $delay [optional]
+ * Numer of seconds to wait before invalidating the items.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * Use Memcached::getResultCode if necessary.
+ */
+ public function flush ($delay = 0) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Retrieve a Memcached option value
+ * @link https://php.net/manual/en/memcached.getoption.php
+ * @param int $option
+ * One of the Memcached::OPT_* constants.
+ *
+ * @return mixed the value of the requested option, or FALSE on
+ * error.
+ */
+ public function getOption ($option) {}
+
+ /**
+ * (PECL memcached >= 0.1.0)
+ * Set a Memcached option
+ * @link https://php.net/manual/en/memcached.setoption.php
+ * @param int $option
+ * @param mixed $value
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setOption ($option, $value) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Set Memcached options
+ * @link https://php.net/manual/en/memcached.setoptions.php
+ * @param array $options
+ * An associative array of options where the key is the option to set and
+ * the value is the new value for the option.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setOptions (array $options) {}
+
+ /**
+ * (PECL memcached >= 2.0.0)
+ * Set the credentials to use for authentication
+ * @link https://secure.php.net/manual/en/memcached.setsaslauthdata.php
+ * @param string $username
%parametersList%: parameters of the function call. For example, for the "f(1,2)" call, %parametersList% will be "1,2"
+ *
%parameter0%,%parameter1%,%parameter2%,...: parameters of the function call. For example, for the "f(1,2)" call, %parameter1% will be "2"
+ *
%name%: For "\x\f(1,2)", %name% will be "\x\f", for "$this->ff()", %name% will be "ff"
+ *
%class%: If the attribute is provided for method "m", then for "$this->f()->m()", %class% will be "$this->f()"
+ *
+ * The following example shows how to wrap a function call in another call and swap arguments:
+ * "#[Deprecated(replaceWith: "wrappedCall(%name%(%parameter1%, %parameter0%))")] f($a, $b){}
+ * f(1,2) will be replaced with wrappedCall(f(2,1))
+ * @param string $since Element is deprecated starting with the provided PHP language level, applicable only for PhpStorm stubs entries
+ */
+ public function __construct($reason = "", $replacement = "",
+ #[ExpectedValues(self::PHP_VERSIONS)] $since = "5.6")
+ {
+ }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/meta/attributes/ExpectedValues.php b/vendor/jetbrains/phpstorm-stubs/meta/attributes/ExpectedValues.php
new file mode 100644
index 0000000000..f1698e7600
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/meta/attributes/ExpectedValues.php
@@ -0,0 +1,43 @@
+
+ *
Code completion - expected arguments are displayed on the top of the suggestions list when used in comparison expressions
+ *
Inspections [when used in a comparison with a value/assignment to/return from method] - the element absent from the expected values list produces the inspection warning
+ *
Code generation - for example, when generating the 'switch' statement, all possible expected values are inserted automatically
+ *
+ *
+ * Expected values can be any of the following:
+ *
+ *
numbers
+ *
string literals
+ *
constant references
+ *
class constant references
+ *
+ *
+ * Expected arguments can be specified in any of the following ways:
+ *
+ *
#[ExpectedValues(values: [1,2,3])] means that one of the following is expected: `1`, `2`, or `3`
+ *
#[ExpectedValues(values: MY_CONST] - default value of MY_CONST is expected to be array creation expression, in this case value of MY_CONST will be inlined
+ *
#[ExpectedValues(flags: [1,2,3])] means that a bitmask of the following is expected: `1`, `2`, or `3`
+ *
#[ExpectedValues(valuesFromClass: MyClass::class)] means that one of the constants from the class `MyClass` is expected
+ *
#[ExpectedValues(flagsFromClass: ExpectedValues::class)] means that a bitmask of the constants from the class `MyClass` is expected
+ *
+ *
+ * The attribute with the number of provided constructor arguments different from 1 will result in undefined behavior.
+ * @since 8.0
+ */
+#[Attribute(Attribute::TARGET_FUNCTION | Attribute::TARGET_METHOD | Attribute::TARGET_PARAMETER | Attribute::TARGET_PROPERTY)]
+class ExpectedValues {
+ public function __construct(array $values = [], array $flags = [], string $valuesFromClass = null, string $flagsFromClass = null)
+ {
+ }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/meta/attributes/Immutable.php b/vendor/jetbrains/phpstorm-stubs/meta/attributes/Immutable.php
new file mode 100644
index 0000000000..d34e7dee81
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/meta/attributes/Immutable.php
@@ -0,0 +1,30 @@
+
+ *
{@link Immutable::CONSTRUCTOR_WRITE_SCOPE}: write is allowed only in containing class constructor (default choice)
+ *
{@link Immutable::PRIVATE_WRITE_SCOPE}: write is allowed only in places where the property would be accessible if it had 'private' visibility modifier
+ *
{@link Immutable::PROTECTED_WRITE_SCOPE}: write is allowed only in places where the property would be accessible if it had 'protected' visibility modifier
+ * @return void
+ */
+function ming_setscale ($scale) {}
+
+/**
+ * Sets the SWF version
+ * @link https://php.net/manual/en/function.ming-useswfversion.php
+ * @param int $version
+ * SWF version to use.
+ *
+ * @return void
+ */
+function ming_useswfversion ($version) {}
+
+/**
+ * Returns the action flag for keyPress(char)
+ * @link https://php.net/manual/en/function.ming-keypress.php
+ * @param string $char
+ * @return int What the function returns, first on success, then on failure. See
+ * also the &return.success; entity
+ */
+function ming_keypress ($char) {}
+
+/**
+ * Use constant pool
+ * @link https://php.net/manual/en/function.ming-useconstants.php
+ * @param int $use
+ * The Stream Context to attach to all new connections. This allows you
+ * for example to configure SSL certificates and are described at
+ * {@link https://php.net/manual/en/context.ssl.php SSL context options}. See the
+ * {@link https://php.net/manual/en/mongo.connecting.ssl.php#mongo.connecting.context.ssl Connecting over SSL} tutorial.
+ *
+ *
+ *
+ * @throws MongoConnectionException
+ */
+ public function __construct($server = "mongodb://localhost:27017", array $options = array("connect" => true), $driver_options) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Closes this database connection
+ * This method does not need to be called, except in unusual circumstances.
+ * The driver will cleanly close the database connection when the Mongo object goes out of scope.
+ * @link https://secure.php.net/manual/en/mongoclient.close.php
+ * @param boolean|string $connection [optional]
+ * If connection is not given, or FALSE then connection that would be selected for writes would be closed. In a single-node configuration, that is then the whole connection, but if you are connected to a replica set, close() will only close the connection to the primary server.
+ * If connection is TRUE then all connections as known by the connection manager will be closed. This can include connections that are not referenced in the connection string used to create the object that you are calling close on.
+ * If connection is a string argument, then it will only close the connection identified by this hash. Hashes are identifiers for a connection and can be obtained by calling {@see MongoClient::getConnections()}.
+ *
+ * @return bool If the connection was successfully closed.
+ */
+ public function close($connection) {}
+ /**
+ * Connects to a database server
+ *
+ * @link https://secure.php.net/manual/en/mongoclient.connect.php
+ *
+ * @throws MongoConnectionException
+ * @return bool If the connection was successful.
+ */
+ public function connect() {}
+
+ /**
+ * Drops a database
+ *
+ * @link https://secure.php.net/manual/en/mongoclient.dropdb.php
+ * @param mixed $db The database to drop. Can be a MongoDB object or the name of the database.
+ * @return array The database response.
+ */
+ #[Deprecated(replacement: "%class%->drop()")]
+ public function dropDB($db) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Gets a database
+ * @link https://php.net/manual/en/mongoclient.get.php
+ * @param string $dbname The database name.
+ * @return MongoDB The database name.
+ */
+ public function __get ($dbname)
+ {}
+
+ /**
+ * Get connections
+ * Returns an array of all open connections, and information about each of the servers
+ * @return array
+ */
+ static public function getConnections ()
+ {}
+
+ /**
+ * Get hosts
+ * This method is only useful with a connection to a replica set. It returns the status of all of the hosts in the
+ * set. Without a replica set, it will just return an array with one element containing the host that you are
+ * connected to.
+ * @return array
+ */
+ public function getHosts ()
+ {}
+
+ /**
+ * Get read preference
+ * Get the read preference for this connection
+ * @return array
+ */
+ public function getReadPreference ()
+ {}
+
+ /**
+ * (PECL mongo >= 1.5.0)
+ * Get the write concern for this connection
+ * @return array
This function returns an array describing the write concern.
+ * The array contains the values w for an integer acknowledgement level or string mode,
+ * and wtimeout denoting the maximum number of milliseconds to wait for the server to satisfy the write concern.
+ */
+ public function getWriteConcern () {}
+
+
+ /**
+ * Kills a specific cursor on the server
+ * @link https://secure.php.net/manual/en/mongoclient.killcursor.php
+ * @param string $server_hash
+ * The server hash that has the cursor. This can be obtained through
+ * {@link https://secure.php.net/manual/en/mongocursor.info.php MongoCursor::info()}.
+ *
+ * @param int|MongoInt64 $id
+ *
+ * The ID of the cursor to kill. You can either supply an {@link https://secure.php.net/manual/en/language.types.integer.php int}
+ * containing the 64 bit cursor ID, or an object of the
+ * {@link https://secure.php.net/manual/en/class.mongoint64.php MongoInt64} class. The latter is necessary on 32
+ * bit platforms (and Windows).
+ *
+ */
+ public function killCursor ( $server_hash , $id) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Lists all of the databases available
+ * @link https://php.net/manual/en/mongoclient.listdbs.php
+ * @return array Returns an associative array containing three fields. The first field is databases, which in turn contains an array. Each element of the array is an associative array corresponding to a database, giving the database's name, size, and if it's empty. The other two fields are totalSize (in bytes) and ok, which is 1 if this method ran successfully.
+ */
+ public function listDBs() {}
+
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Gets a database collection
+ * @link https://secure.php.net/manual/en/mongoclient.selectcollection.php
+ * @param string $db The database name.
+ * @param string $collection The collection name.
+ * @throws Exception Throws Exception if the database or collection name is invalid.
+ * @return MongoCollection Returns a new collection object.
+ */
+ public function selectCollection($db, $collection) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Gets a database
+ * @link https://secure.php.net/manual/en/mongo.selectdb.php
+ * @param string $name The database name.
+ * @throws InvalidArgumentException
+ * @return MongoDB Returns a new db object.
+ */
+ public function selectDB($name) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Set read preference
+ * @param string $readPreference
+ * @param array $tags
+ * @return bool
+ */
+ public function setReadPreference ($readPreference, $tags = null)
+ {}
+
+ /**
+ * (PECL mongo >= 1.1.0)
+ * Choose a new secondary for slaveOkay reads
+ * @link https://secure.php.net/manual/en/mongo.switchslave.php
+ * @return string The address of the secondary this connection is using for reads. This may be the same as the previous address as addresses are randomly chosen. It may return only one address if only one secondary (or only the primary) is available.
+ * For example, if we had a three member replica set with a primary, secondary, and arbiter this method would always return the address of the secondary. If the secondary became unavailable, this method would always return the address of the primary. If the primary also became unavailable, this method would throw an exception, as an arbiter cannot handle reads.
+ * @throws MongoException (error code 15) if it is called on a non-replica-set connection. It will also throw MongoExceptions if it cannot find anyone (primary or secondary) to read from (error code 16).
+ *
+ */
+ public function switchSlave() {}
+
+ /**
+ * String representation of this connection
+ * @link https://secure.php.net/manual/en/mongoclient.tostring.php
+ * @return string Returns hostname and port for this connection.
+ */
+ public function __toString() {}
+}
+
+/**
+ * The connection point between MongoDB and PHP.
+ * This class is used to initiate a connection and for database server commands.
+ * @link https://secure.php.net/manual/en/class.mongo.php
+ * Relying on this feature is highly discouraged. Please use MongoClient instead.
+ * @see MongoClient
+ */
+#[Deprecated("This class has been DEPRECATED as of version 1.3.0.")]
+class Mongo extends MongoClient {
+ /**
+ * (PECL mongo >= 1.2.0)
+ * Get pool size for connection pools
+ * @link https://php.net/manual/en/mongo.getpoolsize.php
+ * @return int Returns the current pool size.
+ * @see MongoPool::getSize()
+ */
+ #[Deprecated('This feature has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::getSize() instead.')]
+ public function getPoolSize() {}
+ /**
+ * (PECL mongo >= 1.1.0)
+ * Returns the address being used by this for slaveOkay reads
+ * @link https://php.net/manual/en/mongo.getslave.php
+ * @return bool
The address of the secondary this connection is using for reads.
+ *
+ *
+ * This returns NULL if this is not connected to a replica set or not yet
+ * initialized.
+ *
+ */
+ public function getSlave() {}
+ /**
+ * (PECL mongo >= 1.1.0)
+ * Get slaveOkay setting for this connection
+ * @link https://php.net/manual/en/mongo.getslaveokay.php
+ * @return bool Returns the value of slaveOkay for this instance.
+ */
+ public function getSlaveOkay() {}
+ /**
+ * Connects to paired database server
+ * @link https://secure.php.net/manual/en/mongo.pairconnect.php
+ * @throws MongoConnectionException
+ * @return bool
+ */
+ #[Deprecated('Pass a string of the form "mongodb://server1,server2" to the constructor instead of using this method.')]
+ public function pairConnect() {}
+
+ /**
+ * (PECL mongo >= 1.2.0)
+ * Returns information about all connection pools.
+ * @link https://php.net/manual/en/mongo.pooldebug.php
+ * @return array Each connection pool has an identifier, which starts with the host. For each pool, this function shows the following fields:
+ *
in use
+ *
The number of connections currently being used by MongoClient instances.
+ * in pool
+ * The number of connections currently in the pool (not being used).
+ *
remaining
+ *
+ *
The number of connections that could be created by this pool. For example, suppose a pool had 5 connections remaining and 3 connections in the pool. We could create 8 new instances of MongoClient before we exhausted this pool (assuming no instances of MongoClient went out of scope, returning their connections to the pool).
+ *
+ * A negative number means that this pool will spawn unlimited connections.
+ *
+ * Before a pool is created, you can change the max number of connections by calling Mongo::setPoolSize(). Once a pool is showing up in the output of this function, its size cannot be changed.
+ *
timeout
+ *
+ *
The socket timeout for connections in this pool. This is how long connections in this pool will attempt to connect to a server before giving up.
+ * @see MongoPool::info()
+ */
+ #[Deprecated('@deprecated This feature has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::info() instead.')]
+ public function poolDebug() {}
+
+ /**
+ * (PECL mongo >= 1.1.0)
+ * Change slaveOkay setting for this connection
+ * @link https://php.net/manual/en/mongo.setslaveokay.php
+ * @param bool $ok [optional]
+ * If reads should be sent to secondary members of a replica set for all
+ * possible queries using this {@see MongoClient} instance.
+ *
+ * @return bool returns the former value of slaveOkay for this instance.
+ */
+ public function setSlaveOkay ($ok) {}
+ /**
+ *(PECL mongo >= 1.2.0)
+ * Set the size for future connection pools.
+ * @link https://php.net/manual/en/mongo.setpoolsize.php
+ * @param int $size
The max number of connections future pools will be able to create. Negative numbers mean that the pool will spawn an infinite number of connections.
+ * @return bool Returns the former value of pool size.
+ * @see MongoPool::setSize()
+ */
+ #[Deprecated('Relying on this feature is highly discouraged. Please use MongoPool::setSize() instead.')]
+ public function setPoolSize($size) {}
+ /**
+ * Creates a persistent connection with a database server
+ * @link https://secure.php.net/manual/en/mongo.persistconnect.php
+ * @param string $username A username used to identify the connection.
+ * @param string $password A password used to identify the connection.
+ * @throws MongoConnectionException
+ * @return bool If the connection was successful.
+ */
+ #[Deprecated('Pass array("persist" => $id) to the constructor instead of using this method.')]
+ public function persistConnect($username = "", $password = "") {}
+
+ /**
+ * Creates a persistent connection with paired database servers
+ * @link https://secure.php.net/manual/en/mongo.pairpersistconnect.php
+ * @param string $username A username used to identify the connection.
+ * @param string $password A password used to identify the connection.
+ * @throws MongoConnectionException
+ * @return bool If the connection was successful.
+ */
+ #[Deprecated('Pass "mongodb://server1,server2" and array("persist" => $id) to the constructor instead of using this method.')]
+ public function pairPersistConnect($username = "", $password = "") {}
+
+ /**
+ * Connects with a database server
+ *
+ * @link https://secure.php.net/manual/en/mongo.connectutil.php
+ * @throws MongoConnectionException
+ * @return bool If the connection was successful.
+ */
+ protected function connectUtil() {}
+
+ /**
+ * Check if there was an error on the most recent db operation performed
+ * @link https://secure.php.net/manual/en/mongo.lasterror.php
+ * @return array|null Returns the error, if there was one, or NULL.
+ * @see MongoDB::lastError()
+ */
+ #[Deprecated('Use MongoDB::lastError() instead.')]
+ public function lastError() {}
+
+ /**
+ * Checks for the last error thrown during a database operation
+ * @link https://secure.php.net/manual/en/mongo.preverror.php
+ * @return array Returns the error and the number of operations ago it occurred.
+ * @see MongoDB::prevError()
+ */
+ #[Deprecated('Use MongoDB::prevError() instead.')]
+ public function prevError() {}
+
+ /**
+ * Clears any flagged errors on the connection
+ * @link https://secure.php.net/manual/en/mongo.reseterror.php
+ * @return array Returns the database response.
+ * @see MongoDB::resetError()
+ */
+ #[Deprecated('Use MongoDB::resetError() instead.')]
+ public function resetError() {}
+
+ /**
+ * Creates a database error on the database.
+ * @link https://secure.php.net/manual/en/mongo.forceerror.php
+ * @return bool The database response.
+ * @see MongoDB::forceError()
+ */
+ #[Deprecated('Use MongoDB::forceError() instead.')]
+ public function forceError() {}
+}
+
+/**
+ * Instances of this class are used to interact with a database.
+ * @link https://secure.php.net/manual/en/class.mongodb.php
+ */
+class MongoDB {
+ /**
+ * Profiling is off.
+ * @link https://php.net/manual/en/class.mongodb.php#mongodb.constants.profiling-off
+ */
+ const PROFILING_OFF = 0;
+
+ /**
+ * Profiling is on for slow operations (>100 ms).
+ * @link https://php.net/manual/en/class.mongodb.php#mongodb.constants.profiling-slow
+ */
+ const PROFILING_SLOW = 1;
+
+ /**
+ * Profiling is on for all operations.
+ * @link https://php.net/manual/en/class.mongodb.php#mongodb.constants.profiling-on
+ */
+ const PROFILING_ON = 2;
+
+ /**
+ * @var int
+ *
+ * The number of servers to replicate a change to before returning success.
+ * Inherited by instances of {@link https://php.net/manual/en/class.mongocollection.php MongoCollection} derived
+ * from this. w functionality is only available in
+ * version 1.5.1+ of the MongoDB server and 1.0.8+ of the driver.
+ *
+ *
+ * w is used whenever you need to adjust the
+ * acknowledgement level
+ * ( {@link https://php.net/manual/en/mongocollection.insert.php MongoCollection::insert()},
+ * {@link https://php.net/manual/en/mongocollection.update.php MongoCollection::update()},
+ * {@link https://php.net/manual/en/mongocollection.remove.php MongoCollection::remove()},
+ * {@link https://php.net/manual/en/mongocollection.save.php MongoCollection::save()}, and
+ * {@link https://php.net/manual/en/mongocollection.ensureindex.php MongoCollection::ensureIndex()} all support this
+ * option). With the default value (1), an acknowledged operation will return once
+ * the database server has the operation. If the server goes down before
+ * the operation has been replicated to a secondary, it is possible to lose
+ * the operation forever. Thus, you can specify w to be
+ * higher than one and guarantee that at least one secondary has the
+ * operation before it is considered successful.
+ *
+ *
+ * For example, if w is 2, the primary and one secondary
+ * must have a record of the operation or the driver will throw a
+ * {@link https://php.net/manual/en/class.mongocursorexception.php MongoCursorException}. It is tempting to set
+ * w to the total number of secondaries + primary, but
+ * then if one secondary is down the operation will fail and an exception
+ * will be thrown, so usually w=2 is safest (primary and
+ * one secondary).
+ *
+ */
+ public $w = 1;
+
+ /**
+ * @var int
+ * T he number of milliseconds to wait for MongoDB::$w
+ * replications to take place. Inherited by instances of
+ * {@link https://secure.php.net/manual/en/class.mongocollection.php MongoCollection} derived from this.
+ * w functionality is only available in version 1.5.1+ of
+ * the MongoDB server and 1.0.8+ of the driver.
+ *
+ *
+ * Unless wtimeout is set, the server waits forever for
+ * replicating to w servers to finish. The driver
+ * defaults to waiting for 10 seconds, you can change this value to alter
+ * its behavior.
+ *
+ */
+ public $wtimeout = 10000;
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Creates a new database
+ * This method is not meant to be called directly. The preferred way to create an instance of MongoDB is through {@see Mongo::__get()} or {@see Mongo::selectDB()}.
+ * @link https://secure.php.net/manual/en/mongodb.construct.php
+ * @param MongoClient $conn Database connection.
+ * @param string $name Database name.
+ * @throws Exception
+ */
+ public function __construct($conn, $name) {}
+
+ /**
+ * The name of this database
+ * @link https://secure.php.net/manual/en/mongodb.--tostring.php
+ * @return string Returns this database's name.
+ */
+ public function __toString() {}
+
+ /**
+ * (PECL mongo >= 1.0.2)
+ * Gets a collection
+ * @link https://secure.php.net/manual/en/mongodb.get.php
+ * @param string $name The name of the collection.
+ * @return MongoCollection
+ */
+ public function __get($name) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * @link https://secure.php.net/manual/en/mongodb.getcollectionnames.php
+ * Get all collections from this database
+ * @param bool $includeSystemCollections [optional] Include system collections.
+ * @return array Returns the names of the all the collections in the database as an
+ * {@link https://secure.php.net/manual/en/language.types.array.php array}.
+ */
+ public function getCollectionNames($includeSystemCollections = false) {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Fetches toolkit for dealing with files stored in this database
+ * @link https://secure.php.net/manual/en/mongodb.getgridfs.php
+ * @param string $prefix [optional] The prefix for the files and chunks collections.
+ * @return MongoGridFS Returns a new gridfs object for this database.
+ */
+ public function getGridFS($prefix = "fs") {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Gets this database's profiling level
+ * @link https://secure.php.net/manual/en/mongodb.getprofilinglevel.php
+ * @return int Returns the profiling level.
+ */
+ public function getProfilingLevel() {}
+
+ /**
+ * (PECL mongo >= 1.1.0)
+ * Get slaveOkay setting for this database
+ * @link https://secure.php.net/manual/en/mongodb.getslaveokay.php
+ * @return bool Returns the value of slaveOkay for this instance.
+ */
+ public function getSlaveOkay () {}
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Sets this database's profiling level
+ * @link https://secure.php.net/manual/en/mongodb.setprofilinglevel.php
+ * @param int $level Profiling level.
+ * @return int Returns the previous profiling level.
+ */
+ public function setProfilingLevel($level) {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Drops this database
+ * @link https://secure.php.net/manual/en/mongodb.drop.php
+ * @return array Returns the database response.
+ */
+ public function drop() {}
+
+ /**
+ * Repairs and compacts this database
+ * @link https://secure.php.net/manual/en/mongodb.repair.php
+ * @param bool $preserve_cloned_files [optional]
If cloned files should be kept if the repair fails.
+ * @param bool $backup_original_files [optional]
If original files should be backed up.
+ * @return array
Returns db response.
+ */
+ public function repair($preserve_cloned_files = false, $backup_original_files = false) {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Gets a collection
+ * @link https://secure.php.net/manual/en/mongodb.selectcollection.php
+ * @param string $name The collection name.
+ * @throws Exception if the collection name is invalid.
+ * @return MongoCollection
+ * Returns a new collection object.
+ *
+ */
+ public function selectCollection($name) {}
+
+ /**
+ * (PECL mongo >= 1.1.0)
+ * Change slaveOkay setting for this database
+ * @link https://php.net/manual/en/mongodb.setslaveokay.php
+ * @param bool $ok [optional]
+ * If reads should be sent to secondary members of a replica set for all
+ * possible queries using this {@link https://secure.php.net/manual/en/class.mongodb.php MongoDB} instance.
+ *
+ * @return bool Returns the former value of slaveOkay for this instance.
+ */
+ public function setSlaveOkay ($ok = true) {}
+
+ /**
+ * Creates a collection
+ * @link https://secure.php.net/manual/en/mongodb.createcollection.php
+ * @param string $name The name of the collection.
+ * @param array $options [optional]
+ *
+ * An array containing options for the collections. Each option is its own
+ * element in the options array, with the option name listed below being
+ * the key of the element. The supported options depend on the MongoDB
+ * server version. At the moment, the following options are supported:
+ *
+ *
+ * capped
+ *
+ * If the collection should be a fixed size.
+ *
+ *
+ *
+ * size
+ *
+ * If the collection is fixed size, its size in bytes.
+ *
max
+ *
If the collection is fixed size, the maximum number of elements to store in the collection.
+ * autoIndexId
+ *
+ *
+ * If capped is TRUE you can specify FALSE to disable the
+ * automatic index created on the _id field.
+ * Before MongoDB 2.2, the default value for
+ * autoIndexId was FALSE.
+ *
+ *
+ * @return MongoCollection
Returns a collection object representing the new collection.
+ */
+ public function createCollection($name, $options) {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Drops a collection
+ * @link https://secure.php.net/manual/en/mongodb.dropcollection.php
+ * @param MongoCollection|string $coll MongoCollection or name of collection to drop.
+ * @return array Returns the database response.
+ * @see MongoCollection::drop()
+ */
+ #[Deprecated('Use MongoCollection::drop() instead.')]
+ public function dropCollection($coll) {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Get a list of collections in this database
+ * @link https://secure.php.net/manual/en/mongodb.listcollections.php
+ * @param bool $includeSystemCollections [optional]
Include system collections.
+ * @return array Returns a list of MongoCollections.
+ */
+ public function listCollections($includeSystemCollections = false) {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Creates a database reference
+ * @link https://secure.php.net/manual/en/mongodb.createdbref.php
+ * @param string $collection The collection to which the database reference will point.
+ * @param mixed $document_or_id
+ * If an array or object is given, its _id field will be
+ * used as the reference ID. If a {@see MongoId} or scalar
+ * is given, it will be used as the reference ID.
+ *
+ * @return array
Returns a database reference array.
+ *
+ * If an array without an _id field was provided as the
+ * document_or_id parameter, NULL will be returned.
+ *
+ */
+ public function createDBRef($collection, $document_or_id) {}
+
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Fetches the document pointed to by a database reference
+ * @link https://secure.php.net/manual/en/mongodb.getdbref.php
+ * @param array $ref A database reference.
+ * @return array Returns the document pointed to by the reference.
+ */
+ public function getDBRef(array $ref) {}
+
+ /**
+ * (PECL mongo >= 1.5.0)
+ * Get the write concern for this database
+ * @link https://php.net/manual/en/mongodb.getwriteconcern.php
+ * @return array
This function returns an array describing the write concern.
+ * The array contains the values w for an integer acknowledgement level or string mode,
+ * and wtimeout denoting the maximum number of milliseconds to wait for the server to satisfy the write concern.
+ */
+ public function getWriteConcern() {}
+ /**
+ * (PECL mongo >= 0.9.3)
+ * Runs JavaScript code on the database server.
+ * @link https://secure.php.net/manual/en/mongodb.execute.php
+ * @param MongoCode|string $code Code to execute.
+ * @param array $args [optional] Arguments to be passed to code.
+ * @return array Returns the result of the evaluation.
+ */
+ public function execute($code, array $args = array()) {}
+
+ /**
+ * Execute a database command
+ * @link https://secure.php.net/manual/en/mongodb.command.php
+ * @param array $data The query to send.
+ * @param array $options [optional]
+ * This parameter is an associative array of the form
+ * array("optionname" => <boolean>, ...). Currently
+ * supported options are:
+ *
+ *
"timeout"
Deprecated alias for "socketTimeoutMS".
+ *
+ * @return array Returns database response.
+ * Every database response is always maximum one document,
+ * which means that the result of a database command can never exceed 16MB.
+ * The resulting document's structure depends on the command,
+ * but most results will have the ok field to indicate success or failure and results containing an array of each of the resulting documents.
+ */
+ public function command(array $data, $options) {}
+
+ /**
+ * (PECL mongo >= 0.9.5)
+ * Check if there was an error on the most recent db operation performed
+ * @link https://secure.php.net/manual/en/mongodb.lasterror.php
+ * @return array Returns the error, if there was one.
+ */
+ public function lastError() {}
+
+ /**
+ * (PECL mongo >= 0.9.5)
+ * Checks for the last error thrown during a database operation
+ * @link https://secure.php.net/manual/en/mongodb.preverror.php
+ * @return array Returns the error and the number of operations ago it occurred.
+ */
+ public function prevError() {}
+
+ /**
+ * (PECL mongo >= 0.9.5)
+ * Clears any flagged errors on the database
+ * @link https://secure.php.net/manual/en/mongodb.reseterror.php
+ * @return array Returns the database response.
+ */
+ public function resetError() {}
+
+ /**
+ * (PECL mongo >= 0.9.5)
+ * Creates a database error
+ * @link https://secure.php.net/manual/en/mongodb.forceerror.php
+ * @return bool Returns the database response.
+ */
+ public function forceError() {}
+
+ /**
+ * (PECL mongo >= 1.0.1)
+ * Log in to this database
+ * @link https://secure.php.net/manual/en/mongodb.authenticate.php
+ * @param string $username The username.
+ * @param string $password The password (in plaintext).
+ * @return array
Returns database response. If the login was successful, it will return 1.
("auth fails" could be another message, depending on database version and
+ * what went wrong)
+ */
+ public function authenticate($username, $password) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Get the read preference for this database
+ * @link https://secure.php.net/manual/en/mongodb.getreadpreference.php
+ * @return array This function returns an array describing the read preference. The array contains the values type for the string read preference mode (corresponding to the MongoClient constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.
+ */
+ public function getReadPreference () {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * Set the read preference for this database
+ * @link https://secure.php.net/manual/en/mongodb.setreadpreference.php
+ * @param string $read_preference
The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @param array $tags [optional]
An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.
+ * @return bool Returns TRUE on success, or FALSE otherwise.
+ */
+ public function setReadPreference ($read_preference, array $tags) {}
+
+ /**
+ * (PECL mongo >= 1.5.0)
+ * @link https://php.net/manual/en/mongodb.setwriteconcern.php
+ * Set the write concern for this database
+ * @param mixed $w
The write concern. This may be an integer denoting the number of servers required to acknowledge the write, or a string mode (e.g. "majority").
+ * @param int $wtimeout[optional]
The maximum number of milliseconds to wait for the server to satisfy the write concern.
+ * The number of servers to replicate a change to before returning success.
+ * Value is inherited from the parent database. The
+ * {@link https://secure.php.net/manual/en/class.mongodb.php MongoDB} class has a more detailed description of
+ * how w works.
+ *
+ */
+ public $w;
+
+ /**
+ * @var int
+ * The number of milliseconds to wait for $this->w
+ * replications to take place. Value is inherited from the parent database.
+ * The {@link https://secure.php.net/manual/en/class.mongodb.php MongoDB} class has a more detailed description
+ * of how wtimeout works.
+ *
+ */
+ public $wtimeout;
+
+ /**
+ * Creates a new collection
+ * @link https://secure.php.net/manual/en/mongocollection.construct.php
+ * @param MongoDB $db Parent database.
+ * @param string $name Name for this collection.
+ * @throws Exception
+ */
+ public function __construct(MongoDB $db, $name) {}
+
+ /**
+ * String representation of this collection
+ * @link https://secure.php.net/manual/en/mongocollection.--tostring.php
+ * @return string Returns the full name of this collection.
+ */
+ public function __toString() {}
+
+ /**
+ * Gets a collection
+ * @link https://secure.php.net/manual/en/mongocollection.get.php
+ * @param string $name The next string in the collection name.
+ * @return MongoCollection
+ */
+ public function __get($name) {}
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ *
+ * The MongoDB
+ * {@link https://docs.mongodb.org/manual/applications/aggregation/ aggregation framework}
+ * provides a means to calculate aggregated values without having to use
+ * MapReduce. While MapReduce is powerful, it is often more difficult than
+ * necessary for many simple aggregation tasks, such as totaling or averaging
+ * field values.
+ *
+ *
+ * This method accepts either a variable amount of pipeline operators, or a
+ * single array of operators constituting the pipeline.
+ *
An array of pipeline operators, or just the first operator.
+ * @param array $op [optional]
The second pipeline operator.
+ * @param array $pipelineOperators [optional]
Additional pipeline operators.
+ * @return array The result of the aggregation as an array. The ok will be set to 1 on success, 0 on failure.
+ */
+ public function aggregate ( array $pipeline, array $op, array $pipelineOperators ) {}
+
+ /**
+ * (PECL mongo >= 1.5.0)
+ *
+ *
+ * With this method you can execute Aggregation Framework pipelines and retrieve the results
+ * through a cursor, instead of getting just one document back as you would with
+ * {@link https://php.net/manual/en/mongocollection.aggregate.php MongoCollection::aggregate()}.
+ * This method returns a {@link https://php.net/manual/en/class.mongocommandcursor.php MongoCommandCursor} object.
+ * This cursor object implements the {@link https://php.net/manual/en/class.iterator.php Iterator} interface
+ * just like the {@link https://php.net/manual/en/class.mongocursor.php MongoCursor} objects that are returned
+ * by the {@link https://php.net/manual/en/mongocollection.find.php MongoCollection::find()} method
+ *
+ *
+ * @return MongoCommandCursor Returns a {@link https://php.net/manual/en/class.mongocommandcursor.php MongoCommandCursor} object
+ */
+ public function aggregateCursor(array $pipeline, array $options) {}
+
+ /**
+ * Returns this collection's name
+ * @link https://secure.php.net/manual/en/mongocollection.getname.php
+ * @return string
+ */
+ public function getName() {}
+
+ /**
+ * (PECL mongo >= 1.1.0)
+ *
+ * See {@link https://secure.php.net/manual/en/mongo.queries.php the query section} of this manual for
+ * information on distributing reads to secondaries.
+ *
+ * @link https://secure.php.net/manual/en/mongocollection.getslaveokay.php
+ * @return bool Returns the value of slaveOkay for this instance.
+ */
+ public function getSlaveOkay() { }
+
+ /**
+ * (PECL mongo >= 1.1.0)
+ *
+ * See {@link https://secure.php.net/manual/en/mongo.queries.php the query section} of this manual for
+ * information on distributing reads to secondaries.
+ *
+ * If reads should be sent to secondary members of a replica set for all
+ * possible queries using this {@link https://secure.php.net/manual/en/class.mongocollection.php MongoCollection}
+ * instance.
+ * @return bool Returns the former value of slaveOkay for this instance.
+ *
+ */
+ public function setSlaveOkay($ok = true) { }
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * @link https://secure.php.net/manual/en/mongocollection.getreadpreference.php
+ * @return array This function returns an array describing the read preference. The array contains the values type for the string read preference mode
+ * (corresponding to the {@link https://secure.php.net/manual/en/class.mongoclient.php MongoClient} constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.
+ */
+ public function getReadPreference() { }
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ * @param string $read_preference
The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @param array $tags [optional]
An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.
+ * @return bool Returns TRUE on success, or FALSE otherwise.
+ */
+ public function setReadPreference($read_preference, array $tags) { }
+
+ /**
+ * Drops this collection
+ * @link https://secure.php.net/manual/en/mongocollection.drop.php
+ * @return array Returns the database response.
+ */
+ public function drop() {}
+
+ /**
+ * Validates this collection
+ * @link https://secure.php.net/manual/en/mongocollection.validate.php
+ * @param bool $scan_data Only validate indices, not the base collection.
+ * @return array Returns the database's evaluation of this object.
+ */
+ public function validate($scan_data = false) {}
+
+ /**
+ * Inserts an array into the collection
+ * @link https://secure.php.net/manual/en/mongocollection.insert.php
+ * @param array|object $a An array or object. If an object is used, it may not have protected or private properties.
+ * Note: If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it.
+ * This special behavior does not mean that the parameter is passed by reference.
+ * @param array $options Options for the insert.
+ *
+ *
"w"
+ *
See WriteConcerns. The default value for MongoClient is 1.
+ *
"fsync"
+ *
Boolean, defaults to FALSE. Forces the insert to be synced to disk before returning success. If TRUE, an acknowledged insert is implied and will override setting w to 0.
+ *
"timeout"
+ *
Integer, defaults to MongoCursor::$timeout. If "safe" is set, this sets how long (in milliseconds) for the client to wait for a database response. If the database does not respond within the timeout period, a MongoCursorTimeoutException will be thrown.
+ *
"safe"
+ *
Deprecated. Please use the WriteConcern w option.
+ *
+ * @throws MongoException if the inserted document is empty or if it contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.
+ * @throws MongoCursorException if the "w" option is set and the write fails.
+ * @throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.
+ * @return bool|array Returns an array containing the status of the insertion if the "w" option is set.
+ * Otherwise, returns TRUE if the inserted array is not empty (a MongoException will be thrown if the inserted array is empty).
+ * If an array is returned, the following keys may be present:
+ *
+ *
ok
+ *
This should almost be 1 (unless last_error itself failed).
+ *
err
+ *
If this field is non-null, an error occurred on the previous operation. If this field is set, it will be a string describing the error that occurred.
+ *
code
+ *
If a database error occurred, the relevant error code will be passed back to the client.
+ *
errmsg
+ *
This field is set if something goes wrong with a database command. It is coupled with ok being 0. For example, if w is set and times out, errmsg will be set to "timed out waiting for slaves" and ok will be 0. If this field is set, it will be a string describing the error that occurred.
+ *
n
+ *
If the last operation was an update, upsert, or a remove, the number of documents affected will be returned. For insert operations, this value is always 0.
+ *
wtimeout
+ *
If the previous option timed out waiting for replication.
+ *
waited
+ *
How long the operation waited before timing out.
+ *
wtime
+ *
If w was set and the operation succeeded, how long it took to replicate to w servers.
+ *
upserted
+ *
If an upsert occurred, this field will contain the new record's _id field. For upserts, either this field or updatedExisting will be present (unless an error occurred).
+ *
updatedExisting
+ *
If an upsert updated an existing element, this field will be true. For upserts, either this field or upserted will be present (unless an error occurred).
+ *
+ */
+ public function insert($a, array $options = array()) {}
+
+ /**
+ * Inserts multiple documents into this collection
+ * @link https://secure.php.net/manual/en/mongocollection.batchinsert.php
+ * @param array $a An array of arrays.
+ * @param array $options Options for the inserts.
+ * @throws MongoCursorException
+ * @return array|bool if "safe" is set, returns an associative array with the status of the inserts ("ok") and any error that may have occurred ("err"). Otherwise, returns TRUE if the batch insert was successfully sent, FALSE otherwise.
+ */
+ public function batchInsert(array $a, array $options = array()) {}
+
+ /**
+ * Update records based on a given criteria
+ * @link https://secure.php.net/manual/en/mongocollection.update.php
+ * @param array $criteria Description of the objects to update.
+ * @param array $newobj The object with which to update the matching records.
+ * @param array $options This parameter is an associative array of the form
+ * array("optionname" => boolean, ...).
+ *
+ * Currently supported options are:
+ * "upsert": If no document matches $$criteria, a new document will be created from $$criteria and $$new_object (see upsert example).
+ *
+ * "multiple": All documents matching $criteria will be updated. MongoCollection::update has exactly the opposite behavior of MongoCollection::remove- it updates one document by
+ * default, not all matching documents. It is recommended that you always specify whether you want to update multiple documents or a single document, as the
+ * database may change its default behavior at some point in the future.
+ *
+ * "safe" Can be a boolean or integer, defaults to false. If false, the program continues executing without waiting for a database response. If true, the program will wait for
+ * the database response and throw a MongoCursorException if the update did not succeed. If you are using replication and the master has changed, using "safe" will make the driver
+ * disconnect from the master, throw and exception, and attempt to find a new master on the next operation (your application must decide whether or not to retry the operation on the new master).
+ * If you do not use "safe" with a replica set and the master changes, there will be no way for the driver to know about the change so it will continuously and silently fail to write.
+ * If safe is an integer, will replicate the update to that many machines before returning success (or throw an exception if the replication times out, see wtimeout).
+ * This overrides the w variable set on the collection.
+ *
+ * "fsync": Boolean, defaults to false. Forces the update to be synced to disk before returning success. If true, a safe update is implied and will override setting safe to false.
+ *
+ * "timeout" Integer, defaults to MongoCursor::$timeout. If "safe" is set, this sets how long (in milliseconds) for the client to wait for a database response. If the database does
+ * not respond within the timeout period, a MongoCursorTimeoutException will be thrown
+ * @throws MongoCursorException
+ * @return bool
+ */
+ public function update(array $criteria , array $newobj, array $options = array()) {}
+
+ /**
+ * (PECL mongo >= 0.9.0)
+ * Remove records from this collection
+ * @link https://secure.php.net/manual/en/mongocollection.remove.php
+ * @param array $criteria [optional]
Query criteria for the documents to delete.
+ * @param array $options [optional]
An array of options for the remove operation. Currently available options
+ * include:
+ *
+ *
"w"
See {@link https://secure.php.net/manual/en/mongo.writeconcerns.php Write Concerns}. The default value for MongoClient is 1.
+ *
+ *
+ * "justOne"
+ *
+ *
+ * Specify TRUE to limit deletion to just one document. If FALSE or
+ * omitted, all documents matching the criteria will be deleted.
+ *
+ *
+ *
"fsync"
Boolean, defaults to FALSE. If journaling is enabled, it works exactly like "j". If journaling is not enabled, the write operation blocks until it is synced to database files on disk. If TRUE, an acknowledged insert is implied and this option will override setting "w" to 0.
Note: If journaling is enabled, users are strongly encouraged to use the "j" option instead of "fsync". Do not use "fsync" and "j" simultaneously, as that will result in an error.
+ *
"j"
Boolean, defaults to FALSE. Forces the write operation to block until it is synced to the journal on disk. If TRUE, an acknowledged write is implied and this option will override setting "w" to 0.
Note: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.
+ *
"socketTimeoutMS"
This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).
+ *
"w"
See {@link https://secure.php.net/manual/en/mongo.writeconcerns.php Write Concerns }. The default value for MongoClient is 1.
+ *
"wTimeoutMS"
This option specifies the time limit, in milliseconds, for {@link https://secure.php.net/manual/en/mongo.writeconcerns.php write concern} acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for {@link https://secure.php.net/manual/en/class.mongoclient.php MongoClient} is 10000 (ten seconds).
+ *
+ *
+ *
+ * The following options are deprecated and should no longer be used:
+ *
+ *
"safe"
Deprecated. Please use the {@link https://secure.php.net/manual/en/mongo.writeconcerns.php write concern} "w" option.
Returns an array containing the status of the removal if the
+ * "w" option is set. Otherwise, returns TRUE.
+ *
+ *
+ * Fields in the status array are described in the documentation for
+ * MongoCollection::insert().
+ *
+ */
+ public function remove(array $criteria = array(), array $options = array()) {}
+
+ /**
+ * Querys this collection
+ * @link https://secure.php.net/manual/en/mongocollection.find.php
+ * @param array $query The fields for which to search.
+ * @param array $fields Fields of the results to return.
+ * @return MongoCursor
+ */
+ public function find(array $query = array(), array $fields = array()) {}
+
+ /**
+ * Retrieve a list of distinct values for the given key across a collection
+ * @link https://secure.php.net/manual/en/mongocollection.distinct.php
+ * @param string $key The key to use.
+ * @param array $query An optional query parameters
+ * @return array|false Returns an array of distinct values, or FALSE on failure
+ */
+ public function distinct ($key, array $query = null) {}
+
+ /**
+ * Update a document and return it
+ * @link https://secure.php.net/manual/en/mongocollection.findandmodify.php
+ * @param array $query The query criteria to search for.
+ * @param array $update The update criteria.
+ * @param array $fields Optionally only return these fields.
+ * @param array $options An array of options to apply, such as remove the match document from the DB and return it.
+ * @return array Returns the original document, or the modified document when new is set.
+ */
+ public function findAndModify (array $query, array $update = null, array $fields = null, array $options = null) {}
+
+ /**
+ * Querys this collection, returning a single element
+ * @link https://secure.php.net/manual/en/mongocollection.findone.php
+ * @param array $query The fields for which to search.
+ * @param array $fields Fields of the results to return.
+ * @param array $options This parameter is an associative array of the form array("name" => , ...).
+ * @return array|null
+ */
+ public function findOne(array $query = array(), array $fields = array(), array $options = array()) {}
+
+ /**
+ * Creates an index on the given field(s), or does nothing if the index already exists
+ * @link https://secure.php.net/manual/en/mongocollection.createindex.php
+ * @param array $keys Field or fields to use as index.
+ * @param array $options [optional] This parameter is an associative array of the form array("optionname" => , ...).
+ * @return array Returns the database response.
+ */
+ public function createIndex(array $keys, array $options = array()) {}
+
+ /**
+ * Creates an index on the given field(s), or does nothing if the index already exists
+ * @link https://secure.php.net/manual/en/mongocollection.ensureindex.php
+ * @param array $keys Field or fields to use as index.
+ * @param array $options [optional] This parameter is an associative array of the form array("optionname" => , ...).
+ * @return true always true
+ * @see MongoCollection::createIndex()
+ */
+ #[Deprecated('Use MongoCollection::createIndex() instead.')]
+ public function ensureIndex(array $keys, array $options = array()) {}
+
+ /**
+ * Deletes an index from this collection
+ * @link https://secure.php.net/manual/en/mongocollection.deleteindex.php
+ * @param string|array $keys Field or fields from which to delete the index.
+ * @return array Returns the database response.
+ */
+ public function deleteIndex($keys) {}
+
+ /**
+ * Delete all indexes for this collection
+ * @link https://secure.php.net/manual/en/mongocollection.deleteindexes.php
+ * @return array Returns the database response.
+ */
+ public function deleteIndexes() {}
+
+ /**
+ * Returns an array of index names for this collection
+ * @link https://secure.php.net/manual/en/mongocollection.getindexinfo.php
+ * @return array Returns a list of index names.
+ */
+ public function getIndexInfo() {}
+
+ /**
+ * Counts the number of documents in this collection
+ * @link https://secure.php.net/manual/en/mongocollection.count.php
+ * @param array|stdClass $query
+ * @return int Returns the number of documents matching the query.
+ */
+ public function count($query = array()) {}
+
+ /**
+ * Saves an object to this collection
+ * @link https://secure.php.net/manual/en/mongocollection.save.php
+ * @param array|object $a Array to save. If an object is used, it may not have protected or private properties.
+ * Note: If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it.
+ * See MongoCollection::insert() for additional information on this behavior.
+ * @param array $options Options for the save.
+ *
+ *
"w"
+ *
See WriteConcerns. The default value for MongoClient is 1.
+ *
"fsync"
+ *
Boolean, defaults to FALSE. Forces the insert to be synced to disk before returning success. If TRUE, an acknowledged insert is implied and will override setting w to 0.
+ *
"timeout"
+ *
Integer, defaults to MongoCursor::$timeout. If "safe" is set, this sets how long (in milliseconds) for the client to wait for a database response. If the database does not respond within the timeout period, a MongoCursorTimeoutException will be thrown.
+ *
"safe"
+ *
Deprecated. Please use the WriteConcern w option.
+ *
+ * @throws MongoException if the inserted document is empty or if it contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.
+ * @throws MongoCursorException if the "w" option is set and the write fails.
+ * @throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.
+ * @return array|bool If w was set, returns an array containing the status of the save.
+ * Otherwise, returns a boolean representing if the array was not empty (an empty array will not be inserted).
+ */
+ public function save($a, array $options = array()) {}
+
+ /**
+ * Creates a database reference
+ * @link https://secure.php.net/manual/en/mongocollection.createdbref.php
+ * @param array $a Object to which to create a reference.
+ * @return array Returns a database reference array.
+ */
+ public function createDBRef(array $a) {}
+
+ /**
+ * Fetches the document pointed to by a database reference
+ * @link https://secure.php.net/manual/en/mongocollection.getdbref.php
+ * @param array $ref A database reference.
+ * @return array Returns the database document pointed to by the reference.
+ */
+ public function getDBRef(array $ref) {}
+
+ /**
+ * @param mixed $keys
+ * @return string
+ */
+ protected static function toIndexString($keys) {}
+
+ /**
+ * Performs an operation similar to SQL's GROUP BY command
+ * @link https://secure.php.net/manual/en/mongocollection.group.php
+ * @param mixed $keys Fields to group by. If an array or non-code object is passed, it will be the key used to group results.
+ * @param array $initial Initial value of the aggregation counter object.
+ * @param MongoCode $reduce A function that aggregates (reduces) the objects iterated.
+ * @param array $condition An condition that must be true for a row to be considered.
+ * @return array
+ */
+ public function group($keys, array $initial, MongoCode $reduce, array $condition = array()) {}
+}
+
+/**
+ * Result object for database query.
+ * @link https://secure.php.net/manual/en/class.mongocursor.php
+ */
+class MongoCursor implements Iterator {
+ /**
+ * @link https://php.net/manual/en/class.mongocursor.php#mongocursor.props.slaveokay
+ * @var bool $slaveOkay
+ */
+ public static $slaveOkay = false;
+
+ /**
+ * @var int
+ * Set timeout in milliseconds for all database responses. Use
+ * -1 to wait forever. Can be overridden with
+ * {link https://secure.php.net/manual/en/mongocursor.timeout.php MongoCursor::timeout()}. This does not cause the
+ * MongoDB server to cancel the operation; it only instructs the driver to
+ * stop waiting for a response and throw a
+ * {@link https://php.net/manual/en/class.mongocursortimeoutexception.php MongoCursorTimeoutException} after a set time.
+ *
+ */
+ static $timeout = 30000;
+ /**
+ * Create a new cursor
+ * @link https://secure.php.net/manual/en/mongocursor.construct.php
+ * @param MongoClient $connection Database connection.
+ * @param string $ns Full name of database and collection.
+ * @param array $query Database query.
+ * @param array $fields Fields to return.
+ */
+ public function __construct($connection, $ns, array $query = array(), array $fields = array()) {}
+
+ /**
+ * (PECL mongo >= 1.2.11)
+ * Sets whether this cursor will wait for a while for a tailable cursor to return more data
+ * @param bool $wait [optional]
If the cursor should wait for more data to become available.
+ * @return MongoCursor Returns this cursor.
+ */
+ public function awaitData ($wait = true) {}
+ /**
+ * Checks if there are any more elements in this cursor
+ * @link https://secure.php.net/manual/en/mongocursor.hasnext.php
+ * @throws MongoConnectionException
+ * @throws MongoCursorTimeoutException
+ * @return bool Returns true if there is another element
+ */
+ public function hasNext() {}
+
+ /**
+ * Return the next object to which this cursor points, and advance the cursor
+ * @link https://secure.php.net/manual/en/mongocursor.getnext.php
+ * @throws MongoConnectionException
+ * @throws MongoCursorTimeoutException
+ * @return array Returns the next object
+ */
+ public function getNext() {}
+
+ /**
+ * (PECL mongo >= 1.3.3)
+ * @link https://secure.php.net/manual/en/mongocursor.getreadpreference.php
+ * @return array This function returns an array describing the read preference. The array contains the values type for the string
+ * read preference mode (corresponding to the {@link https://secure.php.net/manual/en/class.mongoclient.php MongoClient} constants), and tagsets containing a list of all tag set criteria. If no tag sets were specified, tagsets will not be present in the array.
+ */
+ public function getReadPreference () { }
+
+ /**
+ * Limits the number of results returned
+ * @link https://secure.php.net/manual/en/mongocursor.limit.php
+ * @param int $num The number of results to return.
+ * @throws MongoCursorException
+ * @return MongoCursor Returns this cursor
+ */
+ public function limit($num) {}
+
+ /**
+ * (PECL mongo >= 1.2.0)
+ * @link https://secure.php.net/manual/en/mongocursor.partial.php
+ * @param bool $okay [optional]
If receiving partial results is okay.
+ * @return MongoCursor Returns this cursor.
+ */
+ public function partial ($okay = true) {}
+
+ /**
+ * (PECL mongo >= 1.2.1)
+ * @link https://secure.php.net/manual/en/mongocursor.setflag.php
+ * @param int $flag
+ * Which flag to set. You can not set flag 6 (EXHAUST) as the driver does
+ * not know how to handle them. You will get a warning if you try to use
+ * this flag. For available flags, please refer to the wire protocol
+ * {@link https://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol#MongoWireProtocol-OPQUERY documentation}.
+ *
+ * @param bool $set [optional]
Whether the flag should be set (TRUE) or unset (FALSE).
The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @param array $tags [optional]
The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @return MongoCursor Returns this cursor.
+ */
+ public function setReadPreference ($read_preference, array $tags) {}
+
+ /**
+ * Skips a number of results
+ * @link https://secure.php.net/manual/en/mongocursor.skip.php
+ * @param int $num The number of results to skip.
+ * @throws MongoCursorException
+ * @return MongoCursor Returns this cursor
+ */
+ public function skip($num) {}
+
+ /**
+ * Sets whether this query can be done on a slave
+ * This method will override the static class variable slaveOkay.
+ * @link https://secure.php.net/manual/en/mongocursor.slaveOkay.php
+ * @param bool $okay If it is okay to query the slave.
+ * @throws MongoCursorException
+ * @return MongoCursor Returns this cursor
+ */
+ public function slaveOkay($okay = true) {}
+
+ /**
+ * Sets whether this cursor will be left open after fetching the last results
+ * @link https://secure.php.net/manual/en/mongocursor.tailable.php
+ * @param bool $tail If the cursor should be tailable.
+ * @return MongoCursor Returns this cursor
+ */
+ public function tailable($tail = true) {}
+
+ /**
+ * Sets whether this cursor will timeout
+ * @link https://secure.php.net/manual/en/mongocursor.immortal.php
+ * @param bool $liveForever If the cursor should be immortal.
+ * @throws MongoCursorException
+ * @return MongoCursor Returns this cursor
+ */
+ public function immortal($liveForever = true) {}
+
+ /**
+ * Sets a client-side timeout for this query
+ * @link https://secure.php.net/manual/en/mongocursor.timeout.php
+ * @param int $ms The number of milliseconds for the cursor to wait for a response. By default, the cursor will wait forever.
+ * @throws MongoCursorTimeoutException
+ * @return MongoCursor Returns this cursor
+ */
+ public function timeout($ms) {}
+
+ /**
+ * Checks if there are documents that have not been sent yet from the database for this cursor
+ * @link https://secure.php.net/manual/en/mongocursor.dead.php
+ * @return bool Returns if there are more results that have not been sent to the client, yet.
+ */
+ public function dead() {}
+
+ /**
+ * Use snapshot mode for the query
+ * @link https://secure.php.net/manual/en/mongocursor.snapshot.php
+ * @throws MongoCursorException
+ * @return MongoCursor Returns this cursor
+ */
+ public function snapshot() {}
+
+ /**
+ * Sorts the results by given fields
+ * @link https://secure.php.net/manual/en/mongocursor.sort.php
+ * @param array $fields An array of fields by which to sort. Each element in the array has as key the field name, and as value either 1 for ascending sort, or -1 for descending sort
+ * @throws MongoCursorException
+ * @return MongoCursor Returns the same cursor that this method was called on
+ */
+ public function sort(array $fields) {}
+
+ /**
+ * Gives the database a hint about the query
+ * @link https://secure.php.net/manual/en/mongocursor.hint.php
+ * @param mixed $key_pattern Indexes to use for the query.
+ * @throws MongoCursorException
+ * @return MongoCursor Returns this cursor
+ */
+ public function hint($key_pattern) {}
+
+
+ /**
+ * Adds a top-level key/value pair to a query
+ * @link https://secure.php.net/manual/en/mongocursor.addoption.php
+ * @param string $key Fieldname to add.
+ * @param mixed $value Value to add.
+ * @throws MongoCursorException
+ * @return MongoCursor Returns this cursor
+ */
+ public function addOption($key, $value) {}
+
+ /**
+ * Execute the query
+ * @link https://secure.php.net/manual/en/mongocursor.doquery.php
+ * @throws MongoConnectionException if it cannot reach the database.
+ * @return void
+ */
+ protected function doQuery() {}
+
+ /**
+ * Returns the current element
+ * @link https://secure.php.net/manual/en/mongocursor.current.php
+ * @return array
+ */
+ public function current() {}
+
+ /**
+ * Returns the current result's _id
+ * @link https://secure.php.net/manual/en/mongocursor.key.php
+ * @return string The current result's _id as a string.
+ */
+ public function key() {}
+
+ /**
+ * Advances the cursor to the next result
+ * @link https://secure.php.net/manual/en/mongocursor.next.php
+ * @throws MongoConnectionException
+ * @throws MongoCursorTimeoutException
+ * @return void
+ */
+ public function next() {}
+
+ /**
+ * Returns the cursor to the beginning of the result set
+ * @throws MongoConnectionException
+ * @throws MongoCursorTimeoutException
+ * @return void
+ */
+ public function rewind() {}
+
+ /**
+ * Checks if the cursor is reading a valid result.
+ * @link https://secure.php.net/manual/en/mongocursor.valid.php
+ * @return bool If the current result is not null.
+ */
+ public function valid() {}
+
+ /**
+ * Clears the cursor
+ * @link https://secure.php.net/manual/en/mongocursor.reset.php
+ * @return void
+ */
+ public function reset() {}
+
+ /**
+ * Return an explanation of the query, often useful for optimization and debugging
+ * @link https://secure.php.net/manual/en/mongocursor.explain.php
+ * @return array Returns an explanation of the query.
+ */
+ public function explain() {}
+
+ /**
+ * Counts the number of results for this query
+ * @link https://secure.php.net/manual/en/mongocursor.count.php
+ * @param bool $all Send cursor limit and skip information to the count function, if applicable.
+ * @return int The number of documents returned by this cursor's query.
+ */
+ public function count($all = false) {}
+
+ /**
+ * Sets the fields for a query
+ * @link https://secure.php.net/manual/en/mongocursor.fields.php
+ * @param array $f Fields to return (or not return).
+ * @throws MongoCursorException
+ * @return MongoCursor
+ */
+ public function fields(array $f){}
+
+ /**
+ * Gets the query, fields, limit, and skip for this cursor
+ * @link https://secure.php.net/manual/en/mongocursor.info.php
+ * @return array The query, fields, limit, and skip for this cursor as an associative array.
+ */
+ public function info(){}
+
+ /**
+ * PECL mongo >=1.0.11
+ * Limits the number of elements returned in one batch.
+ *
A cursor typically fetches a batch of result objects and store them locally.
+ * This method sets the batchSize value to configure the amount of documents retrieved from the server in one data packet.
+ * However, it will never return more documents than fit in the max batch size limit (usually 4MB).
+ *
+ * @param int $batchSize The number of results to return per batch. Each batch requires a round-trip to the server.
+ *
If batchSize is 2 or more, it represents the size of each batch of objects retrieved.
+ * It can be adjusted to optimize performance and limit data transfer.
+ *
+ *
If batchSize is 1 or negative, it will limit of number returned documents to the absolute value of batchSize,
+ * and the cursor will be closed. For example if batchSize is -10, then the server will return a maximum of 10
+ * documents and as many as can fit in 4MB, then close the cursor.
+ * Warning
+ *
A batchSize of 1 is special, and means the same as -1, i.e. a value of 1 makes the cursor only capable of returning one document.
+ *
Note that this feature is different from MongoCursor::limit() in that documents must fit within a maximum size,
+ * and it removes the need to send a request to close the cursor server-side.
+ * The batch size can be changed even after a cursor is iterated, in which case the setting will apply on the next batch retrieval.
+ *
This cannot override MongoDB's limit on the amount of data it will return to the client (i.e.,
+ * if you set batch size to 1,000,000,000, MongoDB will still only return 4-16MB of results per batch).
+ *
To ensure consistent behavior, the rules of MongoCursor::batchSize() and MongoCursor::limit() behave a little complex
+ * but work "as expected". The rules are: hard limits override soft limits with preference given to MongoCursor::limit() over
+ * MongoCursor::batchSize(). After that, whichever is set and lower than the other will take precedence.
+ * See below. section for some examples.
+ * @return MongoCursor Returns this cursor.
+ * @link https://secure.php.net/manual/en/mongocursor.batchsize.php
+ */
+ public function batchSize($batchSize){}
+
+ /**
+ * (PECL mongo >=1.5.0)
+ * Sets a server-side timeout for this query
+ * @link https://php.net/manual/en/mongocursor.maxtimems.php
+ * @param int $ms
+ * Specifies a cumulative time limit in milliseconds to be allowed by the
+ * server for processing operations on the cursor.
+ *
+ * @return MongoCursor This cursor.
+ */
+ public function maxTimeMS ($ms) {}
+}
+
+class MongoCommandCursor implements MongoCursorInterface {
+ /**
+ * Return the current element
+ * @link https://php.net/manual/en/iterator.current.php
+ * @return mixed Can return any type.
+ * @since 5.0.0
+ */
+ public function current(){}
+
+ /**
+ * Move forward to next element
+ * @link https://php.net/manual/en/iterator.next.php
+ * @return void Any returned value is ignored.
+ * @since 5.0.0
+ */
+ public function next(){}
+
+ /**
+ * Return the key of the current element
+ * @link https://php.net/manual/en/iterator.key.php
+ * @return mixed scalar on success, or null on failure.
+ * @since 5.0.0
+ */
+ public function key(){}
+
+ /**
+ * Checks if current position is valid
+ * @link https://php.net/manual/en/iterator.valid.php
+ * @return bool The return value will be casted to boolean and then evaluated.
+ * Returns true on success or false on failure.
+ * @since 5.0.0
+ */
+ public function valid(){}
+
+ /**
+ * Rewind the Iterator to the first element
+ * @link https://php.net/manual/en/iterator.rewind.php
+ * @return void Any returned value is ignored.
+ * @since 5.0.0
+ */
+ public function rewind(){}
+
+ function batchSize(int $batchSize):MongoCursorInterface{}
+
+ function dead():bool{}
+
+ function info():array{}
+
+ function getReadPreference():array{}
+
+ function setReadPreference(string $read_preference, array $tags = null):MongoCursorInterface{}
+
+ function timeout(int $ms):MongoCursorInterface{}
+}
+
+interface MongoCursorInterface extends Iterator
+{
+ function batchSize(int $batchSize):MongoCursorInterface;
+
+ function dead():bool;
+
+ function info():array;
+
+ function getReadPreference():array;
+
+ function setReadPreference(string $read_preference, array $tags = null):MongoCursorInterface;
+
+ function timeout(int $ms):MongoCursorInterface;
+}
+
+/**
+ *
+ */
+class MongoGridFS extends MongoCollection {
+ const ASCENDING = 1;
+ const DESCENDING = -1;
+
+ /**
+ * @link https://php.net/manual/en/class.mongogridfs.php#mongogridfs.props.chunks
+ * @var MongoCollection
+ */
+ public $chunks;
+
+ /**
+ * @link https://php.net/manual/en/class.mongogridfs.php#mongogridfs.props.filesname
+ * @var string
+ */
+ protected $filesName;
+
+ /**
+ * @link https://php.net/manual/en/class.mongogridfs.php#mongogridfs.props.chunksname
+ * @var string
+ */
+ protected $chunksName;
+
+
+
+ /**
+ * Files as stored across two collections, the first containing file meta
+ * information, the second containing chunks of the actual file. By default,
+ * fs.files and fs.chunks are the collection names used.
+ *
+ * @link https://php.net/manual/en/mongogridfs.construct.php
+ * @param MongoDB $db Database
+ * @param string $prefix [optional]
Optional collection name prefix.
+ * @param mixed $chunks [optional]
+ */
+ public function __construct($db, $prefix = "fs", $chunks = "fs") {}
+
+ /**
+ * Drops the files and chunks collections
+ * @link https://php.net/manual/en/mongogridfs.drop.php
+ * @return array The database response
+ */
+ public function drop() {}
+
+ /**
+ * @link https://php.net/manual/en/mongogridfs.find.php
+ * @param array $query The query
+ * @param array $fields Fields to return
+ * @return MongoGridFSCursor A MongoGridFSCursor
+ */
+ public function find(array $query = array(), array $fields = array()) {}
+
+ /**
+ * Stores a file in the database
+ * @link https://php.net/manual/en/mongogridfs.storefile.php
+ * @param string|resource $filename The name of the file
+ * @param array $extra Other metadata to add to the file saved
+ * @param array $options Options for the store. "safe": Check that this store succeeded
+ * @return mixed Returns the _id of the saved object
+ */
+ public function storeFile($filename, $extra = array(), $options = array()) {}
+
+ /**
+ * Chunkifies and stores bytes in the database
+ * @link https://php.net/manual/en/mongogridfs.storebytes.php
+ * @param string $bytes A string of bytes to store
+ * @param array $extra Other metadata to add to the file saved
+ * @param array $options Options for the store. "safe": Check that this store succeeded
+ * @return mixed The _id of the object saved
+ */
+ public function storeBytes($bytes, $extra = array(), $options = array()) {}
+
+ /**
+ * Returns a single file matching the criteria
+ * @link https://secure.php.net/manual/en/mongogridfs.findone.php
+ * @param array $query The fields for which to search.
+ * @param array $fields Fields of the results to return.
+ * @return MongoGridFSFile|null
+ */
+ public function findOne(array $query = array(), array $fields = array()) {}
+
+ /**
+ * Removes files from the collections
+ * @link https://secure.php.net/manual/en/mongogridfs.remove.php
+ * @param array $criteria Description of records to remove.
+ * @param array $options Options for remove. Valid options are: "safe"- Check that the remove succeeded.
+ * @throws MongoCursorException
+ * @return bool
+ */
+ public function remove(array $criteria = array(), array $options = array()) {}
+
+ /**
+ * Delete a file from the database
+ * @link https://php.net/manual/en/mongogridfs.delete.php
+ * @param mixed $id _id of the file to remove
+ * @return bool Returns true if the remove was successfully sent to the database.
+ */
+ public function delete($id) {}
+
+ /**
+ * Saves an uploaded file directly from a POST to the database
+ * @link https://secure.php.net/manual/en/mongogridfs.storeupload.php
+ * @param string $name The name attribute of the uploaded file, from .
+ * @param array $metadata An array of extra fields for the uploaded file.
+ * @return mixed Returns the _id of the uploaded file.
+ */
+ public function storeUpload($name, array $metadata = array()) {}
+
+
+ /**
+ * Retrieve a file from the database
+ * @link https://secure.php.net/manual/en/mongogridfs.get.php
+ * @param mixed $id _id of the file to find.
+ * @return MongoGridFSFile|null Returns the file, if found, or NULL.
+ */
+ public function get($id) {}
+
+ /**
+ * Stores a file in the database
+ * @link https://php.net/manual/en/mongogridfs.put.php
+ * @param string $filename The name of the file
+ * @param array $extra Other metadata to add to the file saved
+ * @return mixed Returns the _id of the saved object
+ */
+ public function put($filename, array $extra = array()) {}
+
+}
+
+class MongoGridFSFile {
+ /**
+ * @link https://php.net/manual/en/class.mongogridfsfile.php#mongogridfsfile.props.file
+ * @var array|null
+ */
+ public $file;
+
+ /**
+ * @link https://php.net/manual/en/class.mongogridfsfile.php#mongogridfsfile.props.gridfs
+ * @var MongoGridFS|null
+ */
+ protected $gridfs;
+
+ /**
+ * @link https://php.net/manual/en/mongogridfsfile.construct.php
+ * @param MongoGridFS $gridfs The parent MongoGridFS instance
+ * @param array $file A file from the database
+ */
+ public function __construct($gridfs, array $file) {}
+
+ /**
+ * Returns this file's filename
+ * @link https://php.net/manual/en/mongogridfsfile.getfilename.php
+ * @return string Returns the filename
+ */
+ public function getFilename() {}
+
+ /**
+ * Returns this file's size
+ * @link https://php.net/manual/en/mongogridfsfile.getsize.php
+ * @return int Returns this file's size
+ */
+ public function getSize() {}
+
+ /**
+ * Writes this file to the filesystem
+ * @link https://php.net/manual/en/mongogridfsfile.write.php
+ * @param string $filename The location to which to write the file (path+filename+extension). If none is given, the stored filename will be used.
+ * @return int Returns the number of bytes written
+ */
+ public function write($filename = null) {}
+
+ /**
+ * This will load the file into memory. If the file is bigger than your memory, this will cause problems!
+ * @link https://php.net/manual/en/mongogridfsfile.getbytes.php
+ * @return string Returns a string of the bytes in the file
+ */
+ public function getBytes() {}
+
+ /**
+ * This method returns a stream resource that can be used to read the stored file with all file functions in PHP.
+ * The contents of the file are pulled out of MongoDB on the fly, so that the whole file does not have to be loaded into memory first.
+ * At most two GridFSFile chunks will be loaded in memory.
+ *
+ * @link https://php.net/manual/en/mongogridfsfile.getresource.php
+ * @return resource Returns a resource that can be used to read the file with
+ */
+ public function getResource() {}
+}
+
+class MongoGridFSCursor extends MongoCursor implements Traversable, Iterator {
+ /**
+ * @var bool
+ */
+ public static $slaveOkay;
+
+ /**
+ * @link https://php.net/manual/en/class.mongogridfscursor.php#mongogridfscursor.props.gridfs
+ * @var MongoGridFS|null
+ */
+ protected $gridfs;
+
+ /**
+ * Create a new cursor
+ * @link https://php.net/manual/en/mongogridfscursor.construct.php
+ * @param MongoGridFS $gridfs Related GridFS collection
+ * @param resource $connection Database connection
+ * @param string $ns Full name of database and collection
+ * @param array $query Database query
+ * @param array $fields Fields to return
+ */
+ public function __construct($gridfs, $connection, $ns, $query, $fields) {}
+
+ /**
+ * Return the next file to which this cursor points, and advance the cursor
+ * @link https://php.net/manual/en/mongogridfscursor.getnext.php
+ * @return MongoGridFSFile Returns the next file
+ */
+ public function getNext() {}
+
+ /**
+ * Returns the current file
+ * @link https://php.net/manual/en/mongogridfscursor.current.php
+ * @return MongoGridFSFile The current file
+ */
+ public function current() {}
+
+ /**
+ * Returns the current result's filename
+ * @link https://php.net/manual/en/mongogridfscursor.key.php
+ * @return string The current results filename
+ */
+ public function key() {}
+
+}
+
+/**
+ * A unique identifier created for database objects.
+ * @link https://secure.php.net/manual/en/class.mongoid.php
+ */
+class MongoId {
+ /**
+ * @var string $id
Note: The property name begins with a $ character. It may be accessed using
+ * {@link https://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex complex variable parsed syntax} (e.g. $mongoId->{'$id'}).
+ */
+ public $id = null;
+
+ /**
+ * (PECL mongo >= 0.8.0)
+ * Creates a new id
+ * @link https://secure.php.net/manual/en/mongoid.construct.php
+ * @param MongoId|string $id [optional] A string to use as the id. Must be 24 hexadecimal characters. If an invalid string is passed to this constructor, the constructor will ignore it and create a new id value.
+ */
+ public function __construct($id = null) {}
+
+ /**
+ * (PECL mongo >= 0.8.0)
+ * Check if a value is a valid ObjectId
+ * @link https://php.net/manual/en/mongoid.isvalid.php
+ * @param mixed $value The value to check for validity.
+ * @return bool
+ * Returns TRUE if value is a
+ * MongoId instance or a string consisting of exactly 24
+ * hexadecimal characters; otherwise, FALSE is returned.
+ *
+ */
+ public static function isValid($value) {}
+ /**
+ * (PECL mongo >= 0.8.0)
+ * Returns a hexadecimal representation of this id
+ * @link https://secure.php.net/manual/en/mongoid.tostring.php
+ * @return string This id.
+ */
+ public function __toString() {}
+
+ /**
+ * (PECL mongo >= 1.0.11)
+ * Gets the incremented value to create this id
+ * @link https://php.net/manual/en/mongoid.getinc.php
+ * @return int Returns the incremented value used to create this MongoId.
+ */
+ public function getInc() {}
+
+ /**
+ * (PECL mongo >= 1.0.11)
+ * Gets the process ID
+ * @link https://php.net/manual/en/mongoid.getpid.php
+ * @return int Returns the PID of the MongoId.
+ */
+ public function getPID() {}
+
+ /**
+ * (PECL mongo >= 1.0.1)
+ * Gets the number of seconds since the epoch that this id was created
+ * @link https://secure.php.net/manual/en/mongoid.gettimestamp.php
+ * @return int
+ */
+ public function getTimestamp() {}
+
+ /**
+ * (PECL mongo >= 1.0.8)
+ * Gets the hostname being used for this machine's ids
+ * @link https://secure.php.net/manual/en/mongoid.gethostname.php
+ * @return string Returns the hostname.
+ */
+ public static function getHostname() {}
+
+ /**
+ * (PECL mongo >= 1.0.8)
+ * Create a dummy MongoId
+ * @link https://php.net/manual/en/mongoid.set-state.php
+ * @param array $props
Theoretically, an array of properties used to create the new id. However, as MongoId instances have no properties, this is not used.
+ * @return MongoId A new id with the value "000000000000000000000000".
+ */
+ public static function __set_state(array $props) {}
+}
+
+class MongoCode {
+ /**
+ * @var string
+ */
+ public $code;
+
+ /**
+ * @var array
+ */
+ public $scope;
+
+ /**
+ * .
+ *
+ * @link https://php.net/manual/en/mongocode.construct.php
+ * @param string $code A string of code
+ * @param array $scope The scope to use for the code
+ */
+ public function __construct($code, array $scope = array()) {}
+
+ /**
+ * Returns this code as a string
+ * @return string
+ */
+ public function __toString() {}
+}
+
+class MongoRegex {
+ /**
+ * @link https://php.net/manual/en/class.mongoregex.php#mongoregex.props.regex
+ * @var string
+ */
+ public $regex;
+
+ /**
+ * @link https://php.net/manual/en/class.mongoregex.php#mongoregex.props.flags
+ * @var string
+ */
+ public $flags;
+
+ /**
+ * Creates a new regular expression.
+ *
+ * @link https://php.net/manual/en/mongoregex.construct.php
+ * @param string $regex Regular expression string of the form /expr/flags
+ */
+ public function __construct($regex) {}
+
+ /**
+ * Returns a string representation of this regular expression.
+ * @return string This regular expression in the form "/expr/flags".
+ */
+ public function __toString() {}
+}
+
+class MongoDate {
+ /**
+ * @link https://php.net/manual/en/class.mongodate.php#mongodate.props.sec
+ * @var int $sec
+ */
+ public $sec;
+
+ /**
+ * @link https://php.net/manual/en/class.mongodate.php#mongodate.props.usec
+ * @var int $usec
+ */
+ public $usec;
+
+ /**
+ * Creates a new date. If no parameters are given, the current time is used.
+ *
+ * @link https://php.net/manual/en/mongodate.construct.php
+ * @param int $sec Number of seconds since January 1st, 1970
+ * @param int $usec Microseconds
+ */
+ public function __construct($sec = 0, $usec = 0) {}
+
+ /**
+ * Returns a DateTime object representing this date
+ * @link https://php.net/manual/en/mongodate.todatetime.php
+ * @return DateTime
+ */
+ public function toDateTime() {}
+
+ /**
+ * Returns a string representation of this date
+ * @return string
+ */
+ public function __toString() {}
+}
+
+class MongoBinData {
+ /**
+ * Generic binary data.
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.custom
+ */
+ const GENERIC = 0x0;
+
+ /**
+ * Function
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.func
+ */
+ const FUNC = 0x1;
+
+ /**
+ * Generic binary data (deprecated in favor of MongoBinData::GENERIC)
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.byte-array
+ */
+ const BYTE_ARRAY = 0x2;
+
+ /**
+ * Universally unique identifier (deprecated in favor of MongoBinData::UUID_RFC4122)
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.uuid
+ */
+ const UUID = 0x3;
+
+ /**
+ * Universally unique identifier (according to » RFC 4122)
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.custom
+ */
+ const UUID_RFC4122 = 0x4;
+
+
+ /**
+ * MD5
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.md5
+ */
+ const MD5 = 0x5;
+
+ /**
+ * User-defined type
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.custom
+ */
+ const CUSTOM = 0x80;
+
+
+ /**
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.props.bin
+ * @var string
+ */
+ public $bin;
+
+ /**
+ * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.props.type
+ * @var int
+ */
+ public $type;
+
+
+ /**
+ * Creates a new binary data object.
+ *
+ * @link https://php.net/manual/en/mongobindata.construct.php
+ * @param string $data Binary data
+ * @param int $type Data type
+ */
+ public function __construct($data, $type = 2) {}
+
+ /**
+ * Returns the string representation of this binary data object.
+ * @return string
+ */
+ public function __toString() {}
+}
+
+class MongoDBRef {
+ /**
+ * @var string
+ */
+ protected static $refKey = '$ref';
+
+ /**
+ * @var string
+ */
+ protected static $idKey = '$id';
+
+ /**
+ * If no database is given, the current database is used.
+ *
+ * @link https://php.net/manual/en/mongodbref.create.php
+ * @param string $collection Collection name (without the database name)
+ * @param mixed $id The _id field of the object to which to link
+ * @param string $database Database name
+ * @return array Returns the reference
+ */
+ public static function create($collection, $id, $database = null) {}
+
+ /**
+ * This not actually follow the reference, so it does not determine if it is broken or not.
+ * It merely checks that $ref is in valid database reference format (in that it is an object or array with $ref and $id fields).
+ *
+ * @link https://php.net/manual/en/mongodbref.isref.php
+ * @param mixed $ref Array or object to check
+ * @return bool Returns true if $ref is a reference
+ */
+ public static function isRef($ref) {}
+
+ /**
+ * Fetches the object pointed to by a reference
+ * @link https://php.net/manual/en/mongodbref.get.php
+ * @param MongoDB $db Database to use
+ * @param array $ref Reference to fetch
+ * @return array|null Returns the document to which the reference refers or null if the document does not exist (the reference is broken)
+ */
+ public static function get($db, $ref) {}
+}
+
+class MongoWriteBatch
+{
+
+ const COMMAND_INSERT = 1;
+ const COMMAND_UPDATE = 2;
+ const COMMAND_DELETE = 3;
+
+
+ /**
+ *
(PECL mongo >= 1.5.0)
+ * MongoWriteBatch constructor.
+ * @link https://php.net/manual/en/mongowritebatch.construct.php
+ * @param MongoCollection $collection The {@see MongoCollection} to execute the batch on.
+ * Its {@link https://php.net/manual/en/mongo.writeconcerns.php write concern}
+ * will be copied and used as the default write concern if none is given as $write_options or during
+ * {@see MongoWriteBatch::execute()}.
+ * @param string $batch_type [optional]
+ * One of:
+ *
+ *
0 - make an MongoWriteBatch::COMMAND_INSERT batch
+ *
1 - make an MongoWriteBatch::COMMAND_UPDATE batch
+ *
2 - make a MongoWriteBatch::COMMAND_DELETE batch
+ *
+ * @param array $write_options [optional]
+ *
An array of Write Options.
key
value meaning
+ *
+ *
w (int|string)
{@link https://php.net/manual/en/mongo.writeconcerns.php Write concern} value
+ *
wtimeout (int)
{@link https://php.net/manual/en/mongo.writeconcerns.php Maximum time to wait for replication}
+ *
ordered
Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it.
+ * Defaults to TRUE
+ *
j (bool)
Wait for journaling on the primary. This value is discouraged, use WriteConcern instead
+ *
fsync (bool)
Wait for fsync on the primary. This value is discouraged, use WriteConcern instead
+ * Adds a write operation to a batch
+ * @link https://php.net/manual/en/mongowritebatch.add.php
+ * @param array $item
+ * An array that describes a write operation. The structure of this value
+ * depends on the batch's operation type.
+ *
+ *
+ *
+ *
Batch type
+ *
Argument expectation
+ *
+ *
+ *
+ *
+ *
+ *
+ *
MongoWriteBatch::COMMAND_INSERT
+ *
+ * The document to add.
+ *
+ *
+ *
+ *
MongoWriteBatch::COMMAND_UPDATE
+ *
+ *
Raw update operation.
+ *
Required keys are "q" and "u", which correspond to the
+ * $criteria and $new_object parameters of {@see MongoCollection::update()}, respectively.
+ *
Optional keys are "multi" and "upsert", which correspond to the
+ * "multiple" and "upsert" options for {@see MongoCollection::update()}, respectively.
+ * If unspecified, both options default to FALSE.
+ *
+ *
+ *
+ *
MongoWriteBatch::COMMAND_DELETE
+ *
+ *
Raw delete operation.
+ *
Required keys are: "q" and "limit", which correspond to the $criteria parameter
+ * and "justOne" option of {@see MongoCollection::remove()}, respectively.
+ *
The "limit" option is an integer; however, MongoDB only supports 0 (i.e. remove all matching
+ * ocuments) and 1 (i.e. remove at most one matching document) at this time.
+ *
+ *
+ *
+ *
+ * @return bool Returns TRUE on success and throws an exception on failure.
+ */
+ public function add(array $item)
+ {
+ }
+
+ /**
+ *
(PECL mongo >= 1.5.0)
+ * Executes a batch of write operations
+ * @link https://php.net/manual/en/mongowritebatch.execute.php
+ * @param array $write_options See {@see MongoWriteBatch::__construct}
+ * @return array Returns an array containing statistical information for the full batch.
+ * If the batch had to be split into multiple batches, the return value will aggregate the values from individual batches and return only the totals.
+ * If the batch was empty, an array containing only the 'ok' field is returned (as TRUE(PECL mongo >= 1.5.0)
+ * MongoUpdateBatch constructor.
+ * @link https://php.net/manual/en/mongoupdatebatch.construct.php
+ * @param MongoCollection $collection
The MongoCollection to execute the batch on.
+ * Its write concern will be copied and used as the default write concern
+ * if none is given as $write_options or during {@see MongoWriteBatch::execute()}.
+ * @param array $write_options
An array of Write Options.
key
value meaning
+ *
+ *
w (int|string)
{@link https://php.net/manual/en/mongo.writeconcerns.php Write concern} value
+ *
wtimeout (int)
{@link https://php.net/manual/en/mongo.writeconcerns.php Maximum time to wait for replication}
+ *
ordered
Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it. Defaults to TRUE
+ *
j (bool)
Wait for journaling on the primary. This value is discouraged, use WriteConcern instead
+ *
fsync (bool)
Wait for fsync on the primary. This value is discouraged, use WriteConcern instead
+ * Retrieve the full result document
+ * https://secure.php.net/manual/en/mongoresultexception.getdocument.php
+ * @return array
The full result document as an array, including partial data if available and additional keys.
+ */
+ public function getDocument () {}
+
+ public $document;
+
+
+}
+
+class MongoTimestamp {
+ /**
+ * @link https://php.net/manual/en/class.mongotimestamp.php#mongotimestamp.props.sec
+ * @var int
+ */
+ public $sec;
+
+ /**
+ * @link https://php.net/manual/en/class.mongotimestamp.php#mongotimestamp.props.inc
+ * @var int
+ */
+ public $inc;
+
+ /**
+ * Creates a new timestamp. If no parameters are given, the current time is used
+ * and the increment is automatically provided. The increment is set to 0 when the
+ * module is loaded and is incremented every time this constructor is called
+ * (without the $inc parameter passed in).
+ *
+ * @link https://php.net/manual/en/mongotimestamp.construct.php
+ * @param int $sec [optional] Number of seconds since January 1st, 1970
+ * @param int $inc [optional] Increment
+ */
+ public function __construct($sec = 0, $inc) {}
+
+ /**
+ * @return string
+ */
+ public function __toString() {}
+}
+
+class MongoInt32 {
+ /**
+ * @link https://php.net/manual/en/class.mongoint32.php#mongoint32.props.value
+ * @var string
+ */
+ public $value;
+
+
+ /**
+ * Creates a new 32-bit number with the given value.
+ *
+ * @link https://php.net/manual/en/mongoint32.construct.php
+ * @param string $value A number
+ */
+ public function __construct($value) {}
+
+ /**
+ * @return string
+ */
+ public function __toString() {}
+}
+
+class MongoInt64 {
+ /**
+ * @link https://php.net/manual/en/class.mongoint64.php#mongoint64.props.value
+ * @var string
+ */
+ public $value;
+
+
+ /**
+ * Creates a new 64-bit number with the given value.
+ *
+ * @link https://php.net/manual/en/mongoint64.construct.php
+ * @param string $value A number
+ */
+ public function __construct($value) {}
+
+ /**
+ * @return string
+ */
+ public function __toString() {}
+}
+
+class MongoLog {
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.none
+ */
+ const NONE = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.all
+ */
+ const ALL = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.warning
+ */
+ const WARNING = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.info
+ */
+ const INFO = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.fine
+ */
+ const FINE = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.rs
+ */
+ const RS = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.pool
+ */
+ const POOL = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.io
+ */
+ const IO = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.server
+ */
+ const SERVER = 0;
+
+ /**
+ * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.parse
+ */
+ const PARSE = 0;
+
+ const CON = 2;
+
+ /**
+ * (PECL mongo >= 1.3.0)
+ *
+ * This function will set a callback function to be called for {@link https://secure.php.net/manual/en/class.mongolog.php MongoLog} events
+ * instead of triggering warnings.
+ *
One of the {@link https://secure.php.net/manual/en/class.mongolog.php#mongolog.constants.module MongoLog module constants}.
+ *
+ *
+ * level
+ *
+ *
One of the {@link https://secure.php.net/manual/en/class.mongolog.php#mongolog.constants.level MongoLog level constants}.
+ *
+ * message
+ *
+ *
The log message itself.
+ *
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public static function setCallback ( callable $log_function ) {}
+
+ /**
+ * This function can be used to set how verbose logging should be and the types of
+ * activities that should be logged. Use the constants described in the MongoLog
+ * section with bitwise operators to specify levels.
+ *
+ * @link https://php.net/manual/en/mongolog.setlevel.php
+ * @param int $level The levels you would like to log
+ * @return void
+ */
+ public static function setLevel($level) {}
+
+ /**
+ * This can be used to see the log level. Use the constants described in the
+ * MongoLog section with bitwise operators to check the level.
+ *
+ * @link https://php.net/manual/en/mongolog.getlevel.php
+ * @return int Returns the current level
+ */
+ public static function getLevel() {}
+
+ /**
+ * This function can be used to set which parts of the driver's functionality
+ * should be logged. Use the constants described in the MongoLog section with
+ * bitwise operators to specify modules.
+ *
+ * @link https://php.net/manual/en/mongolog.setmodule.php
+ * @param int $module The module(s) you would like to log
+ * @return void
+ */
+ public static function setModule($module) {}
+
+ /**
+ * This function can be used to see which parts of the driver's functionality are
+ * being logged. Use the constants described in the MongoLog section with bitwise
+ * operators to check if specific modules are being logged.
+ *
+ * @link https://php.net/manual/en/mongolog.getmodule.php
+ * @return int Returns the modules currently being logged
+ */
+ public static function getModule() {}
+}
+
+class MongoPool {
+ /**
+ * Returns an array of information about all connection pools.
+ *
+ * @link https://php.net/manual/en/mongopool.info.php
+ * @return array Each connection pool has an identifier, which starts with the host. For
+ * each pool, this function shows the following fields: $in use The number of
+ * connections currently being used by Mongo instances. $in pool The number of
+ * connections currently in the pool (not being used). $remaining The number of
+ * connections that could be created by this pool. For example, suppose a pool had
+ * 5 connections remaining and 3 connections in the pool. We could create 8 new
+ * instances of Mongo before we exhausted this pool (assuming no instances of Mongo
+ * went out of scope, returning their connections to the pool). A negative number
+ * means that this pool will spawn unlimited connections. Before a pool is created,
+ * you can change the max number of connections by calling Mongo::setPoolSize. Once
+ * a pool is showing up in the output of this function, its size cannot be changed.
+ * $total The total number of connections allowed for this pool. This should be
+ * greater than or equal to "in use" + "in pool" (or -1). $timeout The socket
+ * timeout for connections in this pool. This is how long connections in this pool
+ * will attempt to connect to a server before giving up. $waiting If you have
+ * capped the pool size, workers requesting connections from the pool may block
+ * until other workers return their connections. This field shows how many
+ * milliseconds workers have blocked for connections to be released. If this number
+ * keeps increasing, you may want to use MongoPool::setSize to add more connections
+ * to your pool
+ */
+ public static function info() {}
+
+ /**
+ * Sets the max number of connections new pools will be able to create.
+ *
+ * @link https://php.net/manual/en/mongopool.setsize.php
+ * @param int $size The max number of connections future pools will be able to
+ * create. Negative numbers mean that the pool will spawn an infinite number of
+ * connections
+ * @return bool Returns the former value of pool size
+ */
+ public static function setSize($size) {}
+
+ /**
+ * .
+ *
+ * @link https://php.net/manual/en/mongopool.getsize.php
+ * @return int Returns the current pool size
+ */
+ public static function getSize() {}
+}
+
+
+class MongoMaxKey {
+}
+
+class MongoMinKey {
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/mongodb/mongodb.php b/vendor/jetbrains/phpstorm-stubs/mongodb/mongodb.php
new file mode 100644
index 0000000000..b82d72c54b
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mongodb/mongodb.php
@@ -0,0 +1,3210 @@
+
+ */
+
+/**
+ * Unlike the mongo extension, this extension supports both PHP and HHVM and is developed atop the » libmongoc and » libbson libraries. It provides a minimal API for core driver functionality: commands, queries, writes, connection management, and BSON serialization.
+ * Userland PHP libraries that depend on this extension may provide higher level APIs, such as query builders, individual command helper methods, and GridFS. Application developers should consider using this extension in conjunction with the » MongoDB PHP library, which implements the same higher level APIs found in MongoDB drivers for other languages. This separation of concerns allows the driver to focus on essential features for which an extension implementation is paramount for performance.
+ * @link https://php.net/manual/en/set.mongodb.php
+ */
+namespace MongoDB {}
+
+ namespace MongoDB\Driver {
+
+ use MongoDB\BSON\Serializable;
+ use MongoDB\Driver\Exception\AuthenticationException;
+ use MongoDB\Driver\Exception\BulkWriteException;
+ use MongoDB\Driver\Exception\CommandException;
+ use MongoDB\Driver\Exception\ConnectionException;
+ use MongoDB\Driver\Exception\EncryptionException;
+ use MongoDB\Driver\Exception\Exception;
+ use MongoDB\Driver\Exception\InvalidArgumentException;
+ use MongoDB\Driver\Exception\RuntimeException;
+ use MongoDB\Driver\Exception\UnexpectedValueException;
+ use MongoDB\Driver\Exception\WriteConcernException;
+ use MongoDB\Driver\Exception\WriteException;
+ use Traversable;
+
+ /**
+ * The MongoDB\Driver\Manager is the main entry point to the extension. It is responsible for maintaining connections to MongoDB (be it standalone server, replica set, or sharded cluster).
+ * No connection to MongoDB is made upon instantiating the Manager. This means the MongoDB\Driver\Manager can always be constructed, even though one or more MongoDB servers are down.
+ * Any write or query can throw connection exceptions as connections are created lazily. A MongoDB server may also become unavailable during the life time of the script. It is therefore important that all actions on the Manager to be wrapped in try/catch statements.
+ * @link https://php.net/manual/en/class.mongodb-driver-manager.php
+ */
+ final class Manager
+ {
+ /**
+ * Manager constructor.
+ * @link https://php.net/manual/en/mongodb-driver-manager.construct.php
+ * @param string $uri A mongodb:// connection URI
+ * @param array $uriOptions Connection string options
+ * @param array $driverOptions Any driver-specific options not included in MongoDB connection spec.
+ * @throws InvalidArgumentException on argument parsing errors
+ * @throws RuntimeException if the uri format is invalid
+ */
+ final public function __construct($uri, array $uriOptions = [], array $driverOptions = [])
+ {
+ }
+
+ /**
+ * Return a ClientEncryption instance.
+ * @link https://php.net/manual/en/mongodb-driver-manager.createclientencryption.php
+ * @param array $options
+ * @return \MongoDB\Driver\ClientEncryption
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException On argument parsing errors.
+ * @throws \MongoDB\Driver\Exception\RuntimeException If the extension was compiled without libmongocrypt support.
+ */
+ final public function createClientEncryption(array $options)
+ {
+ }
+
+ /**
+ * Execute one or more write operations
+ * @link https://php.net/manual/en/mongodb-driver-manager.executebulkwrite.php
+ * @param string $namespace A fully qualified namespace (databaseName.collectionName)
+ * @param BulkWrite $bulk The MongoDB\Driver\BulkWrite to execute.
+ * @param array|WriteConcern $options WriteConcern type for backwards compatibility
+ * @return WriteResult
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @throws ConnectionException if connection to the server fails for other then authentication reasons
+ * @throws AuthenticationException if authentication is needed and fails
+ * @throws BulkWriteException on any write failure
+ * @throws RuntimeException on other errors (invalid command, command arguments, ...)
+ * @since 1.4.0 added $options argument
+ */
+ final public function executeBulkWrite($namespace, BulkWrite $bulk, $options = [])
+ {
+ }
+
+ /**
+ * @link https://php.net/manual/en/mongodb-driver-manager.executecommand.php
+ * @param string $db The name of the database on which to execute the command.
+ * @param Command $command The command document.
+ * @param array|ReadPreference $options ReadPreference type for backwards compatibility
+ * @return Cursor
+ * @throws Exception
+ * @throws AuthenticationException if authentication is needed and fails
+ * @throws ConnectionException if connection to the server fails for other then authentication reasons
+ * @throws RuntimeException on other errors (invalid command, command arguments, ...)
+ * @throws WriteException on Write Error
+ * @throws WriteConcernException on Write Concern failure
+ * @since 1.4.0 added $options argument
+ */
+ final public function executeCommand($db, Command $command, $options = [])
+ {
+ }
+
+ /**
+ * Execute a MongoDB query
+ * @link https://php.net/manual/en/mongodb-driver-manager.executequery.php
+ * @param string $namespace A fully qualified namespace (databaseName.collectionName)
+ * @param Query $query A MongoDB\Driver\Query to execute.
+ * @param array|ReadPreference $options ReadPreference type for backwards compatibility
+ * @return Cursor
+ * @throws Exception
+ * @throws AuthenticationException if authentication is needed and fails
+ * @throws ConnectionException if connection to the server fails for other then authentication reasons
+ * @throws RuntimeException on other errors (invalid command, command arguments, ...)
+ * @since 1.4.0 added $options argument
+ */
+ final public function executeQuery($namespace, Query $query, $options = [])
+ {
+ }
+
+ /**
+ * @link https://php.net/manual/en/mongodb-driver-manager.executereadcommand.php
+ * @param string $db The name of the database on which to execute the command that reads.
+ * @param Command $command The command document.
+ * @param array $options
+ * @return Cursor
+ * @throws Exception
+ * @throws AuthenticationException if authentication is needed and fails
+ * @throws ConnectionException if connection to the server fails for other then authentication reasons
+ * @throws RuntimeException on other errors (invalid command, command arguments, ...)
+ * @throws WriteException on Write Error
+ * @throws WriteConcernException on Write Concern failure
+ * @since 1.4.0
+ */
+ final public function executeReadCommand($db, Command $command, array $options = [])
+ {
+ }
+
+ /**
+ * @link https://php.net/manual/en/mongodb-driver-manager.executereadwritecommand.php
+ * @param string $db The name of the database on which to execute the command that reads.
+ * @param Command $command The command document.
+ * @param array $options
+ * @return Cursor
+ * @throws Exception
+ * @throws AuthenticationException if authentication is needed and fails
+ * @throws ConnectionException if connection to the server fails for other then authentication reasons
+ * @throws RuntimeException on other errors (invalid command, command arguments, ...)
+ * @throws WriteException on Write Error
+ * @throws WriteConcernException on Write Concern failure
+ * @since 1.4.0
+ */
+ final public function executeReadWriteCommand($db, Command $command, array $options = [])
+ {
+ }
+
+ /**
+ * @link https://php.net/manual/en/mongodb-driver-manager.executewritecommand.php
+ * @param string $db The name of the database on which to execute the command that writes.
+ * @param Command $command The command document.
+ * @param array $options
+ * @return Cursor
+ * @throws Exception
+ * @throws AuthenticationException if authentication is needed and fails
+ * @throws ConnectionException if connection to the server fails for other then authentication reasons
+ * @throws RuntimeException on other errors (invalid command, command arguments, ...)
+ * @throws WriteException on Write Error
+ * @throws WriteConcernException on Write Concern failure
+ * @since 1.4.0
+ */
+ final public function executeWriteCommand($db, Command $command, array $options = [])
+ {
+ }
+
+ /**
+ * Return the ReadConcern for the Manager
+ * @link https://php.net/manual/en/mongodb-driver-manager.getreadconcern.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return ReadConcern
+ */
+ final public function getReadConcern()
+ {
+ }
+
+ /**
+ * Return the ReadPreference for the Manager
+ * @link https://php.net/manual/en/mongodb-driver-manager.getreadpreference.php
+ * @throws InvalidArgumentException
+ * @return ReadPreference
+ */
+ final public function getReadPreference()
+ {
+ }
+
+ /**
+ * Return the servers to which this manager is connected
+ * @link https://php.net/manual/en/mongodb-driver-manager.getservers.php
+ * @throws InvalidArgumentException on argument parsing errors
+ * @return Server[]
+ */
+ final public function getServers()
+ {
+ }
+
+ /**
+ * Return the WriteConcern for the Manager
+ * @link https://php.net/manual/en/mongodb-driver-manager.getwriteconcern.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return WriteConcern
+ */
+ final public function getWriteConcern()
+ {
+ }
+
+ /**
+ * Preselect a MongoDB node based on provided readPreference. This can be useful to guarantee a command runs on a specific server when operating in a mixed version cluster.
+ * https://secure.php.net/manual/en/mongodb-driver-manager.selectserver.php
+ * @param ReadPreference $readPreference Optionally, a MongoDB\Driver\ReadPreference to route the command to. If none given, defaults to the Read Preferences set by the MongoDB Connection URI.
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @throws ConnectionException if connection to the server fails (for reasons other than authentication).
+ * @throws AuthenticationException if authentication is needed and fails.
+ * @throws RuntimeException if a server matching the read preference could not be found.
+ * @return Server
+ */
+ final public function selectServer(ReadPreference $readPreference = null)
+ {
+ }
+
+ /**
+ * Start a new client session for use with this client
+ * @param array $options
+ * @return \MongoDB\Driver\Session
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException On argument parsing errors
+ * @throws \MongoDB\Driver\Exception\RuntimeException If the session could not be created (e.g. libmongoc does not support crypto).
+ * @link https://secure.php.net/manual/en/mongodb-driver-manager.startsession.php
+ * @since 1.4.0
+ */
+ final public function startSession(array $options = [])
+ {
+ }
+ }
+
+ /**
+ * @link https://php.net/manual/en/class.mongodb-driver-server.php
+ */
+ final class Server
+ {
+ const TYPE_UNKNOWN = 0;
+ const TYPE_STANDALONE = 1;
+ const TYPE_MONGOS = 2;
+ const TYPE_POSSIBLE_PRIMARY = 3;
+ const TYPE_RS_PRIMARY = 4;
+ const TYPE_RS_SECONDARY = 5;
+ const TYPE_RS_ARBITER = 6;
+ const TYPE_RS_OTHER = 7;
+ const TYPE_RS_GHOST = 8;
+
+ /**
+ * Server constructor.
+ * @link https://php.net/manual/en/mongodb-driver-server.construct.php
+ * @throws RuntimeException (can only be created internally)
+ */
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Execute one or more write operations on this server
+ * @link https://php.net/manual/en/mongodb-driver-server.executebulkwrite.php
+ * @param string $namespace A fully qualified namespace (e.g. "databaseName.collectionName").
+ * @param BulkWrite $zwrite The MongoDB\Driver\BulkWrite to execute.
+ * @param array $options
+ * @throws BulkWriteException on any write failure (e.g. write error, failure to apply a write concern).
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @throws ConnectionException if connection to the server fails (for reasons other than authentication).
+ * @throws AuthenticationException if authentication is needed and fails.
+ * @throws RuntimeException on other errors.
+ * @return WriteResult
+ * @since 1.0.0
+ */
+ final public function executeBulkWrite($namespace, BulkWrite $zwrite, $options = [])
+ {
+ }
+
+ /**
+ * Execute a database command on this server
+ * @link https://php.net/manual/en/mongodb-driver-server.executecommand.php
+ * @param string $db The name of the database on which to execute the command.
+ * @param Command $command The MongoDB\Driver\Command to execute.
+ * @param ReadPreference $readPreference Optionally, a MongoDB\Driver\ReadPreference to select the server for this operation. If none is given, the read preference from the MongoDB Connection URI will be used.
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @throws ConnectionException if connection to the server fails (for reasons other than authentication).
+ * @throws AuthenticationException if authentication is needed and fails.
+ * @throws RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).
+ * @return Cursor
+ * @since 1.0.0
+ */
+ final public function executeCommand($db, Command $command, ReadPreference $readPreference = null)
+ {
+ }
+
+ /**
+ * Execute a database command that reads on this server
+ * @link https://secure.php.net/manual/en/mongodb-driver-server.executereadcommand.php
+ * @param string $db
+ * @param \MongoDB\Driver\Command $command
+ * @param array $option
+ * @return Cursor
+ * @throws InvalidArgumentException On argument parsing errors or if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
+ * @throws ConnectionException If connection to the server fails (for reasons other than authentication).
+ * @throws AuthenticationException If authentication is needed and fails.
+ * @throws RuntimeException On other errors (e.g. invalid command).
+ * @since 1.4.0
+ */
+ final public function executeReadCommand($db, Command $command, array $option = [])
+ {
+ }
+
+ /**
+ * Execute a database command that reads and writes on this server
+ * @link https://secure.php.net/manual/en/mongodb-driver-server.executereadwritecommand.php
+ * @param string $db
+ * @param \MongoDB\Driver\Command $command
+ * @param array $option
+ * @return Cursor
+ * @throws InvalidArgumentException On argument parsing errors OR if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option OR if the "session" option is used in combination with an unacknowledged write concern
+ * @throws ConnectionException If connection to the server fails (for reasons other than authentication).
+ * @throws AuthenticationException If authentication is needed and fails.
+ * @throws RuntimeException On other errors (e.g. invalid command).
+ * @since 1.4.0
+ */
+ final public function executeReadWriteCommand($db, Command $command, array $option = [])
+ {
+ }
+
+ /**
+ * Execute a database command that writes on this server
+ * @link https://secure.php.net/manual/en/mongodb-driver-server.executewritecommand.php
+ * @param string $db
+ * @param \MongoDB\Driver\Command $command
+ * @param array $option
+ * @return Cursor
+ * @throws InvalidArgumentException On argument parsing errors or if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
+ * @throws ConnectionException If connection to the server fails (for reasons other than authentication).
+ * @throws AuthenticationException If authentication is needed and fails.
+ * @throws RuntimeException On other errors (e.g. invalid command).
+ * @since 1.4.0
+ */
+ final public function executeWriteCommand($db, Command $command, array $option = [])
+ {
+ }
+
+ /**
+ * Execute a database query on this server
+ * @link https://php.net/manual/en/mongodb-driver-server.executequery.php
+ * @param string $namespace A fully qualified namespace (e.g. "databaseName.collectionName").
+ * @param Query $query The MongoDB\Driver\Query to execute.
+ * @param array|ReadPreference $options
+ *
+ * A session to associate with the operation.
+ *
+ *
+ *
+ *
+ *
+ * The third parameter is now an options array. For backwards compatibility, this parameter will still accept a MongoDB\Driver\ReadPreference object.
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @throws ConnectionException if connection to the server fails (for reasons other than authentication).
+ * @throws AuthenticationException if authentication is needed and fails.
+ * @throws RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).
+ * @return Cursor
+ */
+ final public function executeQuery($namespace, Query $query, $option = [])
+ {
+ }
+
+ /**
+ * Returns the hostname of this server
+ * @link https://php.net/manual/en/mongodb-driver-server.gethost.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return string
+ */
+ final public function getHost()
+ {
+ }
+
+ /**
+ * Returns an array of information about this server
+ * @link https://php.net/manual/en/mongodb-driver-server.getinfo.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return array
+ */
+ final public function getInfo()
+ {
+ }
+
+ /**
+ * Returns the latency of this server
+ * @link https://php.net/manual/en/mongodb-driver-server.getlatency.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return integer
+ */
+ final public function getLatency()
+ {
+ }
+
+ /**
+ * Returns the port on which this server is listening
+ * @link https://php.net/manual/en/mongodb-driver-server.getport.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return integer
+ */
+ final public function getPort()
+ {
+ }
+
+ /**
+ * Returns an array of tags describing this server in a replica set
+ * @link https://php.net/manual/en/mongodb-driver-server.gettags.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return array An array of tags used to describe this server in a replica set. The array will contain zero or more string key and value pairs.
+ */
+ final public function getTags()
+ {
+ }
+
+ /**
+ * Returns an integer denoting the type of this server
+ * @link https://php.net/manual/en/mongodb-driver-server.gettype.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return integer denoting the type of this server
+ */
+ final public function getType()
+ {
+ }
+
+ /**
+ * Checks if this server is an arbiter member of a replica set
+ * @link https://php.net/manual/en/mongodb-driver-server.isarbiter.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return bool
+ */
+ final public function isArbiter()
+ {
+ }
+
+ /**
+ * Checks if this server is a hidden member of a replica set
+ * @link https://php.net/manual/en/mongodb-driver-server.ishidden.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return bool
+ */
+ final public function isHidden()
+ {
+ }
+
+ /**
+ * Checks if this server is a passive member of a replica set
+ * @link https://php.net/manual/en/mongodb-driver-server.ispassive.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return bool
+ */
+ final public function isPassive()
+ {
+ }
+
+ /**
+ * Checks if this server is a primary member of a replica set
+ * @link https://php.net/manual/en/mongodb-driver-server.isprimary.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return bool
+ */
+ final public function isPrimary()
+ {
+ }
+
+ /**
+ * Checks if this server is a secondary member of a replica set
+ * @link https://php.net/manual/en/mongodb-driver-server.issecondary.php
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @return bool
+ */
+ final public function isSecondary()
+ {
+ }
+ }
+
+ /**
+ * The MongoDB\Driver\Query class is a value object that represents a database query.
+ * @link https://php.net/manual/en/class.mongodb-driver-query.php
+ */
+ final class Query
+ {
+ /**
+ * Construct new Query
+ * @link https://php.net/manual/en/mongodb-driver-query.construct.php
+ * @param array|object $filter The search filter.
+ * @param array $queryOptions
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ final public function __construct($filter, array $queryOptions = [])
+ {
+ }
+ }
+
+ /**
+ * The MongoDB\Driver\Command class is a value object that represents a database command.
+ * To provide "Command Helpers" the MongoDB\Driver\Command object should be composed.
+ * @link https://php.net/manual/en/class.mongodb-driver-command.php
+ * @since 1.0.0
+ */
+ final class Command
+ {
+ /**
+ * Construct new Command
+ * @param array|object $document The complete command to construct
+ * @param array $commandOptions Do not use this parameter to specify options described in the command's reference in the MongoDB manual.
+ * @throws InvalidArgumentException on argument parsing errors.
+ * @link https://secure.php.net/manual/en/mongodb-driver-command.construct.php
+ * @since 1.0.0
+ */
+ final public function __construct($document, array $commandOptions = [])
+ {
+ }
+ }
+
+ /**
+ * Class ReadPreference
+ * @link https://php.net/manual/en/class.mongodb-driver-readpreference.php
+ */
+ final class ReadPreference implements Serializable, \Serializable
+ {
+ const RP_PRIMARY = 1;
+ const RP_PRIMARY_PREFERRED = 5;
+ const RP_SECONDARY = 2;
+ const RP_SECONDARY_PREFERRED = 6;
+ const RP_NEAREST = 10;
+
+ /**
+ * @since 1.7.0
+ */
+ const PRIMARY = 'primary';
+ /**
+ * @since 1.7.0
+ */
+ const PRIMARY_PREFERRED = 'primaryPreferred';
+ /**
+ * @since 1.7.0
+ */
+ const SECONDARY = 'secondary';
+ /**
+ * @since 1.7.0
+ */
+ const SECONDARY_PREFERRED = 'secondaryPreferred';
+ /**
+ * @since 1.7.0
+ */
+ const NEAREST = 'nearest';
+
+ /**
+ * @since 1.2.0
+ */
+ const NO_MAX_STALENESS = -1;
+ /**
+ * @since 1.2.0
+ */
+ const SMALLEST_MAX_STALENESS_SECONDS = 90;
+
+ /**
+ * Construct immutable ReadPreference
+ * @link https://php.net/manual/en/mongodb-driver-readpreference.construct.php
+ * @param string|int $mode
+ * @param array|null $tagSets
+ * @param array $options
+ * @throws InvalidArgumentException if mode is invalid or if tagSets is provided for a primary read preference.
+ */
+ final public function __construct(string|int $mode, array $tagSets = null, array $options = [])
+ {
+ }
+
+ /**
+ * Returns the ReadPreference's "mode" option
+ * @link https://php.net/manual/en/mongodb-driver-readpreference.getmode.php
+ * @return integer
+ */
+ final public function getMode()
+ {
+ }
+
+ /**
+ * Returns the ReadPreference's "mode" option as a string
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-readpreference.getmodestring.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function getModeString()
+ {
+ }
+
+ /**
+ * Returns the ReadPreference's "tagSets" option
+ * @link https://php.net/manual/en/mongodb-driver-readpreference.gettagsets.php
+ * @return array
+ */
+ final public function getTagSets()
+ {
+ }
+
+ /**
+ * Returns an object for BSON serialization
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-driver-readpreference.bsonserialize.php
+ * @return object Returns an object for serializing the WriteConcern as BSON.
+ * @throws InvalidArgumentException
+ */
+ final public function bsonSerialize()
+ {
+ }
+
+ /**
+ * Serialize a ReadPreference
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-readpreference.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a ReadPreference
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-readpreference.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+ }
+
+ /**
+ * MongoDB\Driver\ReadConcern controls the level of isolation for read operations for replica sets and replica set shards. This option requires the WiredTiger storage engine and MongoDB 3.2 or later.
+ * @link https://php.net/manual/en/class.mongodb-driver-readconcern.php
+ * @since 1.1.0
+ */
+ final class ReadConcern implements Serializable, \Serializable
+ {
+ /**
+ * @since 1.2.0
+ */
+ const LINEARIZABLE = 'linearizable' ;
+ const LOCAL = 'local' ;
+ const MAJORITY = 'majority' ;
+ /**
+ * @since 1.4.0
+ */
+ const AVAILABLE = 'available' ;
+
+ /**
+ * Construct immutable ReadConcern
+ * @link https://php.net/manual/en/mongodb-driver-readconcern.construct.php
+ * @param string $level
+ */
+ final public function __construct($level = null)
+ {
+ }
+
+ /**
+ * Returns the ReadConcern's "level" option
+ * @link https://php.net/manual/en/mongodb-driver-readconcern.getlevel.php
+ * @return string|null
+ * @since 1.0.0
+ */
+ final public function getLevel()
+ {
+ }
+
+ /**
+ * Returns an object for BSON serialization
+ * @link https://php.net/manual/en/mongodb-driver-readconcern.bsonserialize.php
+ * @return object
+ * @since 1.2.0
+ */
+ final public function bsonSerialize()
+ {
+ }
+
+ /**
+ * Checks if this is the default read concern
+ * @link https://secure.php.net/manual/en/mongodb-driver-readconcern.isdefault.php
+ * @return bool
+ * @since 1.3.0
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException On argument parsing errors.
+ */
+ final public function isDefault()
+ {
+ }
+
+ /**
+ * Serialize a ReadConcern
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-readconcern.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a ReadConcern
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-readconcern.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+ }
+
+ /**
+ * The MongoDB\Driver\Cursor class encapsulates the results of a MongoDB command or query and may be returned by MongoDB\Driver\Manager::executeCommand() or MongoDB\Driver\Manager::executeQuery(), respectively.
+ * @link https://php.net/manual/en/class.mongodb-driver-cursor.php
+ */
+ final class Cursor implements CursorInterface
+ {
+ /**
+ * Create a new Cursor
+ * MongoDB\Driver\Cursor objects are returned as the result of an executed command or query and cannot be constructed directly.
+ * @link https://php.net/manual/en/mongodb-driver-cursor.construct.php
+ */
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID cursor uniquely identifies the cursor on the server.
+ * @link https://php.net/manual/en/mongodb-driver-cursor.getid.php
+ * @return CursorId for this Cursor
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ final public function getId()
+ {
+ }
+
+ /**
+ * Returns the MongoDB\Driver\Server associated with this cursor. This is the server that executed the query or command.
+ * @link https://php.net/manual/en/mongodb-driver-cursor.getserver.php
+ * @return Server for this Cursor
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ final public function getServer()
+ {
+ }
+
+ /**
+ * Checks if a cursor is still alive
+ * @link https://php.net/manual/en/mongodb-driver-cursor.isdead.php
+ * @return bool
+ * @throws InvalidArgumentException On argument parsing errors
+ */
+ final public function isDead()
+ {
+ }
+
+ /**
+ * Sets a type map to use for BSON unserialization
+ *
+ * @link https://php.net/manual/en/mongodb-driver-cursor.settypemap.php
+ *
+ * @param array $typemap
+ * @return void
+ * @throws InvalidArgumentException On argument parsing errors or if a class in the type map cannot
+ * be instantiated or does not implement MongoDB\BSON\Unserializable
+ */
+ final public function setTypeMap(array $typemap)
+ {
+ }
+
+ /**
+ * Returns an array of all result documents for this cursor
+ * @link https://php.net/manual/en/mongodb-driver-cursor.toarray.php
+ * @return array
+ * @throws InvalidArgumentException On argument parsing errors
+ */
+ final public function toArray()
+ {
+ }
+ }
+
+ /**
+ * Class CursorId
+ * @link https://php.net/manual/en/class.mongodb-driver-cursorid.php
+ */
+ final class CursorId implements \Serializable
+ {
+ /**
+ * Create a new CursorId (not used)
+ * CursorId objects are returned from Cursor::getId() and cannot be constructed directly.
+ * @link https://php.net/manual/en/mongodb-driver-cursorid.construct.php
+ * @see Cursor::getId()
+ */
+ final private function __construct()
+ {
+ }
+
+ /**
+ * String representation of the cursor ID
+ * @link https://php.net/manual/en/mongodb-driver-cursorid.tostring.php
+ * @return string representation of the cursor ID.
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ final public function __toString()
+ {
+ }
+
+ /**
+ * Serialize a CursorId
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-cursorid.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a CursorId
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-cursorid.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+ }
+
+ /**
+ * The BulkWrite collects one or more write operations that should be sent to the server.
+ * After adding any number of insert, update, and delete operations, the collection may be executed via Manager::executeBulkWrite().
+ * Write operations may either be ordered (default) or unordered.
+ * Ordered write operations are sent to the server, in the order provided, for serial execution.
+ * If a write fails, any remaining operations will be aborted.
+ * Unordered operations are sent to the server in an arbitrary order where they may be executed in parallel.
+ * Any errors that occur are reported after all operations have been attempted.
+ */
+ final class BulkWrite implements \Countable
+ {
+ /**
+ * Create a new BulkWrite
+ * Constructs a new ordered (default) or unordered BulkWrite.
+ * @link https://php.net/manual/en/mongodb-driver-bulkwrite.construct.php
+ * @param array $options
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ public final function __construct(array $options = [])
+ {
+ }
+
+ /**
+ * Count expected roundtrips for executing the bulk
+ * Returns the expected number of client-to-server roundtrips required to execute all write operations in the BulkWrite.
+ * @link https://php.net/manual/en/mongodb-driver-bulkwrite.count.php
+ * @return int number of expected roundtrips to execute the BulkWrite.
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ public function count()
+ {
+ }
+
+ /**
+ * Add a delete operation to the bulk
+ * @link https://php.net/manual/en/mongodb-driver-bulkwrite.delete.php
+ * @param array|object $filter The search filter
+ * @param array $deleteOptions
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ public function delete($filter, array $deleteOptions = [])
+ {
+ }
+
+ /**
+ * Add an insert operation to the bulk
+ * If the document did not have an _id, a MongoDB\BSON\ObjectId will be generated and returned; otherwise, no value is returned.
+ * @link https://php.net/manual/en/mongodb-driver-bulkwrite.insert.php
+ * @param array|object $document
+ * @return mixed
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ public final function insert($document)
+ {
+ }
+
+ /**
+ * Add an update operation to the bulk
+ * @link https://php.net/manual/en/mongodb-driver-bulkwrite.update.php
+ * @param array|object $filter The search filter
+ * @param array|object $newObj A document containing either update operators (e.g. $set) or a replacement document (i.e. only field:value expressions)
+ * @param array $updateOptions
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ public function update($filter, $newObj, array $updateOptions = [])
+ {
+ }
+ }
+
+ /**
+ * WriteConcern controls the acknowledgment of a write operation, specifies the level of write guarantee for Replica Sets.
+ */
+ final class WriteConcern implements Serializable, \Serializable
+ {
+ /**
+ * Majority of all the members in the set; arbiters, non-voting members, passive members, hidden members and delayed members are all included in the definition of majority write concern.
+ */
+ const MAJORITY = 'majority';
+
+ /**
+ * Construct immutable WriteConcern
+ * @link https://php.net/manual/en/mongodb-driver-writeconcern.construct.php
+ * @param string|integer $w
+ * @param integer $wtimeout How long to wait (in milliseconds) for secondaries before failing.
+ * @param bool $journal Wait until mongod has applied the write to the journal.
+ * @throws InvalidArgumentException on argument parsing errors.
+ */
+ final public function __construct($w, $wtimeout = 0, $journal = false)
+ {
+ }
+
+ /**
+ * Returns the WriteConcern's "journal" option
+ * @link https://php.net/manual/en/mongodb-driver-writeconcern.getjournal.php
+ * @return bool|null
+ */
+ final public function getJournal()
+ {
+ }
+
+ /**
+ * Returns the WriteConcern's "w" option
+ * @link https://php.net/manual/en/mongodb-driver-writeconcern.getw.php
+ * @return string|int|null
+ */
+ final public function getW()
+ {
+ }
+
+ /**
+ * Returns the WriteConcern's "wtimeout" option
+ * @link https://php.net/manual/en/mongodb-driver-writeconcern.getwtimeout.php
+ * @return int
+ */
+ final public function getWtimeout()
+ {
+ }
+
+ /**
+ * Returns an object for BSON serialization
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-driver-writeconcern.bsonserialize.php
+ * @return object Returns an object for serializing the WriteConcern as BSON.
+ * @throws InvalidArgumentException
+ */
+ final public function bsonSerialize()
+ {
+ }
+
+ /**
+ * Serialize a WriteConcern
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-writeconcern.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a WriteConcern
+ * @since 1.7.0
+ * @link https://php.net/manual/en/mongodb-driver-writeconcern.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+ }
+
+ /**
+ * The MongoDB\Driver\WriteResult class encapsulates information about an executed MongoDB\Driver\BulkWrite and may be returned by MongoDB\Driver\Manager::executeBulkWrite().
+ * @link https://php.net/manual/en/class.mongodb-driver-writeresult.php
+ */
+ final class WriteResult
+ {
+ /**
+ * Returns the number of documents deleted
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getdeletedcount.php
+ * @return integer|null
+ */
+ final public function getDeletedCount()
+ {
+ }
+
+ /**
+ * Returns the number of documents inserted (excluding upserts)
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getinsertedcount.php
+ * @return integer|null
+ */
+ final public function getInsertedCount()
+ {
+ }
+
+ /**
+ * Returns the number of documents selected for update
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getmatchedcount.php
+ * @return integer|null
+ */
+ final public function getMatchedCount()
+ {
+ }
+
+ /**
+ * Returns the number of existing documents updated
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getmodifiedcount.php
+ * @return integer|null
+ */
+ final public function getModifiedCount()
+ {
+ }
+
+ /**
+ * Returns the server associated with this write result
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getserver.php
+ * @return Server
+ */
+ final public function getServer()
+ {
+ }
+
+ /**
+ * Returns the number of documents inserted by an upsert
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getupsertedcount.php
+ * @return integer|null
+ */
+ final public function getUpsertedCount()
+ {
+ }
+
+ /**
+ * Returns an array of identifiers for upserted documents
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getupsertedids.php
+ * @return array
+ */
+ final public function getUpsertedIds()
+ {
+ }
+
+ /**
+ * Returns any write concern error that occurred
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getwriteconcernerror.php
+ * @return WriteConcernError|null
+ */
+ final public function getWriteConcernError()
+ {
+ }
+
+ /**
+ * Returns any write errors that occurred
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.getwriteerrors.php
+ * @return WriteError[]
+ */
+ final public function getWriteErrors()
+ {
+ }
+
+ /**
+ * Returns whether the write was acknowledged
+ * @link https://php.net/manual/en/mongodb-driver-writeresult.isacknowledged.php
+ * @return bool
+ */
+ final public function isAcknowledged()
+ {
+ }
+ }
+
+ /**
+ * The MongoDB\Driver\WriteError class encapsulates information about a write error and may be returned as an array element from MongoDB\Driver\WriteResult::getWriteErrors().
+ */
+ final class WriteError
+ {
+ /**
+ * Returns the WriteError's error code
+ * @link https://php.net/manual/en/mongodb-driver-writeerror.getcode.php
+ * @return int
+ */
+ final public function getCode()
+ {
+ }
+
+ /**
+ * Returns the index of the write operation corresponding to this WriteError
+ * @link https://php.net/manual/en/mongodb-driver-writeerror.getindex.php
+ * @return int
+ */
+ final public function getIndex()
+ {
+ }
+
+ /**
+ * Returns additional metadata for the WriteError
+ * @link https://php.net/manual/en/mongodb-driver-writeerror.getinfo.php
+ * @return mixed
+ */
+ final public function getInfo()
+ {
+ }
+
+ /**
+ * Returns the WriteError's error message
+ * @link https://php.net/manual/en/mongodb-driver-writeerror.getmessage.php
+ * @return string
+ */
+ final public function getMessage()
+ {
+ }
+ }
+
+ /**
+ * The MongoDB\Driver\WriteConcernError class encapsulates information about a write concern error and may be returned by MongoDB\Driver\WriteResult::getWriteConcernError().
+ * @link https://php.net/manual/en/class.mongodb-driver-writeconcernerror.php
+ */
+ final class WriteConcernError
+ {
+ /**
+ * Returns the WriteConcernError's error code
+ * @link https://php.net/manual/en/mongodb-driver-writeconcernerror.getcode.php
+ * @return int
+ */
+ final public function getCode()
+ {
+ }
+
+ /**
+ * Returns additional metadata for the WriteConcernError
+ * @link https://php.net/manual/en/mongodb-driver-writeconcernerror.getinfo.php
+ * @return mixed
+ */
+ final public function getInfo()
+ {
+ }
+
+ /**
+ * Returns the WriteConcernError's error message
+ * @link https://php.net/manual/en/mongodb-driver-writeconcernerror.getmessage.php
+ * @return string
+ */
+ final public function getMessage()
+ {
+ }
+ }
+
+ /**
+ * Class Session
+ *
+ * @link https://secure.php.net/manual/en/class.mongodb-driver-session.php
+ * @since 1.4.0
+ */
+ final class Session
+ {
+ /**
+ * @since 1.7.0
+ */
+ const TRANSACTION_NONE = 'none';
+ /**
+ * @since 1.7.0
+ */
+ const TRANSACTION_STARTING = 'starting';
+ /**
+ * @since 1.7.0
+ */
+ const TRANSACTION_IN_PROGRESS = 'in_progress';
+ /**
+ * @since 1.7.0
+ */
+ const TRANSACTION_COMMITTED = 'committed';
+ /**
+ * @since 1.7.0
+ */
+ const TRANSACTION_ABORTED = 'aborted';
+
+ /**
+ * Create a new Session (not used)
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.construct.php
+ * @since 1.4.0
+ */
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Aborts a transaction
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.aborttransaction.php
+ * @return void
+ * @since 1.5.0
+ */
+ final public function abortTransaction()
+ {
+ }
+
+ /**
+ * Advances the cluster time for this session
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.advanceclustertime.php
+ * @param array|object $clusterTime The cluster time is a document containing a logical timestamp and server signature
+ * @return void
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException On argument parsing errors
+ * @since 1.4.0
+ */
+ final public function advanceClusterTime($clusterTime)
+ {
+ }
+
+ /**
+ * Advances the operation time for this session
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.advanceoperationtime.php
+ * @param \MongoDB\BSON\TimestampInterface $operationTime
+ * @return void
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException On argument parsing errors
+ * @since 1.4.0
+ */
+ final public function advanceOperationTime(\MongoDB\BSON\TimestampInterface $operationTime)
+ {
+ }
+
+ /**
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.committransaction.php
+ * @return void
+ * @throws InvalidArgumentException On argument parsing errors
+ * @throws CommandException If the server could not commit the transaction (e.g. due to conflicts,
+ * network issues). In case the exception's MongoDB\Driver\Exception\CommandException::getResultDocument() has a "errorLabels"
+ * element, and this array contains a "TransientTransactionError" or "UnUnknownTransactionCommitResult" value, it is safe to
+ * re-try the whole transaction. In newer versions of the driver, MongoDB\Driver\Exception\RuntimeException::hasErrorLabel()
+ * should be used to test for this situation instead.
+ * @throws \MongoDB\Driver\Exception\RuntimeException If the transaction could not be committed (e.g. a transaction was not started)
+ * @since 1.5.0
+ */
+ final public function commitTransaction()
+ {
+ }
+
+ /**
+ * This method closes an existing session. If a transaction was associated with this session, this transaction is also aborted,
+ * and all its operations are rolled back.
+ *
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.endsession.php
+ * @return void
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException On argument parsing errors
+ * @since 1.5.0
+ */
+ final public function endSession()
+ {
+ }
+
+ /**
+ * Returns the cluster time for this session
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.getclustertime.php
+ * @return object|null
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException
+ * @since 1.4.0
+ */
+ final public function getClusterTime()
+ {
+ }
+
+ /**
+ * Returns the logical session ID for this session
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.getlogicalsessionid.php
+ * @return object Returns the logical session ID for this session
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException
+ * @since 1.4.0
+ */
+ final public function getLogicalSessionId()
+ {
+ }
+
+ /**
+ * Returns the operation time for this session, or NULL if the session has no operation time
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.getoperationtime.php
+ * @return \MongoDB\BSON\Timestamp|null
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException
+ * @since 1.4.0
+ */
+ final public function getOperationTime()
+ {
+ }
+
+ /**
+ * Returns the server to which this session is pinned, or NULL if the session is not pinned to any server.
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.getserver.php
+ * @return \MongoDB\Driver\Server|null
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException
+ * @since 1.6.0
+ */
+ final public function getServer()
+ {
+ }
+
+ /**
+ * Returns options for the current transactions, or NULL if no transaction is running.
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.gettransactionoptions.php
+ * @return array|null
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException
+ * @since 1.7.0
+ */
+ final public function getTransactionOptions()
+ {
+ }
+
+ /**
+ * Returns the current transaction state
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.gettransactionstate.php
+ * @return string
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException
+ * @since 1.7.0
+ */
+ final public function getTransactionState()
+ {
+ }
+
+ /**
+ * Returns whether a multi-document transaction is in progress.
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.isintransaction.php
+ * @return bool
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException
+ * @since 1.6.0
+ */
+ final public function isInTransaction()
+ {
+ }
+
+ /**
+ * Starts a transaction
+ * @link https://secure.php.net/manual/en/mongodb-driver-session.starttransaction.php
+ * @param array|object $options
+ * @return void
+ * @throws \MongoDB\Driver\Exception\InvalidArgumentException On argument parsing errors
+ * @throws \MongoDB\Driver\Exception\CommandException If the the transaction could not be started because of a server-side problem (e.g. a lock could not be obtained).
+ * @throws \MongoDB\Driver\Exception\RuntimeException If the the transaction could not be started (e.g. a transaction was already started).
+ * @since 1.4.0
+ */
+ final public function startTransaction($options)
+ {
+ }
+ }
+
+ /**
+ * This interface is implemented by MongoDB\Driver\Cursor but may also be used for type-hinting and userland classes.
+ * @link https://www.php.net/manual/en/class.mongodb-driver-cursorinterface.php
+ * @since 1.6.0
+ */
+ interface CursorInterface extends Traversable
+ {
+ /**
+ * Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID uniquely identifies the cursor on the server.
+ * @return CursorId Returns the MongoDB\Driver\CursorId for this cursor.
+ * @throws InvalidArgumentException
+ * @link https://www.php.net/manual/en/mongodb-driver-cursorinterface.getid.php
+ */
+ function getId();
+
+ /**
+ * Returns the MongoDB\Driver\Server associated with this cursor.
+ * This is the server that executed the MongoDB\Driver\Query or MongoDB\Driver\Command.
+ * @link https://www.php.net/manual/en/mongodb-driver-cursorinterface.getserver.php
+ * @return Server Returns the MongoDB\Driver\Server associated with this cursor.
+ * @throws InvalidArgumentException
+ */
+ function getServer();
+
+ /**
+ * Checks whether the cursor may have additional results available to read.
+ * @link https://www.php.net/manual/en/mongodb-driver-cursorinterface.isdead.php
+ * @return bool Returns TRUE if additional results are not available, and FALSE otherwise.
+ * @throws InvalidArgumentException
+ */
+ function isDead();
+
+ /**
+ * Sets a type map to use for BSON unserialization
+ * @link https://www.php.net/manual/en/mongodb-driver-cursorinterface.settypemap.php
+ * @param array $typemap Type map configuration.
+ * @return mixed
+ * @throws InvalidArgumentException
+ */
+ function setTypeMap(array $typemap);
+
+ /**
+ * Iterates the cursor and returns its results in an array.
+ * MongoDB\Driver\CursorInterface::setTypeMap() may be used to control how documents are unserialized into PHP values.
+ * @return array Returns an array containing all results for this cursor.
+ * @throws InvalidArgumentException
+ */
+ function toArray();
+ }
+
+ /**
+ * The MongoDB\Driver\ClientEncryption class handles creation of data keys for client-side encryption, as well as manually encrypting and decrypting values.
+ * @link https://www.php.net/manual/en/class.mongodb-driver-clientencryption.php
+ * @since 1.7.0
+ */
+ final class ClientEncryption
+ {
+ const AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC = 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic';
+ const AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM = 'AEAD_AES_256_CBC_HMAC_SHA_512-Random';
+
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Creates a new key document and inserts into the key vault collection.
+ * @link https://www.php.net/manual/en/mongodb-driver-clientencryption.createdatakey.php
+ * @param string $kmsProvider The KMS provider ("local" or "aws") that will be used to encrypt the new encryption key.
+ * @param array $options [optional]
+ * @return \MongoDB\BSON\Binary Returns the identifier of the new key as a MongoDB\BSON\Binary object with subtype 4 (UUID).
+ * @throws InvalidArgumentException On argument parsing errors.
+ * @throws EncryptionException If an error occurs while creating the data key.
+ */
+ final public function createDataKey($kmsProvider, $options = [])
+ {
+ }
+
+ /**
+ * Decrypts an encrypted value (BSON binary of subtype 6).
+ * @link https://www.php.net/manual/en/mongodb-driver-clientencryption.decrypt.php
+ * @param \MongoDB\BSON\Binary $value A MongoDB\BSON\Binary instance with subtype 6 containing the encrypted value.
+ * @return mixed Returns the decrypted value
+ * @throws InvalidArgumentException On argument parsing errors.
+ * @throws EncryptionException If an error occurs while decrypting the value.
+ */
+ final public function decrypt(\MongoDB\BSON\Binary $value)
+ {
+ }
+
+ /**
+ * Encrypts a value with a given key and algorithm.
+ * @link https://www.php.net/manual/en/mongodb-driver-clientencryption.encrypt.php
+ * @param mixed $value The value to be encrypted. Any value that can be inserted into MongoDB can be encrypted using this method.
+ * @param array $options [optional]
+ * @return \MongoDB\BSON\Binary Returns the encrypted value as MongoDB\BSON\Binary object with subtype 6.
+ * @throws InvalidArgumentException On argument parsing errors.
+ * @throws EncryptionException If an error occurs while encrypting the value.
+ */
+ final public function encrypt($value, $options = [])
+ {
+ }
+ }
+ }
+
+ namespace MongoDB\Driver\Exception {
+
+ use MongoDB\Driver\WriteResult;
+ use Throwable;
+
+ /**
+ * Thrown when the driver encounters a runtime error (e.g. internal error from » libmongoc).
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-runtimeexception.php
+ * @since 1.0.0
+ */
+ class RuntimeException extends \RuntimeException implements Exception
+ {
+ /**
+ * @var boolean
+ * @since 1.6.0
+ */
+ protected $errorLabels;
+ /**
+ * Whether the given errorLabel is associated with this exception
+ *
+ * @param string $errorLabel
+ * @since 1.6.0
+ * @return bool
+ */
+ final public function hasErrorLabel($errorLabel)
+ {
+ }
+ }
+
+ /**
+ * Common interface for all driver exceptions. This may be used to catch only exceptions originating from the driver itself.
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-exception.php
+ */
+ interface Exception extends Throwable
+ {
+ }
+
+ /**
+ * Thrown when the driver fails to authenticate with the server.
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-authenticationexception.php
+ * @since 1.0.0
+ */
+ class AuthenticationException extends ConnectionException implements Exception
+ {
+ }
+
+ /**
+ * Base class for exceptions thrown when the driver fails to establish a database connection.
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-connectionexception.php
+ * @since 1.0.0
+ */
+ class ConnectionException extends RuntimeException implements Exception
+ {
+ }
+
+ /**
+ * Thrown when a driver method is given invalid arguments (e.g. invalid option types).
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-invalidargumentexception.php
+ * @since 1.0.0
+ */
+ class InvalidArgumentException extends \InvalidArgumentException
+ {
+ }
+
+ /**
+ * Thrown when a command fails
+ *
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-commandexception.php
+ * @since 1.5.0
+ */
+ class CommandException extends ServerException
+ {
+ /**
+ * Returns the result document for the failed command
+ * @link https://secure.php.net/manual/en/mongodb-driver-commandexception.getresultdocument.php
+ * @return object
+ * @since 1.5.0
+ */
+ final public function getResultDocument()
+ {
+ }
+ }
+
+ /**
+ * Base class for exceptions thrown by the server. The code of this exception and its subclasses will correspond to the original
+ * error code from the server.
+ *
+ * @link https://secure.php.net/manual/en/class.mongodb-driver-exception-serverexception.php
+ * @since 1.5.0
+ */
+ class ServerException extends RuntimeException implements Exception
+ {
+ }
+
+ /**
+ * Base class for exceptions thrown by a failed write operation.
+ * The exception encapsulates a MongoDB\Driver\WriteResult object.
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-writeexception.php
+ * @since 1.0.0
+ */
+ abstract class WriteException extends ServerException implements Exception
+ {
+ /**
+ * @var WriteResult associated with the failed write operation.
+ */
+ protected $writeResult;
+
+ /**
+ * @return WriteResult for the failed write operation
+ * @since 1.0.0
+ */
+ final public function getWriteResult()
+ {
+ }
+ }
+
+ class WriteConcernException extends RuntimeException implements Exception
+ {
+ }
+
+ /**
+ * Thrown when the driver encounters an unexpected value (e.g. during BSON serialization or deserialization).
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-unexpectedvalueexception.php
+ * @since 1.0.0
+ */
+ class UnexpectedValueException extends \UnexpectedValueException implements Exception
+ {
+ }
+
+ /**
+ * Thrown when a bulk write operation fails.
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-bulkwriteexception.php
+ * @since 1.0.0
+ */
+ class BulkWriteException extends WriteException implements Exception
+ {
+ }
+
+ /**
+ * Thrown when the driver fails to establish a database connection within a specified time limit (e.g. connectTimeoutMS).
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-connectiontimeoutexception.php
+ */
+ class ConnectionTimeoutException extends ConnectionException implements Exception
+ {
+ }
+
+ /**
+ * Thrown when a query or command fails to complete within a specified time limit (e.g. maxTimeMS).
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-executiontimeoutexception.php
+ */
+ class ExecutionTimeoutException extends ServerException implements Exception
+ {
+ }
+
+ /**
+ * Thrown when the driver is incorrectly used (e.g. rewinding a cursor).
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-logicexception.php
+ */
+ class LogicException extends \LogicException implements Exception
+ {
+ }
+
+ /**
+ * Thrown when the driver fails to establish an SSL connection with the server.
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-sslconnectionexception.php
+ */
+ class SSLConnectionException extends ConnectionException implements Exception
+ {
+ }
+
+ /**
+ * Base class for exceptions thrown during client-side encryption.
+ * @link https://php.net/manual/en/class.mongodb-driver-exception-encryptionexception.php
+ * @since 1.7.0
+ */
+ class EncryptionException extends RuntimeException implements Exception
+ {
+ }
+ }
+
+ /**
+ * @link https://secure.php.net/manual/en/mongodb.monitoring.php
+ */
+ namespace MongoDB\Driver\Monitoring {
+
+ /**
+ * Registers a new monitoring event subscriber with the driver.
+ * Registered subscribers will be notified of monitoring events through specific methods.
+ * Note: If the object is already registered, this function is a no-op.
+ * @link https://secure.php.net/manual/en/function.mongodb.driver.monitoring.addsubscriber.php
+ * @param Subscriber $subscriber A monitoring event subscriber object to register.
+ * @return void
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ function addSubscriber(Subscriber $subscriber)
+ {
+ }
+
+ /**
+ * Unregisters an existing monitoring event subscriber from the driver.
+ * Unregistered subscribers will no longer be notified of monitoring events.
+ * Note: If the object is not registered, this function is a no-op.
+ * @link https://secure.php.net/manual/en/function.mongodb.driver.monitoring.removesubscriber.php
+ * @param Subscriber $subscriber A monitoring event subscriber object to register.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ function removeSubscriber(Subscriber $subscriber)
+ {
+ }
+
+ /**
+ * Base interface for event subscribers.
+ * This is used for type-hinting MongoDB\Driver\Monitoring\addSubscriber() and MongoDB\Driver\Monitoring\removeSubscriber() and should not be implemented directly.
+ * This interface has no methods. Its only purpose is to be the base interface for all event subscribers.
+ * @link https://secure.php.net/manual/en/class.mongodb-driver-monitoring-subscriber.php
+ * @since 1.3.0
+ */
+ interface Subscriber
+ {
+ }
+
+ /**
+ * Classes may implement this interface to register an event subscriber that is notified for each started, successful, and failed command event.
+ * @see https://secure.php.net/manual/en/mongodb.tutorial.apm.php
+ * @link https://secure.php.net/manual/en/class.mongodb-driver-monitoring-commandsubscriber.php
+ * @since 1.3.0
+ */
+ interface CommandSubscriber extends Subscriber
+ {
+
+ /**
+ * Notification method for a failed command.
+ * If the subscriber has been registered with MongoDB\Driver\Monitoring\addSubscriber(), the driver will call this method when a command has failed.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsubscriber.commandfailed.php
+ * @param CommandFailedEvent $event An event object encapsulating information about the failed command.
+ * @return void
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ public function commandFailed(CommandFailedEvent $event);
+
+ /**
+ * Notification method for a started command.
+ * If the subscriber has been registered with MongoDB\Driver\Monitoring\addSubscriber(), the driver will call this method when a command has started.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsubscriber.commandstarted.php
+ * @param CommandStartedEvent $event An event object encapsulating information about the started command.
+ * @return void
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ public function commandStarted(CommandStartedEvent $event);
+
+ /**
+ * Notification method for a successful command.
+ * If the subscriber has been registered with MongoDB\Driver\Monitoring\addSubscriber(), the driver will call this method when a command has succeeded.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsubscriber.commandsucceeded.php
+ * @param CommandSucceededEvent $event An event object encapsulating information about the successful command.
+ * @return void
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ public function commandSucceeded(CommandSucceededEvent $event);
+ }
+
+
+ /**
+ * Encapsulates information about a successful command.
+ * @link https://secure.php.net/manual/en/class.mongodb-driver-monitoring-commandsucceededevent.php
+ * @since 1.3.0
+ */
+ class CommandSucceededEvent
+ {
+ /**
+ * Returns the command name.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsucceededevent.getcommandname.php
+ * @return string The command name (e.g. "find", "aggregate").
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getCommandName()
+ {
+ }
+
+ /**
+ * Returns the command's duration in microseconds
+ * The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsucceededevent.getdurationmicros.php
+ * @return int the command's duration in microseconds.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getDurationMicros()
+ {
+ }
+
+ /**
+ * Returns the command's operation ID.
+ * The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.
+ * Note: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() should be used instead.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsucceededevent.getoperationid.php
+ * @return string the command's operation ID.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getOperationId()
+ {
+ }
+
+ /**
+ * Returns the command reply document.
+ * The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsucceededevent.getreply.php
+ * @return object the command reply document as a stdClass object.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getReply()
+ {
+ }
+
+ /**
+ * Returns the command's request ID.
+ * The request ID is generated by the driver and may be used to associate this CommandSucceededEvent with a previous CommandStartedEvent.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsucceededevent.getrequestid.php
+ * @return string the command's request ID.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getRequestId()
+ {
+ }
+
+ /**
+ * Returns the Server on which the command was executed.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandsucceededevent.getserver.php
+ * @return \MongoDB\Driver\Server on which the command was executed.
+ * @since 1.3.0
+ */
+ final public function getServer()
+ {
+ }
+ }
+
+ /**
+ * Encapsulates information about a failed command.
+ * @link https://secure.php.net/manual/en/class.mongodb-driver-monitoring-commandfailedevent.php
+ * @since 1.3.0
+ */
+ class CommandFailedEvent
+ {
+ /**
+ * Returns the command name.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandfailedevent.getcommandname.php
+ * @return string The command name (e.g. "find", "aggregate").
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getCommandName()
+ {
+ }
+
+ /**
+ * Returns the command's duration in microseconds
+ * The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandfailedevent.getdurationmicros.php
+ * @return int the command's duration in microseconds.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getDurationMicros()
+ {
+ }
+
+ /**
+ * Returns the Exception associated with the failed command
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandfailedevent.geterror.php
+ * @return \Exception
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getError()
+ {
+ }
+
+ /**
+ * Returns the command's operation ID.
+ * The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.
+ * Note: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() should be used instead.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandfailedevent.getoperationid.php
+ * @return string the command's operation ID.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getOperationId()
+ {
+ }
+
+ /**
+ * Returns the command reply document.
+ * The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandfailedevent.getreply.php
+ * @return object the command reply document as a stdClass object.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getReply()
+ {
+ }
+
+ /**
+ * Returns the command's request ID.
+ * The request ID is generated by the driver and may be used to associate this CommandSucceededEvent with a previous CommandStartedEvent.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandfailedevent.getrequestid.php
+ * @return string the command's request ID.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getRequestId()
+ {
+ }
+
+ /**
+ * Returns the Server on which the command was executed.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandfailedevent.getserver.php
+ * @return \MongoDB\Driver\Server on which the command was executed.
+ * @since 1.3.0
+ */
+ final public function getServer()
+ {
+ }
+ }
+
+ /**
+ * Encapsulates information about a failed command.
+ * @link https://secure.php.net/manual/en/class.mongodb-driver-monitoring-commandstartedevent.php
+ * @since 1.3.0
+ */
+ class CommandStartedEvent
+ {
+
+ /**
+ * Returns the command document
+ * The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandstartedevent.getcommand.php
+ * @return object the command document as a stdClass object.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getCommand()
+ {
+
+ }
+
+ /**
+ * Returns the command name.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandstartedevent.getcommandname.php
+ * @return string The command name (e.g. "find", "aggregate").
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getCommandName()
+ {
+ }
+
+ /**
+ * Returns the database on which the command was executed.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandstartedevent.getdatabasename.php
+ * @return string the database on which the command was executed.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getDatabaseName()
+ {
+ }
+
+ /**
+ * Returns the command's operation ID.
+ * The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.
+ * Note: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() should be used instead.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandstartedevent.getoperationid.php
+ * @return string the command's operation ID.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getOperationId()
+ {
+ }
+
+
+ /**
+ * Returns the command's request ID.
+ * The request ID is generated by the driver and may be used to associate this CommandSucceededEvent with a previous CommandStartedEvent.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandstartedevent.getrequestid.php
+ * @return string the command's request ID.
+ * @throws \InvalidArgumentException on argument parsing errors.
+ * @since 1.3.0
+ */
+ final public function getRequestId()
+ {
+ }
+
+ /**
+ * Returns the Server on which the command was executed.
+ * @link https://secure.php.net/manual/en/mongodb-driver-monitoring-commandstartedevent.getserver.php
+ * @return \MongoDB\Driver\Server on which the command was executed.
+ * @since 1.3.0
+ */
+ final public function getServer()
+ {
+ }
+ }
+
+ }
+
+ /**
+ * @link https://php.net/manual/en/book.bson.php
+ */
+ namespace MongoDB\BSON {
+
+ use DateTimeInterface;
+ use JetBrains\PhpStorm\Deprecated;
+ use JsonSerializable;
+ use MongoDB\Driver\Exception\InvalidArgumentException;
+ use MongoDB\Driver\Exception\UnexpectedValueException;
+ use DateTime;
+
+ /**
+ * Converts a BSON string to its Canonical Extended JSON representation.
+ * The canonical format prefers type fidelity at the expense of concise output and is most suited for producing
+ * output that can be converted back to BSON without any loss of type information
+ * (e.g. numeric types will remain differentiated).
+ * @link https://www.php.net/manual/en/function.mongodb.bson-tocanonicalextendedjson.php
+ * @param string $bson BSON value to be converted
+ * @return string The converted JSON value
+ * @throws UnexpectedValueException
+ */
+ function toCanonicalExtendedJSON($bson)
+ {
+ }
+
+ /**
+ * Converts a BSON string to its » Relaxed Extended JSON representation.
+ * The relaxed format prefers use of JSON type primitives at the expense of type fidelity and is most suited for
+ * producing output that can be easily consumed by web APIs and humans.
+ * @link https://www.php.net/manual/en/function.mongodb.bson-torelaxedextendedjson.php
+ * @param string $bson BSON value to be converted
+ * @return string The converted JSON value
+ * @throws UnexpectedValueException
+ */
+ function toRelaxedExtendedJSON($bson)
+ {
+ }
+
+ /**
+ * Returns the BSON representation of a JSON value
+ * Converts an extended JSON string to its BSON representation.
+ * @link https://php.net/manual/en/function.mongodb.bson-fromjson.php
+ * @param string $json JSON value to be converted.
+ * @return string The serialized BSON document as a binary string.
+ * @throws UnexpectedValueException if the JSON value cannot be converted to BSON (e.g. due to a syntax error).
+ */
+ function fromJSON($json)
+ {
+ }
+
+ /**
+ * Returns the BSON representation of a PHP value
+ * Serializes a PHP array or object (e.g. document) to its BSON representation. The returned binary string will describe a BSON document.
+ * @link https://php.net/manual/en/function.mongodb.bson-fromphp.php
+ * @param array|object $value PHP value to be serialized.
+ * @return string The serialized BSON document as a binary string
+ * @throws UnexpectedValueException if the PHP value cannot be converted to BSON.
+ */
+ function fromPHP($value)
+ {
+ }
+
+ /**
+ * Returns the JSON representation of a BSON value
+ * Converts a BSON string to its extended JSON representation.
+ * @link https://php.net/manual/en/function.mongodb.bson-tojson.php
+ * @param string $bson BSON value to be converted
+ * @return string The converted JSON value.
+ * @see https://docs.mongodb.org/manual/reference/mongodb-extended-json/
+ * @throws UnexpectedValueException if the input did not contain exactly one BSON document
+ */
+ function toJSON($bson)
+ {
+ }
+
+ /**
+ * Returns the PHP representation of a BSON value
+ * Unserializes a BSON document (i.e. binary string) to its PHP representation.
+ * The typeMap parameter may be used to control the PHP types used for converting BSON arrays and documents (both root and embedded).
+ * @link https://php.net/manual/en/function.mongodb.bson-tophp.php
+ * @param string $bson BSON value to be unserialized.
+ * @param array $typeMap
+ * @return object The unserialized PHP value
+ * @throws UnexpectedValueException if the input did not contain exactly one BSON document.
+ * @throws InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.
+ */
+ function toPHP($bson, array $typeMap)
+ {
+ }
+
+ /**
+ * Class Binary
+ * @link https://php.net/manual/en/class.mongodb-bson-binary.php
+ */
+ final class Binary implements Type, BinaryInterface, \Serializable, JsonSerializable
+ {
+ const TYPE_GENERIC = 0;
+ const TYPE_FUNCTION = 1;
+ const TYPE_OLD_BINARY = 2;
+ const TYPE_OLD_UUID = 3;
+ const TYPE_UUID = 4;
+ const TYPE_MD5 = 5;
+ /**
+ * @since 1.7.0
+ */
+ const TYPE_ENCRYPTED = 6;
+ const TYPE_USER_DEFINED = 128;
+
+ /**
+ * Binary constructor.
+ * @link https://php.net/manual/en/mongodb-bson-binary.construct.php
+ * @param string $data
+ * @param integer $type
+ */
+ public final function __construct($data, $type)
+ {
+ }
+
+ /**
+ * Returns the Binary's data
+ * @link https://php.net/manual/en/mongodb-bson-binary.getdata.php
+ * @return string
+ */
+ final public function getData()
+ {
+ }
+
+ /**
+ * Returns the Binary's type
+ * @link https://php.net/manual/en/mongodb-bson-binary.gettype.php
+ * @return integer
+ */
+ final public function getType()
+ {
+ }
+
+ public static function __set_state($an_array)
+ {
+ }
+
+ /**
+ * Returns the Binary's data
+ * @link https://www.php.net/manual/en/mongodb-bson-binary.tostring.php
+ * @return string
+ */
+ final public function __toString()
+ {
+ }
+
+ /**
+ * Serialize a Binary
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-binary.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a Binary
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-binary.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-binary.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * BSON type for the Decimal128 floating-point format, which supports numbers with up to 34 decimal digits (i.e. significant digits) and an exponent range of −6143 to +6144.
+ * @link https://php.net/manual/en/class.mongodb-bson-decimal128.php
+ */
+ final class Decimal128 implements Type, Decimal128Interface, \Serializable, JsonSerializable
+ {
+ /**
+ * Construct a new Decimal128
+ * @link https://php.net/manual/en/mongodb-bson-decimal128.construct.php
+ * @param string $value A decimal string.
+ */
+ final public function __construct($value = '')
+ {
+ }
+
+ /**
+ * Returns the string representation of this Decimal128
+ * @link https://php.net/manual/en/mongodb-bson-decimal128.tostring.php
+ * @return string
+ */
+ final public function __toString()
+ {
+ }
+
+ public static function __set_state($an_array)
+ {
+ }
+
+ /**
+ * Serialize a Decimal128
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-decimal128.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a Decimal128
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-decimal128.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-decimal128.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * Class Javascript
+ * @link https://php.net/manual/en/class.mongodb-bson-javascript.php
+ */
+ final class Javascript implements Type, JavascriptInterface, \Serializable, JsonSerializable
+ {
+ /**
+ * Construct a new Javascript
+ * @link https://php.net/manual/en/mongodb-bson-javascript.construct.php
+ * @param string $code
+ * @param array|object $scope
+ */
+ final public function __construct($code, $scope = [])
+ {
+ }
+
+ public static function __set_state($an_array)
+ {
+ }
+
+ /**
+ * Returns the Javascript's code
+ * @return string
+ * @link https://secure.php.net/manual/en/mongodb-bson-javascript.getcode.php
+ */
+ final public function getCode()
+ {
+ }
+
+ /**
+ * Returns the Javascript's scope document
+ * @return object|null
+ * @link https://secure.php.net/manual/en/mongodb-bson-javascript.getscope.php
+ */
+ final public function getScope()
+ {
+ }
+
+ /**
+ * Returns the Javascript's code
+ * @return string
+ * @link https://secure.php.net/manual/en/mongodb-bson-javascript.tostring.php
+ */
+ final public function __toString()
+ {
+ }
+
+ /**
+ * Serialize a Javascript
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-javascript.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a Javascript
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-javascript.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-javascript.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * Class MaxKey
+ * @link https://php.net/manual/en/class.mongodb-bson-maxkey.php
+ */
+ final class MaxKey implements Type, MaxKeyInterface, \Serializable, JsonSerializable
+ {
+ public static function __set_state($an_array)
+ {
+ }
+
+ /**
+ * Serialize a MaxKey
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-maxkey.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a MaxKey
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-maxkey.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-maxkey.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * Class MinKey
+ * @link https://php.net/manual/en/class.mongodb-bson-minkey.php
+ */
+ final class MinKey implements Type, MinKeyInterface, \Serializable, JsonSerializable
+ {
+ public static function __set_state($an_array)
+ {
+ }
+
+ /**
+ * Serialize a MinKey
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-minkey.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a MinKey
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-minkey.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-minkey.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * Class ObjectId
+ * @link https://php.net/manual/en/class.mongodb-bson-objectid.php
+ */
+ final class ObjectId implements Type, ObjectIdInterface, \Serializable, JsonSerializable
+ {
+ /**
+ * Construct a new ObjectId
+ * @link https://php.net/manual/en/mongodb-bson-objectid.construct.php
+ * @param string|null $id A 24-character hexadecimal string. If not provided, the driver will generate an ObjectId.
+ * @throws InvalidArgumentException if id is not a 24-character hexadecimal string.
+ */
+ public final function __construct($id = null)
+ {
+ }
+
+ /**
+ * Returns the hexadecimal representation of this ObjectId
+ * @link https://php.net/manual/en/mongodb-bson-objectid.tostring.php
+ * @return string
+ */
+ final public function __toString()
+ {
+ }
+
+ /**
+ * Returns the timestamp component of this ObjectId
+ * @since 1.2.0
+ * @link https://secure.php.net/manual/en/mongodb-bson-objectid.gettimestamp.php
+ * @return int the timestamp component of this ObjectId
+ */
+ public final function getTimestamp()
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://secure.php.net/manual/en/mongodb-bson-objectid.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ */
+ final public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Serialize an ObjectId
+ * @since 1.2.0
+ * @link https://secure.php.net/manual/en/mongodb-bson-objectid.serialize.php
+ * @return string the serialized representation of the object
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize an ObjectId
+ * @since 1.2.0
+ * @link https://secure.php.net/manual/en/mongodb-bson-objectid.unserialize.php
+ * @return void
+ */
+ final public function unserialize($serialized)
+ {
+ }
+ }
+
+ /**
+ * Class Regex
+ * @link https://php.net/manual/en/class.mongodb-bson-regex.php
+ */
+ final class Regex implements Type, RegexInterface, \Serializable, JsonSerializable
+ {
+ /**
+ * Construct a new Regex
+ * @link https://php.net/manual/en/mongodb-bson-regex.construct.php
+ * @param string $pattern
+ * @param string $flags [optional]
+ */
+ public final function __construct($pattern, $flags = "")
+ {
+ }
+
+ /**
+ * Returns the Regex's flags
+ * @link https://php.net/manual/en/mongodb-bson-regex.getflags.php
+ */
+ final public function getFlags()
+ {
+ }
+
+ /**
+ * Returns the Regex's pattern
+ * @link https://php.net/manual/en/mongodb-bson-regex.getpattern.php
+ * @return string
+ */
+ final public function getPattern()
+ {
+ }
+
+ /**
+ * Returns the string representation of this Regex
+ * @link https://php.net/manual/en/mongodb-bson-regex.tostring.php
+ * @return string
+ */
+ final public function __toString()
+ {
+ }
+
+ public static function __set_state($an_array)
+ {
+ }
+
+ /**
+ * Serialize a Regex
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-regex.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a Regex
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-regex.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-regex.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * Represents a BSON timestamp, which is an internal MongoDB type not intended for general date storage.
+ * @link https://php.net/manual/en/class.mongodb-bson-timestamp.php
+ */
+ final class Timestamp implements TimestampInterface, Type, \Serializable, JsonSerializable
+ {
+ /**
+ * Construct a new Timestamp
+ * @link https://php.net/manual/en/mongodb-bson-timestamp.construct.php
+ * @param integer $increment
+ * @param integer $timestamp
+ */
+ final public function __construct($increment, $timestamp)
+ {
+ }
+
+ /**
+ * Returns the string representation of this Timestamp
+ * @link https://php.net/manual/en/mongodb-bson-timestamp.tostring.php
+ * @return string
+ */
+ final public function __toString()
+ {
+ }
+
+ /**
+ * Returns the increment component of this TimestampInterface
+ * @link https://secure.php.net/manual/en/mongodb-bson-timestampinterface.getincrement.php
+ * @return int
+ * @since 1.3.0
+ */
+ final public function getIncrement()
+ {
+ }
+
+ /**
+ * Returns the timestamp component of this TimestampInterface
+ * @link https://secure.php.net/manual/en/mongodb-bson-timestampinterface.gettimestamp.php
+ * @return int
+ * @since 1.3.0
+ */
+ final public function getTimestamp()
+ {
+ }
+
+ /**
+ * Serialize a Timestamp
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-timestamp.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a Timestamp
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-timestamp.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-timestamp.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * Represents a BSON date.
+ * @link https://php.net/manual/en/class.mongodb-bson-utcdatetime.php
+ */
+ final class UTCDateTime implements Type, UTCDateTimeInterface, \Serializable, \JsonSerializable
+ {
+ /**
+ * Construct a new UTCDateTime
+ * @link https://php.net/manual/en/mongodb-bson-utcdatetime.construct.php
+ * @param int|float|string|DateTimeInterface $milliseconds
+ */
+ final public function __construct($milliseconds = null)
+ {
+ }
+
+ /**
+ * Returns the DateTime representation of this UTCDateTime
+ * @link https://php.net/manual/en/mongodb-bson-utcdatetime.todatetime.php
+ * @return \DateTime
+ */
+ final public function toDateTime()
+ {
+ }
+
+ /**
+ * Returns the string representation of this UTCDateTime
+ * @link https://php.net/manual/en/mongodb-bson-utcdatetime.tostring.php
+ * @return string
+ */
+ final public function __toString()
+ {
+ }
+
+ /**
+ * Serialize a UTCDateTime
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-utcdatetime.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a UTCDateTime
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-utcdatetime.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-utcdatetime.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+ }
+
+ /**
+ * BSON type for the "Undefined" type. This BSON type is deprecated, and this class can not be instantiated. It will be created
+ * from a BSON undefined type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.
+ *
+ * @link https://secure.php.net/manual/en/class.mongodb-bson-undefined.php
+ */
+ #[Deprecated]
+ final class Undefined implements Type,\Serializable, \JsonSerializable
+ {
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Serialize an Undefined
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-undefined.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize an Undefined
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-undefined.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-undefined.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Returns the Undefined as a string
+ * @return string Returns the string representation of this Symbol.
+ */
+ final public function __toString()
+ {
+ }
+ }
+
+ /**
+ * BSON type for the "Symbol" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a
+ * BSON symbol type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.
+ *
+ * @link https://secure.php.net/manual/en/class.mongodb-bson-symbol.php
+ */
+ #[Deprecated]
+ final class Symbol implements Type,\Serializable, \JsonSerializable
+ {
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Serialize a Symbol
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-symbol.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a Symbol
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-symbol.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @since 1.2.0
+ * @link https://www.php.net/manual/en/mongodb-bson-symbol.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Returns the Symbol as a string
+ * @return string Returns the string representation of this Symbol.
+ */
+ final public function __toString()
+ {
+ }
+ }
+
+ /**
+ * BSON type for the "DbPointer" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a
+ * BSON symbol type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.
+ *
+ * @since 1.4.0
+ * @link https://secure.php.net/manual/en/class.mongodb-bson-dbpointer.php
+ */
+ #[Deprecated]
+ final class DbPointer implements Type,\Serializable, \JsonSerializable
+ {
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Serialize a DBPointer
+ *
+ * @link https://www.php.net/manual/en/mongodb-bson-dbpointer.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize a DBPointer
+ *
+ * @link https://www.php.net/manual/en/mongodb-bson-dbpointer.unserialize.php
+ *
+ * @param string $serialized
+ *
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ *
+ * @link https://www.php.net/manual/en/mongodb-bson-dbpointer.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Returns the Symbol as a string
+ *
+ * @return string Returns the string representation of this Symbol.
+ */
+ final public function __toString()
+ {
+ }
+ }
+
+ /**
+ * BSON type for a 64-bit integer. This class cannot be instantiated and is only created during BSON decoding when a 64-bit
+ * integer cannot be represented as a PHP integer on a 32-bit platform. Versions of the driver before 1.5.0 would throw an
+ * exception when attempting to decode a 64-bit integer on a 32-bit platform.
+ * During BSON encoding, objects of this class will convert back to a 64-bit integer type. This allows 64-bit integers to be
+ * roundtripped through a 32-bit PHP environment without any loss of precision. The __toString() method allows the 64-bit integer
+ * value to be accessed as a string.
+ *
+ * @since 1.5.0
+ * @link https://secure.php.net/manual/en/class.mongodb-bson-int64.php
+ */
+ #[Deprecated]
+ final class Int64 implements Type,\Serializable, \JsonSerializable
+ {
+ final private function __construct()
+ {
+ }
+
+ /**
+ * Serialize an Int64
+ * @link https://www.php.net/manual/en/mongodb-bson-int64.serialize.php
+ * @return string
+ * @throws InvalidArgumentException
+ */
+ final public function serialize()
+ {
+ }
+
+ /**
+ * Unserialize an Int64
+ * @link https://www.php.net/manual/en/mongodb-bson-int64.unserialize.php
+ * @param string $serialized
+ * @return void
+ * @throws InvalidArgumentException on argument parsing errors or if the properties are invalid
+ * @throws UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed)
+ */
+ final public function unserialize($serialized)
+ {
+ }
+
+ /**
+ * Returns a representation that can be converted to JSON
+ * @link https://www.php.net/manual/en/mongodb-bson-int64.jsonserialize.php
+ * @return mixed data which can be serialized by json_encode()
+ * @throws InvalidArgumentException on argument parsing errors
+ */
+ final public function jsonSerialize()
+ {
+ }
+
+ /**
+ * Returns the Symbol as a string
+ * @return string Returns the string representation of this Symbol.
+ */
+ final public function __toString()
+ {
+ }
+ }
+
+ /**
+ * This interface is implemented by MongoDB\BSON\Binary but may also be used for type-hinting and userland classes.
+ * @link https://www.php.net/manual/en/class.mongodb-bson-binaryinterface.php
+ */
+ interface BinaryInterface
+ {
+ /**
+ * @link https://www.php.net/manual/en/mongodb-bson-binaryinterface.getdata.php
+ * @return string Returns the BinaryInterface's data
+ */
+ function getData();
+
+ /**
+ * @link https://www.php.net/manual/en/mongodb-bson-binaryinterface.gettype.php
+ * @return int Returns the BinaryInterface's type.
+ */
+ function getType();
+
+ /**
+ * This method is an alias of: MongoDB\BSON\BinaryInterface::getData().
+ * @link https://www.php.net/manual/en/mongodb-bson-binaryinterface.tostring.php
+ * @return string Returns the BinaryInterface's data.
+ */
+ function __toString();
+ }
+
+ /**
+ * This interface is implemented by MongoDB\BSON\ObjectId but may also be used for type-hinting and userland classes.
+ * @link https://www.php.net/manual/en/class.mongodb-bson-objectidinterface.php
+ */
+ interface ObjectIdInterface
+ {
+ /**
+ * @link https://www.php.net/manual/en/mongodb-bson-objectidinterface.gettimestamp.php
+ * @return int Returns the timestamp component of this ObjectIdInterface.
+ */
+ function getTimestamp();
+
+ /**
+ * Returns the hexadecimal representation of this ObjectId
+ * @link https://www.php.net/manual/en/mongodb-bson-objectid.tostring.php
+ * @return string Returns the hexadecimal representation of this ObjectId
+ */
+ function __toString();
+ }
+
+ /**
+ * @link https://www.php.net/manual/en/class.mongodb-bson-regexinterface.php
+ * This interface is implemented by MongoDB\BSON\Regex but may also be used for type-hinting and userland classes.
+ */
+ interface RegexInterface
+ {
+ /**
+ * @link https://www.php.net/manual/en/mongodb-bson-regexinterface.getflags.php
+ * @return string Returns the RegexInterface's flags.
+ */
+ function getFlags();
+
+ /**
+ * @link https://www.php.net/manual/en/mongodb-bson-regexinterface.getpattern.php
+ * @return string Returns the RegexInterface's pattern.
+ */
+ function getPattern();
+
+ /**
+ * Returns the string representation of this RegexInterface
+ * @link https://www.php.net/manual/en/mongodb-bson-regexinterface.tostring.php
+ * @return string
+ */
+ function __toString();
+ }
+
+ /**
+ * This interface is implemented by MongoDB\BSON\UTCDateTime but may also be used for type-hinting and userland classes.
+ * @link https://www.php.net/manual/en/class.mongodb-bson-utcdatetimeinterface.php
+ */
+ interface UTCDateTimeInterface
+ {
+ /**
+ * @link https://www.php.net/manual/en/mongodb-bson-utcdatetimeinterface.todatetime.php
+ * @return DateTime Returns the DateTime representation of this UTCDateTimeInterface. The returned DateTime should use the UTC time zone.
+ */
+ function toDateTime();
+
+ /**
+ * Returns the string representation of this UTCDateTimeInterface
+ * @link https://www.php.net/manual/en/mongodb-bson-utcdatetimeinterface.tostring.php
+ * @return string
+ */
+ function __toString();
+ }
+
+ /**
+ * This interface is implemented by MongoDB\BSON\MaxKey but may also be used for type-hinting and userland classes.
+ * @link https://www.php.net/manual/en/class.mongodb-bson-maxkeyinterface.php
+ */
+ interface MaxKeyInterface
+ {
+ }
+
+ /**
+ * This interface is implemented by MongoDB\BSON\MinKey but may also be used for type-hinting and userland classes.
+ * @link https://www.php.net/manual/en/class.mongodb-bson-minkeyinterface.php
+ */
+ interface MinKeyInterface
+ {
+
+ }
+
+ /**
+ * This interface is implemented by MongoDB\BSON\Decimal128 but may also be used for type-hinting and userland classes.
+ * @link https://www.php.net/manual/en/class.mongodb-bson-decimal128interface.php
+ */
+ interface Decimal128Interface
+ {
+ /**
+ * Returns the string representation of this Decimal128Interface
+ * @link https://www.php.net/manual/en/mongodb-bson-decimal128interface.tostring.php
+ * @return string Returns the string representation of this Decimal128Interface
+ */
+ function __toString();
+ }
+
+ /**
+ * Classes may implement this interface to take advantage of automatic ODM (object document mapping) behavior in the driver.
+ * @link https://php.net/manual/en/class.mongodb-bson-persistable.php
+ */
+ interface Persistable extends Unserializable, Serializable
+ {
+ }
+
+ /**
+ * Classes that implement this interface may return data to be serialized as a BSON array or document in lieu of the object's public properties
+ * @link https://php.net/manual/en/class.mongodb-bson-serializable.php
+ */
+ interface Serializable extends Type
+ {
+
+ /**
+ * Provides an array or document to serialize as BSON
+ * Called during serialization of the object to BSON. The method must return an array or stdClass.
+ * Root documents (e.g. a MongoDB\BSON\Serializable passed to MongoDB\BSON\fromPHP()) will always be serialized as a BSON document.
+ * For field values, associative arrays and stdClass instances will be serialized as a BSON document and sequential arrays (i.e. sequential, numeric indexes starting at 0) will be serialized as a BSON array.
+ * @link https://php.net/manual/en/mongodb-bson-serializable.bsonserialize.php
+ * @return array|object An array or stdClass to be serialized as a BSON array or document.
+ */
+ public function bsonSerialize();
+ }
+
+ /**
+ * Classes that implement this interface may be specified in a type map for unserializing BSON arrays and documents (both root and embedded).
+ * @link https://php.net/manual/en/class.mongodb-bson-unserializable.php
+ */
+ interface Unserializable extends Type
+ {
+
+ /**
+ * Constructs the object from a BSON array or document
+ * Called during unserialization of the object from BSON.
+ * The properties of the BSON array or document will be passed to the method as an array.
+ * @link https://php.net/manual/en/mongodb-bson-unserializable.bsonunserialize.php
+ * @param array $data Properties within the BSON array or document.
+ */
+ public function bsonUnserialize(array $data);
+ }
+
+ /**
+ * Interface Type
+ * @link https://php.net/manual/en/class.mongodb-bson-type.php
+ */
+ interface Type
+ {
+ }
+
+ /**
+ * Interface TimestampInterface
+ *
+ * @link https://secure.php.net/manual/en/class.mongodb-bson-timestampinterface.php
+ * @since 1.3.0
+ */
+ interface TimestampInterface
+ {
+ /**
+ * Returns the increment component of this TimestampInterface
+ * @link https://secure.php.net/manual/en/mongodb-bson-timestampinterface.getincrement.php
+ * @return int
+ * @since 1.3.0
+ */
+ public function getIncrement();
+
+ /**
+ * Returns the timestamp component of this TimestampInterface
+ * @link https://secure.php.net/manual/en/mongodb-bson-timestampinterface.gettimestamp.php
+ * @return int
+ * @since 1.3.0
+ */
+ public function getTimestamp();
+
+ /**
+ * Returns the string representation of this TimestampInterface
+ * @link https://secure.php.net/manual/en/mongodb-bson-timestampinterface.tostring.php
+ * @return string
+ * @since 1.3.0
+ */
+ public function __toString();
+ }
+
+ /**
+ * Interface JavascriptInterface
+ *
+ * @link https://secure.php.net/manual/en/class.mongodb-bson-javascriptinterface.php
+ * @since 1.3.0
+ */
+ interface JavascriptInterface
+ {
+ /**
+ * Returns the JavascriptInterface's code
+ * @return string
+ * @link https://secure.php.net/manual/en/mongodb-bson-javascriptinterface.getcode.php
+ * @since 1.3.0
+ */
+ public function getCode();
+
+ /**
+ * Returns the JavascriptInterface's scope document
+ * @return object|null
+ * @link https://secure.php.net/manual/en/mongodb-bson-javascriptinterface.getscope.php
+ * @since 1.3.0
+ */
+ public function getScope();
+
+ /**
+ * Returns the JavascriptInterface's code
+ * @return string
+ * @link https://secure.php.net/manual/en/mongodb-bson-javascriptinterface.tostring.php
+ * @since 1.3.0
+ */
+ public function __toString();
+ }
+ }
diff --git a/vendor/jetbrains/phpstorm-stubs/mosquitto-php/mosquitto-php.php b/vendor/jetbrains/phpstorm-stubs/mosquitto-php/mosquitto-php.php
new file mode 100644
index 0000000000..1a31cbff6a
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mosquitto-php/mosquitto-php.php
@@ -0,0 +1,403 @@
+= 1.0.1 are `tlsv1.2`, `tlsv1.1` and `tlsv1`.
+ * @param string|null $ciphers A string describing the ciphers available for use. See the `openssl ciphers` tool for more information. If `null`, the default set will be used.
+ * @return int
+ */
+ public function setTlsOptions($certReqs, $tlsVersion = null, $ciphers = null)
+ {
+ }
+
+ /**
+ * Configure the client for pre-shared-key based TLS support. Must be called before `connect`. Cannot be used in
+ * conjunction with setTlsCertificates.
+ *
+ * @param string $psk The pre-shared key in hex format with no leading "0x".
+ * @param string $identity The identity of this client. May be used as the username depending on server settings.
+ * @param string|null $ciphers Optional. A string describing the ciphers available for use. See the `openssl ciphers` tool for more information. If `null`, the default set will be used.
+ * @return int
+ */
+ public function setTlsPSK($psk, $identity, $ciphers = null)
+ {
+ }
+
+ /**
+ * Set the client “last will and testament”, which will be sent on an unclean disconnection from the broker.
+ * Must be called before `connect`.
+ *
+ * @param string $topic The topic on which to publish the will.
+ * @param string $payload The data to send.
+ * @param int $qos Optional. Default 0. Integer 0, 1, or 2 indicating the Quality of Service to be used.
+ * @param bool $retain Optional. Default false. If true, the message will be retained.
+ */
+ public function setWill($topic, $payload, $qos = 0, $retain = false)
+ {
+ }
+
+ /**
+ * Remove a previously-set will. No parameters.
+ */
+ public function clearWill()
+ {
+ }
+
+ /**
+ * Control the behaviour of the client when it has unexpectedly disconnected in Client::loopForever().
+ * The default behaviour if this method is not used is to repeatedly attempt to reconnect with a delay of 1 second
+ * until the connection succeeds.
+ *
+ * @param int $reconnectDelay Set delay between successive reconnection attempts.
+ * @param int $exponentialDelay Set max delay between successive reconnection attempts when exponential backoff is enabled
+ * @param bool $exponentialBackoff Pass `true` to enable exponential backoff
+ */
+ public function setReconnectDelay($reconnectDelay, $exponentialDelay = 0, $exponentialBackoff = false)
+ {
+ }
+
+ /**
+ * Connect to an MQTT broker.
+ *
+ * @param string $host Hostname to connect to
+ * @param int $port Optional. Port number to connect to. Defaults to 1883.
+ * @param int $keepalive Optional. Number of sections after which the broker should PING the client if no messages have been received.
+ * @param string|null $interface Optional. The address or hostname of a local interface to bind to for this connection.
+ * @return int
+ */
+ public function connect($host, $port = 1883, $keepalive = 60, $interface = null)
+ {
+ }
+
+ /**
+ * Disconnect from the broker. No parameters.
+ */
+ public function disconnect()
+ {
+ }
+
+ /**
+ * Set the connect callback. This is called when the broker sends a CONNACK message in response to a connection.
+ *
+ * (int) $rc, (string) $message
+ * function ($rc, $message) {}
+ *
+ * Response codes:
+ * 0 = Success
+ * 1 = Connection refused (unacceptable protocol version)
+ * 2 = Connection refused (identifier rejected)
+ * 3 = Connection refused (broker unavailable)
+ * 4-255 = Reserved for future use
+ *
+ * @param callable $callback
+ */
+ public function onConnect($callback)
+ {
+ }
+
+ /**
+ * Set the disconnect callback. This is called when the broker has received the DISCONNECT command and has
+ * disconnected the client.
+ *
+ * (int) $rc
+ * function ($rc) {}
+ *
+ * Response codes:
+ * 0 = requested by client
+ * <0 = indicates an unexpected disconnection.
+ *
+ * @param callable $callback
+ */
+ public function onDisconnect($callback)
+ {
+ }
+
+ /**
+ * Set the logging callback.
+ *
+ * (int) $level, (string) $str
+ * function ($level, $str) {}
+ *
+ * Log levels:
+ * Client::LOG_DEBUG
+ * Client::LOG_INFO
+ * Client::LOG_NOTICE
+ * Client::LOG_WARNING
+ * Client::LOG_ERR
+ *
+ * @param callable $callback
+ */
+ public function onLog($callback)
+ {
+ }
+
+ /**
+ * Set the subscribe callback. This is called when the broker responds to a subscription request.
+ *
+ * (int) $mid, (int) $qosCount
+ * function ($mid, $qosCount) {}
+ *
+ * @param callable $callback
+ */
+ public function onSubscribe($callback)
+ {
+ }
+
+ /**
+ * Set the unsubscribe callback. This is called when the broker responds to a unsubscribe request.
+ *
+ * (int) $mid
+ * function ($mid) {}
+ *
+ * @param callable $callback
+ */
+ public function onUnsubscribe($callback)
+ {
+ }
+
+ /**
+ * Set the message callback. This is called when a message is received from the broker.
+ *
+ * (object) $message
+ * function (Mosquitto\Message $message) {}
+ *
+ * @param callable $callback
+ */
+ public function onMessage($callback)
+ {
+ }
+
+ /**
+ * Set the publish callback. This is called when a message is published by the client itself.
+ *
+ * Warning: this may be called before the method publish returns the message id, so, you need to create a queue to
+ * deal with the MID list.
+ *
+ * (int) $mid - the message id returned by `publish`
+ * function ($mid) {}
+ *
+ * @param callable $callback
+ */
+ public function onPublish($callback)
+ {
+ }
+
+ /**
+ * Set the number of QoS 1 and 2 messages that can be “in flight” at one time. An in flight message is part way
+ * through its delivery flow. Attempts to send further messages with publish will result in the messages
+ * being queued until the number of in flight messages reduces.
+ *
+ * Set to 0 for no maximum.
+ *
+ * @param int $maxInFlightMessages
+ */
+ public function setMaxInFlightMessages($maxInFlightMessages)
+ {
+ }
+
+ /**
+ * Set the number of seconds to wait before retrying messages. This applies to publishing messages with QoS>0.
+ * May be called at any time.
+ *
+ * @param int $messageRetryPeriod The retry period
+ */
+ public function setMessageRetry($messageRetryPeriod)
+ {
+ }
+
+ /**
+ * Publish a message on a given topic.
+ * Return the message ID returned by the broker. Warning: the message ID is not unique.
+ *
+ * @param string $topic The topic to publish on
+ * @param string $payload The message payload
+ * @param int $qos Integer value 0, 1 or 2 indicating the QoS for this message
+ * @param bool $retain If true, retain this message
+ * @return int
+ */
+ public function publish($topic, $payload, $qos = 0, $retain = false)
+ {
+ }
+
+ /**
+ * Subscribe to a topic.
+ * Return the message ID of the subscription message, so this can be matched up in the `onSubscribe` callback.
+ *
+ * @param string $topic
+ * @param int $qos
+ * @return int
+ */
+ public function subscribe($topic, $qos)
+ {
+ }
+
+ /**
+ * Unsubscribe from a topic.
+ * Return the message ID of the subscription message, so this can be matched up in the `onUnsubscribe` callback.
+ *
+ * @param string $topic
+ * @param int $qos
+ * @return int
+ */
+ public function unsubscribe($topic, $qos)
+ {
+ }
+
+ /**
+ * The main network loop for the client. You must call this frequently in order to keep communications between
+ * the client and broker working. If incoming data is present it will then be processed. Outgoing commands,
+ * from e.g. `publish`, are normally sent immediately that their function is called, but this is not always possible.
+ * `loop` will also attempt to send any remaining outgoing messages, which also includes commands that are part
+ * of the flow for messages with QoS>0.
+ *
+ * @param int $timeout Optional. Number of milliseconds to wait for network activity. Pass 0 for instant timeout.
+ */
+ public function loop($timeout = 1000)
+ {
+ }
+
+ /**
+ * Call loop() in an infinite blocking loop. Callbacks will be called as required. This will handle reconnecting
+ * if the connection is lost. Call `disconnect` in a callback to disconnect and return from the loop. Alternatively,
+ * call `exitLoop` to exit the loop without disconnecting. You will need to re-enter the loop again afterwards
+ * to maintain the connection.
+ *
+ * @param int $timeout Optional. Number of milliseconds to wait for network activity. Pass 0 for instant timeout.
+ */
+ public function loopForever($timeout = 1000)
+ {
+ }
+
+ /**
+ * Exit the `loopForever` event loop without disconnecting. You will need to re-enter the loop afterwards
+ * in order to maintain the connection.
+ */
+ public function exitLoop()
+ {
+ }
+}
+
+/**
+ * @link https://mosquitto-php.readthedocs.io/en/latest/message.html
+ */
+class Message
+{
+
+ /** @var string $topic */
+ public $topic;
+
+ /** @var string $payload */
+ public $payload;
+
+ /** @var int $payload */
+ public $mid;
+
+ /** @var int $qos */
+ public $qos;
+
+ /** @var bool $payload */
+ public $retain;
+
+ /**
+ * Returns true if the supplied topic matches the supplied description, and otherwise false.
+ *
+ * @param string $topic The topic to match
+ * @param string $subscription The subscription to match
+ * @return bool
+ */
+ public static function topicMatchesSub($topic, $subscription) {}
+
+ /**
+ * Tokenise a topic or subscription string into an array of strings representing the topic hierarchy.
+ *
+ * @param string $topic
+ * @return array
+ */
+ public static function tokeniseTopic($topic) {}
+}
+
+/**
+ * @link https://mosquitto-php.readthedocs.io/en/latest/exception.html
+ */
+class Exception extends \Exception {}
diff --git a/vendor/jetbrains/phpstorm-stubs/mqseries/mqseries.php b/vendor/jetbrains/phpstorm-stubs/mqseries/mqseries.php
new file mode 100644
index 0000000000..d4376c901d
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mqseries/mqseries.php
@@ -0,0 +1,1489 @@
+
+ * Undocumented template parameter
+ *
+ * @return mixed
+ */
+function msgpack_unserialize($str, $object = null) {}
+
+/**
+ * Alias of msgpack_serialize
+ * @param mixed $value
+ * @return string
+ */
+function msgpack_pack($value) {}
+
+/**
+ * Alias of msgpack_unserialize
+ * @param string $str
+ * @param null|array|string|object $object
+ * Undocumented template parameter
+ *
+ * @return mixed
+ */
+function msgpack_unpack($str, $object = null)
+{
+}
+
+class MessagePack
+{
+ const OPT_PHPONLY = 1;
+
+ public function __construct($opt)
+ {
+ }
+
+ public function setOption($option, $value)
+ {
+ }
+
+ public function pack($value)
+ {
+ }
+
+ public function unpack($str, $object)
+ {
+ }
+
+ public function unpacker()
+ {
+
+ }
+}
+
+class MessagePackUnpacker
+{
+ public function __construct($opt)
+ {
+ }
+
+ public function __destruct()
+ {
+ }
+
+ public function setOption($option, $value)
+ {
+ }
+
+ public function feed($str)
+ {
+ }
+
+ public function execute($str, &$offset)
+ {
+ }
+
+ public function data($object)
+ {
+
+ }
+
+ public function reset()
+ {
+
+ }
+}
diff --git a/vendor/jetbrains/phpstorm-stubs/mssql/mssql.php b/vendor/jetbrains/phpstorm-stubs/mssql/mssql.php
new file mode 100644
index 0000000000..6b47e8aa81
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mssql/mssql.php
@@ -0,0 +1,638 @@
+
+ * Open MS SQL server connection
+ * @link https://php.net/manual/en/function.mssql-connect.php
+ * @param string $servername [optional]
+ * The MS SQL server. It can also include a port number, e.g.
+ * hostname:port (Linux), or
+ * hostname,port (Windows).
+ *
+ * @param string $username [optional]
+ * The username.
+ *
+ * @param string $password [optional]
+ * The password.
+ *
+ * @param bool $new_link [optional]
+ * If a second call is made to mssql_connect with the
+ * same arguments, no new link will be established, but instead, the link
+ * identifier of the already opened link will be returned. This parameter
+ * modifies this behavior and makes mssql_connect
+ * always open a new link, even if mssql_connect was
+ * called before with the same parameters.
+ *
+ * @return resource|false a MS SQL link identifier on success, or false on error.
+ * @removed 7.0
+ */
+function mssql_connect ($servername = null, $username = null, $password = null, $new_link = false) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Open persistent MS SQL connection
+ * @link https://php.net/manual/en/function.mssql-pconnect.php
+ * @param string $servername [optional]
+ * The MS SQL server. It can also include a port number. e.g.
+ * hostname:port.
+ *
+ * @param string $username [optional]
+ * The username.
+ *
+ * @param string $password [optional]
+ * The password.
+ *
+ * @param bool $new_link [optional]
+ * If a second call is made to mssql_pconnect with
+ * the same arguments, no new link will be established, but instead, the
+ * link identifier of the already opened link will be returned. This
+ * parameter modifies this behavior and makes
+ * mssql_pconnect always open a new link, even if
+ * mssql_pconnect was called before with the same
+ * parameters.
+ *
+ * @return resource|false a positive MS SQL persistent link identifier on success, or
+ * false on error.
+ * @removed 7.0
+ */
+function mssql_pconnect ($servername = null, $username = null, $password = null, $new_link = false) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Close MS SQL Server connection
+ * @link https://php.net/manual/en/function.mssql-close.php
+ * @param resource $link_identifier [optional]
+ * A MS SQL link identifier, returned by
+ * mssql_connect.
+ *
+ *
+ * This function will not close persistent links generated by
+ * mssql_pconnect.
+ *
+ * To escape the name of a database that contains spaces, hyphens ("-"),
+ * or any other exceptional characters, the database name must be
+ * enclosed in brackets, as is shown in the example, below. This
+ * technique must also be applied when selecting a database name that is
+ * also a reserved word (such as primary).
+ *
+ * @param resource $link_identifier [optional]
+ * A MS SQL link identifier, returned by
+ * mssql_connect or
+ * mssql_pconnect.
+ *
+ *
+ * If no link identifier is specified, the last opened link is assumed.
+ * If no link is open, the function will try to establish a link as if
+ * mssql_connect was called, and use it.
+ *
+ * A MS SQL link identifier, returned by
+ * mssql_connect or
+ * mssql_pconnect.
+ *
+ *
+ * If the link identifier isn't specified, the last opened link is
+ * assumed. If no link is open, the function tries to establish a link
+ * as if mssql_connect was called, and use it.
+ *
+ * @param int $batch_size [optional]
+ * The number of records to batch in the buffer.
+ *
+ * @return resource|bool a MS SQL result resource on success, true if no rows were
+ * returned, or false on error.
+ * @removed 7.0
+ */
+function mssql_query ($query, $link_identifier = null, $batch_size = 0) {}
+
+/**
+ * (PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)
+ * Returns the next batch of records
+ * @link https://php.net/manual/en/function.mssql-fetch-batch.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @return int the batch number as an integer.
+ * @removed 7.0
+ */
+function mssql_fetch_batch ($result) {}
+
+/**
+ * (PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)
+ * Returns the number of records affected by the query
+ * @link https://php.net/manual/en/function.mssql-rows-affected.php
+ * @param resource $link_identifier
+ * A MS SQL link identifier, returned by
+ * mssql_connect or
+ * mssql_pconnect.
+ *
+ * @return int the number of records affected by last operation.
+ * @removed 7.0
+ */
+function mssql_rows_affected ($link_identifier) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Free result memory
+ * @link https://php.net/manual/en/function.mssql-free-result.php
+ * @param resource $result
+ * The result resource that is being freed. This result comes from a
+ * call to mssql_query.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_free_result ($result) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Returns the last message from the server
+ * @link https://php.net/manual/en/function.mssql-get-last-message.php
+ * @return string last error message from server, or an empty string if
+ * no error messages are returned from MSSQL.
+ * @removed 7.0
+ */
+function mssql_get_last_message () {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Gets the number of rows in result
+ * @link https://php.net/manual/en/function.mssql-num-rows.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @return int the number of rows, as an integer.
+ * @removed 7.0
+ */
+function mssql_num_rows ($result) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Gets the number of fields in result
+ * @link https://php.net/manual/en/function.mssql-num-fields.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @return int the number of fields, as an integer.
+ * @removed 7.0
+ */
+function mssql_num_fields ($result) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Get field information
+ * @link https://php.net/manual/en/function.mssql-fetch-field.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @param int $field_offset [optional]
+ * The numerical field offset. If the field offset is not specified, the
+ * next field that was not yet retrieved by this function is retrieved. The
+ * field_offset starts at 0.
+ *
+ * @return object an object containing field information.
+ *
+ *
+ * The properties of the object are:
+ * @removed 7.0
+ */
+function mssql_fetch_field ($result, $field_offset = -1) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Get row as enumerated array
+ * @link https://php.net/manual/en/function.mssql-fetch-row.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @return array|false an array that corresponds to the fetched row, or false if there
+ * are no more rows.
+ * @removed 7.0
+ */
+function mssql_fetch_row ($result) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Fetch a result row as an associative array, a numeric array, or both
+ * @link https://php.net/manual/en/function.mssql-fetch-array.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @param int $result_type [optional]
+ * The type of array that is to be fetched. It's a constant and can take
+ * the following values: MSSQL_ASSOC,
+ * MSSQL_NUM, and
+ * MSSQL_BOTH.
+ *
+ * @return array|false an array that corresponds to the fetched row, or false if there
+ * are no more rows.
+ * @removed 7.0
+ */
+function mssql_fetch_array ($result, $result_type = MSSQL_BOTH) {}
+
+/**
+ * (PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)
+ * Returns an associative array of the current row in the result
+ * @link https://php.net/manual/en/function.mssql-fetch-assoc.php
+ * @param resource $result_id
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @return array an associative array that corresponds to the fetched row, or
+ * false if there are no more rows.
+ * @removed 7.0
+ */
+function mssql_fetch_assoc ($result_id) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Fetch row as object
+ * @link https://php.net/manual/en/function.mssql-fetch-object.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @return object an object with properties that correspond to the fetched row, or
+ * false if there are no more rows.
+ * @removed 7.0
+ */
+function mssql_fetch_object ($result) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Get the length of a field
+ * @link https://php.net/manual/en/function.mssql-field-length.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @param int $offset [optional]
+ * The field offset, starts at 0. If omitted, the current field is used.
+ *
+ * @return int|false The length of the specified field index on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_field_length ($result, $offset = null) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Get the name of a field
+ * @link https://php.net/manual/en/function.mssql-field-name.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @param int $offset [optional]
+ * The field offset, starts at 0. If omitted, the current field is used.
+ *
+ * @return string|false The name of the specified field index on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_field_name ($result, $offset = -1) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Gets the type of a field
+ * @link https://php.net/manual/en/function.mssql-field-type.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @param int $offset [optional]
+ * The field offset, starts at 0. If omitted, the current field is used.
+ *
+ * @return string|false The type of the specified field index on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_field_type ($result, $offset = -1) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Moves internal row pointer
+ * @link https://php.net/manual/en/function.mssql-data-seek.php
+ * @param resource $result_identifier
+ * The result resource that is being evaluated.
+ *
+ * @param int $row_number
+ * The desired row number of the new result pointer.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_data_seek ($result_identifier, $row_number) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Seeks to the specified field offset
+ * @link https://php.net/manual/en/function.mssql-field-seek.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @param int $field_offset
+ * The field offset, starts at 0.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_field_seek ($result, $field_offset) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Get result data
+ * @link https://php.net/manual/en/function.mssql-result.php
+ * @param resource $result
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @param int $row
+ * The row number.
+ *
+ * @param mixed $field
+ * Can be the field's offset, the field's name or the field's table dot
+ * field's name (tablename.fieldname). If the column name has been
+ * aliased ('select foo as bar from...'), it uses the alias instead of
+ * the column name.
+ *
+ *
+ * Specifying a numeric offset for the field
+ * argument is much quicker than specifying a
+ * fieldname or
+ * tablename.fieldname argument.
+ *
+ * @return string the contents of the specified cell.
+ * @removed 7.0
+ */
+function mssql_result ($result, $row, $field) {}
+
+/**
+ * (PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)
+ * Move the internal result pointer to the next result
+ * @link https://php.net/manual/en/function.mssql-next-result.php
+ * @param resource $result_id
+ * The result resource that is being evaluated. This result comes from a
+ * call to mssql_query.
+ *
+ * @return bool true if an additional result set was available or false
+ * otherwise.
+ * @removed 7.0
+ */
+function mssql_next_result ($result_id) {}
+
+/**
+ * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)
+ * Sets the minimum error severity
+ * @link https://php.net/manual/en/function.mssql-min-error-severity.php
+ * @param int $severity
+ * Stored procedure name, like ownew.sp_name or
+ * otherdb.owner.sp_name.
+ *
+ * @param resource $link_identifier [optional]
+ * A MS SQL link identifier, returned by
+ * mssql_connect.
+ *
+ * @return resource|false a resource identifier "statement", used in subsequent calls to
+ * mssql_bind and mssql_execute,
+ * or false on errors.
+ * @removed 7.0
+ */
+function mssql_init ($sp_name, $link_identifier = null) {}
+
+/**
+ * (PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)
+ * Adds a parameter to a stored procedure or a remote stored procedure
+ * @link https://php.net/manual/en/function.mssql-bind.php
+ * @param resource $stmt
+ * Statement resource, obtained with mssql_init.
+ *
+ * @param string $param_name
+ * The parameter name, as a string.
+ *
+ *
+ * You have to include the @ character, like in the
+ * T-SQL syntax. See the explanation included in
+ * mssql_execute.
+ *
+ * @param mixed &$var
+ * The PHP variable you'll bind the MSSQL parameter to. It is passed by
+ * reference, to retrieve OUTPUT and RETVAL values after
+ * the procedure execution.
+ *
+ * Whether the value is an OUTPUT parameter or not. If it's an OUTPUT
+ * parameter and you don't mention it, it will be treated as a normal
+ * input parameter and no error will be thrown.
+ *
+ * @param bool $is_null [optional]
+ * Whether the parameter is null or not. Passing the null value as
+ * var will not do the job.
+ *
+ * @param int $maxlen [optional]
+ * Used with char/varchar values. You have to indicate the length of the
+ * data so if the parameter is a varchar(50), the type must be
+ * SQLVARCHAR and this value 50.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_bind ($stmt, $param_name, &$var, $type, $is_output = false, $is_null = false, $maxlen = -1) {}
+
+/**
+ * (PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)
+ * Executes a stored procedure on a MS SQL server database
+ * @link https://php.net/manual/en/function.mssql-execute.php
+ * @param resource $stmt
+ * Statement handle obtained with mssql_init.
+ *
+ * Statement resource, obtained with mssql_init.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+function mssql_free_statement ($stmt) {}
+
+/**
+ * (PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)
+ * Converts a 16 byte binary GUID to a string
+ * @link https://php.net/manual/en/function.mssql-guid-string.php
+ * @param string $binary
+ * A 16 byte binary GUID.
+ *
+ * @param bool $short_format [optional]
+ * Whenever to use short format.
+ *
+ * @return string the converted string on success.
+ * @removed 7.0
+ */
+function mssql_guid_string ($binary, $short_format = null) {}
+
+
+/**
+ * Return an associative array. Used on
+ * mssql_fetch_array's
+ * result_type parameter.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('MSSQL_ASSOC', 1);
+
+/**
+ * Return an array with numeric keys. Used on
+ * mssql_fetch_array's
+ * result_type parameter.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('MSSQL_NUM', 2);
+
+/**
+ * Return an array with both numeric keys and
+ * keys with their field name. This is the
+ * default value for mssql_fetch_array's
+ * result_type parameter.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('MSSQL_BOTH', 3);
+
+/**
+ * Indicates the 'TEXT' type in MSSQL, used by
+ * mssql_bind's type
+ * parameter.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLTEXT', 35);
+
+/**
+ * Indicates the 'VARCHAR' type in MSSQL, used by
+ * mssql_bind's type
+ * parameter.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLVARCHAR', 39);
+
+/**
+ * Indicates the 'CHAR' type in MSSQL, used by
+ * mssql_bind's type
+ * parameter.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLCHAR', 47);
+
+/**
+ * Represents one byte, with a range of -128 to 127.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLINT1', 48);
+
+/**
+ * Represents two bytes, with a range of -32768
+ * to 32767.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLINT2', 52);
+
+/**
+ * Represents four bytes, with a range of -2147483648
+ * to 2147483647.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLINT4', 56);
+
+/**
+ * Indicates the 'BIT' type in MSSQL, used by
+ * mssql_bind's type
+ * parameter.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLBIT', 50);
+
+/**
+ * Represents an four byte float.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLFLT4', 59);
+
+/**
+ * Represents an eight byte float.
+ * @link https://php.net/manual/en/mssql.constants.php
+ */
+define ('SQLFLT8', 62);
+define ('SQLFLTN', 109);
+
+// End of mssql v.
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/mysql/mysql.php b/vendor/jetbrains/phpstorm-stubs/mysql/mysql.php
new file mode 100644
index 0000000000..5cb41aab51
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mysql/mysql.php
@@ -0,0 +1,986 @@
+
+ * The MySQL server. It can also include a port number. e.g.
+ * "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for
+ * the localhost.
+ *
+ *
+ * If the PHP directive
+ * mysql.default_host is undefined (default), then the default
+ * value is 'localhost:3306'. In &sqlsafemode;, this parameter is ignored
+ * and value 'localhost:3306' is always used.
+ *
+ * @param string $username [optional]
+ * The username. Default value is defined by mysql.default_user. In
+ * &sqlsafemode;, this parameter is ignored and the name of the user that
+ * owns the server process is used.
+ *
+ * @param string $password [optional]
+ * The password. Default value is defined by mysql.default_password. In
+ * &sqlsafemode;, this parameter is ignored and empty password is used.
+ *
+ * @param bool $new_link [optional]
+ * If a second call is made to mysql_connect
+ * with the same arguments, no new link will be established, but
+ * instead, the link identifier of the already opened link will be
+ * returned. The new_link parameter modifies this
+ * behavior and makes mysql_connect always open
+ * a new link, even if mysql_connect was called
+ * before with the same parameters.
+ * In &sqlsafemode;, this parameter is ignored.
+ *
+ * @param int $client_flags [optional]
+ * The client_flags parameter can be a combination
+ * of the following constants:
+ * 128 (enable LOAD DATA LOCAL handling),
+ * MYSQL_CLIENT_SSL,
+ * MYSQL_CLIENT_COMPRESS,
+ * MYSQL_CLIENT_IGNORE_SPACE or
+ * MYSQL_CLIENT_INTERACTIVE.
+ * Read the section about for further information.
+ * In &sqlsafemode;, this parameter is ignored.
+ *
+ * @return resource|false a MySQL link identifier on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_connect ($server = 'ini_get("mysql.default_host")', $username = 'ini_get("mysql.default_user")', $password = 'ini_get("mysql.default_password")', $new_link = false, $client_flags = 0) {}
+
+/**
+ * Open a persistent connection to a MySQL server
+ * @link https://php.net/manual/en/function.mysql-pconnect.php
+ * @param string $server [optional]
+ * The MySQL server. It can also include a port number. e.g.
+ * "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for
+ * the localhost.
+ *
+ *
+ * If the PHP directive
+ * mysql.default_host is undefined (default), then the default
+ * value is 'localhost:3306'
+ *
+ * @param string $username [optional]
+ * The username. Default value is the name of the user that owns the
+ * server process.
+ *
+ * @param string $password [optional]
+ * The password. Default value is an empty password.
+ *
+ * @param int $client_flags [optional]
+ * The client_flags parameter can be a combination
+ * of the following constants:
+ * 128 (enable LOAD DATA LOCAL handling),
+ * MYSQL_CLIENT_SSL,
+ * MYSQL_CLIENT_COMPRESS,
+ * MYSQL_CLIENT_IGNORE_SPACE or
+ * MYSQL_CLIENT_INTERACTIVE.
+ *
+ * @return resource|false a MySQL persistent link identifier on success, or false on
+ * failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_pconnect ($server = 'ini_get("mysql.default_host")', $username = 'ini_get("mysql.default_user")', $password = 'ini_get("mysql.default_password")', $client_flags = null) {}
+
+/**
+ * Close MySQL connection
+ * @link https://php.net/manual/en/function.mysql-close.php
+ * @param resource $link_identifier [optional]
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_close ($link_identifier = null) {}
+
+/**
+ * Select a MySQL database
+ * @link https://php.net/manual/en/function.mysql-select-db.php
+ * @param string $database_name
+ * The name of the database that is to be selected.
+ *
+ * @param resource $link_identifier [optional]
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_select_db ($database_name, $link_identifier = null) {}
+
+/**
+ * Send a MySQL query
+ * @link https://php.net/manual/en/function.mysql-query.php
+ * @param string $query
+ * An SQL query
+ *
+ *
+ * The query string should not end with a semicolon.
+ * Data inside the query should be properly escaped.
+ *
+ * @param resource $link_identifier [optional]
+ * @return resource|bool For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset,
+ * mysql_query
+ * returns a resource on success, or false on
+ * error.
+ *
+ *
+ * For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc,
+ * mysql_query returns true on success
+ * or false on error.
+ *
+ *
+ * The returned result resource should be passed to
+ * mysql_fetch_array, and other
+ * functions for dealing with result tables, to access the returned data.
+ *
+ *
+ * Use mysql_num_rows to find out how many rows
+ * were returned for a SELECT statement or
+ * mysql_affected_rows to find out how many
+ * rows were affected by a DELETE, INSERT, REPLACE, or UPDATE
+ * statement.
+ *
+ *
+ * mysql_query will also fail and return false
+ * if the user does not have permission to access the table(s) referenced by
+ * the query.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_query ($query, $link_identifier = null) {}
+
+/**
+ * @deprecated 5.5
+ * Send an SQL query to MySQL without fetching and buffering the result rows.
+ * @link https://php.net/manual/en/function.mysql-unbuffered-query.php
+ * @param string $query
+ * The SQL query to execute.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param resource $link_identifier [optional]
+ * @return resource|bool For SELECT, SHOW, DESCRIBE or EXPLAIN statements,
+ * mysql_unbuffered_query
+ * returns a resource on success, or false on
+ * error.
+ *
+ *
+ * For other type of SQL statements, UPDATE, DELETE, DROP, etc,
+ * mysql_unbuffered_query returns true on success
+ * or false on error.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_unbuffered_query ($query, $link_identifier = null) {}
+
+/**
+ * Selects a database and executes a query on it
+ * @link https://php.net/manual/en/function.mysql-db-query.php
+ * @param string $database
+ * The name of the database that will be selected.
+ *
+ * @param string $query
+ * The MySQL query.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param resource $link_identifier [optional]
+ * @return resource|bool a positive MySQL result resource to the query result,
+ * or false on error. The function also returns true/false for
+ * INSERT/UPDATE/DELETE
+ * queries to indicate success/failure.
+ * @removed 7.0
+ * @see mysql_select_db()
+ * @see mysql_query()
+ */
+#[Deprecated('Use mysql_select_db() and mysql_query() instead', since: '5.3')]
+function mysql_db_query ($database, $query, $link_identifier = null) {}
+
+/**
+ * List databases available on a MySQL server
+ * @link https://php.net/manual/en/function.mysql-list-dbs.php
+ * @param resource $link_identifier [optional]
+ * @return resource|false a result pointer resource on success, or false on
+ * failure. Use the mysql_tablename function to traverse
+ * this result pointer, or any function for result tables, such as
+ * mysql_fetch_array.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.4')]
+function mysql_list_dbs ($link_identifier = null) {}
+
+/**
+ * List tables in a MySQL database
+ * @link https://php.net/manual/en/function.mysql-list-tables.php
+ * @param string $database
+ * The name of the database
+ *
+ * @param resource $link_identifier [optional]
+ * @return resource|false A result pointer resource on success or false on failure.
+ *
+ *
+ * Use the mysql_tablename function to
+ * traverse this result pointer, or any function for result tables,
+ * such as mysql_fetch_array.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.3')]
+function mysql_list_tables ($database, $link_identifier = null) {}
+
+/**
+ * List MySQL table fields
+ * @link https://php.net/manual/en/function.mysql-list-fields.php
+ * @param string $database_name
+ * The name of the database that's being queried.
+ *
+ * @param string $table_name
+ * The name of the table that's being queried.
+ *
+ * @param resource $link_identifier [optional]
+ * @return resource|false A result pointer resource on success, or false on
+ * failure.
+ *
+ *
+ * The returned result can be used with mysql_field_flags,
+ * mysql_field_len,
+ * mysql_field_name&listendand;
+ * mysql_field_type.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_list_fields ($database_name, $table_name, $link_identifier = null) {}
+
+/**
+ * List MySQL processes
+ * @link https://php.net/manual/en/function.mysql-list-processes.php
+ * @param resource $link_identifier [optional]
+ * @return resource|false A result pointer resource on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_list_processes ($link_identifier = null) {}
+
+/**
+ * Returns the text of the error message from previous MySQL operation
+ * @link https://php.net/manual/en/function.mysql-error.php
+ * @param resource $link_identifier [optional]
+ * @return string the error text from the last MySQL function, or
+ * '' (empty string) if no error occurred.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_error ($link_identifier = null) {}
+
+/**
+ * Returns the numerical value of the error message from previous MySQL operation
+ * @link https://php.net/manual/en/function.mysql-errno.php
+ * @param resource $link_identifier [optional]
+ * @return int the error number from the last MySQL function, or
+ * 0 (zero) if no error occurred.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_errno ($link_identifier = null) {}
+
+/**
+ * Get number of affected rows in previous MySQL operation
+ * @link https://php.net/manual/en/function.mysql-affected-rows.php
+ * @param resource $link_identifier [optional]
+ * @return int the number of affected rows on success, and -1 if the last query
+ * failed.
+ *
+ *
+ * If the last query was a DELETE query with no WHERE clause, all
+ * of the records will have been deleted from the table but this
+ * function will return zero with MySQL versions prior to 4.1.2.
+ *
+ *
+ * When using UPDATE, MySQL will not update columns where the new value is the
+ * same as the old value. This creates the possibility that
+ * mysql_affected_rows may not actually equal the number
+ * of rows matched, only the number of rows that were literally affected by
+ * the query.
+ *
+ *
+ * The REPLACE statement first deletes the record with the same primary key
+ * and then inserts the new record. This function returns the number of
+ * deleted records plus the number of inserted records.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_affected_rows ($link_identifier = null) {}
+
+/**
+ * Get the ID generated in the last query
+ * @link https://php.net/manual/en/function.mysql-insert-id.php
+ * @param resource $link_identifier [optional]
+ * @return int The ID generated for an AUTO_INCREMENT column by the previous
+ * query on success, 0 if the previous
+ * query does not generate an AUTO_INCREMENT value, or false if
+ * no MySQL connection was established.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_insert_id ($link_identifier = null) {}
+
+/**
+ * Get result data
+ * @link https://php.net/manual/en/function.mysql-result.php
+ * @param resource $result
+ * @param int $row
+ * The row number from the result that's being retrieved. Row numbers
+ * start at 0.
+ *
+ * @param mixed $field [optional]
+ * The name or offset of the field being retrieved.
+ *
+ *
+ * It can be the field's offset, the field's name, or the field's table
+ * dot field name (tablename.fieldname). If the column name has been
+ * aliased ('select foo as bar from...'), use the alias instead of the
+ * column name. If undefined, the first field is retrieved.
+ *
+ * @return string The contents of one cell from a MySQL result set on success, or
+ * false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_result ($result, $row, $field = 0) {}
+
+/**
+ * Get number of rows in result
+ * @link https://php.net/manual/en/function.mysql-num-rows.php
+ * @param resource $result
The result resource that is being evaluated. This result comes from a call to mysql_query().
+ * @return int|false
The number of rows in the result set on success or FALSE on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_num_rows ($result) {}
+
+/**
+ * Get number of fields in result
+ * @link https://php.net/manual/en/function.mysql-num-fields.php
+ * @param resource $result
+ * @return int the number of fields in the result set resource on
+ * success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_num_fields ($result) {}
+
+/**
+ * Get a result row as an enumerated array
+ * @link https://php.net/manual/en/function.mysql-fetch-row.php
+ * @param resource $result
+ * @return array an numerical array of strings that corresponds to the fetched row, or
+ * false if there are no more rows.
+ *
+ *
+ * mysql_fetch_row fetches one row of data from
+ * the result associated with the specified result identifier. The
+ * row is returned as an array. Each result column is stored in an
+ * array offset, starting at offset 0.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_fetch_row ($result) {}
+
+/**
+ * Fetch a result row as an associative array, a numeric array, or both
+ * @link https://php.net/manual/en/function.mysql-fetch-array.php
+ * @param resource $result
+ * @param int $result_type [optional]
+ * The type of array that is to be fetched. It's a constant and can
+ * take the following values: MYSQL_ASSOC,
+ * MYSQL_NUM, and
+ * MYSQL_BOTH.
+ *
+ * @return array|false an array of strings that corresponds to the fetched row, or false
+ * if there are no more rows. The type of returned array depends on
+ * how result_type is defined. By using
+ * MYSQL_BOTH (default), you'll get an array with both
+ * associative and number indices. Using MYSQL_ASSOC, you
+ * only get associative indices (as mysql_fetch_assoc
+ * works), using MYSQL_NUM, you only get number indices
+ * (as mysql_fetch_row works).
+ *
+ *
+ * If two or more columns of the result have the same field names,
+ * the last column will take precedence. To access the other column(s)
+ * of the same name, you must use the numeric index of the column or
+ * make an alias for the column. For aliased columns, you cannot
+ * access the contents with the original column name.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_fetch_array ($result, $result_type = MYSQL_BOTH) {}
+
+/**
+ * Fetch a result row as an associative array
+ * @link https://php.net/manual/en/function.mysql-fetch-assoc.php
+ * @param resource $result
+ * @return array an associative array of strings that corresponds to the fetched row, or
+ * false if there are no more rows.
+ *
+ *
+ * If two or more columns of the result have the same field names,
+ * the last column will take precedence. To access the other
+ * column(s) of the same name, you either need to access the
+ * result with numeric indices by using
+ * mysql_fetch_row or add alias names.
+ * See the example at the mysql_fetch_array
+ * description about aliases.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_fetch_assoc ($result) {}
+
+/**
+ * Fetch a result row as an object
+ * @link https://php.net/manual/en/function.mysql-fetch-object.php
+ * @param resource $result
+ * @param string $class_name [optional]
+ * The name of the class to instantiate, set the properties of and return.
+ * If not specified, a stdClass object is returned.
+ *
+ * @param array $params [optional]
+ * An optional array of parameters to pass to the constructor
+ * for class_name objects.
+ *
+ * @return stdClass|object an object with string properties that correspond to the
+ * fetched row, or false if there are no more rows.
+ *
+ *
+ * mysql_fetch_row fetches one row of data from
+ * the result associated with the specified result identifier. The
+ * row is returned as an array. Each result column is stored in an
+ * array offset, starting at offset 0.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_fetch_object ($result, $class_name = 'stdClass', array $params = null ) {}
+
+/**
+ * Move internal result pointer
+ * @link https://php.net/manual/en/function.mysql-data-seek.php
+ * @param resource $result
+ * @param int $row_number
+ * The desired row number of the new result pointer.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_data_seek ($result, $row_number) {}
+
+/**
+ * Get the length of each output in a result
+ * @link https://php.net/manual/en/function.mysql-fetch-lengths.php
+ * @param resource $result
+ * @return array|false An array of lengths on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_fetch_lengths ($result) {}
+
+/**
+ * Get column information from a result and return as an object
+ * @link https://php.net/manual/en/function.mysql-fetch-field.php
+ * @param resource $result
+ * @param int $field_offset [optional]
+ * The numerical field offset. If the field offset is not specified, the
+ * next field that was not yet retrieved by this function is retrieved.
+ * The field_offset starts at 0.
+ *
+ * @return object an object containing field information. The properties
+ * of the object are:
+ *
+ *
+ * name - column name
+ * table - name of the table the column belongs to
+ * def - default value of the column
+ * max_length - maximum length of the column
+ * not_null - 1 if the column cannot be null
+ * primary_key - 1 if the column is a primary key
+ * unique_key - 1 if the column is a unique key
+ * multiple_key - 1 if the column is a non-unique key
+ * numeric - 1 if the column is numeric
+ * blob - 1 if the column is a BLOB
+ * type - the type of the column
+ * unsigned - 1 if the column is unsigned
+ * zerofill - 1 if the column is zero-filled
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_fetch_field ($result, $field_offset = 0) {}
+
+/**
+ * Set result pointer to a specified field offset
+ * @link https://php.net/manual/en/function.mysql-field-seek.php
+ * @param resource $result
+ * @param int $field_offset
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_field_seek ($result, $field_offset) {}
+
+/**
+ * Free result memory
+ * @link https://php.net/manual/en/function.mysql-free-result.php
+ * @param resource $result
+ * @return bool true on success or false on failure.
+ *
+ *
+ * If a non-resource is used for the result, an
+ * error of level E_WARNING will be emitted. It's worth noting that
+ * mysql_query only returns a resource
+ * for SELECT, SHOW, EXPLAIN, and DESCRIBE queries.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_free_result ($result) {}
+
+/**
+ * Get the name of the specified field in a result
+ * @link https://php.net/manual/en/function.mysql-field-name.php
+ * @param resource $result
+ * @param int $field_offset
+ * @return string|false The name of the specified field index on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_field_name ($result, $field_offset) {}
+
+/**
+ * Get name of the table the specified field is in
+ * @link https://php.net/manual/en/function.mysql-field-table.php
+ * @param resource $result
+ * @param int $field_offset
+ * @return string The name of the table on success.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_field_table ($result, $field_offset) {}
+
+/**
+ * Returns the length of the specified field
+ * @link https://php.net/manual/en/function.mysql-field-len.php
+ * @param resource $result
+ * @param int $field_offset
+ * @return int|false The length of the specified field index on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_field_len ($result, $field_offset) {}
+
+/**
+ * Get the type of the specified field in a result
+ * @link https://php.net/manual/en/function.mysql-field-type.php
+ * @param resource $result
+ * @param int $field_offset
+ * @return string The returned field type
+ * will be one of "int", "real",
+ * "string", "blob", and others as
+ * detailed in the MySQL
+ * documentation.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_field_type ($result, $field_offset) {}
+
+/**
+ * Get the flags associated with the specified field in a result
+ * @link https://php.net/manual/en/function.mysql-field-flags.php
+ * @param resource $result
+ * @param int $field_offset
+ * @return string|false a string of flags associated with the result or false on failure.
+ *
+ *
+ * The following flags are reported, if your version of MySQL
+ * is current enough to support them: "not_null",
+ * "primary_key", "unique_key",
+ * "multiple_key", "blob",
+ * "unsigned", "zerofill",
+ * "binary", "enum",
+ * "auto_increment" and "timestamp".
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_field_flags ($result, $field_offset) {}
+
+/**
+ * Escapes a string for use in a mysql_query
+ * @link https://php.net/manual/en/function.mysql-escape-string.php
+ * @param string $unescaped_string
+ * The string that is to be escaped.
+ *
+ * @return string the escaped string.
+ * @removed 7.0
+ */
+#[Deprecated(replacement: 'mysql_real_escape_string(%parameter0%)',since: '5.3')]
+function mysql_escape_string ($unescaped_string) {}
+
+/**
+ * Escapes special characters in a string for use in an SQL statement
+ * @link https://php.net/manual/en/function.mysql-real-escape-string.php
+ * @param string $unescaped_string
+ * The string that is to be escaped.
+ *
+ * @param resource $link_identifier [optional]
+ * @return string|false the escaped string, or false on error.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_real_escape_string ($unescaped_string, $link_identifier = null) {}
+
+/**
+ * Get current system status
+ * @link https://php.net/manual/en/function.mysql-stat.php
+ * @param resource $link_identifier [optional]
+ * @return string a string with the status for uptime, threads, queries, open tables,
+ * flush tables and queries per second. For a complete list of other status
+ * variables, you have to use the SHOW STATUS SQL command.
+ * If link_identifier is invalid, null is returned.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_stat ($link_identifier = null) {}
+
+/**
+ * Return the current thread ID
+ * @link https://php.net/manual/en/function.mysql-thread-id.php
+ * @param resource $link_identifier [optional]
+ * @return int|false The thread ID on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_thread_id ($link_identifier = null) {}
+
+/**
+ * Returns the name of the character set
+ * @link https://php.net/manual/en/function.mysql-client-encoding.php
+ * @param resource $link_identifier [optional]
+ * @return string the default character set name for the current connection.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_client_encoding ($link_identifier = null) {}
+
+/**
+ * Ping a server connection or reconnect if there is no connection
+ * @link https://php.net/manual/en/function.mysql-ping.php
+ * @param resource $link_identifier [optional]
+ * @return bool true if the connection to the server MySQL server is working,
+ * otherwise false.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_ping ($link_identifier = null) {}
+
+/**
+ * Get MySQL client info
+ * @link https://php.net/manual/en/function.mysql-get-client-info.php
+ * @return string The MySQL client version.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_get_client_info () {}
+
+/**
+ * Get MySQL host info
+ * @link https://php.net/manual/en/function.mysql-get-host-info.php
+ * @param resource $link_identifier [optional]
+ * @return string a string describing the type of MySQL connection in use for the
+ * connection or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_get_host_info ($link_identifier = null) {}
+
+/**
+ * Get MySQL protocol info
+ * @link https://php.net/manual/en/function.mysql-get-proto-info.php
+ * @param resource $link_identifier [optional]
+ * @return int|false the MySQL protocol on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_get_proto_info ($link_identifier = null) {}
+
+/**
+ * Get MySQL server info
+ * @link https://php.net/manual/en/function.mysql-get-server-info.php
+ * @param resource $link_identifier [optional]
+ * @return string|false the MySQL server version on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_get_server_info ($link_identifier = null) {}
+
+/**
+ * Get information about the most recent query
+ * @link https://php.net/manual/en/function.mysql-info.php
+ * @param resource $link_identifier [optional]
+ * @return string|false information about the statement on success, or false on
+ * failure. See the example below for which statements provide information,
+ * and what the returned value may look like. Statements that are not listed
+ * will return false.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_info ($link_identifier = null) {}
+
+/**
+ * Sets the client character set
+ * @link https://php.net/manual/en/function.mysql-set-charset.php
+ * @param string $charset
+ * The result pointer from a call to mysql_list_dbs.
+ *
+ * @param int $row
+ * The index into the result set.
+ *
+ * @param mixed $field [optional]
+ * The field name.
+ *
+ * @return string|false the database name on success, and false on failure. If false
+ * is returned, use mysql_error to determine the nature
+ * of the error.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_db_name ($result, $row, $field = null) {}
+
+/**
+ * @param $result
+ * @param $row
+ * @param $field [optional]
+ * @removed 7.0
+ */
+#[Deprecated(replacement: 'mysql_db_name(%parametersList%)', since: '5.5')]
+function mysql_dbname ($result, $row, $field) {}
+
+/**
+ * Get table name of field
+ * @link https://php.net/manual/en/function.mysql-tablename.php
+ * @param resource $result
+ * A result pointer resource that's returned from
+ * mysql_list_tables.
+ *
+ * @param int $i
+ * The integer index (row/table number)
+ *
+ * @return string|false The name of the table on success or false on failure.
+ *
+ *
+ * Use the mysql_tablename function to
+ * traverse this result pointer, or any function for result tables,
+ * such as mysql_fetch_array.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_tablename ($result, $i) {}
+
+/**
+ * @param $result
+ * @param $row
+ * @param $field [optional]
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_table_name ($result, $row, $field) {}
+
+
+/**
+ * Columns are returned into the array having the fieldname as the array
+ * index.
+ * @link https://php.net/manual/en/mysql.constants.php
+ * @deprecated 5.5
+ * @removed 7.0
+ */
+define ('MYSQL_ASSOC', 1);
+
+/**
+ * Columns are returned into the array having a numerical index to the
+ * fields. This index starts with 0, the first field in the result.
+ * @link https://php.net/manual/en/mysql.constants.php
+ * @deprecated 5.5
+ * @removed 7.0
+ */
+define ('MYSQL_NUM', 2);
+
+/**
+ * Columns are returned into the array having both a numerical index
+ * and the fieldname as the array index.
+ * @link https://php.net/manual/en/mysql.constants.php
+ * @deprecated 5.5
+ * @removed 7.0
+ */
+define ('MYSQL_BOTH', 3);
+
+/**
+ * Use compression protocol
+ * @link https://php.net/manual/en/mysql.constants.php
+ * @deprecated 5.5
+ * @removed 7.0
+ */
+define ('MYSQL_CLIENT_COMPRESS', 32);
+
+/**
+ * Use SSL encryption. This flag is only available with version 4.x
+ * of the MySQL client library or newer. Version 3.23.x is bundled both
+ * with PHP 4 and Windows binaries of PHP 5.
+ * @link https://php.net/manual/en/mysql.constants.php
+ * @deprecated 5.5
+ * @removed 7.0
+ */
+define ('MYSQL_CLIENT_SSL', 2048);
+
+/**
+ * Allow interactive_timeout seconds (instead of wait_timeout) of
+ * inactivity before closing the connection.
+ * @link https://php.net/manual/en/mysql.constants.php
+ * @deprecated 5.5
+ * @removed 7.0
+ */
+define ('MYSQL_CLIENT_INTERACTIVE', 1024);
+
+/**
+ * Allow space after function names
+ * @link https://php.net/manual/en/mysql.constants.php
+ * @deprecated 5.5
+ * @removed 7.0
+ */
+define ('MYSQL_CLIENT_IGNORE_SPACE', 256);
+
+// End of mysql v.1.0
+?>
diff --git a/vendor/jetbrains/phpstorm-stubs/mysql_xdevapi/mysql_xdevapi.php b/vendor/jetbrains/phpstorm-stubs/mysql_xdevapi/mysql_xdevapi.php
new file mode 100644
index 0000000000..d31dfffa66
--- /dev/null
+++ b/vendor/jetbrains/phpstorm-stubs/mysql_xdevapi/mysql_xdevapi.php
@@ -0,0 +1,1571 @@
+
+ * @param string $hostname [optional] Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. Prepending host by p: opens a persistent connection. mysqli_change_user() is automatically called on connections opened from the connection pool. Defaults to ini_get("mysqli.default_host")
+ * @param string $username [optional] The MySQL user name. Defaults to ini_get("mysqli.default_user")
+ * @param string $password [optional] If not provided or NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not). Defaults to ini_get("mysqli.default_pw")
+ * @param string $database [optional] If provided will specify the default database to be used when performing queries. Defaults to ""
+ * @param int $port [optional] Specifies the port number to attempt to connect to the MySQL server. Defaults to ini_get("mysqli.default_port")
+ * @param string $socket [optional] Specifies the socket or named pipe that should be used. Defaults to ini_get("mysqli.default_socket")
+ */
+ public function __construct (
+ $hostname = null,
+ $username = null,
+ $password = null,
+ $database = null,
+ $port = null,
+ $socket = null
+ ) {}
+
+ /**
+ * Turns on or off auto-committing database modifications
+ * @link https://php.net/manual/en/mysqli.autocommit.php
+ * @param bool $enable
+ * Whether to turn on auto-commit or not.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function autocommit ($enable) {}
+
+ /**
+ * Starts a transaction
+ * @link https://secure.php.net/manual/en/mysqli.begin-transaction.php
+ * @param int $flags [optional]
+ * @param string $name [optional]
+ * @return bool true on success or false on failure.
+ * @since 5.5
+ */
+ public function begin_transaction ($flags = 0, $name = null) {}
+
+ /**
+ * Changes the user of the specified database connection
+ * @link https://php.net/manual/en/mysqli.change-user.php
+ * @param string $username
+ * The MySQL user name.
+ *
+ * @param string $password
+ * The MySQL password.
+ *
+ * @param string $database
+ * The database to change to.
+ *
+ *
+ * If desired, the null value may be passed resulting in only changing
+ * the user and not selecting a database. To select a database in this
+ * case use the mysqli_select_db function.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function change_user ($username, $password, $database) {}
+
+ /**
+ * Returns the default character set for the database connection
+ * @link https://php.net/manual/en/mysqli.character-set-name.php
+ * @return string The default character set for the current connection
+ */
+ public function character_set_name () {}
+
+ /**
+ * @removed 5.4
+ */
+ #[Deprecated(since: '5.3')]
+ public function client_encoding () {}
+
+ /**
+ * Closes a previously opened database connection
+ * @link https://php.net/manual/en/mysqli.close.php
+ * @return bool true on success or false on failure.
+ */
+ public function close () {}
+
+ /**
+ * Commits the current transaction
+ * @link https://php.net/manual/en/mysqli.commit.php
+ * @param int $flags A bitmask of MYSQLI_TRANS_COR_* constants.
+ * @param string $name If provided then COMMIT $name is executed.
+ * @return bool true on success or false on failure.
+ */
+ public function commit ($flags = -1, $name = null) {}
+
+ /**
+ * @link https://php.net/manual/en/function.mysqli-connect.php
+ * @param string $hostname [optional]
+ * @param string $username [optional]
+ * @param string $password [optional]
+ * @param string $database [optional]
+ * @param int $port [optional]
+ * @param string $socket [optional]
+ */
+ public function connect ($hostname = null, $username = null, $password = null, $database = null, $port = null, $socket = null) {}
+
+ /**
+ * Dump debugging information into the log
+ * @link https://php.net/manual/en/mysqli.dump-debug-info.php
+ * @return bool true on success or false on failure.
+ */
+ public function dump_debug_info () {}
+
+ /**
+ * Performs debugging operations
+ * @link https://php.net/manual/en/mysqli.debug.php
+ * @param string $options
+ * A string representing the debugging operation to perform
+ *
+ * @return bool true.
+ */
+ public function debug ($options) {}
+
+ /**
+ * Returns a character set object
+ * @link https://php.net/manual/en/mysqli.get-charset.php
+ * @return object The function returns a character set object with the following properties:
+ * charset
+ *
Character set name
+ * collation
+ *
Collation name
+ * dir
+ *
Directory the charset description was fetched from (?) or "" for built-in character sets
+ * min_length
+ *
Minimum character length in bytes
+ * max_length
+ *
Maximum character length in bytes
+ * number
+ *
Internal character set number
+ * state
+ *
Character set status (?)
+ */
+ public function get_charset () {}
+
+ /**
+ * Returns the MySQL client version as a string
+ * @link https://php.net/manual/en/mysqli.get-client-info.php
+ * @return string A string that represents the MySQL client library version
+ */
+ public function get_client_info () {}
+
+ /**
+ * Returns statistics about the client connection
+ * @link https://php.net/manual/en/mysqli.get-connection-stats.php
+ * @return array|false an array with connection stats if success, false otherwise.
+ */
+ public function get_connection_stats () {}
+
+ /**
+ * An undocumented function equivalent to the $server_info property
+ * @link https://php.net/manual/en/mysqli.get-server-info.php
+ * @return string A character string representing the server version.
+ */
+ public function get_server_info () {}
+
+ /**
+ * Get result of SHOW WARNINGS
+ * @link https://php.net/manual/en/mysqli.get-warnings.php
+ * @return mysqli_warning
+ */
+ public function get_warnings () {}
+
+ /**
+ * Initializes MySQLi and returns a resource for use with mysqli_real_connect()
+ * @link https://php.net/manual/en/mysqli.init.php
+ * @return mysqli an object.
+ */
+ public function init () {}
+
+ /**
+ * Asks the server to kill a MySQL thread
+ * @link https://php.net/manual/en/mysqli.kill.php
+ * @param int $process_id
+ * @return bool true on success or false on failure.
+ */
+ public function kill ($process_id) {}
+
+ /**
+ * Performs a query on the database
+ * @link https://php.net/manual/en/mysqli.multi-query.php
+ * @param string $query
+ * The query, as a string.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @return bool false if the first statement failed.
+ * To retrieve subsequent errors from other statements you have to call
+ * mysqli_next_result first.
+ */
+ public function multi_query ($query) {}
+
+ /**
+ * @link https://php.net/manual/en/mysqli.construct.php
+ * @param string $host [optional]
+ * @param string $username [optional]
+ * @param string $password [optional]
+ * @param string $database [optional]
+ * @param int $port [optional]
+ * @param string $socket [optional]
+ *
+ * @removed 8.0
+ */
+ public function mysqli ($host = null, $username = null, $password = null, $database = null, $port = null, $socket = null) {}
+
+ /**
+ * Check if there are any more query results from a multi query
+ * @link https://php.net/manual/en/mysqli.more-results.php
+ * @return bool true on success or false on failure.
+ */
+ public function more_results () {}
+
+ /**
+ * Prepare next result from multi_query
+ * @link https://php.net/manual/en/mysqli.next-result.php
+ * @return bool true on success or false on failure.
+ */
+ public function next_result () {}
+
+ /**
+ * Set options
+ * @link https://php.net/manual/en/mysqli.options.php
+ * @param int $option
+ * The option that you want to set. It can be one of the following values:
+ *
+ * Valid options
+ *
+ *
Name
+ *
Description
+ *
+ *
+ *
MYSQLI_OPT_CONNECT_TIMEOUT
+ *
connection timeout in seconds (supported on Windows with TCP/IP since PHP 5.3.1)
+ *
+ *
+ *
MYSQLI_OPT_LOCAL_INFILE
+ *
enable/disable use of LOAD LOCAL INFILE
+ *
+ *
+ *
MYSQLI_INIT_COMMAND
+ *
command to execute after when connecting to MySQL server
+ *
+ *
+ *
MYSQLI_READ_DEFAULT_FILE
+ *
+ * Read options from named option file instead of my.cnf
+ *
+ *
+ *
+ *
MYSQLI_READ_DEFAULT_GROUP
+ *
+ * Read options from the named group from my.cnf
+ * or the file specified with MYSQL_READ_DEFAULT_FILE
+ *
+ *
+ *
+ *
MYSQLI_SERVER_PUBLIC_KEY
+ *
+ * RSA public key file used with the SHA-256 based authentication.
+ *
+ *
+ *
+ *
+ * @param mixed $value
+ * The value for the option.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function options ($option, $value) {}
+
+ /**
+ * Pings a server connection, or tries to reconnect if the connection has gone down
+ * @link https://php.net/manual/en/mysqli.ping.php
+ * @return bool true on success or false on failure.
+ */
+ public function ping () {}
+
+ /**
+ * Prepare an SQL statement for execution
+ * @link https://php.net/manual/en/mysqli.prepare.php
+ * @param string $query
+ * The query, as a string.
+ *
+ *
+ * You should not add a terminating semicolon or \g
+ * to the statement.
+ *
+ *
+ * This parameter can include one or more parameter markers in the SQL
+ * statement by embedding question mark (?) characters
+ * at the appropriate positions.
+ *
+ *
+ * The markers are legal only in certain places in SQL statements.
+ * For example, they are allowed in the VALUES()
+ * list of an INSERT statement (to specify column
+ * values for a row), or in a comparison with a column in a
+ * WHERE clause to specify a comparison value.
+ *
+ *
+ * However, they are not allowed for identifiers (such as table or
+ * column names), in the select list that names the columns to be
+ * returned by a SELECT statement, or to specify both
+ * operands of a binary operator such as the = equal
+ * sign. The latter restriction is necessary because it would be
+ * impossible to determine the parameter type. It's not allowed to
+ * compare marker with NULL by
+ * ? IS NULL too. In general, parameters are legal
+ * only in Data Manipulation Language (DML) statements, and not in Data
+ * Definition Language (DDL) statements.
+ *
+ * @return mysqli_stmt|false mysqli_prepare returns a statement object or false if an error occurred.
+ */
+ public function prepare ($query) {}
+
+ /**
+ * Performs a query on the database
+ * @link https://php.net/manual/en/mysqli.query.php
+ * @param string $query
+ * The query string.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @param int $result_mode [optional]
+ * Either the constant MYSQLI_USE_RESULT or
+ * MYSQLI_STORE_RESULT depending on the desired
+ * behavior. By default, MYSQLI_STORE_RESULT is used.
+ *
+ *
+ * If you use MYSQLI_USE_RESULT all subsequent calls
+ * will return error Commands out of sync unless you
+ * call mysqli_free_result
+ *
+ *
+ * With MYSQLI_ASYNC (available with mysqlnd), it is
+ * possible to perform query asynchronously.
+ * mysqli_poll is then used to get results from such
+ * queries.
+ *
+ * @return mysqli_result|bool For successful SELECT, SHOW, DESCRIBE or
+ * EXPLAIN queries mysqli_query will return
+ * a mysqli_result object. For other successful queries mysqli_query will
+ * return true and false on failure.
+ */
+ public function query ($query, $result_mode = MYSQLI_STORE_RESULT) {}
+
+ /**
+ * Opens a connection to a mysql server
+ * @link https://php.net/manual/en/mysqli.real-connect.php
+ * @param string $host [optional]
+ * Can be either a host name or an IP address. Passing the null value
+ * or the string "localhost" to this parameter, the local host is
+ * assumed. When possible, pipes will be used instead of the TCP/IP
+ * protocol.
+ *
+ * @param string $hostname [optional]
+ * The MySQL user name.
+ *
+ * @param string $password [optional]
+ * If provided or null, the MySQL server will attempt to authenticate
+ * the user against those user records which have no password only. This
+ * allows one username to be used with different permissions (depending
+ * on if a password as provided or not).
+ *
+ * @param string $database [optional]
+ * If provided will specify the default database to be used when
+ * performing queries.
+ *
+ * @param int $port [optional]
+ * Specifies the port number to attempt to connect to the MySQL server.
+ *
+ * @param string $socket [optional]
+ * Specifies the socket or named pipe that should be used.
+ *
+ *
+ * Specifying the socket parameter will not
+ * explicitly determine the type of connection to be used when
+ * connecting to the MySQL server. How the connection is made to the
+ * MySQL database is determined by the host
+ * parameter.
+ *
+ * @param int $flags [optional]
+ * With the parameter flags you can set different
+ * connection options:
+ *
+ *
+ * Supported flags
+ *
+ *
Name
+ *
Description
+ *
+ *
+ *
MYSQLI_CLIENT_COMPRESS
+ *
Use compression protocol
+ *
+ *
+ *
MYSQLI_CLIENT_FOUND_ROWS
+ *
return number of matched rows, not the number of affected rows
+ *
+ *
+ *
MYSQLI_CLIENT_IGNORE_SPACE
+ *
Allow spaces after function names. Makes all function names reserved words.
+ *
+ *
+ *
MYSQLI_CLIENT_INTERACTIVE
+ *
+ * Allow interactive_timeout seconds (instead of
+ * wait_timeout seconds) of inactivity before closing the connection
+ *
+ *
+ *
+ *
MYSQLI_CLIENT_SSL
+ *
Use SSL (encryption)
+ *
+ *
+ *
+ * For security reasons the MULTI_STATEMENT flag is
+ * not supported in PHP. If you want to execute multiple queries use the
+ * mysqli_multi_query function.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function real_connect ($hostname = null, $username = null, $password = null, $database = null, $port = null, $socket = null, $flags = null) {}
+
+ /**
+ * Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
+ * @link https://php.net/manual/en/mysqli.real-escape-string.php
+ * @param string $string
+ * The string to be escaped.
+ *
+ *
+ * Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and
+ * Control-Z.
+ *
+ * Number of seconds to wait, must be non-negative.
+ *
+ * @param int $microseconds [optional]
+ * Number of microseconds to wait, must be non-negative.
+ *
+ * @return int|false number of ready connections in success, false otherwise.
+ */
+ public static function poll (array &$read , array &$write , array &$error , $seconds, $microseconds = 0) {}
+
+ /**
+ * Get result from async query
+ * @link https://php.net/manual/en/mysqli.reap-async-query.php
+ * @return mysqli_result|false mysqli_result in success, false otherwise.
+ */
+ public function reap_async_query () {}
+
+ /**
+ * Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
+ * @param string $string The string to be escaped.
+ * Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.
+ * @return string
+ * @link https://secure.php.net/manual/en/mysqli.real-escape-string.php
+ */
+ public function escape_string ($string) {}
+
+ /**
+ * Execute an SQL query
+ * @link https://php.net/manual/en/mysqli.real-query.php
+ * @param string $query
+ * The query, as a string.
+ *
+ *
+ * Data inside the query should be properly escaped.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function real_query ($query) {}
+
+ /**
+ * Execute an SQL query
+ * @link https://php.net/manual/en/mysqli.release-savepoint.php
+ * @param string $name
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+ public function release_savepoint ($name) {}
+
+ /**
+ * Rolls back current transaction
+ * @link https://php.net/manual/en/mysqli.rollback.php
+ * @param int $flags [optional] A bitmask of MYSQLI_TRANS_COR_* constants.
+ * @param string $name [optional] If provided then ROLLBACK $name is executed.
+ * @return bool true on success or false on failure.
+ * @since 5.5 Added flags and name parameters.
+ */
+ public function rollback ($flags = 0, $name = null) {}
+
+ /**
+ * Set a named transaction savepoint
+ * @link https://secure.php.net/manual/en/mysqli.savepoint.php
+ * @param string $name
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+ public function savepoint ($name) {}
+
+ /**
+ * Selects the default database for database queries
+ * @link https://php.net/manual/en/mysqli.select-db.php
+ * @param string $database
+ * The database name.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function select_db ($database) {}
+
+ /**
+ * Sets the default client character set
+ * @link https://php.net/manual/en/mysqli.set-charset.php
+ * @param string $charset
+ * The charset to be set as default.
+ *
+ * @return bool true on success or false on failure..5
+ */
+ public function set_charset ($charset) {}
+
+ /**
+ * @link https://php.net/manual/en/function.mysqli-set-opt
+ * @param int $option
+ * @param mixed $value
+ */
+ public function set_opt ($option, $value) {}
+
+
+ /**
+ * Used for establishing secure connections using SSL
+ * @link https://secure.php.net/manual/en/mysqli.ssl-set.php
+ * @param string $key
+ * The path name to the key file.
+ *
+ * @param string $certificate
+ * The path name to the certificate file.
+ *
+ * @param string $ca_certificate
+ * The path name to the certificate authority file.
+ *
+ * @param string $ca_path
+ * The pathname to a directory that contains trusted SSL CA certificates in PEM format.
+ *
+ * @param string $cipher_algos
+ * A list of allowable ciphers to use for SSL encryption.
+ *
+ * @return bool This function always returns TRUE value.
+ */
+ public function ssl_set($key , $certificate , $ca_certificate , $ca_path , $cipher_algos) {}
+
+ /**
+ * Gets the current system status
+ * @link https://php.net/manual/en/mysqli.stat.php
+ * @return string|false A string describing the server status. false if an error occurred.
+ */
+ public function stat () {}
+
+ /**
+ * Initializes a statement and returns an object for use with mysqli_stmt_prepare
+ * @link https://php.net/manual/en/mysqli.stmt-init.php
+ * @return mysqli_stmt an object.
+ */
+ public function stmt_init () {}
+
+ /**
+ * Transfers a result set from the last query
+ * @link https://php.net/manual/en/mysqli.store-result.php
+ * @param int $mode [optional] The option that you want to set
+ * @return mysqli_result|false a buffered result object or false if an error occurred.
+ *
+ *
+ * mysqli_store_result returns false in case the query
+ * didn't return a result set (if the query was, for example an INSERT
+ * statement). This function also returns false if the reading of the
+ * result set failed. You can check if you have got an error by checking
+ * if mysqli_error doesn't return an empty string, if
+ * mysqli_errno returns a non zero value, or if
+ * mysqli_field_count returns a non zero value.
+ * Also possible reason for this function returning false after
+ * successful call to mysqli_query can be too large
+ * result set (memory for it cannot be allocated). If
+ * mysqli_field_count returns a non-zero value, the
+ * statement should have produced a non-empty result set.
+ */
+ public function store_result ($mode = null) {}
+
+ /**
+ * Returns whether thread safety is given or not
+ * @link https://php.net/manual/en/mysqli.thread-safe.php
+ * @return bool true if the client library is thread-safe, otherwise false.
+ */
+ public function thread_safe () {}
+
+ /**
+ * Initiate a result set retrieval
+ * @link https://php.net/manual/en/mysqli.use-result.php
+ * @return mysqli_result|false an unbuffered result object or false if an error occurred.
+ */
+ public function use_result () {}
+
+ /**
+ * @link https://php.net/manual/en/mysqli.refresh
+ * @param int $flags MYSQLI_REFRESH_*
+ * @return bool TRUE if the refresh was a success, otherwise FALSE
+ * @since 5.3
+ */
+ public function refresh ($flags) {}
+
+}
+
+/**
+ * Represents one or more MySQL warnings.
+ * @link https://php.net/manual/en/class.mysqli-warning.php
+ */
+final class mysqli_warning {
+ /**
+ * @var string
+ */
+ public $message;
+ /**
+ * @var string
+ */
+ public $sqlstate;
+ /**
+ * @var int
+ */
+ public $errno;
+
+
+ /**
+ * The __construct purpose
+ * @link https://php.net/manual/en/mysqli-warning.construct.php
+ */
+ private function __construct () {}
+
+ /**
+ * Move to the next warning
+ * @link https://php.net/manual/en/mysqli-warning.next.php
+ * @return bool True if it successfully moved to the next warning
+ */
+ public function next () {}
+
+}
+
+/**
+ * Represents the result set obtained from a query against the database.
+ * Implements Traversable since 5.4
+ * @link https://php.net/manual/en/class.mysqli-result.php
+ */
+class mysqli_result implements IteratorAggregate
+{
+ /**
+ * @var int
+ */
+ public $current_field;
+ /**
+ * @var int
+ */
+ public $field_count;
+ /**
+ * @var array
+ */
+ public $lengths;
+ /**
+ * @var int
+ */
+ public $num_rows;
+ /**
+ * @var mixed
+ */
+ public $type;
+
+ /**
+ * Constructor (no docs available)
+ * @param object $mysql [optional]
+ * @param int $result_mode [optional]
+ */
+ public function __construct ($mysql = null, $result_mode = 0) {}
+
+ /**
+ * Frees the memory associated with a result
+ * @return void
+ * @link https://php.net/manual/en/mysqli-result.free.php
+ */
+ public function close () {}
+
+ /**
+ * Frees the memory associated with a result
+ * @link https://php.net/manual/en/mysqli-result.free.php
+ * @return void
+ */
+ public function free () {}
+
+ /**
+ * Adjusts the result pointer to an arbitrary row in the result
+ * @link https://php.net/manual/en/mysqli-result.data-seek.php
+ * @param int $offset
+ * The field offset. Must be between zero and the total number of rows
+ * minus one (0..mysqli_num_rows - 1).
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function data_seek ($offset) {}
+
+ /**
+ * Returns the next field in the result set
+ * @link https://php.net/manual/en/mysqli-result.fetch-field.php
+ * @return object|false an object which contains field definition information or false
+ * if no field information is available.
+ *
+ *
+ *
+ * Object properties
+ *
+ *
Property
+ *
Description
+ *
+ *
+ *
name
+ *
The name of the column
+ *
+ *
+ *
orgname
+ *
Original column name if an alias was specified
+ *
+ *
+ *
table
+ *
The name of the table this field belongs to (if not calculated)
+ *
+ *
+ *
orgtable
+ *
Original table name if an alias was specified
+ *
+ *
+ *
def
+ *
Reserved for default value, currently always ""
+ *
+ *
+ *
db
+ *
Database (since PHP 5.3.6)
+ *
+ *
+ *
catalog
+ *
The catalog name, always "def" (since PHP 5.3.6)
+ *
+ *
+ *
max_length
+ *
The maximum width of the field for the result set.
+ *
+ *
+ *
length
+ *
The width of the field, as specified in the table definition.
+ *
+ *
+ *
charsetnr
+ *
The character set number for the field.
+ *
+ *
+ *
flags
+ *
An integer representing the bit-flags for the field.
+ *
+ *
+ *
type
+ *
The data type used for this field
+ *
+ *
+ *
decimals
+ *
The number of decimals used (for integer fields)
+ *
+ *
+ */
+ public function fetch_field () {}
+
+ /**
+ * Returns an array of objects representing the fields in a result set
+ * @link https://php.net/manual/en/mysqli-result.fetch-fields.php
+ * @return array an array of objects which contains field definition information or
+ * false if no field information is available.
+ *
+ *
+ *
+ * Object properties
+ *
+ *
Property
+ *
Description
+ *
+ *
+ *
name
+ *
The name of the column
+ *
+ *
+ *
orgname
+ *
Original column name if an alias was specified
+ *
+ *
+ *
table
+ *
The name of the table this field belongs to (if not calculated)
+ *
+ *
+ *
orgtable
+ *
Original table name if an alias was specified
+ *
+ *
+ *
def
+ *
The default value for this field, represented as a string
+ *
+ *
+ *
max_length
+ *
The maximum width of the field for the result set.
+ *
+ *
+ *
length
+ *
The width of the field, as specified in the table definition.
+ *
+ *
+ *
charsetnr
+ *
The character set number for the field.
+ *
+ *
+ *
flags
+ *
An integer representing the bit-flags for the field.
+ *
+ *
+ *
type
+ *
The data type used for this field
+ *
+ *
+ *
decimals
+ *
The number of decimals used (for integer fields)
+ *
+ *
+ */
+ public function fetch_fields () {}
+
+ /**
+ * Fetch meta-data for a single field
+ * @link https://php.net/manual/en/mysqli-result.fetch-field-direct.php
+ * @param int $index
+ * The field number. This value must be in the range from
+ * 0 to number of fields - 1.
+ *
+ * @return object|false an object which contains field definition information or false
+ * if no field information for specified fieldnr is
+ * available.
+ *
+ *
+ *
+ * Object attributes
+ *
+ *
Attribute
+ *
Description
+ *
+ *
+ *
name
+ *
The name of the column
+ *
+ *
+ *
orgname
+ *
Original column name if an alias was specified
+ *
+ *
+ *
table
+ *
The name of the table this field belongs to (if not calculated)
+ *
+ *
+ *
orgtable
+ *
Original table name if an alias was specified
+ *
+ *
+ *
def
+ *
The default value for this field, represented as a string
+ *
+ *
+ *
max_length
+ *
The maximum width of the field for the result set.
+ *
+ *
+ *
length
+ *
The width of the field, as specified in the table definition.
+ *
+ *
+ *
charsetnr
+ *
The character set number for the field.
+ *
+ *
+ *
flags
+ *
An integer representing the bit-flags for the field.
+ *
+ *
+ *
type
+ *
The data type used for this field
+ *
+ *
+ *
decimals
+ *
The number of decimals used (for integer fields)
+ *
+ *
+ */
+ public function fetch_field_direct ($index) {}
+
+ /**
+ * Fetches all result rows as an associative array, a numeric array, or both
+ * @link https://php.net/manual/en/mysqli-result.fetch-all.php
+ * @param int $mode [optional]
+ * This optional parameter is a constant indicating what type of array
+ * should be produced from the current row data. The possible values for
+ * this parameter are the constants MYSQLI_ASSOC,
+ * MYSQLI_NUM, or MYSQLI_BOTH.
+ *
+ * @return mixed an array of associative or numeric arrays holding result rows.
+ */
+ public function fetch_all ($mode = null) {}
+
+ /**
+ * Fetch a result row as an associative, a numeric array, or both
+ * @link https://php.net/manual/en/mysqli-result.fetch-array.php
+ * @param int $mode [optional]
+ * This optional parameter is a constant indicating what type of array
+ * should be produced from the current row data. The possible values for
+ * this parameter are the constants MYSQLI_ASSOC,
+ * MYSQLI_NUM, or MYSQLI_BOTH.
+ *
+ *
+ * By using the MYSQLI_ASSOC constant this function
+ * will behave identically to the mysqli_fetch_assoc,
+ * while MYSQLI_NUM will behave identically to the
+ * mysqli_fetch_row function. The final option
+ * MYSQLI_BOTH will create a single array with the
+ * attributes of both.
+ *
+ * @return mixed an array of strings that corresponds to the fetched row or null if there
+ * are no more rows in resultset.
+ */
+ public function fetch_array ($mode = MYSQLI_BOTH) {}
+
+ /**
+ * Fetch a result row as an associative array
+ * @link https://php.net/manual/en/mysqli-result.fetch-assoc.php
+ * @return array|null an associative array of strings representing the fetched row in the result
+ * set, where each key in the array represents the name of one of the result
+ * set's columns or null if there are no more rows in resultset.
+ *
+ *
+ * If two or more columns of the result have the same field names, the last
+ * column will take precedence. To access the other column(s) of the same
+ * name, you either need to access the result with numeric indices by using
+ * mysqli_fetch_row or add alias names.
+ */
+ public function fetch_assoc () {}
+
+ /**
+ * Returns the current row of a result set as an object
+ * @link https://php.net/manual/en/mysqli-result.fetch-object.php
+ * @param string $class [optional]
+ * The name of the class to instantiate, set the properties of and return.
+ * If not specified, a stdClass object is returned.
+ *
+ * @param array $constructor_args [optional]
+ * An optional array of parameters to pass to the constructor
+ * for class_name objects.
+ *
+ * @return stdClass|object an object with string properties that corresponds to the fetched
+ * row or null if there are no more rows in resultset.
+ */
+ public function fetch_object ($class = 'stdClass', array $constructor_args = null) {}
+
+ /**
+ * Get a result row as an enumerated array
+ * @link https://php.net/manual/en/mysqli-result.fetch-row.php
+ * @return array|null mysqli_fetch_row returns an array of strings that corresponds to the fetched row
+ * or null if there are no more rows in result set.
+ */
+ public function fetch_row () {}
+
+ /**
+ * Set result pointer to a specified field offset
+ * @link https://php.net/manual/en/mysqli-result.field-seek.php
+ * @param int $index
+ * The field number. This value must be in the range from
+ * 0 to number of fields - 1.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function field_seek ($index) {}
+
+ /**
+ * Frees the memory associated with a result
+ * @return void
+ * @link https://php.net/manual/en/mysqli-result.free.php
+ */
+ public function free_result () {}
+
+ /**
+ * @since 8.0
+ */
+ public function getIterator(){}
+}
+
+/**
+ * Represents a prepared statement.
+ * @link https://php.net/manual/en/class.mysqli-stmt.php
+ */
+class mysqli_stmt {
+ /**
+ * @var int
+ */
+ public $affected_rows;
+ /**
+ * @var int
+ */
+ public $insert_id;
+ /**
+ * @var int
+ */
+ public $num_rows;
+ /**
+ * @var int
+ */
+ public $param_count;
+ /**
+ * @var int
+ */
+ public $field_count;
+ /**
+ * @var int
+ */
+ public $errno;
+ /**
+ * @var string
+ */
+ public $error;
+ /**
+ * @var array
+ */
+ public $error_list;
+ /**
+ * @var string
+ */
+ public $sqlstate;
+ /**
+ * @var string
+ */
+ public $id;
+
+ /**
+ * mysqli_stmt constructor
+ * @param mysqli $mysql
+ * @param string $query [optional]
+ */
+ public function __construct ($mysql, $query) {}
+
+ /**
+ * Used to get the current value of a statement attribute
+ * @link https://php.net/manual/en/mysqli-stmt.attr-get.php
+ * @param int $attribute
+ * The attribute that you want to get.
+ *
+ * @return int|false false if the attribute is not found, otherwise returns the value of the attribute.
+ */
+ public function attr_get ($attribute) {}
+
+ /**
+ * Used to modify the behavior of a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.attr-set.php
+ * @param int $attribute
+ * The attribute that you want to set. It can have one of the following values:
+ *
+ * Attribute values
+ *
+ *
Character
+ *
Description
+ *
+ *
+ *
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH
+ *
+ * If set to 1, causes mysqli_stmt_store_result to
+ * update the metadata MYSQL_FIELD->max_length value.
+ *
+ *
+ *
+ *
MYSQLI_STMT_ATTR_CURSOR_TYPE
+ *
+ * Type of cursor to open for statement when mysqli_stmt_execute
+ * is invoked. mode can be MYSQLI_CURSOR_TYPE_NO_CURSOR
+ * (the default) or MYSQLI_CURSOR_TYPE_READ_ONLY.
+ *
+ *
+ *
+ *
MYSQLI_STMT_ATTR_PREFETCH_ROWS
+ *
+ * Number of rows to fetch from server at a time when using a cursor.
+ * mode can be in the range from 1 to the maximum
+ * value of unsigned long. The default is 1.
+ *
+ *
+ *
+ *
+ *
+ * If you use the MYSQLI_STMT_ATTR_CURSOR_TYPE option with
+ * MYSQLI_CURSOR_TYPE_READ_ONLY, a cursor is opened for the
+ * statement when you invoke mysqli_stmt_execute. If there
+ * is already an open cursor from a previous mysqli_stmt_execute call,
+ * it closes the cursor before opening a new one. mysqli_stmt_reset
+ * also closes any open cursor before preparing the statement for re-execution.
+ * mysqli_stmt_free_result closes any open cursor.
+ *
+ *
+ * If you open a cursor for a prepared statement, mysqli_stmt_store_result
+ * is unnecessary.
+ *
+ * @param int $value
The value to assign to the attribute.
+ * @return bool
+ */
+ public function attr_set ($attribute, $value) {}
+
+ /**
+ * Binds variables to a prepared statement as parameters
+ * @link https://php.net/manual/en/mysqli-stmt.bind-param.php
+ * @param string $types
+ * A string that contains one or more characters which specify the types
+ * for the corresponding bind variables:
+ *
+ * Type specification chars
+ *
+ *
Character
+ *
Description
+ *
+ *
+ *
i
+ *
corresponding variable has type integer
+ *
+ *
+ *
d
+ *
corresponding variable has type double
+ *
+ *
+ *
s
+ *
corresponding variable has type string
+ *
+ *
+ *
b
+ *
corresponding variable is a blob and will be sent in packets
+ *
+ *
+ *
+ * @param mixed &$var1
+ * The number of variables and length of string
+ * types must match the parameters in the statement.
+ *
+ * @param mixed &...$_ [optional]
+ * @return bool true on success or false on failure.
+ */
+ public function bind_param ($types, &$var1, &...$_) {}
+
+ /**
+ * Binds variables to a prepared statement for result storage
+ * @link https://php.net/manual/en/mysqli-stmt.bind-result.php
+ * @param mixed &$var1 The variable to be bound.
+ * @param mixed &...$_ The variables to be bound.
+ * @return bool true on success or false on failure.
+ */
+ public function bind_result (&$var1, &...$_) {}
+
+ /**
+ * Closes a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.close.php
+ * @return bool true on success or false on failure.
+ */
+ public function close () {}
+
+ /**
+ * Seeks to an arbitrary row in statement result set
+ * @link https://php.net/manual/en/mysqli-stmt.data-seek.php
+ * @param int $offset
+ * Must be between zero and the total number of rows minus one (0..
+ * mysqli_stmt_num_rows - 1).
+ *
+ * @return void
+ */
+ public function data_seek ($offset) {}
+
+ /**
+ * Executes a prepared Query
+ * @link https://php.net/manual/en/mysqli-stmt.execute.php
+ * @return bool true on success or false on failure.
+ */
+ public function execute () {}
+
+ /**
+ * Fetch results from a prepared statement into the bound variables
+ * @link https://php.net/manual/en/mysqli-stmt.fetch.php
+ * @return bool|null
+ */
+ public function fetch () {}
+
+ /**
+ * Get result of SHOW WARNINGS
+ * @link https://php.net/manual/en/mysqli-stmt.get-warnings.php
+ * @return object
+ */
+ public function get_warnings () {}
+
+ /**
+ * Returns result set metadata from a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.result-metadata.php
+ * @return mysqli_result|false a result object or false if an error occurred.
+ */
+ public function result_metadata () {}
+
+ /**
+ * Check if there are more query results from a multiple query
+ * @link https://php.net/manual/en/mysqli-stmt.more-results.php
+ * @return bool
+ */
+ public function more_results () {}
+
+ /**
+ * Reads the next result from a multiple query
+ * @link https://php.net/manual/en/mysqli-stmt.next-result.php
+ * @return bool
+ */
+ public function next_result () {}
+
+ /**
+ * Return the number of rows in statements result set
+ * @link https://php.net/manual/en/mysqli-stmt.num-rows.php
+ * @return int An integer representing the number of rows in result set.
+ */
+ public function num_rows () {}
+
+ /**
+ * Send data in blocks
+ * @link https://php.net/manual/en/mysqli-stmt.send-long-data.php
+ * @param int $param_num
+ * Indicates which parameter to associate the data with. Parameters are
+ * numbered beginning with 0.
+ *
+ * @param string $data
+ * A string containing data to be sent.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function send_long_data ($param_num, $data) {}
+
+ /**
+ * No documentation available
+ * @removed 5.4
+ */
+ #[Deprecated(since: '5.3')]
+ public function stmt () {}
+
+ /**
+ * Frees stored result memory for the given statement handle
+ * @link https://php.net/manual/en/mysqli-stmt.free-result.php
+ * @return void
+ */
+ public function free_result () {}
+
+ /**
+ * Resets a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.reset.php
+ * @return bool true on success or false on failure.
+ */
+ public function reset () {}
+
+ /**
+ * Prepare an SQL statement for execution
+ * @link https://php.net/manual/en/mysqli-stmt.prepare.php
+ * @param string $query
+ * The query, as a string. It must consist of a single SQL statement.
+ *
+ *
+ * You can include one or more parameter markers in the SQL statement by
+ * embedding question mark (?) characters at the
+ * appropriate positions.
+ *
+ *
+ * You should not add a terminating semicolon or \g
+ * to the statement.
+ *
+ *
+ * The markers are legal only in certain places in SQL statements.
+ * For example, they are allowed in the VALUES() list of an INSERT statement
+ * (to specify column values for a row), or in a comparison with a column in
+ * a WHERE clause to specify a comparison value.
+ *
+ *
+ * However, they are not allowed for identifiers (such as table or column names),
+ * in the select list that names the columns to be returned by a SELECT statement),
+ * or to specify both operands of a binary operator such as the =
+ * equal sign. The latter restriction is necessary because it would be impossible
+ * to determine the parameter type. In general, parameters are legal only in Data
+ * Manipulation Language (DML) statements, and not in Data Definition Language
+ * (DDL) statements.
+ *
+ * @return bool true on success or false on failure.
+ */
+ public function prepare ($query) {}
+
+ /**
+ * Transfers a result set from a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.store-result.php
+ * @return bool true on success or false on failure.
+ */
+ public function store_result () {}
+
+ /**
+ * Gets a result set from a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.get-result.php
+ * @return mysqli_result|false Returns a resultset or FALSE on failure
+ */
+ public function get_result () {}
+
+}
+
+/**
+ * Gets the number of affected rows in a previous MySQL operation
+ * @link https://secure.php.net/manual/en/mysqli.affected-rows.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string|int An integer greater than zero indicates the number of rows affected or retrieved.
+ * Zero indicates that no records where updated for an UPDATE statement,
+ * no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query returned an error.
+ */
+function mysqli_affected_rows (mysqli $mysql): string|int
+{}
+
+/**
+ * Turns on or off auto-committing database modifications
+ * @link https://secure.php.net/manual/en/mysqli.autocommit.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param bool $enable Whether to turn on auto-commit or not.
+ * @return bool
+ */
+function mysqli_autocommit (mysqli $mysql, bool $enable): bool
+{}
+
+/**
+ * Starts a transaction
+ * @link https://secure.php.net/manual/en/mysqli.begin-transaction.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $flags [optional]
+ * @param string|null $name [optional]
+ * @return bool true on success or false on failure.
+ * @since 5.5
+ */
+function mysqli_begin_transaction (mysqli $mysql, int $flags = 0, ?string $name): bool
+{}
+
+/**
+ * Changes the user of the specified database connection
+ * @link https://php.net/manual/en/mysqli.change-user.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $username The MySQL user name.
+ * @param string $password The MySQL password.
+ * @param string|null $database The database to change to. If desired, the NULL value may be passed resulting in only changing the user and not selecting a database.
+ * @return bool
+ */
+function mysqli_change_user (mysqli $mysql, string $username, string $password, ?string $database): bool
+{}
+
+/**
+ * Returns the default character set for the database connection
+ * @link https://php.net/manual/en/mysqli.character-set-name.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string|null The default character set for the current connection
+ */
+function mysqli_character_set_name (mysqli $mysql): ?string
+{}
+
+/**
+ * Closes a previously opened database connection
+ * @link https://php.net/manual/en/mysqli.close.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return bool
+ */
+function mysqli_close (mysqli $mysql): bool
+{}
+
+/**
+ * Commits the current transaction
+ * @link https://php.net/manual/en/mysqli.commit.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $flags [optional] A bitmask of MYSQLI_TRANS_COR_* constants
+ * @param string|null $name [optional] If provided then COMMITname is executed
+ * @return bool
+ */
+function mysqli_commit (mysqli $mysql, int $flags = -1, ?string $name): bool
+{}
+
+/**
+ * Open a new connection to the MySQL server
+ * Alias of mysqli::__construct
+ * @link https://php.net/manual/en/mysqli.construct.php
+ * @param string|null $hostname Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.
+ * @param string|null $username The MySQL user name.
+ * @param string|null $password If not provided or NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only.
+ * @param string|null $database If provided will specify the default database to be used when performing queries.
+ * @param int|null $port Specifies the port number to attempt to connect to the MySQL server.
+ * @param string|null $socket Specifies the socket or named pipe that should be used.
+ * @return mysqli|false|null object which represents the connection to a MySQL Server or false if an error occurred.
+ */
+function mysqli_connect (?string $hostname, ?string $username, ?string $password, ?string $database, ?int $port, ?string $socket): mysqli|false|null
+{}
+
+/**
+ * Returns the error code from last connect call
+ * @link https://php.net/manual/en/mysqli.connect-errno.php
+ * @return int Last error code number from the last call to mysqli_connect(). Zero means no error occurred.
+ */
+function mysqli_connect_errno (): int
+{}
+
+/**
+ * Returns a string description of the last connect error
+ * @link https://php.net/manual/en/mysqli.connect-error.php
+ * @return string|null Last error message string from the last call to mysqli_connect().
+ */
+function mysqli_connect_error (): ?string
+{}
+
+/**
+ * Adjusts the result pointer to an arbitrary row in the result
+ * @link https://php.net/manual/en/mysqli-result.data-seek.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @param int $offset
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function mysqli_data_seek (mysqli_result $result, int $offset): bool
+{}
+
+/**
+ * Dump debugging information into the log
+ * @link https://php.net/manual/en/mysqli.dump-debug-info.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return bool
+ */
+function mysqli_dump_debug_info (mysqli $mysql): bool
+{}
+
+/**
+ * Performs debugging operations using the Fred Fish debugging library.
+ * @link https://php.net/manual/en/mysqli.debug.php
+ * @param string $options
+ * @return bool
+ */
+function mysqli_debug (string $options): bool
+{}
+
+/**
+ * Returns the error code for the most recent function call
+ * @link https://php.net/manual/en/mysqli.errno.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return int An error code value for the last call, if it failed. zero means no error occurred.
+ */
+function mysqli_errno (mysqli $mysql): int
+{}
+
+/**
+ * Returns a list of errors from the last command executed
+ * @link https://php.net/manual/en/mysqli.error-list.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return array A list of errors, each as an associative array containing the errno, error, and sqlstate.
+ * @since 5.4
+ */
+function mysqli_error_list (mysqli $mysql): array {}
+
+/**
+ * Returns a list of errors from the last statement executed
+ * @link https://secure.php.net/manual/en/mysqli-stmt.error-list.php
+ * @param mysqli_stmt $statement A statement identifier returned by mysqli_stmt_init().
+ * @return array A list of errors, each as an associative array containing the errno, error, and sqlstate.
+ * @since 5.4
+ */
+function mysqli_stmt_error_list (mysqli_stmt $statement): array {}
+
+/**
+ * Returns a string description of the last error
+ * @link https://secure.php.net/manual/en/mysqli.error.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string|null
+ */
+function mysqli_error (mysqli $mysql): ?string {}
+
+/**
+ * Executes a prepared Query
+ * @link https://php.net/manual/en/mysqli-stmt.execute.php
+ * @param mysqli_stmt $statement
+ * @return bool
+ */
+function mysqli_stmt_execute (mysqli_stmt $statement): bool {}
+
+/**
+ * Executes a prepared Query
+ * Alias for mysqli_stmt_execute
+ * @link https://php.net/manual/en/function.mysqli-execute.php
+ * @param mysqli_stmt $statement
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_execute (mysqli_stmt $statement): bool {}
+
+/**
+ * Returns the next field in the result set
+ * @link https://secure.php.net/manual/en/mysqli-result.fetch-field.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return object|false Returns an object which contains field definition information or FALSE if no field information is available.
+ */
+function mysqli_fetch_field (mysqli_result $result): object|false {}
+
+/**
+ * Returns an array of objects representing the fields in a result set
+ * @link https://secure.php.net/manual/en/mysqli-result.fetch-fields.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return array|false Returns an array of objects which contains field definition information or FALSE if no field information is available.
+ */
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function mysqli_fetch_fields (mysqli_result $result) {}
+
+/**
+ * Fetch meta-data for a single field
+ * @link https://secure.php.net/manual/en/mysqli-result.fetch-field-direct.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @param int $index The field number. This value must be in the range from 0 to number of fields - 1.
+ * @return object|false Returns an object which contains field definition information or FALSE if no field information for specified fieldnr is available.
+ */
+function mysqli_fetch_field_direct (mysqli_result $result, int $index): object|false {}
+
+/**
+ * Returns the lengths of the columns of the current row in the result set
+ * @link https://php.net/manual/en/mysqli-result.lengths.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return int[]|false An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.
+ */
+function mysqli_fetch_lengths (mysqli_result $result): array|false {}
+
+/**
+ * Fetches all result rows as an associative array, a numeric array, or both.
+ * Available only with mysqlnd.
+ * @link https://php.net/manual/en/mysqli-result.fetch-all.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @param int $mode
+ * @return array|false Returns an array of associative or numeric arrays holding result rows.
+ */
+function mysqli_fetch_all (mysqli_result $result, int $mode = MYSQLI_NUM): array|false {}
+
+/**
+ * Fetch a result row as an associative, a numeric array, or both.
+ * @link https://php.net/manual/en/mysqli-result.fetch-array.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @param int $mode
+ * @return array|false|null
+ */
+function mysqli_fetch_array (mysqli_result $result, int $mode = MYSQLI_BOTH): array|false|null {}
+
+/**
+ * Fetch a result row as an associative array
+ * @link https://php.net/manual/en/mysqli-result.fetch-assoc.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return string[]|null Returns an associative array of strings representing the fetched row in the result set,
+ * where each key in the array represents the name of one of the result set's columns or NULL if there are no more rows in resultset.
+ * If two or more columns of the result have the same field names, the last column will take precedence.
+ * To access the other column(s) of the same name,
+ * you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.
+ */
+function mysqli_fetch_assoc (mysqli_result $result): ?array {}
+
+/**
+ * Returns the current row of a result set as an object.
+ * @link https://php.net/manual/en/mysqli-result.fetch-object.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @param string $class The name of the class to instantiate, set the properties of and return. If not specified, a stdClass object is returned.
+ * @param array|null $constructor_args [optional] An optional array of parameters to pass to the constructor for class_name objects.
+ * @return object|null Returns an object with string properties that corresponds to the fetched row or NULL if there are no more rows in resultset.
+ * If two or more columns of the result have the same field names, the last column will take precedence.
+ * To access the other column(s) of the same name,
+ * you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.
+ */
+function mysqli_fetch_object (mysqli_result $result, string $class = 'stdClass', array $constructor_args): ?object {}
+
+/**
+ * Get a result row as an enumerated array
+ * @link https://php.net/manual/en/mysqli-result.fetch-row.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return array|null mysqli_fetch_row returns an array of strings that corresponds to the fetched row
+ * or null if there are no more rows in result set.
+ * @link https://php.net/manual/en/mysqli-result.fetch-row.php
+ */
+function mysqli_fetch_row (mysqli_result $result): ?array {}
+
+/**
+ * Returns the number of columns for the most recent query
+ * @link https://php.net/manual/en/mysqli.field-count.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return int An integer representing the number of fields in a result set.
+ */
+function mysqli_field_count (mysqli $mysql): int {}
+
+/**
+ * Set result pointer to a specified field offset
+ * @link https://php.net/manual/en/mysqli-result.field-seek.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @param int $index The field number. This value must be in the range from 0 to number of fields - 1.
+ * @return bool
+ */
+function mysqli_field_seek (mysqli_result $result, int $index): bool {}
+
+/**
+ * Get current field offset of a result pointer
+ * @link https://php.net/manual/en/mysqli-result.current-field.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return int
+ */
+function mysqli_field_tell (mysqli_result $result): int {}
+
+/**
+ * Frees the memory associated with a result
+ * @link https://php.net/manual/en/mysqli-result.free.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return void
+ */
+function mysqli_free_result (mysqli_result $result): void {}
+
+/**
+ * Returns client Zval cache statistics
+ * Available only with mysqlnd.
+ * @link https://php.net/manual/en/function.mysqli-get-cache-stats.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return array|false an array with client Zval cache stats if success, false otherwise.
+ * @removed 5.4
+ */
+function mysqli_get_cache_stats (mysqli $mysql) {}
+
+/**
+ * Returns statistics about the client connection
+ * @link https://php.net/manual/en/mysqli.get-connection-stats.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return array|false an array with connection stats if successful, FALSE otherwise.
+ */
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function mysqli_get_connection_stats (mysqli $mysql) {}
+
+/**
+ * Returns client per-process statistics
+ * @link https://php.net/manual/en/function.mysqli-get-client-stats.php
+ * @return array|false an array with client stats if success, false otherwise.
+ */
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function mysqli_get_client_stats () {}
+
+/**
+ * Returns a character set object
+ * @link https://php.net/manual/en/mysqli.get-charset.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return object|null
+ */
+function mysqli_get_charset (mysqli $mysql): ?object {}
+
+/**
+ * Get MySQL client info
+ * @link https://php.net/manual/en/mysqli.get-client-info.php
+ * @param mysqli|null $mysql [optional] A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string|null A string that represents the MySQL client library version
+ */
+function mysqli_get_client_info (?mysqli $mysql): ?string {}
+
+/**
+ * Returns the MySQL client version as an integer
+ * @link https://php.net/manual/en/mysqli.get-client-version.php
+ * @return int
+ */
+function mysqli_get_client_version (): int {}
+
+/**
+ * Returns a string representing the type of connection used
+ * @link https://php.net/manual/en/mysqli.get-host-info.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string A character string representing the server hostname and the connection type.
+ */
+function mysqli_get_host_info (mysqli $mysql): string {}
+
+/**
+ * Return information about open and cached links
+ * @link https://php.net/manual/en/function.mysqli-get-links-stats.php
+ * @return array mysqli_get_links_stats() returns an associative array with three elements, keyed as follows:
+ *
+ *
+ *
+ * total
+ *
+ *
+ *
+ * An integer indicating the total number of open links in
+ * any state.
+ *
+ *
+ *
+ *
+ * active_plinks
+ *
+ *
+ *
+ *
+ * An integer representing the number of active persistent
+ * connections.
+ *
+ *
+ *
+ *
+ * cached_plinks
+ *
+ *
+ *
+ *
+ * An integer representing the number of inactive persistent
+ * connections.
+ *
+ *
+ *
+ *
+ *
+ * @since 5.6
+ */
+function mysqli_get_links_stats(): array {}
+
+/**
+ * Returns the version of the MySQL protocol used
+ * @link https://php.net/manual/en/mysqli.get-proto-info.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return int Returns an integer representing the protocol version
+ */
+function mysqli_get_proto_info (mysqli $mysql): int {}
+
+/**
+ * Returns the version of the MySQL server
+ * @link https://php.net/manual/en/mysqli.get-server-info.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string A character string representing the server version.
+ */
+function mysqli_get_server_info (mysqli $mysql): string {}
+
+/**
+ * Returns the version of the MySQL server as an integer
+ * @link https://php.net/manual/en/mysqli.get-server-version.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return int An integer representing the server version.
+ * The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).
+ */
+function mysqli_get_server_version (mysqli $mysql): int {}
+
+/**
+ * Get result of SHOW WARNINGS
+ * @link https://php.net/manual/en/mysqli.get-warnings.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return mysqli_warning|false
+ */
+function mysqli_get_warnings (mysqli $mysql): mysqli_warning|false {}
+
+/**
+ * Initializes MySQLi and returns a resource for use with mysqli_real_connect()
+ * @link https://php.net/manual/en/mysqli.init.php
+ * @return mysqli|false
+ * @see mysqli_real_connect()
+ */
+function mysqli_init (): mysqli|false {}
+
+/**
+ * Retrieves information about the most recently executed query
+ * @link https://php.net/manual/en/mysqli.info.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string|null A character string representing additional information about the most recently executed query.
+ */
+function mysqli_info (mysqli $mysql): ?string {}
+
+/**
+ * Returns the auto generated id used in the last query
+ * @link https://php.net/manual/en/mysqli.insert-id.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return int|string The value of the AUTO_INCREMENT field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.
+ * If the number is greater than maximal int value, mysqli_insert_id() will return a string.
+ */
+function mysqli_insert_id (mysqli $mysql): string|int
+{}
+
+/**
+ * Asks the server to kill a MySQL thread
+ * @link https://php.net/manual/en/mysqli.kill.php
+ * @see mysqli_thread_id()
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $process_id
+ * @return bool
+ */
+function mysqli_kill (mysqli $mysql, int $process_id): bool
+{}
+
+/**
+ * Unsets user defined handler for load local infile command
+ * @link https://php.net/manual/en/mysqli.set-local-infile-default.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return void
+ */
+function mysqli_set_local_infile_default (mysqli $mysql) {}
+
+/**
+ * Set callback function for LOAD DATA LOCAL INFILE command
+ * @link https://php.net/manual/en/mysqli.set-local-infile-handler.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param callable $read_func
+ * @return bool
+ */
+function mysqli_set_local_infile_handler (mysqli $mysql, callable $read_func): bool
+{}
+
+/**
+ * Check if there are any more query results from a multi query
+ * @link https://php.net/manual/en/mysqli.more-results.php
+ * @see mysqli_multi_query()
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return bool
+ */
+function mysqli_more_results (mysqli $mysql): bool
+{}
+
+/**
+ * Performs a query on the database
+ * @link https://php.net/manual/en/mysqli.multi-query.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $query One or more queries which are separated by semicolons.
+ * @return bool Returns FALSE if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result() first.
+ */
+function mysqli_multi_query (mysqli $mysql, string $query): bool
+{}
+
+/**
+ * Prepare next result from multi_query
+ * @link https://php.net/manual/en/mysqli.next-result.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return bool
+ */
+function mysqli_next_result (mysqli $mysql): bool
+{}
+
+/**
+ * Get the number of fields in a result
+ * @link https://php.net/manual/en/mysqli-result.field-count.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return int
+ */
+function mysqli_num_fields (mysqli_result $result): int
+{}
+
+/**
+ * Gets the number of rows in a result
+ * @link https://php.net/manual/en/mysqli-result.num-rows.php
+ * @param mysqli_result $result A result set identifier returned by mysqli_query(),
+ * mysqli_store_result() or mysqli_use_result().
+ * @return string|int Returns number of rows in the result set.
+ */
+function mysqli_num_rows (mysqli_result $result): string|int
+{}
+
+/**
+ * Set options
+ * @link https://php.net/manual/en/mysqli.options.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $option
+ * @param mixed $value
+ * @return bool
+ */
+function mysqli_options (mysqli $mysql, int $option, $value): bool
+{}
+
+/**
+ * Pings a server connection, or tries to reconnect if the connection has gone down
+ * @link https://php.net/manual/en/mysqli.ping.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return bool
+ */
+function mysqli_ping (mysqli $mysql): bool
+{}
+
+/**
+ * Poll connections
+ * @link https://php.net/manual/en/mysqli.poll.php
+ * @param array|null &$read
+ * @param array|null &$write
+ * @param array &$error
+ * @param int $seconds
+ * @param int $microseconds [optional]
+ * @return int|false number of ready connections upon success, FALSE otherwise.
+ */
+function mysqli_poll (?array &$read, ?array &$write, array &$error, int $seconds, int $microseconds = 0): int|false
+{}
+
+/**
+ * Prepare an SQL statement for execution
+ * @link https://php.net/manual/en/mysqli.prepare.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $query
+ * @return mysqli_stmt|false A statement object or FALSE if an error occurred.
+ */
+function mysqli_prepare (mysqli $mysql, string $query): mysqli_stmt|false
+{}
+
+/**
+ * Enables or disables internal report functions
+ * @link https://php.net/manual/en/function.mysqli-report.php
+ * @param int $flags
+ *
+ * Supported flags
+ *
+ *
Name
+ *
Description
+ *
+ *
+ *
MYSQLI_REPORT_OFF
+ *
Turns reporting off
+ *
+ *
+ *
MYSQLI_REPORT_ERROR
+ *
Report errors from mysqli function calls
+ *
+ *
+ *
MYSQLI_REPORT_STRICT
+ *
+ * Throw mysqli_sql_exception for errors
+ * instead of warnings
+ *
+ *
+ *
+ *
MYSQLI_REPORT_INDEX
+ *
Report if no index or bad index was used in a query
+ *
+ *
+ *
MYSQLI_REPORT_ALL
+ *
Set all options (report all)
+ *
+ *
+ *
+ * @return bool
+ */
+function mysqli_report (int $flags): bool
+{}
+
+/**
+ * Performs a query on the database
+ * @link https://php.net/manual/en/mysqli.query.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $query An SQL query
+ * @param int $result_mode
+ * @return mysqli_result|bool
+ * For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries, mysqli_query() will return a mysqli_result object.
+ * For other successful queries mysqli_query() will return TRUE.
+ * Returns FALSE on failure.
+ */
+function mysqli_query (mysqli $mysql, string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool
+{}
+
+/**
+ * Opens a connection to a mysql server
+ * @link https://php.net/manual/en/mysqli.real-connect.php
+ * @see mysqli_connect()
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string|null $hostname [optional]
+ * @param string|null $username [optional]
+ * @param string|null $password [optional]
+ * @param string|null $database [optional]
+ * @param int|null $port [optional]
+ * @param string|null $socket [optional]
+ * @param int $flags [optional]
+ * @return bool
+ */
+function mysqli_real_connect (mysqli $mysql, ?string $hostname, ?string $username, ?string $password, ?string $database, ?int $port, ?string $socket, int $flags): bool
+{}
+
+/**
+ * Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
+ * @link https://php.net/manual/en/mysqli.real-escape-string.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $string The string to be escaped. Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.
+ * @return string
+ */
+function mysqli_real_escape_string (mysqli $mysql, string $string): string
+{}
+
+/**
+ * Execute an SQL query
+ * @link https://php.net/manual/en/mysqli.real-query.php
+ * @see mysqli_field_count()
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $query
+ * @return bool
+ */
+function mysqli_real_query (mysqli $mysql, string $query): bool
+{}
+
+/**
+ * Get result from async query
+ * Available only with mysqlnd.
+ * @link https://php.net/manual/en/mysqli.reap-async-query.php
+ * @see mysqli_poll()
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return mysqli_result|bool mysqli_result in success, FALSE otherwise.
+ */
+function mysqli_reap_async_query (mysqli $mysql): mysqli_result|bool
+{}
+
+/**
+ * Removes the named savepoint from the set of savepoints of the current transaction
+ * @link https://secure.php.net/manual/en/mysqli.release-savepoint.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $name
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+function mysqli_release_savepoint (mysqli $mysql, string $name): bool
+{}
+
+/**
+ * Rolls back current transaction
+ * @link https://php.net/manual/en/mysqli.rollback.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $flags [optional] A bitmask of MYSQLI_TRANS_COR_* constants
+ * @param string|null $name [optional] If provided then ROLLBACKname is executed
+ * @return bool
+ */
+function mysqli_rollback (mysqli $mysql, int $flags = 0, ?string $name): bool
+{}
+
+/**
+ * Set a named transaction savepoint
+ * @link https://secure.php.net/manual/en/mysqli.savepoint.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $name
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+function mysqli_savepoint (mysqli $mysql, string $name): bool
+{}
+
+/**
+ * Selects the default database for database queries
+ * @link https://php.net/manual/en/mysqli.select-db.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $database
+ * @return bool
+ */
+function mysqli_select_db (mysqli $mysql, string $database): bool
+{}
+
+/**
+ * Sets the default client character set
+ * @link https://php.net/manual/en/mysqli.set-charset.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $charset
+ * @return bool
+ */
+function mysqli_set_charset (mysqli $mysql, string $charset): bool
+{}
+
+/**
+ * Returns the total number of rows changed, deleted, or inserted by the last executed statement
+ * @link https://php.net/manual/en/mysqli-stmt.affected-rows.php
+ * @param mysqli_stmt $statement
+ * @return int|string If the number of affected rows is greater than maximal PHP int value, the number of affected rows will be returned as a string value.
+ */
+function mysqli_stmt_affected_rows (mysqli_stmt $statement): string|int
+{}
+
+/**
+ * Used to get the current value of a statement attribute
+ * @link https://php.net/manual/en/mysqli-stmt.attr-get.php
+ * @param mysqli_stmt $statement
+ * @param int $attribute
+ * @return int|false Returns FALSE if the attribute is not found, otherwise returns the value of the attribute.
+ */
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function mysqli_stmt_attr_get (mysqli_stmt $statement, int $attribute): bool|int
+{}
+
+/**
+ * Used to modify the behavior of a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.attr-set.php
+ * @param mysqli_stmt $statement
+ * @param int $attribute
+ * @param int $value
+ * @return bool
+ */
+function mysqli_stmt_attr_set (mysqli_stmt $statement, int $attribute, int $value): bool
+{}
+
+/**
+ * Returns the number of fields in the given statement
+ * @link https://php.net/manual/en/mysqli-stmt.field-count.php
+ * @param mysqli_stmt $statement
+ * @return int
+ */
+function mysqli_stmt_field_count (mysqli_stmt $statement): int
+{}
+
+/**
+ * Initializes a statement and returns an object for use with mysqli_stmt_prepare
+ * @link https://php.net/manual/en/mysqli.stmt-init.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return mysqli_stmt|false
+ */
+function mysqli_stmt_init (mysqli $mysql): mysqli_stmt|false
+{}
+
+/**
+ * Prepare an SQL statement for execution
+ * @link https://php.net/manual/en/mysqli-stmt.prepare.php
+ * @param mysqli_stmt $statement
+ * @param string $query
+ * @return bool
+ */
+function mysqli_stmt_prepare (mysqli_stmt $statement, string $query): bool
+{}
+
+/**
+ * Returns result set metadata from a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.result-metadata.php
+ * @param mysqli_stmt $statement
+ * @return mysqli_result|false Returns a result object or FALSE if an error occurred
+ */
+function mysqli_stmt_result_metadata (mysqli_stmt $statement): mysqli_result|false
+{}
+
+/**
+ * Send data in blocks
+ * @link https://php.net/manual/en/mysqli-stmt.send-long-data.php
+ * @param mysqli_stmt $statement
+ * @param int $param_num
+ * @param string $data
+ * @return bool
+ */
+function mysqli_stmt_send_long_data (mysqli_stmt $statement, int $param_num, string $data): bool
+{}
+
+/**
+ * Binds variables to a prepared statement as parameters
+ * @link https://php.net/manual/en/mysqli-stmt.bind-param.php
+ * @param mysqli_stmt $statement A statement identifier returned by mysqli_stmt_init()
+ * @param string $types
+ * A string that contains one or more characters which specify the types
+ * for the corresponding bind variables:
+ *
+ * Type specification chars
+ *
+ *
Character
+ *
Description
+ *
+ *
+ *
i
+ *
corresponding variable has type integer
+ *
+ *
+ *
d
+ *
corresponding variable has type double
+ *
+ *
+ *
s
+ *
corresponding variable has type string
+ *
+ *
+ *
b
+ *
corresponding variable is a blob and will be sent in packets
+ *
+ *
+ *
+ * @param mixed &$var1
+ * The number of variables and length of string
+ * types must match the parameters in the statement.
+ *
+ * @param mixed &...$_ [optional]
+ * @return bool true on success or false on failure.
+ */
+function mysqli_stmt_bind_param (mysqli_stmt $statement, string $types, mixed &$var1, &...$_): bool
+{}
+
+/**
+ * Binds variables to a prepared statement for result storage
+ * @link https://php.net/manual/en/mysqli-stmt.bind-result.php
+ * @param mysqli_stmt $statement Statement
+ * @param mixed &$var1 The variable to be bound.
+ * @param mixed &...$_ The variables to be bound.
+ * @return bool
+ */
+function mysqli_stmt_bind_result (mysqli_stmt $statement, mixed &$var1, &...$_): bool
+{}
+
+/**
+ * Fetch results from a prepared statement into the bound variables
+ * @link https://php.net/manual/en/mysqli-stmt.fetch.php
+ * @param mysqli_stmt $statement
+ * @return bool|null
+ */
+function mysqli_stmt_fetch (mysqli_stmt $statement): ?bool
+{}
+
+/**
+ * Frees stored result memory for the given statement handle
+ * @link https://php.net/manual/en/mysqli-stmt.free-result.php
+ * @param mysqli_stmt $statement
+ * @return void
+ */
+function mysqli_stmt_free_result (mysqli_stmt $statement): void {}
+
+/**
+ * Gets a result set from a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.get-result.php
+ * @param mysqli_stmt $statement
+ * @return mysqli_result|false Returns a resultset or FALSE on failure.
+ */
+function mysqli_stmt_get_result (mysqli_stmt $statement): mysqli_result|false
+{}
+
+/**
+ * Get result of SHOW WARNINGS
+ * @link https://php.net/manual/en/mysqli-stmt.get-warnings.php
+ * @param mysqli_stmt $statement
+ * @return mysqli_warning|false (not documented, but it's probably a mysqli_warning object)
+ */
+function mysqli_stmt_get_warnings (mysqli_stmt $statement): mysqli_warning|false
+{}
+
+/**
+ * Get the ID generated from the previous INSERT operation
+ * @link https://php.net/manual/en/mysqli-stmt.insert-id.php
+ * @param mysqli_stmt $statement
+ * @return string|int
+ */
+function mysqli_stmt_insert_id (mysqli_stmt $statement): string|int
+{}
+
+/**
+ * Resets a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.reset.php
+ * @param mysqli_stmt $statement
+ * @return bool
+ */
+function mysqli_stmt_reset (mysqli_stmt $statement): bool
+{}
+
+/**
+ * Returns the number of parameter for the given statement
+ * @link https://php.net/manual/en/mysqli-stmt.param-count.php
+ * @param mysqli_stmt $statement
+ * @return int
+ */
+function mysqli_stmt_param_count (mysqli_stmt $statement): int
+{}
+
+/**
+ * Returns the SQLSTATE error from previous MySQL operation
+ * @link https://php.net/manual/en/mysqli.sqlstate.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string|null Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.
+ */
+function mysqli_sqlstate (mysqli $mysql): ?string
+{}
+
+/**
+ * Gets the current system status
+ * @link https://php.net/manual/en/mysqli.stat.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string|false A string describing the server status. FALSE if an error occurred.
+ */
+function mysqli_stat (mysqli $mysql): string|false
+{}
+
+/**
+ * Used for establishing secure connections using SSL
+ * @link https://secure.php.net/manual/en/mysqli.ssl-set.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $key The path name to the key file
+ * @param string $certificate The path name to the certificate file
+ * @param string $ca_certificate The path name to the certificate authority file
+ * @param string $ca_path The pathname to a directory that contains trusted SSL CA certificates in PEM format
+ * @param string $cipher_algos A list of allowable ciphers to use for SSL encryption
+ * @return bool This function always returns TRUE value.
+ */
+function mysqli_ssl_set(mysqli $mysql, string $key , string $certificate , string $ca_certificate , string $ca_path , string $cipher_algos): bool
+{}
+
+/**
+ * Closes a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.close.php
+ * @param mysqli_stmt $statement
+ * @return bool
+ */
+function mysqli_stmt_close (mysqli_stmt $statement): bool
+{}
+
+/**
+ * Seeks to an arbitrary row in statement result set
+ * @link https://php.net/manual/en/mysqli-stmt.data-seek.php
+ * @param mysqli_stmt $statement
+ * @param int $offset
+ * @return void
+ */
+function mysqli_stmt_data_seek (mysqli_stmt $statement, int $offset): void {}
+
+/**
+ * Returns the error code for the most recent statement call
+ * @link https://php.net/manual/en/mysqli-stmt.errno.php
+ * @param mysqli_stmt $statement
+ * @return int
+ */
+function mysqli_stmt_errno (mysqli_stmt $statement): int
+{}
+
+/**
+ * Returns a string description for last statement error
+ * @link https://php.net/manual/en/mysqli-stmt.error.php
+ * @param mysqli_stmt $statement
+ * @return string|null
+ */
+function mysqli_stmt_error (mysqli_stmt $statement): ?string
+{}
+
+/**
+ * Check if there are more query results from a multiple query
+ * @link https://php.net/manual/en/mysqli-stmt.more-results.php
+ * @param mysqli_stmt $statement
+ * @return bool
+ */
+function mysqli_stmt_more_results (mysqli_stmt $statement): bool
+{}
+
+/**
+ * Reads the next result from a multiple query
+ * @link https://php.net/manual/en/mysqli-stmt.next-result.php
+ * @param mysqli_stmt $statement
+ * @return bool
+ */
+function mysqli_stmt_next_result (mysqli_stmt $statement): bool
+{}
+
+/**
+ * Return the number of rows in statements result set
+ * @link https://php.net/manual/en/mysqli-stmt.num-rows.php
+ * @param mysqli_stmt $statement
+ * @return string|int
+ */
+function mysqli_stmt_num_rows (mysqli_stmt $statement): string|int
+{}
+
+/**
+ * Returns SQLSTATE error from previous statement operation
+ * @link https://php.net/manual/en/mysqli-stmt.sqlstate.php
+ * @param mysqli_stmt $statement
+ * @return string|null Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.
+ */
+function mysqli_stmt_sqlstate (mysqli_stmt $statement): ?string
+{}
+
+/**
+ * Transfers a result set from a prepared statement
+ * @link https://php.net/manual/en/mysqli-stmt.store-result.php
+ * @param mysqli_stmt $statement
+ * @return bool
+ */
+function mysqli_stmt_store_result (mysqli_stmt $statement): bool
+{}
+
+/**
+ * Transfers a result set from the last query
+ * @link https://php.net/manual/en/mysqli.store-result.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $mode [optional] The option that you want to set
+ * @return mysqli_result|false
+ */
+function mysqli_store_result (mysqli $mysql, int $mode): mysqli_result|false
+{}
+
+/**
+ * Returns the thread ID for the current connection
+ * @link https://php.net/manual/en/mysqli.thread-id.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return int Returns the Thread ID for the current connection.
+ */
+function mysqli_thread_id (mysqli $mysql): int
+{}
+
+/**
+ * Returns whether thread safety is given or not
+ * @link https://php.net/manual/en/mysqli.thread-safe.php
+ * @return bool
+ */
+function mysqli_thread_safe (): bool
+{}
+
+/**
+ * Initiate a result set retrieval
+ * @link https://php.net/manual/en/mysqli.use-result.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return mysqli_result|false
+ */
+function mysqli_use_result (mysqli $mysql): mysqli_result|false
+{}
+
+/**
+ * Returns the number of warnings from the last query for the given link
+ * @link https://php.net/manual/en/mysqli.warning-count.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return int
+ */
+function mysqli_warning_count (mysqli $mysql): int
+{}
+
+/**
+ * Flushes tables or caches, or resets the replication server information
+ * @link https://php.net/manual/en/mysqli.refresh.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $flags
+ * @return bool
+ */
+function mysqli_refresh (mysqli $mysql, int $flags): bool
+{}
+
+/**
+ * Alias for mysqli_stmt_bind_param
+ * @link https://php.net/manual/en/function.mysqli-bind-param.php
+ * @param mysqli_stmt $statement
+ * @param string $types
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_bind_param (mysqli_stmt $statement, string $types) {}
+
+/**
+ * Alias for mysqli_stmt_bind_result
+ * @link https://php.net/manual/en/function.mysqli-bind-result.php
+ * @param mysqli_stmt $statement
+ * @param string $types
+ * @param mixed &$var1
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_bind_result (mysqli_stmt $statement, string $types, mixed &$var1) {}
+
+/**
+ * Alias of mysqli_character_set_name
+ * @link https://php.net/manual/en/function.mysqli-client-encoding.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @return string
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_client_encoding (mysqli $mysql): string
+{}
+
+/**
+ * Alias of mysqli_real_escape_string
+ * @link https://php.net/manual/en/function.mysqli-escape-string.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param string $string The string to be escaped
+ * @return string
+ */
+function mysqli_escape_string (mysqli $mysql, string $string): string
+{}
+
+/**
+ * Alias for mysqli_stmt_fetch
+ * @link https://php.net/manual/en/function.mysqli-fetch.php
+ * @param mysqli_stmt $statement
+ * @return bool
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_fetch (mysqli_stmt $statement): bool
+{}
+
+/**
+ * Alias for mysqli_stmt_param_count
+ * @link https://php.net/manual/en/function.mysqli-param-count.php
+ * @param mysqli_stmt $statement
+ * @return int
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_param_count (mysqli_stmt $statement): int
+{}
+
+/**
+ * Alias for mysqli_stmt_result_metadata
+ * @link https://php.net/manual/en/function.mysqli-get-metadata.php
+ * @param mysqli_stmt $statement
+ * @return mysqli_result|false Returns a result object or FALSE if an error occurred
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_get_metadata (mysqli_stmt $statement): bool|mysqli_result
+{}
+
+/**
+ * Alias for mysqli_stmt_send_long_data
+ * @link https://php.net/manual/en/function.mysqli-send-long-data.php
+ * @param mysqli_stmt $statement
+ * @param int $param_num
+ * @param string $data
+ * @return bool
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function mysqli_send_long_data (mysqli_stmt $statement, int $param_num, string $data): bool
+{}
+
+/**
+ * Alias of mysqli_options
+ * @link https://php.net/manual/en/function.mysqli-set-opt.php
+ * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
+ * @param int $option
+ * @param mixed $value
+ * @return bool
+ */
+function mysqli_set_opt (mysqli $mysql, int $option, mixed $value): bool
+{}
+
+
+/**
+ *
+ * Read options from the named group from my.cnf
+ * or the file specified with MYSQLI_READ_DEFAULT_FILE
+ *
+ * Allow interactive_timeout seconds
+ * (instead of wait_timeout seconds) of inactivity before
+ * closing the connection. The client's session
+ * wait_timeout variable will be set to
+ * the value of the session interactive_timeout variable.
+ *
+ * @return bool
+ */
+function ncurses_delwin ($window) {}
+
+/**
+ * Stop using ncurses, clean up the screen
+ * @link https://php.net/manual/en/function.ncurses-end.php
+ * @return int
+ */
+function ncurses_end () {}
+
+/**
+ * Read a character from keyboard
+ * @link https://php.net/manual/en/function.ncurses-getch.php
+ * @return int
+ */
+function ncurses_getch () {}
+
+/**
+ * Check if terminal has colors
+ * @link https://php.net/manual/en/function.ncurses-has-colors.php
+ * @return bool Return true if the terminal has color capacities, false otherwise.
+ *
+ */
+function ncurses_has_colors () {}
+
+/**
+ * Initialize ncurses
+ * @link https://php.net/manual/en/function.ncurses-init.php
+ * @return void
+ *
+ */
+function ncurses_init () {}
+
+/**
+ * Allocate a color pair
+ * @link https://php.net/manual/en/function.ncurses-init-pair.php
+ * @param int $pair
+ *
+ * @param int $fg
+ *
+ * @param int $bg
+ *
+ * @return int
+ */
+function ncurses_init_pair ($pair, $fg, $bg) {}
+
+/**
+ * Gets the RGB value for color
+ * @link https://php.net/manual/en/function.ncurses-color-content.php
+ * @param int $color
+ *
+ * @param int &$r
+ *
+ * @param int &$g
+ *
+ * @param int &$b
+ *
+ * @return int
+ */
+function ncurses_color_content ($color, &$r, &$g, &$b) {}
+
+/**
+ * Gets the RGB value for color
+ * @link https://php.net/manual/en/function.ncurses-pair-content.php
+ * @param int $pair
+ *
+ * @param int &$f
+ *
+ * @param int &$b
+ *
+ * @return int
+ */
+function ncurses_pair_content ($pair, &$f, &$b) {}
+
+/**
+ * Move output position
+ * @link https://php.net/manual/en/function.ncurses-move.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @return int
+ */
+function ncurses_move ($y, $x) {}
+
+/**
+ * Create a new window
+ * @link https://php.net/manual/en/function.ncurses-newwin.php
+ * @param int $rows
+ * Number of rows
+ *
+ * @param int $cols
+ * Number of columns
+ *
+ * @param int $y
+ * y-ccordinate of the origin
+ *
+ * @param int $x
+ * x-ccordinate of the origin
+ *
+ * @return resource a resource ID for the new window.
+ *
+ */
+function ncurses_newwin ($rows, $cols, $y, $x) {}
+
+/**
+ * Refresh screen
+ * @link https://php.net/manual/en/function.ncurses-refresh.php
+ * @param int $ch
+ *
+ * @return int
+ */
+function ncurses_refresh ($ch) {}
+
+/**
+ * Start using colors
+ * @link https://php.net/manual/en/function.ncurses-start-color.php
+ * @return int
+ */
+function ncurses_start_color () {}
+
+/**
+ * Start using 'standout' attribute
+ * @link https://php.net/manual/en/function.ncurses-standout.php
+ * @return int
+ */
+function ncurses_standout () {}
+
+/**
+ * Stop using 'standout' attribute
+ * @link https://php.net/manual/en/function.ncurses-standend.php
+ * @return int
+ */
+function ncurses_standend () {}
+
+/**
+ * Returns baudrate of terminal
+ * @link https://php.net/manual/en/function.ncurses-baudrate.php
+ * @return int
+ */
+function ncurses_baudrate () {}
+
+/**
+ * Let the terminal beep
+ * @link https://php.net/manual/en/function.ncurses-beep.php
+ * @return int
+ */
+function ncurses_beep () {}
+
+/**
+ * Check if we can change terminals colors
+ * @link https://php.net/manual/en/function.ncurses-can-change-color.php
+ * @return bool Return true if the terminal has color capabilities and you can change
+ * the colors, false otherwise.
+ *
+ */
+function ncurses_can_change_color () {}
+
+/**
+ * Switch of input buffering
+ * @link https://php.net/manual/en/function.ncurses-cbreak.php
+ * @return bool true or NCURSES_ERR if any error occurred.
+ *
+ */
+function ncurses_cbreak () {}
+
+/**
+ * Clear screen
+ * @link https://php.net/manual/en/function.ncurses-clear.php
+ * @return bool
+ *
+ */
+function ncurses_clear () {}
+
+/**
+ * Clear screen from current position to bottom
+ * @link https://php.net/manual/en/function.ncurses-clrtobot.php
+ * @return bool
+ *
+ */
+function ncurses_clrtobot () {}
+
+/**
+ * Clear screen from current position to end of line
+ * @link https://php.net/manual/en/function.ncurses-clrtoeol.php
+ * @return bool
+ *
+ */
+function ncurses_clrtoeol () {}
+
+/**
+ * Saves terminals (program) mode
+ * @link https://php.net/manual/en/function.ncurses-def-prog-mode.php
+ * @return bool false on success, otherwise true.
+ *
+ */
+function ncurses_def_prog_mode () {}
+
+/**
+ * Resets the prog mode saved by def_prog_mode
+ * @link https://php.net/manual/en/function.ncurses-reset-prog-mode.php
+ * @return int
+ */
+function ncurses_reset_prog_mode () {}
+
+/**
+ * Saves terminals (shell) mode
+ * @link https://php.net/manual/en/function.ncurses-def-shell-mode.php
+ * @return bool false on success, true otherwise.
+ *
+ */
+function ncurses_def_shell_mode () {}
+
+/**
+ * Resets the shell mode saved by def_shell_mode
+ * @link https://php.net/manual/en/function.ncurses-reset-shell-mode.php
+ * @return int
+ */
+function ncurses_reset_shell_mode () {}
+
+/**
+ * Delete character at current position, move rest of line left
+ * @link https://php.net/manual/en/function.ncurses-delch.php
+ * @return bool false on success, true otherwise.
+ *
+ */
+function ncurses_delch () {}
+
+/**
+ * Delete line at current position, move rest of screen up
+ * @link https://php.net/manual/en/function.ncurses-deleteln.php
+ * @return bool false on success, otherwise true.
+ *
+ */
+function ncurses_deleteln () {}
+
+/**
+ * Write all prepared refreshes to terminal
+ * @link https://php.net/manual/en/function.ncurses-doupdate.php
+ * @return bool
+ *
+ */
+function ncurses_doupdate () {}
+
+/**
+ * Activate keyboard input echo
+ * @link https://php.net/manual/en/function.ncurses-echo.php
+ * @return bool false on success, true if any error occurred.
+ *
+ */
+function ncurses_echo () {}
+
+/**
+ * Erase terminal screen
+ * @link https://php.net/manual/en/function.ncurses-erase.php
+ * @return bool
+ *
+ */
+function ncurses_erase () {}
+
+/**
+ * Erase window contents
+ * @link https://php.net/manual/en/function.ncurses-werase.php
+ * @param resource $window
+ *
+ * @return int
+ */
+function ncurses_werase ($window) {}
+
+/**
+ * Returns current erase character
+ * @link https://php.net/manual/en/function.ncurses-erasechar.php
+ * @return string The current erase char, as a string.
+ *
+ */
+function ncurses_erasechar () {}
+
+/**
+ * Flash terminal screen (visual bell)
+ * @link https://php.net/manual/en/function.ncurses-flash.php
+ * @return bool false on success, otherwise true.
+ *
+ */
+function ncurses_flash () {}
+
+/**
+ * Flush keyboard input buffer
+ * @link https://php.net/manual/en/function.ncurses-flushinp.php
+ * @return bool false on success, otherwise true.
+ *
+ */
+function ncurses_flushinp () {}
+
+/**
+ * Check for insert- and delete-capabilities
+ * @link https://php.net/manual/en/function.ncurses-has-ic.php
+ * @return bool true if the terminal has insert/delete-capabilities, false
+ * otherwise.
+ *
+ */
+function ncurses_has_ic () {}
+
+/**
+ * Check for line insert- and delete-capabilities
+ * @link https://php.net/manual/en/function.ncurses-has-il.php
+ * @return bool true if the terminal has insert/delete-line capabilities,
+ * false otherwise.
+ *
+ */
+function ncurses_has_il () {}
+
+/**
+ * Get character and attribute at current position
+ * @link https://php.net/manual/en/function.ncurses-inch.php
+ * @return string the character, as a string.
+ *
+ */
+function ncurses_inch () {}
+
+/**
+ * Insert a line, move rest of screen down
+ * @link https://php.net/manual/en/function.ncurses-insertln.php
+ * @return int
+ */
+function ncurses_insertln () {}
+
+/**
+ * Ncurses is in endwin mode, normal screen output may be performed
+ * @link https://php.net/manual/en/function.ncurses-isendwin.php
+ * @return bool true, if ncurses_endwin has been called
+ * without any subsequent calls to ncurses_wrefresh,
+ * false otherwise.
+ *
+ */
+function ncurses_isendwin () {}
+
+/**
+ * Returns current line kill character
+ * @link https://php.net/manual/en/function.ncurses-killchar.php
+ * @return string the kill character, as a string.
+ *
+ */
+function ncurses_killchar () {}
+
+/**
+ * Translate newline and carriage return / line feed
+ * @link https://php.net/manual/en/function.ncurses-nl.php
+ * @return bool
+ */
+function ncurses_nl () {}
+
+/**
+ * Switch terminal to cooked mode
+ * @link https://php.net/manual/en/function.ncurses-nocbreak.php
+ * @return bool true if any error occurred, otherwise false.
+ *
+ */
+function ncurses_nocbreak () {}
+
+/**
+ * Switch off keyboard input echo
+ * @link https://php.net/manual/en/function.ncurses-noecho.php
+ * @return bool true if any error occurred, false otherwise.
+ *
+ */
+function ncurses_noecho () {}
+
+/**
+ * Do not translate newline and carriage return / line feed
+ * @link https://php.net/manual/en/function.ncurses-nonl.php
+ * @return bool
+ */
+function ncurses_nonl () {}
+
+/**
+ * Switch terminal out of raw mode
+ * @link https://php.net/manual/en/function.ncurses-noraw.php
+ * @return bool true if any error occurred, otherwise false.
+ *
+ */
+function ncurses_noraw () {}
+
+/**
+ * Switch terminal into raw mode
+ * @link https://php.net/manual/en/function.ncurses-raw.php
+ * @return bool true if any error occurred, otherwise false.
+ *
+ */
+function ncurses_raw () {}
+
+/**
+ * Enables/Disable 8-bit meta key information
+ * @link https://php.net/manual/en/function.ncurses-meta.php
+ * @param resource $window
+ *
+ * @param $bit8 bool
+ *
+ * @return int
+ */
+function ncurses_meta ($window, $bit8) {}
+
+/**
+ * Restores saved terminal state
+ * @link https://php.net/manual/en/function.ncurses-resetty.php
+ * @return bool Always returns false.
+ *
+ */
+function ncurses_resetty () {}
+
+/**
+ * Saves terminal state
+ * @link https://php.net/manual/en/function.ncurses-savetty.php
+ * @return bool Always returns false.
+ *
+ */
+function ncurses_savetty () {}
+
+/**
+ * Returns a logical OR of all attribute flags supported by terminal
+ * @link https://php.net/manual/en/function.ncurses-termattrs.php
+ * @return bool
+ */
+function ncurses_termattrs () {}
+
+/**
+ * Assign terminal default colors to color id -1
+ * @link https://php.net/manual/en/function.ncurses-use-default-colors.php
+ * @return bool
+ */
+function ncurses_use_default_colors () {}
+
+/**
+ * Returns current soft label key attribute
+ * @link https://php.net/manual/en/function.ncurses-slk-attr.php
+ * @return int The attribute, as an integer.
+ *
+ */
+function ncurses_slk_attr () {}
+
+/**
+ * Clears soft labels from screen
+ * @link https://php.net/manual/en/function.ncurses-slk-clear.php
+ * @return bool true on errors, false otherwise.
+ *
+ */
+function ncurses_slk_clear () {}
+
+/**
+ * Copies soft label keys to virtual screen
+ * @link https://php.net/manual/en/function.ncurses-slk-noutrefresh.php
+ * @return bool
+ */
+function ncurses_slk_noutrefresh () {}
+
+/**
+ * Copies soft label keys to screen
+ * @link https://php.net/manual/en/function.ncurses-slk-refresh.php
+ * @return int
+ */
+function ncurses_slk_refresh () {}
+
+/**
+ * Restores soft label keys
+ * @link https://php.net/manual/en/function.ncurses-slk-restore.php
+ * @return int
+ */
+function ncurses_slk_restore () {}
+
+/**
+ * Forces output when ncurses_slk_noutrefresh is performed
+ * @link https://php.net/manual/en/function.ncurses-slk-touch.php
+ * @return int
+ */
+function ncurses_slk_touch () {}
+
+/**
+ * Turn off the given attributes
+ * @link https://php.net/manual/en/function.ncurses-attroff.php
+ * @param int $attributes
+ *
+ * @return int
+ */
+function ncurses_attroff ($attributes) {}
+
+/**
+ * Turn on the given attributes
+ * @link https://php.net/manual/en/function.ncurses-attron.php
+ * @param int $attributes
+ *
+ * @return int
+ */
+function ncurses_attron ($attributes) {}
+
+/**
+ * Set given attributes
+ * @link https://php.net/manual/en/function.ncurses-attrset.php
+ * @param int $attributes
+ *
+ * @return int
+ */
+function ncurses_attrset ($attributes) {}
+
+/**
+ * Set background property for terminal screen
+ * @link https://php.net/manual/en/function.ncurses-bkgd.php
+ * @param int $attrchar
+ *
+ * @return int
+ */
+function ncurses_bkgd ($attrchar) {}
+
+/**
+ * Set cursor state
+ * @link https://php.net/manual/en/function.ncurses-curs-set.php
+ * @param int $visibility
+ *
+ * @return int
+ */
+function ncurses_curs_set ($visibility) {}
+
+/**
+ * Delay output on terminal using padding characters
+ * @link https://php.net/manual/en/function.ncurses-delay-output.php
+ * @param int $milliseconds
+ *
+ * @return int
+ */
+function ncurses_delay_output ($milliseconds) {}
+
+/**
+ * Single character output including refresh
+ * @link https://php.net/manual/en/function.ncurses-echochar.php
+ * @param int $character
+ *
+ * @return int
+ */
+function ncurses_echochar ($character) {}
+
+/**
+ * Put terminal into halfdelay mode
+ * @link https://php.net/manual/en/function.ncurses-halfdelay.php
+ * @param int $tenth
+ *
+ * @return int
+ */
+function ncurses_halfdelay ($tenth) {}
+
+/**
+ * Check for presence of a function key on terminal keyboard
+ * @link https://php.net/manual/en/function.ncurses-has-key.php
+ * @param int $keycode
+ *
+ * @return int
+ */
+function ncurses_has_key ($keycode) {}
+
+/**
+ * Insert character moving rest of line including character at current position
+ * @link https://php.net/manual/en/function.ncurses-insch.php
+ * @param int $character
+ *
+ * @return int
+ */
+function ncurses_insch ($character) {}
+
+/**
+ * Insert lines before current line scrolling down (negative numbers delete and scroll up)
+ * @link https://php.net/manual/en/function.ncurses-insdelln.php
+ * @param int $count
+ *
+ * @return int
+ */
+function ncurses_insdelln ($count) {}
+
+/**
+ * Set timeout for mouse button clicks
+ * @link https://php.net/manual/en/function.ncurses-mouseinterval.php
+ * @param int $milliseconds
+ * @return int
+ */
+function ncurses_napms ($milliseconds) {}
+
+/**
+ * Scroll window content up or down without changing current position
+ * @link https://php.net/manual/en/function.ncurses-scrl.php
+ * @param int $count
+ *
+ * @return int
+ */
+function ncurses_scrl ($count) {}
+
+/**
+ * Turn off the given attributes for soft function-key labels
+ * @link https://php.net/manual/en/function.ncurses-slk-attroff.php
+ * @param int $intarg
+ *
+ * @return int
+ */
+function ncurses_slk_attroff ($intarg) {}
+
+/**
+ * Turn on the given attributes for soft function-key labels
+ * @link https://php.net/manual/en/function.ncurses-slk-attron.php
+ * @param int $intarg
+ *
+ * @return int
+ */
+function ncurses_slk_attron ($intarg) {}
+
+/**
+ * Set given attributes for soft function-key labels
+ * @link https://php.net/manual/en/function.ncurses-slk-attrset.php
+ * @param int $intarg
+ *
+ * @return int
+ */
+function ncurses_slk_attrset ($intarg) {}
+
+/**
+ * Sets color for soft label keys
+ * @link https://php.net/manual/en/function.ncurses-slk-color.php
+ * @param int $intarg
+ * If ncurses_initscr eventually uses a line from
+ * stdscr to emulate the soft labels, then this parameter determines how
+ * the labels are arranged of the screen.
+ *
+ *
+ * 0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4
+ * arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an
+ * index line will be created.
+ *
+ * @return int
+ */
+function ncurses_typeahead ($fd) {}
+
+/**
+ * Put a character back into the input stream
+ * @link https://php.net/manual/en/function.ncurses-ungetch.php
+ * @param int $keycode
+ *
+ * @return int
+ */
+function ncurses_ungetch ($keycode) {}
+
+/**
+ * Display the string on the terminal in the video attribute mode
+ * @link https://php.net/manual/en/function.ncurses-vidattr.php
+ * @param int $intarg
+ * @return int
+ */
+function ncurses_scr_set ($filename) {}
+
+/**
+ * Move current position and add character
+ * @link https://php.net/manual/en/function.ncurses-mvaddch.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @param int $c
+ *
+ * @return int
+ */
+function ncurses_mvaddch ($y, $x, $c) {}
+
+/**
+ * Move position and add attributed string with specified length
+ * @link https://php.net/manual/en/function.ncurses-mvaddchnstr.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @param string $s
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_mvaddchnstr ($y, $x, $s, $n) {}
+
+/**
+ * Add attributed string with specified length at current position
+ * @link https://php.net/manual/en/function.ncurses-addchnstr.php
+ * @param string $s
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_addchnstr ($s, $n) {}
+
+/**
+ * Move position and add attributed string
+ * @link https://php.net/manual/en/function.ncurses-mvaddchstr.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @param string $s
+ *
+ * @return int
+ */
+function ncurses_mvaddchstr ($y, $x, $s) {}
+
+/**
+ * Add attributed string at current position
+ * @link https://php.net/manual/en/function.ncurses-addchstr.php
+ * @param string $s
+ *
+ * @return int
+ */
+function ncurses_addchstr ($s) {}
+
+/**
+ * Move position and add string with specified length
+ * @link https://php.net/manual/en/function.ncurses-mvaddnstr.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @param string $s
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_mvaddnstr ($y, $x, $s, $n) {}
+
+/**
+ * Add string with specified length at current position
+ * @link https://php.net/manual/en/function.ncurses-addnstr.php
+ * @param string $s
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_addnstr ($s, $n) {}
+
+/**
+ * Move position and add string
+ * @link https://php.net/manual/en/function.ncurses-mvaddstr.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @param string $s
+ *
+ * @return int
+ */
+function ncurses_mvaddstr ($y, $x, $s) {}
+
+/**
+ * Move position and delete character, shift rest of line left
+ * @link https://php.net/manual/en/function.ncurses-mvdelch.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @return int
+ */
+function ncurses_mvdelch ($y, $x) {}
+
+/**
+ * Move position and get character at new position
+ * @link https://php.net/manual/en/function.ncurses-mvgetch.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @return int
+ */
+function ncurses_mvgetch ($y, $x) {}
+
+/**
+ * Move position and get attributed character at new position
+ * @link https://php.net/manual/en/function.ncurses-mvinch.php
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @return int
+ */
+function ncurses_mvinch ($y, $x) {}
+
+/**
+ * Add string at new position in window
+ * @link https://php.net/manual/en/function.ncurses-mvwaddstr.php
+ * @param resource $window
+ *
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @param string $text
+ *
+ * @return int
+ */
+function ncurses_mvwaddstr ($window, $y, $x, $text) {}
+
+/**
+ * Insert string at current position, moving rest of line right
+ * @link https://php.net/manual/en/function.ncurses-insstr.php
+ * @param string $text
+ * The characters. Attributes will be stripped.
+ *
+ * @return int the number of characters.
+ *
+ */
+function ncurses_instr (&$buffer) {}
+
+/**
+ * Set new position and draw a horizontal line using an attributed character and max. n characters long
+ * @link https://php.net/manual/en/function.ncurses-mvhline.php
+ * @param int $y
+ * @return int
+ */
+function ncurses_mvcur ($old_y, $old_x, $new_y, $new_x) {}
+
+/**
+ * Set new RGB value for color
+ * @link https://php.net/manual/en/function.ncurses-init-color.php
+ * @param int $color
+ *
+ * @param int $r
+ *
+ * @param int $g
+ *
+ * @param int $b
+ *
+ * @return int
+ */
+function ncurses_init_color ($color, $r, $g, $b) {}
+
+/**
+ * Draw a border around the screen using attributed characters
+ * @link https://php.net/manual/en/function.ncurses-border.php
+ * @param int $left
+ *
+ * @param int $right
+ *
+ * @param int $top
+ *
+ * @param int $bottom
+ *
+ * @param int $tl_corner
+ * Top left corner
+ *
+ * @param int $tr_corner
+ * Top right corner
+ *
+ * @param int $bl_corner
+ * Bottom left corner
+ *
+ * @param int $br_corner
+ * Bottom right corner
+ *
+ * @return int
+ */
+function ncurses_border ($left, $right, $top, $bottom, $tl_corner, $tr_corner, $bl_corner, $br_corner) {}
+
+/**
+ * Define default colors for color 0
+ * @link https://php.net/manual/en/function.ncurses-assume-default-colors.php
+ * @param int $fg
+ * @return int
+ */
+function ncurses_define_key ($definition, $keycode) {}
+
+/**
+ * Draw a horizontal line at current position using an attributed character and max. n characters long
+ * @link https://php.net/manual/en/function.ncurses-hline.php
+ * @param int $charattr
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_hline ($charattr, $n) {}
+
+/**
+ * Draw a vertical line at current position using an attributed character and max. n characters long
+ * @link https://php.net/manual/en/function.ncurses-vline.php
+ * @param int $charattr
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_vline ($charattr, $n) {}
+
+/**
+ * Enable or disable a keycode
+ * @link https://php.net/manual/en/function.ncurses-keyok.php
+ * @param int $keycode
+ *
+ * @param bool $enable
+ *
+ * @return int
+ */
+function ncurses_keyok ($keycode, $enable) {}
+
+/**
+ * Returns terminals (short)-name
+ * @link https://php.net/manual/en/function.ncurses-termname.php
+ * @return string|null the shortname of the terminal, truncated to 14 characters.
+ * On errors, returns null.
+ *
+ */
+function ncurses_termname () {}
+
+/**
+ * Returns terminals description
+ * @link https://php.net/manual/en/function.ncurses-longname.php
+ * @return string|null the description, as a string truncated to 128 characters.
+ * On errors, returns null.
+ *
+ */
+function ncurses_longname () {}
+
+/**
+ * Sets mouse options
+ * @link https://php.net/manual/en/function.ncurses-mousemask.php
+ * @param int $newmask
+ * Mouse mask options can be set with the following predefined constants:
+ *
NCURSES_BUTTON1_PRESSED
+ * @param int &$oldmask
+ * This will be set to the previous value of the mouse event mask.
+ *
+ * @return int a mask to indicated which of the in parameter
+ * newmask specified mouse events can be reported. On
+ * complete failure, it returns 0.
+ *
+ */
+function ncurses_mousemask ($newmask, &$oldmask) {}
+
+/**
+ * Reads mouse event
+ * @link https://php.net/manual/en/function.ncurses-getmouse.php
+ * @param array &$mevent
+ * Event options will be delivered in this parameter which has to be an
+ * array, passed by reference (see example below).
+ *
+ *
+ * On success an associative array with following keys will be delivered:
+ *
+ * "id" : Id to distinguish multiple devices
+ *
+ * @return bool false if a mouse event is actually visible in the given window,
+ * otherwise returns true.
+ *
+ */
+function ncurses_getmouse (array &$mevent) {}
+
+/**
+ * Pushes mouse event to queue
+ * @link https://php.net/manual/en/function.ncurses-ungetmouse.php
+ * @param array $mevent
+ * An associative array specifying the event options:
+ *
+ * @return int
+ */
+function ncurses_wclear ($window) {}
+
+/**
+ * Sets windows color pairings
+ * @link https://php.net/manual/en/function.ncurses-wcolor-set.php
+ * @param resource $window
+ *
+ * @param int $color_pair
+ *
+ * @return int
+ */
+function ncurses_wcolor_set ($window, $color_pair) {}
+
+/**
+ * Reads a character from keyboard (window)
+ * @link https://php.net/manual/en/function.ncurses-wgetch.php
+ * @param resource $window
+ *
+ * @return int
+ */
+function ncurses_wgetch ($window) {}
+
+/**
+ * Turns keypad on or off
+ * @link https://php.net/manual/en/function.ncurses-keypad.php
+ * @param resource $window
+ *
+ * @param bool $bf
+ *
+ * @return int
+ */
+function ncurses_keypad ($window, $bf) {}
+
+/**
+ * Moves windows output position
+ * @link https://php.net/manual/en/function.ncurses-wmove.php
+ * @param resource $window
+ *
+ * @param int $y
+ *
+ * @param int $x
+ *
+ * @return int
+ */
+function ncurses_wmove ($window, $y, $x) {}
+
+/**
+ * Creates a new pad (window)
+ * @link https://php.net/manual/en/function.ncurses-newpad.php
+ * @param int $rows
+ *
+ * @param int $cols
+ *
+ * @return resource
+ */
+function ncurses_newpad ($rows, $cols) {}
+
+/**
+ * Copies a region from a pad into the virtual screen
+ * @link https://php.net/manual/en/function.ncurses-prefresh.php
+ * @param resource $pad
+ *
+ * @param int $pminrow
+ *
+ * @param int $pmincol
+ *
+ * @param int $sminrow
+ *
+ * @param int $smincol
+ *
+ * @param int $smaxrow
+ *
+ * @param int $smaxcol
+ *
+ * @return int
+ */
+function ncurses_prefresh ($pad, $pminrow, $pmincol, $sminrow, $smincol, $smaxrow, $smaxcol) {}
+
+/**
+ * Copies a region from a pad into the virtual screen
+ * @link https://php.net/manual/en/function.ncurses-pnoutrefresh.php
+ * @param resource $pad
+ *
+ * @param int $pminrow
+ *
+ * @param int $pmincol
+ *
+ * @param int $sminrow
+ *
+ * @param int $smincol
+ *
+ * @param int $smaxrow
+ *
+ * @param int $smaxcol
+ *
+ * @return int
+ */
+function ncurses_pnoutrefresh ($pad, $pminrow, $pmincol, $sminrow, $smincol, $smaxrow, $smaxcol) {}
+
+/**
+ * Enter standout mode for a window
+ * @link https://php.net/manual/en/function.ncurses-wstandout.php
+ * @param resource $window
+ *
+ * @return int
+ */
+function ncurses_wstandout ($window) {}
+
+/**
+ * End standout mode for a window
+ * @link https://php.net/manual/en/function.ncurses-wstandend.php
+ * @param resource $window
+ *
+ * @return int
+ */
+function ncurses_wstandend ($window) {}
+
+/**
+ * Set the attributes for a window
+ * @link https://php.net/manual/en/function.ncurses-wattrset.php
+ * @param resource $window
+ *
+ * @param int $attrs
+ *
+ * @return int
+ */
+function ncurses_wattrset ($window, $attrs) {}
+
+/**
+ * Turns on attributes for a window
+ * @link https://php.net/manual/en/function.ncurses-wattron.php
+ * @param resource $window
+ *
+ * @param int $attrs
+ *
+ * @return int
+ */
+function ncurses_wattron ($window, $attrs) {}
+
+/**
+ * Turns off attributes for a window
+ * @link https://php.net/manual/en/function.ncurses-wattroff.php
+ * @param resource $window
+ *
+ * @param int $attrs
+ *
+ * @return int
+ */
+function ncurses_wattroff ($window, $attrs) {}
+
+/**
+ * Adds character at current position in a window and advance cursor
+ * @link https://php.net/manual/en/function.ncurses-waddch.php
+ * @param resource $window
+ *
+ * @param int $ch
+ *
+ * @return int
+ */
+function ncurses_waddch ($window, $ch) {}
+
+/**
+ * Draws a border around the window using attributed characters
+ * @link https://php.net/manual/en/function.ncurses-wborder.php
+ * @param resource $window
+ * The window on which we operate
+ *
+ * @param int $left
+ *
+ * @param int $right
+ *
+ * @param int $top
+ *
+ * @param int $bottom
+ *
+ * @param int $tl_corner
+ * Top left corner
+ *
+ * @param int $tr_corner
+ * Top right corner
+ *
+ * @param int $bl_corner
+ * Bottom left corner
+ *
+ * @param int $br_corner
+ * Bottom right corner
+ *
+ * @return int
+ */
+function ncurses_wborder ($window, $left, $right, $top, $bottom, $tl_corner, $tr_corner, $bl_corner, $br_corner) {}
+
+/**
+ * Draws a horizontal line in a window at current position using an attributed character and max. n characters long
+ * @link https://php.net/manual/en/function.ncurses-whline.php
+ * @param resource $window
+ *
+ * @param int $charattr
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_whline ($window, $charattr, $n) {}
+
+/**
+ * Draws a vertical line in a window at current position using an attributed character and max. n characters long
+ * @link https://php.net/manual/en/function.ncurses-wvline.php
+ * @param resource $window
+ *
+ * @param int $charattr
+ *
+ * @param int $n
+ *
+ * @return int
+ */
+function ncurses_wvline ($window, $charattr, $n) {}
+
+/**
+ * Returns the current cursor position for a window
+ * @link https://php.net/manual/en/function.ncurses-getyx.php
+ * @param resource $window
+ * @return resource If panel is null, returns the bottom panel in the stack.
+ *
+ */
+function ncurses_panel_above ($panel) {}
+
+/**
+ * Replaces the window associated with panel
+ * @link https://php.net/manual/en/function.ncurses-replace-panel.php
+ * @param resource $panel
+ *
+ * @param resource $window
+ *
+ * @return int
+ */
+function ncurses_replace_panel ($panel, $window) {}
+
+/**
+ * Moves a panel so that its upper-left corner is at [startx, starty]
+ * @link https://php.net/manual/en/function.ncurses-move-panel.php
+ * @param resource $panel
+ *
+ * @param int $startx
+ *
+ * @param int $starty
+ *
+ * @return int
+ */
+function ncurses_move_panel ($panel, $startx, $starty) {}
+
+/**
+ * Moves a visible panel to the bottom of the stack
+ * @link https://php.net/manual/en/function.ncurses-bottom-panel.php
+ * @param resource $panel
+ *
+ * @return int
+ */
+function ncurses_bottom_panel ($panel) {}
+
+/**
+ * Moves a visible panel to the top of the stack
+ * @link https://php.net/manual/en/function.ncurses-top-panel.php
+ * @param resource $panel
+ *
+ * @return int
+ */
+function ncurses_top_panel ($panel) {}
+
+/**
+ * Places an invisible panel on top of the stack, making it visible
+ * @link https://php.net/manual/en/function.ncurses-show-panel.php
+ * @param resource $panel
+ *
+ * @return int
+ */
+function ncurses_show_panel ($panel) {}
+
+/**
+ * Remove panel from the stack, making it invisible
+ * @link https://php.net/manual/en/function.ncurses-hide-panel.php
+ * @param resource $panel
+ *
+ * @return int
+ */
+function ncurses_hide_panel ($panel) {}
+
+/**
+ * Remove panel from the stack and delete it (but not the associated window)
+ * @link https://php.net/manual/en/function.ncurses-del-panel.php
+ * @param resource $panel
+ *
+ * @return bool
+ */
+function ncurses_del_panel ($panel) {}
+
+/**
+ * Create a new panel and associate it with window
+ * @link https://php.net/manual/en/function.ncurses-new-panel.php
+ * @param resource $window