UNPKG

lua-types

Version:

TypeScript definitions for Lua standard library

214 lines (197 loc) 9.21 kB
// Based on https://www.lua.org/manual/5.0/manual.html#5.7 /** @noSelfInFile */ interface LuaDateInfo { year: number; month: number; day: number; hour?: number; min?: number; sec?: number; isdst?: boolean; } interface LuaDateInfoResult { year: number; month: number; day: number; hour: number; min: number; sec: number; isdst: boolean; yday: number; wday: number; } /** * Operating System Facilities */ declare namespace os { /** * Returns an approximation of the amount in seconds of CPU time used by the * program. */ function clock(): number; /** * Returns a string or a table containing date and time, formatted according * to the given string format. * * If the time argument is present, this is the time to be formatted (see the * os.time function for a description of this value). Otherwise, date formats * the current time. * * If format starts with '!', then the date is formatted in Coordinated * Universal Time. After this optional character, if format is the string * "*t", then date returns a table with the following fields: year, month * (1–12), day (1–31), hour (0–23), min (0–59), sec (0–61), wday (weekday, * 1–7, Sunday is 1), yday (day of the year, 1–366), and isdst (daylight * saving flag, a boolean). This last field may be absent if the information * is not available. * * If format is not "*t", then date returns the date as a string, formatted * according to the same rules as the ISO C function strftime. * * When called without arguments, date returns a reasonable date and time * representation that depends on the host system and on the current locale. * (More specifically, os.date() is equivalent to os.date("%c").) * * On non-POSIX systems, this function may be not thread safe because of its * reliance on C function gmtime and C function localtime. */ function date(format?: string, time?: number): string; /** * Returns a string or a table containing date and time, formatted according * to the given string format. * * If the time argument is present, this is the time to be formatted (see the * os.time function for a description of this value). Otherwise, date formats * the current time. * * If format starts with '!', then the date is formatted in Coordinated * Universal Time. After this optional character, if format is the string * "*t", then date returns a table with the following fields: year, month * (1–12), day (1–31), hour (0–23), min (0–59), sec (0–61), wday (weekday, * 1–7, Sunday is 1), yday (day of the year, 1–366), and isdst (daylight * saving flag, a boolean). This last field may be absent if the information * is not available. * * If format is not "*t", then date returns the date as a string, formatted * according to the same rules as the ISO C function strftime. * * When called without arguments, date returns a reasonable date and time * representation that depends on the host system and on the current locale. * (More specifically, os.date() is equivalent to os.date("%c").) * * On non-POSIX systems, this function may be not thread safe because of its * reliance on C function gmtime and C function localtime. */ function date(format: '*t', time?: number): LuaDateInfoResult; /** * Returns the difference, in seconds, from time t1 to time t2 (where the * times are values returned by os.time). In POSIX, Windows, and some other * systems, this value is exactly t2-t1. */ function difftime(t1: number, t2: number): number; /** * This function is equivalent to the C function system. It passes command to * be executed by an operating system shell. It returns a status code, which * is system-dependent. If command is absent, then it returns nonzero if a * shell is available and zero otherwise. */ function execute(command?: string): number; /** * Calls the C function exit, with an optional code, to terminate the host * program. The default value for code is the success code. */ function exit(code?: number): never; /** * Returns the value of the process environment variable varname, or nil if * the variable is not defined. */ function getenv(varname: string): string | undefined; /** * Deletes the file (or empty directory, on POSIX systems) with the given * name. If this function fails, it returns nil, plus a string describing the * error and the error code. Otherwise, it returns true. */ function remove(filename: string): LuaMultiReturn<[true] | [undefined, string]>; /** * Renames the file or directory named oldname to newname. If this function * fails, it returns nil, plus a string describing the error and the error * code. Otherwise, it returns true. */ function rename(oldname: string, newname: string): LuaMultiReturn<[true] | [undefined, string]>; /** * Sets the current locale of the program. locale is a system-dependent string * specifying a locale; category is an optional string describing which * category to change: "all", "collate", "ctype", "monetary", "numeric", or * "time"; the default category is "all". The function returns the name of the * new locale, or nil if the request cannot be honored. * * If locale is the empty string, the current locale is set to an * implementation-defined native locale. If locale is the string "C", the * current locale is set to the standard C locale. * * When called with nil as the first argument, this function only returns the * name of the current locale for the given category. * * This function may be not thread safe because of its reliance on C function * setlocale. */ function setlocale( locale?: string, category?: 'all' | 'collate' | 'ctype' | 'monetary' | 'numeric' | 'time' ): string | undefined; /** * Returns the current time when called without arguments, or a time * representing the local date and time specified by the given table. This * table must have fields year, month, and day, and may have fields hour * (default is 12), min (default is 0), sec (default is 0), and isdst (default * is nil). Other fields are ignored. For a description of these fields, see * the os.date function. * * The values in these fields do not need to be inside their valid ranges. For * instance, if sec is -10, it means -10 seconds from the time specified by * the other fields; if hour is 1000, it means +1000 hours from the time * specified by the other fields. * * The returned value is a number, whose meaning depends on your system. In * POSIX, Windows, and some other systems, this number counts the number of * seconds since some given start time (the "epoch"). In other systems, the * meaning is not specified, and the number returned by time can be used only * as an argument to os.date and os.difftime. */ function time(): number; /** * Returns the current time when called without arguments, or a time * representing the local date and time specified by the given table. This * table must have fields year, month, and day, and may have fields hour * (default is 12), min (default is 0), sec (default is 0), and isdst (default * is nil). Other fields are ignored. For a description of these fields, see * the os.date function. * * The values in these fields do not need to be inside their valid ranges. For * instance, if sec is -10, it means -10 seconds from the time specified by * the other fields; if hour is 1000, it means +1000 hours from the time * specified by the other fields. * * The returned value is a number, whose meaning depends on your system. In * POSIX, Windows, and some other systems, this number counts the number of * seconds since some given start time (the "epoch"). In other systems, the * meaning is not specified, and the number returned by time can be used only * as an argument to os.date and os.difftime. */ function time(table: LuaDateInfo): number; /** * Returns a string with a file name that can be used for a temporary file. * The file must be explicitly opened before its use and explicitly removed * when no longer needed. * * On POSIX systems, this function also creates a file with that name, to * avoid security risks. (Someone else might create the file with wrong * permissions in the time between getting the name and creating the file.) * You still have to open the file to use it and to remove it (even if you do * not use it). * * When possible, you may prefer to use io.tmpfile, which automatically * removes the file when the program ends. */ function tmpname(): string; }