diff --git a/package.json b/package.json index 80566691b0..f58e373970 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,6 @@ { "name": "@serenity-is/workspace-serenity", "devDependencies": { - "@rollup/plugin-node-resolve": "15.2.3", "@swc/core": "1.7.23", "@swc/jest": "0.2.36", "@types/jest": "29.5.12", @@ -10,8 +9,6 @@ "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jsx-dom": "8.1.5", - "rollup": "4.21.2", - "rollup-plugin-dts": "6.1.1", "typescript": "5.5.4" }, "optionalDependencies": { diff --git a/packages/corelib/dist/index.d.ts b/packages/corelib/dist/index.d.ts index 923834258e..3eab7c3504 100644 --- a/packages/corelib/dist/index.d.ts +++ b/packages/corelib/dist/index.d.ts @@ -1,137 +1,135 @@ -import { GroupTotals, Column, FormatterContext, FormatterResult, Group, GroupItemMetadataProvider, EventEmitter, Grid, GridOptions } from '@serenity-is/sleekgrid'; +import { Column, EventEmitter, FormatterContext, FormatterResult, Grid, GridOptions, Group, GroupItemMetadataProvider, GroupTotals } from '@serenity-is/sleekgrid'; /** * Tries to block the page */ -declare function blockUI(options?: { - zIndex?: number; - useTimeout?: boolean; +export declare function blockUI(options?: { + zIndex?: number; + useTimeout?: boolean; }): void; /** * Unblocks the page. */ -declare function blockUndo(): void; - -declare var Config: { - /** - * This is the root path of your application. If your application resides under http://localhost/mysite/, - * your root path is "/mysite/". This variable is automatically initialized by reading from a element - * with ID "ApplicationPath" from current page, which is usually located in your _LayoutHead.cshtml file - */ - applicationPath: string; - /** - * Email validation by default only allows ASCII characters. Set this to true if you want to allow unicode. - */ - emailAllowOnlyAscii: boolean; - /** - * This is an optional callback that is used to load types lazily when they are not found in the - * type registry. This is useful when a type is not available in currently loaded scripts - * (e.g. chunks / entry modules) but is available via some other means (e.g. a separate script file). - * The method may return a type or a promise that resolves to a type. If either returns null, - * the type is considered to be not found. - * The method is called with the type key and an optional kind parameter, which is used to distinguish - * between different kinds of types (e.g. "editor" or "dialog" or "enum"). - */ - lazyTypeLoader: (typeKey: string, kind: "dialog" | "editor" | "enum" | "formatter" | string) => any | Promise; - /** - * This is the list of root namespaces that may be searched for types. For example, if you specify an editor type - * of "MyEditor", first a class with name "MyEditor" will be searched, if not found, search will be followed by - * "Serenity.MyEditor" and "MyApp.MyEditor" if you added "MyApp" to the list of root namespaces. - * - * You should usually add your application root namespace to this list in ScriptInit(ialization).ts file. - */ - rootNamespaces: string[]; - /** - * This is an optional method for handling when user is not logged in. If a users session is expired - * and when a NotAuthorized response is received from a service call, Serenity will call this handler, so - * you may intercept it and notify user about this situation and ask if she wants to login again... - */ - notLoggedInHandler: Function; +export declare function blockUndo(): void; +export declare var Config: { + /** + * This is the root path of your application. If your application resides under http://localhost/mysite/, + * your root path is "/mysite/". This variable is automatically initialized by reading from a element + * with ID "ApplicationPath" from current page, which is usually located in your _LayoutHead.cshtml file + */ + applicationPath: string; + /** + * Email validation by default only allows ASCII characters. Set this to true if you want to allow unicode. + */ + emailAllowOnlyAscii: boolean; + /** + * This is an optional callback that is used to load types lazily when they are not found in the + * type registry. This is useful when a type is not available in currently loaded scripts + * (e.g. chunks / entry modules) but is available via some other means (e.g. a separate script file). + * The method may return a type or a promise that resolves to a type. If either returns null, + * the type is considered to be not found. + * The method is called with the type key and an optional kind parameter, which is used to distinguish + * between different kinds of types (e.g. "editor" or "dialog" or "enum"). + */ + lazyTypeLoader: (typeKey: string, kind: "dialog" | "editor" | "enum" | "formatter" | string) => any | Promise; + /** + * This is the list of root namespaces that may be searched for types. For example, if you specify an editor type + * of "MyEditor", first a class with name "MyEditor" will be searched, if not found, search will be followed by + * "Serenity.MyEditor" and "MyApp.MyEditor" if you added "MyApp" to the list of root namespaces. + * + * You should usually add your application root namespace to this list in ScriptInit(ialization).ts file. + */ + rootNamespaces: string[]; + /** + * This is an optional method for handling when user is not logged in. If a users session is expired + * and when a NotAuthorized response is received from a service call, Serenity will call this handler, so + * you may intercept it and notify user about this situation and ask if she wants to login again... + */ + notLoggedInHandler: Function; }; - /** * CriteriaBuilder is a class that allows to build unary or binary criteria with completion support. */ -declare class CriteriaBuilder extends Array { - /** - * Creates a between criteria. - * @param fromInclusive from value - * @param toInclusive to value - */ - bw(fromInclusive: any, toInclusive: any): Array; - /** - * Creates a contains criteria - * @param value contains value - */ - contains(value: string): Array; - /** - * Creates a endsWith criteria - * @param value endsWith value - */ - endsWith(value: string): Array; - /** - * Creates an equal (=) criteria - * @param value equal value - */ - eq(value: any): Array; - /** - * Creates a greater than criteria - * @param value greater than value - */ - gt(value: any): Array; - /** - * Creates a greater than or equal criteria - * @param value greater than or equal value - */ - ge(value: any): Array; - /** - * Creates a in criteria - * @param values in values - */ - in(values: any[]): Array; - /** - * Creates a IS NULL criteria - */ - isNull(): Array; - /** - * Creates a IS NOT NULL criteria - */ - isNotNull(): Array; - /** - * Creates a less than or equal to criteria - * @param value less than or equal to value - */ - le(value: any): Array; - /** - * Creates a less than criteria - * @param value less than value - */ - lt(value: any): Array; - /** - * Creates a not equal criteria - * @param value not equal value - */ - ne(value: any): Array; - /** - * Creates a LIKE criteria - * @param value like value - */ - like(value: any): Array; - /** - * Creates a STARTS WITH criteria - * @param value startsWith value - */ - startsWith(value: string): Array; - /** - * Creates a NOT IN criteria - * @param values array of NOT IN values - */ - notIn(values: any[]): Array; - /** - * Creates a NOT LIKE criteria - * @param value not like value - */ - notLike(value: any): Array; +export declare class CriteriaBuilder extends Array { + /** + * Creates a between criteria. + * @param fromInclusive from value + * @param toInclusive to value + */ + bw(fromInclusive: any, toInclusive: any): Array; + /** + * Creates a contains criteria + * @param value contains value + */ + contains(value: string): Array; + /** + * Creates a endsWith criteria + * @param value endsWith value + */ + endsWith(value: string): Array; + /** + * Creates an equal (=) criteria + * @param value equal value + */ + eq(value: any): Array; + /** + * Creates a greater than criteria + * @param value greater than value + */ + gt(value: any): Array; + /** + * Creates a greater than or equal criteria + * @param value greater than or equal value + */ + ge(value: any): Array; + /** + * Creates a in criteria + * @param values in values + */ + in(values: any[]): Array; + /** + * Creates a IS NULL criteria + */ + isNull(): Array; + /** + * Creates a IS NOT NULL criteria + */ + isNotNull(): Array; + /** + * Creates a less than or equal to criteria + * @param value less than or equal to value + */ + le(value: any): Array; + /** + * Creates a less than criteria + * @param value less than value + */ + lt(value: any): Array; + /** + * Creates a not equal criteria + * @param value not equal value + */ + ne(value: any): Array; + /** + * Creates a LIKE criteria + * @param value like value + */ + like(value: any): Array; + /** + * Creates a STARTS WITH criteria + * @param value startsWith value + */ + startsWith(value: string): Array; + /** + * Creates a NOT IN criteria + * @param values array of NOT IN values + */ + notIn(values: any[]): Array; + /** + * Creates a NOT LIKE criteria + * @param value not like value + */ + notLike(value: any): Array; } /** * Parses a criteria expression to Serenity Criteria array format. @@ -141,7 +139,7 @@ declare class CriteriaBuilder extends Array { * @example * parseCriteria('A >= @p1 and B < @p2', { p1: 5, p2: 4 }) // [[[a], '>=' 5], 'and', [[b], '<', 4]] */ -declare function parseCriteria(expression: string, params?: any): any[]; +export declare function parseCriteria(expression: string, params?: any): any[]; /** * Parses a criteria expression to Serenity Criteria array format. * The expression may contain parameter placeholders like `A >= ${p1}` @@ -152,69 +150,68 @@ declare function parseCriteria(expression: string, params?: any): any[]; * var a = 5, b = 4; * parseCriteria`A >= ${a} and B < ${b}` // [[[a], '>=' 5], 'and', [[b], '<', 4]] */ -declare function parseCriteria(strings: TemplateStringsArray, ...values: any[]): any[]; +export declare function parseCriteria(strings: TemplateStringsArray, ...values: any[]): any[]; /** * Enumeration of Criteria operator keys. */ -declare enum CriteriaOperator { - paren = "()", - not = "not", - isNull = "is null", - isNotNull = "is not null", - exists = "exists", - and = "and", - or = "or", - xor = "xor", - eq = "=", - ne = "!=", - gt = ">", - ge = ">=", - lt = "<", - le = "<=", - in = "in", - notIn = "not in", - like = "like", - notLike = "not like" +export declare enum CriteriaOperator { + paren = "()", + not = "not", + isNull = "is null", + isNotNull = "is not null", + exists = "exists", + and = "and", + or = "or", + xor = "xor", + eq = "=", + ne = "!=", + gt = ">", + ge = ">=", + lt = "<", + le = "<=", + in = "in", + notIn = "not in", + like = "like", + notLike = "not like" } /** * Creates a new criteria builder containg the passed field name. * @param field The field name. */ -declare function Criteria(field: string): CriteriaBuilder; -declare namespace Criteria { - var and: (c1: any[], c2: any[], ...rest: any[][]) => any[]; - var Operator: typeof CriteriaOperator; - var isEmpty: (c: any[]) => boolean; - var join: (c1: any[], op: string, c2: any[]) => any[]; - var not: (c: any[]) => (string | any[])[]; - var or: (c1: any[], c2: any[], ...rest: any[][]) => any[]; - var paren: (c: any[]) => any[]; - var parse: typeof parseCriteria; -} - -interface DebouncedFunction any> { - /** - * Call the original function, but applying the debounce rules. - * - * If the debounced function can be run immediately, this calls it and returns its return - * value. - * - * Otherwise, it returns the return value of the last invocation, or undefined if the debounced - * function was not invoked yet. - */ - (...args: Parameters): ReturnType | undefined; - /** - * Throw away any pending invocation of the debounced function. - */ - clear(): void; - /** - * If there is a pending invocation of the debounced function, invoke it immediately and return - * its return value. - * - * Otherwise, return the value from the last invocation, or undefined if the debounced function - * was never invoked. - */ - flush(): ReturnType | undefined; +export declare function Criteria(field: string): CriteriaBuilder; +export declare namespace Criteria { + var and: (c1: any[], c2: any[], ...rest: any[][]) => any[]; + var Operator: typeof CriteriaOperator; + var isEmpty: (c: any[]) => boolean; + var join: (c1: any[], op: string, c2: any[]) => any[]; + var not: (c: any[]) => (string | any[])[]; + var or: (c1: any[], c2: any[], ...rest: any[][]) => any[]; + var paren: (c: any[]) => any[]; + var parse: typeof parseCriteria; +} +export interface DebouncedFunction any> { + /** + * Call the original function, but applying the debounce rules. + * + * If the debounced function can be run immediately, this calls it and returns its return + * value. + * + * Otherwise, it returns the return value of the last invocation, or undefined if the debounced + * function was not invoked yet. + */ + (...args: Parameters): ReturnType | undefined; + /** + * Throw away any pending invocation of the debounced function. + */ + clear(): void; + /** + * If there is a pending invocation of the debounced function, invoke it immediately and return + * its return value. + * + * Otherwise, return the value from the last invocation, or undefined if the debounced function + * was never invoked. + */ + flush(): ReturnType | undefined; } /** * Returns a function, that, as long as it continues to be invoked, will not @@ -227,334 +224,332 @@ interface DebouncedFunction any> { * * @source underscore.js */ -declare function debounce any>(func: T, wait?: number, immediate?: boolean): DebouncedFunction; - +export declare function debounce any>(func: T, wait?: number, immediate?: boolean): DebouncedFunction; /** * Represents the utility color options for icons corresponding to Bootstrap contextual colors like primary, secondary, success etc. */ -type UtilityColor = "primary" | "secondary" | "success" | "danger" | "warning" | "info" | "light" | "dark" | "muted" | "white"; +export type UtilityColor = "primary" | "secondary" | "success" | "danger" | "warning" | "info" | "light" | "dark" | "muted" | "white"; /** * Represents the type of text color. * It can be one of the predefined UtilityColor values or one of the following CSS color names: * "aqua", "blue", "fuschia", "gray", "green", "light-blue", "lime", "maroon", "navy", "olive", "orange", "purple", "red", "teal", "yellow". */ -type TextColor = UtilityColor | "aqua" | "blue" | "fuschia" | "gray" | "green" | "light-blue" | "lime" | "maroon" | "navy" | "olive" | "orange" | "purple" | "red" | "teal" | "yellow"; +export type TextColor = UtilityColor | "aqua" | "blue" | "fuschia" | "gray" | "green" | "light-blue" | "lime" | "maroon" | "navy" | "olive" | "orange" | "purple" | "red" | "teal" | "yellow"; /** * Returns the CSS class name for the background color based on the provided UtilityColor. * @param color - The UtilityColor to generate the CSS class name for. * @returns The CSS class name for the background color. */ -declare function bgColor(color: UtilityColor): string; +export declare function bgColor(color: UtilityColor): string; /** * Returns the CSS class for the specified text color. * @param color - The text color. * @returns The CSS class for the specified text color. */ -declare function textColor(color: TextColor): string; +export declare function textColor(color: TextColor): string; /** * Returns the CSS class for a Font Awesome icon. * @param key - The key of the Font Awesome icon. * @param color - The optional color of the icon. * @returns The CSS class for the icon. */ -declare function faIcon(key: faIconKey, color?: TextColor): string; +export declare function faIcon(key: faIconKey, color?: TextColor): string; /** * Generates a fully qualified class name for a Font Awesome brand icon. * @param key - The key of the Font Awesome brand icon. * @param color - The optional color of the icon. * @returns The fully qualified class name for the icon. */ -declare function fabIcon(key: fabIconKey, color?: TextColor): string; +export declare function fabIcon(key: fabIconKey, color?: TextColor): string; /** * Represents a known icon class. * The icon class can be either a Font Awesome icon (`fa fa-${faIconKey}`) * or a Font Awesome Brands icon (`fab fa-${fabIconKey}`). */ -type KnownIconClass = `fa fa-${faIconKey}` | `fab fa-${fabIconKey}`; +export type KnownIconClass = `fa fa-${faIconKey}` | `fab fa-${fabIconKey}`; /** * Represents a type that can be either a known icon class or a string. */ -type AnyIconClass = KnownIconClass | (string & {}); +export type AnyIconClass = KnownIconClass | (string & {}); /** * Represents the type for an icon class name. * It can be either a single icon class or an array of icon classes. */ -type IconClassName = AnyIconClass | (AnyIconClass[]); +export type IconClassName = AnyIconClass | (AnyIconClass[]); /** * Returns the CSS class name for the given icon. * @param icon The icon class name or an array of class names. * @returns The CSS class name for the icon. */ -declare function iconClassName(icon: IconClassName): string; -type faIconKey = "ad" | "address-book" | "address-card" | "adjust" | "air-freshener" | "align-center" | "align-justify" | "align-left" | "align-right" | "allergies" | "ambulance" | "american-sign-language-interpreting" | "anchor" | "angle-double-down" | "angle-double-left" | "angle-double-right" | "angle-double-up" | "angle-down" | "angle-left" | "angle-right" | "angle-up" | "angry" | "ankh" | "apple-alt" | "archive" | "archway" | "arrow-alt-circle-down" | "arrow-alt-circle-left" | "arrow-alt-circle-right" | "arrow-alt-circle-up" | "arrow-circle-down" | "arrow-circle-left" | "arrow-circle-right" | "arrow-circle-up" | "arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "arrows-alt" | "arrows-alt-h" | "arrows-alt-v" | "assistive-listening-systems" | "asterisk" | "at" | "atlas" | "atom" | "audio-description" | "award" | "baby" | "baby-carriage" | "backspace" | "backward" | "bacon" | "balance-scale" | "balance-scale-left" | "balance-scale-right" | "ban" | "band-aid" | "barcode" | "bars" | "baseball-ball" | "basketball-ball" | "bath" | "battery-empty" | "battery-full" | "battery-half" | "battery-quarter" | "battery-three-quarters" | "bed" | "beer" | "bell" | "bell-o" | "bell-slash" | "bezier-curve" | "bible" | "bicycle" | "biking" | "binoculars" | "biohazard" | "birthday-cake" | "blender" | "blender-phone" | "blind" | "blog" | "bold" | "bolt" | "bomb" | "bone" | "bong" | "book" | "book-dead" | "book-medical" | "book-open" | "book-reader" | "bookmark" | "border-all" | "border-none" | "border-style" | "bowling-ball" | "box" | "box-open" | "boxes" | "braille" | "brain" | "bread-slice" | "briefcase" | "briefcase-medical" | "broadcast-tower" | "broom" | "brush" | "bug" | "building" | "bullhorn" | "bullseye" | "burn" | "bus" | "bus-alt" | "business-time" | "calculator" | "calendar" | "calendar-alt" | "calendar-check" | "calendar-day" | "calendar-minus" | "calendar-plus" | "calendar-times" | "calendar-week" | "camera" | "camera-retro" | "campground" | "candy-cane" | "cannabis" | "capsules" | "car" | "car-alt" | "car-battery" | "car-crash" | "car-side" | "caret-down" | "caret-left" | "caret-right" | "caret-square-down" | "caret-square-left" | "caret-square-right" | "caret-square-up" | "caret-up" | "carrot" | "cart-arrow-down" | "cart-plus" | "cash-register" | "cat" | "certificate" | "chair" | "chalkboard" | "chalkboard-teacher" | "charging-station" | "chart-area" | "chart-bar" | "chart-line" | "chart-pie" | "check" | "check-circle" | "check-double" | "check-square" | "cheese" | "chess" | "chess-bishop" | "chess-board" | "chess-king" | "chess-knight" | "chess-pawn" | "chess-queen" | "chess-rook" | "chevron-circle-down" | "chevron-circle-left" | "chevron-circle-right" | "chevron-circle-up" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "child" | "church" | "circle" | "circle-notch" | "city" | "clinic-medical" | "clipboard" | "clipboard-check" | "clipboard-list" | "clock" | "clock-o" | "clone" | "closed-captioning" | "cloud" | "cloud-download-alt" | "cloud-meatball" | "cloud-moon" | "cloud-moon-rain" | "cloud-rain" | "cloud-showers-heavy" | "cloud-sun" | "cloud-sun-rain" | "cloud-upload-alt" | "cocktail" | "code" | "code-branch" | "coffee" | "cog" | "cogs" | "coins" | "columns" | "comment" | "comment-alt" | "comment-dollar" | "comment-dots" | "comment-medical" | "comment-slash" | "comments" | "comments-dollar" | "compact-disc" | "compass" | "compress" | "compress-arrows-alt" | "concierge-bell" | "cookie" | "cookie-bite" | "copy" | "copyright" | "couch" | "credit-card" | "crop" | "crop-alt" | "cross" | "crosshairs" | "crow" | "crown" | "crutch" | "cube" | "cubes" | "cut" | "database" | "deaf" | "democrat" | "desktop" | "dharmachakra" | "diagnoses" | "dice" | "dice-d20" | "dice-d6" | "dice-five" | "dice-four" | "dice-one" | "dice-six" | "dice-three" | "dice-two" | "digital-tachograph" | "directions" | "divide" | "dizzy" | "dna" | "dog" | "dollar-sign" | "dolly" | "dolly-flatbed" | "donate" | "door-closed" | "door-open" | "dot-circle" | "dove" | "download" | "drafting-compass" | "dragon" | "draw-polygon" | "drum" | "drum-steelpan" | "drumstick-bite" | "dumbbell" | "dumpster" | "dumpster-fire" | "dungeon" | "edit" | "egg" | "eject" | "ellipsis-h" | "ellipsis-v" | "envelope" | "envelope-o" | "envelope-open" | "envelope-open-text" | "envelope-square" | "equals" | "eraser" | "ethernet" | "euro-sign" | "exchange-alt" | "exclamation" | "exclamation-circle" | "exclamation-triangle" | "expand" | "expand-arrows-alt" | "external-link-alt" | "external-link-square-alt" | "eye" | "eye-dropper" | "eye-slash" | "fan" | "fast-backward" | "fast-forward" | "fax" | "feather" | "feather-alt" | "female" | "fighter-jet" | "file" | "file-alt" | "file-archive" | "file-audio" | "file-code" | "file-contract" | "file-csv" | "file-download" | "file-excel" | "file-excel-o" | "file-export" | "file-image" | "file-import" | "file-invoice" | "file-invoice-dollar" | "file-medical" | "file-medical-alt" | "file-pdf" | "file-pdf-o" | "file-powerpoint" | "file-prescription" | "file-signature" | "file-upload" | "file-text" | "file-text-o" | "file-video" | "file-word" | "fill" | "fill-drip" | "film" | "filter" | "fingerprint" | "fire" | "floppy-o" | "fire-alt" | "fire-extinguisher" | "first-aid" | "fish" | "fist-raised" | "flag" | "flag-checkered" | "flag-usa" | "flask" | "flushed" | "folder" | "folder-minus" | "folder-open" | "folder-open-o" | "folder-plus" | "font" | "football-ball" | "forward" | "frog" | "frown" | "frown-open" | "funnel-dollar" | "futbol" | "gamepad" | "gas-pump" | "gavel" | "gem" | "genderless" | "ghost" | "gift" | "gifts" | "glass-cheers" | "glass-martini" | "glass-martini-alt" | "glass-whiskey" | "glasses" | "globe" | "globe-africa" | "globe-americas" | "globe-asia" | "globe-europe" | "golf-ball" | "gopuram" | "graduation-cap" | "greater-than" | "greater-than-equal" | "grimace" | "grin" | "grin-alt" | "grin-beam" | "grin-beam-sweat" | "grin-hearts" | "grin-squint" | "grin-squint-tears" | "grin-stars" | "grin-tears" | "grin-tongue" | "grin-tongue-squint" | "grin-tongue-wink" | "grin-wink" | "grip-horizontal" | "grip-lines" | "grip-lines-vertical" | "grip-vertical" | "guitar" | "h-square" | "hamburger" | "hammer" | "hamsa" | "hand-holding" | "hand-holding-heart" | "hand-holding-usd" | "hand-lizard" | "hand-middle-finger" | "hand-paper" | "hand-peace" | "hand-point-down" | "hand-point-left" | "hand-point-right" | "hand-point-up" | "hand-pointer" | "hand-rock" | "hand-scissors" | "hand-spock" | "hands" | "hands-helping" | "handshake" | "hanukiah" | "hard-hat" | "hashtag" | "hat-cowboy" | "hat-cowboy-side" | "hat-wizard" | "haykal" | "hdd" | "heading" | "headphones" | "headphones-alt" | "headset" | "heart" | "heart-broken" | "heartbeat" | "helicopter" | "highlighter" | "hiking" | "hippo" | "history" | "hockey-puck" | "holly-berry" | "home" | "horse" | "horse-head" | "hospital" | "hospital-alt" | "hospital-symbol" | "hot-tub" | "hotdog" | "hotel" | "hourglass" | "hourglass-end" | "hourglass-half" | "hourglass-start" | "house-damage" | "hryvnia" | "i-cursor" | "ice-cream" | "icicles" | "icons" | "id-badge" | "id-card" | "id-card-alt" | "igloo" | "image" | "images" | "inbox" | "indent" | "industry" | "infinity" | "info" | "info-circle" | "italic" | "jedi" | "joint" | "journal-whills" | "kaaba" | "key" | "keyboard" | "khanda" | "kiss" | "kiss-beam" | "kiss-wink-heart" | "kiwi-bird" | "landmark" | "language" | "laptop" | "laptop-code" | "laptop-medical" | "laugh" | "laugh-beam" | "laugh-squint" | "laugh-wink" | "layer-group" | "leaf" | "lemon" | "less-than" | "less-than-equal" | "level-down-alt" | "level-up-alt" | "life-ring" | "lightbulb" | "link" | "lira-sign" | "list" | "list-alt" | "list-ol" | "list-ul" | "location-arrow" | "lock" | "lock-open" | "long-arrow-alt-down" | "long-arrow-alt-left" | "long-arrow-alt-right" | "long-arrow-alt-up" | "low-vision" | "luggage-cart" | "magic" | "magnet" | "mail-bulk" | "mail-forward" | "mail-reply" | "male" | "map" | "map-marked" | "map-marked-alt" | "map-marker" | "map-marker-alt" | "map-pin" | "map-signs" | "marker" | "mars" | "mars-double" | "mars-stroke" | "mars-stroke-h" | "mars-stroke-v" | "mask" | "medal" | "medkit" | "meh" | "meh-blank" | "meh-rolling-eyes" | "memory" | "menorah" | "mercury" | "meteor" | "microchip" | "microphone" | "microphone-alt" | "microphone-alt-slash" | "microphone-slash" | "microscope" | "minus" | "minus-circle" | "minus-square" | "mitten" | "mobile" | "mobile-alt" | "money-bill" | "money-bill-alt" | "money-bill-wave" | "money-bill-wave-alt" | "money-check" | "money-check-alt" | "monument" | "moon" | "mortar-pestle" | "mosque" | "motorcycle" | "mountain" | "mouse" | "mouse-pointer" | "mug-hot" | "music" | "network-wired" | "neuter" | "newspaper" | "not-equal" | "notes-medical" | "object-group" | "object-ungroup" | "oil-can" | "om" | "otter" | "outdent" | "pager" | "paint-brush" | "paint-roller" | "palette" | "pallet" | "paper-plane" | "paperclip" | "parachute-box" | "paragraph" | "parking" | "passport" | "pastafarianism" | "paste" | "pause" | "pause-circle" | "paw" | "peace" | "pen" | "pen-alt" | "pen-fancy" | "pen-nib" | "pen-square" | "pencil-alt" | "pencil-ruler" | "pencil-square-o" | "people-carry" | "pepper-hot" | "percent" | "percentage" | "person-booth" | "phone" | "phone-alt" | "phone-slash" | "phone-square" | "phone-square-alt" | "phone-volume" | "photo-video" | "piggy-bank" | "pills" | "pizza-slice" | "place-of-worship" | "plane" | "plane-arrival" | "plane-departure" | "play" | "play-circle" | "plug" | "plus" | "plus-circle" | "plus-square" | "podcast" | "poll" | "poll-h" | "poo" | "poo-storm" | "poop" | "portrait" | "pound-sign" | "power-off" | "pray" | "praying-hands" | "prescription" | "prescription-bottle" | "prescription-bottle-alt" | "print" | "procedures" | "project-diagram" | "puzzle-piece" | "qrcode" | "question" | "question-circle" | "quidditch" | "quote-left" | "quote-right" | "quran" | "radiation" | "radiation-alt" | "rainbow" | "random" | "receipt" | "record-vinyl" | "recycle" | "redo" | "refresh" | "redo-alt" | "registered" | "remove-format" | "reply" | "reply-all" | "republican" | "restroom" | "retweet" | "ribbon" | "ring" | "road" | "robot" | "rocket" | "route" | "rss" | "rss-square" | "ruble-sign" | "ruler" | "ruler-combined" | "ruler-horizontal" | "ruler-vertical" | "running" | "rupee-sign" | "sad-cry" | "sad-tear" | "satellite" | "satellite-dish" | "save" | "school" | "screwdriver" | "scroll" | "sd-card" | "search" | "search-dollar" | "search-location" | "search-minus" | "search-plus" | "seedling" | "server" | "shapes" | "share" | "share-alt" | "share-alt-square" | "share-square" | "shekel-sign" | "shield-alt" | "ship" | "shipping-fast" | "shoe-prints" | "shopping-bag" | "shopping-basket" | "shopping-cart" | "shower" | "shuttle-van" | "sign" | "sign-in-alt" | "sign-language" | "sign-out" | "sign-out-alt" | "signal" | "signature" | "sim-card" | "sitemap" | "skating" | "skiing" | "skiing-nordic" | "skull" | "skull-crossbones" | "slash" | "sleigh" | "sliders-h" | "smile" | "smile-beam" | "smile-wink" | "smog" | "smoking" | "smoking-ban" | "sms" | "snowboarding" | "snowflake" | "snowman" | "snowplow" | "socks" | "solar-panel" | "sort" | "sort-alpha-down" | "sort-alpha-down-alt" | "sort-alpha-up" | "sort-alpha-up-alt" | "sort-amount-down" | "sort-amount-down-alt" | "sort-amount-up" | "sort-amount-up-alt" | "sort-down" | "sort-numeric-down" | "sort-numeric-down-alt" | "sort-numeric-up" | "sort-numeric-up-alt" | "sort-up" | "spa" | "space-shuttle" | "spell-check" | "spider" | "spinner" | "splotch" | "spray-can" | "square" | "square-full" | "square-root-alt" | "stamp" | "star" | "star-and-crescent" | "star-half" | "star-half-alt" | "star-o" | "star-of-david" | "star-of-life" | "step-backward" | "step-forward" | "stethoscope" | "sticky-note" | "stop" | "stop-circle" | "stopwatch" | "store" | "store-alt" | "stream" | "street-view" | "strikethrough" | "stroopwafel" | "subscript" | "subway" | "suitcase" | "suitcase-rolling" | "sun" | "superscript" | "surprise" | "swatchbook" | "swimmer" | "swimming-pool" | "synagogue" | "sync" | "sync-alt" | "syringe" | "table" | "table-tennis" | "tablet" | "tablet-alt" | "tablets" | "tachometer-alt" | "tag" | "tags" | "tape" | "tasks" | "taxi" | "teeth" | "teeth-open" | "temperature-high" | "temperature-low" | "tenge" | "terminal" | "text-height" | "text-width" | "th" | "th-large" | "th-list" | "theater-masks" | "thermometer" | "thermometer-empty" | "thermometer-full" | "thermometer-half" | "thermometer-quarter" | "thermometer-three-quarters" | "thumbs-down" | "thumbs-up" | "thumbtack" | "ticket-alt" | "times" | "times-circle" | "tint" | "tint-slash" | "tired" | "toggle-off" | "toggle-on" | "toilet" | "toilet-paper" | "toolbox" | "tools" | "tooth" | "torah" | "torii-gate" | "tractor" | "trademark" | "traffic-light" | "train" | "tram" | "transgender" | "transgender-alt" | "trash" | "trash-alt" | "trash-o" | "trash-restore" | "trash-restore-alt" | "tree" | "trophy" | "truck" | "truck-loading" | "truck-monster" | "truck-moving" | "truck-pickup" | "tshirt" | "tty" | "tv" | "umbrella" | "umbrella-beach" | "underline" | "undo" | "undo-alt" | "universal-access" | "university" | "unlink" | "unlock" | "unlock-alt" | "upload" | "user" | "user-alt" | "user-alt-slash" | "user-astronaut" | "user-check" | "user-circle" | "user-clock" | "user-cog" | "user-edit" | "user-friends" | "user-graduate" | "user-injured" | "user-lock" | "user-md" | "user-minus" | "user-ninja" | "user-nurse" | "user-plus" | "user-secret" | "user-shield" | "user-slash" | "user-tag" | "user-tie" | "user-times" | "users" | "users-cog" | "utensil-spoon" | "utensils" | "vector-square" | "venus" | "venus-double" | "venus-mars" | "vial" | "vials" | "video" | "video-slash" | "vihara" | "voicemail" | "volleyball-ball" | "volume-down" | "volume-mute" | "volume-off" | "volume-up" | "vote-yea" | "vr-cardboard" | "walking" | "wallet" | "warehouse" | "water" | "wave-square" | "weight" | "weight-hanging" | "wheelchair" | "wifi" | "wind" | "window-close" | "window-maximize" | "window-minimize" | "window-restore" | "wine-bottle" | "wine-glass" | "wine-glass-alt" | "won-sign" | "wrench" | "x-ray" | "yen-sign" | "yin-yang"; -type fabIconKey = "500px" | "accessible-icon" | "accusoft" | "acquisitions-incorporated" | "adn" | "adobe" | "adversal" | "affiliatetheme" | "airbnb" | "algolia" | "alipay" | "amazon" | "amazon-pay" | "amilia" | "android" | "angellist" | "angrycreative" | "angular" | "app-store" | "app-store-ios" | "apper" | "apple" | "apple-pay" | "artstation" | "asymmetrik" | "atlassian" | "audible" | "autoprefixer" | "avianex" | "aviato" | "aws" | "bandcamp" | "battle-net" | "behance" | "behance-square" | "bimobject" | "bitbucket" | "bitcoin" | "bity" | "black-tie" | "blackberry" | "blogger" | "blogger-b" | "bluetooth" | "bluetooth-b" | "bootstrap" | "btc" | "buffer" | "buromobelexperte" | "buy-n-large" | "buysellads" | "canadian-maple-leaf" | "cc-amazon-pay" | "cc-amex" | "cc-apple-pay" | "cc-diners-club" | "cc-discover" | "cc-jcb" | "cc-mastercard" | "cc-paypal" | "cc-stripe" | "cc-visa" | "centercode" | "centos" | "chrome" | "chromecast" | "cloudscale" | "cloudsmith" | "cloudversify" | "codepen" | "codiepie" | "confluence" | "connectdevelop" | "contao" | "cotton-bureau" | "cpanel" | "creative-commons" | "creative-commons-by" | "creative-commons-nc" | "creative-commons-nc-eu" | "creative-commons-nc-jp" | "creative-commons-nd" | "creative-commons-pd" | "creative-commons-pd-alt" | "creative-commons-remix" | "creative-commons-sa" | "creative-commons-sampling" | "creative-commons-sampling-plus" | "creative-commons-share" | "creative-commons-zero" | "critical-role" | "css3" | "css3-alt" | "cuttlefish" | "d-and-d" | "d-and-d-beyond" | "dashcube" | "delicious" | "deploydog" | "deskpro" | "dev" | "deviantart" | "dhl" | "diaspora" | "digg" | "digital-ocean" | "discord" | "discourse" | "dochub" | "docker" | "draft2digital" | "dribbble" | "dribbble-square" | "dropbox" | "drupal" | "dyalog" | "earlybirds" | "ebay" | "edge" | "elementor" | "ello" | "ember" | "empire" | "envira" | "erlang" | "ethereum" | "etsy" | "evernote" | "expeditedssl" | "facebook" | "facebook-f" | "facebook-messenger" | "facebook-square" | "fantasy-flight-games" | "fedex" | "fedora" | "figma" | "firefox" | "first-order" | "first-order-alt" | "firstdraft" | "flickr" | "flipboard" | "fly" | "font-awesome" | "font-awesome-alt" | "font-awesome-flag" | "fonticons" | "fonticons-fi" | "fort-awesome" | "fort-awesome-alt" | "forumbee" | "foursquare" | "free-code-camp" | "freebsd" | "fulcrum" | "galactic-republic" | "galactic-senate" | "get-pocket" | "gg" | "gg-circle" | "git" | "git-alt" | "git-square" | "github" | "github-alt" | "github-square" | "gitkraken" | "gitlab" | "gitter" | "glide" | "glide-g" | "gofore" | "goodreads" | "goodreads-g" | "google" | "google-drive" | "google-play" | "google-plus" | "google-plus-g" | "google-plus-square" | "google-wallet" | "gratipay" | "grav" | "gripfire" | "grunt" | "gulp" | "hacker-news" | "hacker-news-square" | "hackerrank" | "hips" | "hire-a-helper" | "hooli" | "hornbill" | "hotjar" | "houzz" | "html5" | "hubspot" | "imdb" | "instagram" | "intercom" | "internet-explorer" | "invision" | "ioxhost" | "itch-io" | "itunes" | "itunes-note" | "java" | "jedi-order" | "jenkins" | "jira" | "joget" | "joomla" | "js" | "js-square" | "jsfiddle" | "kaggle" | "keybase" | "keycdn" | "kickstarter" | "kickstarter-k" | "korvue" | "laravel" | "lastfm" | "lastfm-square" | "leanpub" | "less" | "line" | "linkedin" | "linkedin-in" | "linode" | "linux" | "lyft" | "magento" | "mailchimp" | "mandalorian" | "markdown" | "mastodon" | "maxcdn" | "mdb" | "medapps" | "medium" | "medium-m" | "medrt" | "meetup" | "megaport" | "mendeley" | "microsoft" | "mix" | "mixcloud" | "mizuni" | "modx" | "monero" | "napster" | "neos" | "nimblr" | "node" | "node-js" | "npm" | "ns8" | "nutritionix" | "odnoklassniki" | "odnoklassniki-square" | "old-republic" | "opencart" | "openid" | "opera" | "optin-monster" | "orcid" | "osi" | "page4" | "pagelines" | "palfed" | "patreon" | "paypal" | "penny-arcade" | "periscope" | "phabricator" | "phoenix-framework" | "phoenix-squadron" | "php" | "pied-piper" | "pied-piper-alt" | "pied-piper-hat" | "pied-piper-pp" | "pinterest" | "pinterest-p" | "pinterest-square" | "playstation" | "product-hunt" | "pushed" | "python" | "qq" | "quinscape" | "quora" | "r-project" | "raspberry-pi" | "ravelry" | "react" | "reacteurope" | "readme" | "rebel" | "red-river" | "reddit" | "reddit-alien" | "reddit-square" | "redhat" | "renren" | "replyd" | "researchgate" | "resolving" | "rev" | "rocketchat" | "rockrms" | "safari" | "salesforce" | "sass" | "schlix" | "scribd" | "searchengin" | "sellcast" | "sellsy" | "servicestack" | "shirtsinbulk" | "shopware" | "simplybuilt" | "sistrix" | "sith" | "sketch" | "skyatlas" | "skype" | "slack" | "slack-hash" | "slideshare" | "snapchat" | "snapchat-ghost" | "snapchat-square" | "soundcloud" | "sourcetree" | "speakap" | "speaker-deck" | "spotify" | "squarespace" | "stack-exchange" | "stack-overflow" | "stackpath" | "staylinked" | "steam" | "steam-square" | "steam-symbol" | "sticker-mule" | "strava" | "stripe" | "stripe-s" | "studiovinari" | "stumbleupon" | "stumbleupon-circle" | "superpowers" | "supple" | "suse" | "swift" | "symfony" | "teamspeak" | "telegram" | "telegram-plane" | "tencent-weibo" | "the-red-yeti" | "themeco" | "themeisle" | "think-peaks" | "trade-federation" | "trello" | "tripadvisor" | "tumblr" | "tumblr-square" | "twitch" | "twitter" | "twitter-square" | "typo3" | "uber" | "ubuntu" | "uikit" | "umbraco" | "uniregistry" | "untappd" | "ups" | "usb" | "usps" | "ussunnah" | "vaadin" | "viacoin" | "viadeo" | "viadeo-square" | "viber" | "vimeo" | "vimeo-square" | "vimeo-v" | "vine" | "vk" | "vnv" | "vuejs" | "waze" | "weebly" | "weibo" | "weixin" | "whatsapp" | "whatsapp-square" | "whmcs" | "wikipedia-w" | "windows" | "wix" | "wizards-of-the-coast" | "wolf-pack-battalion" | "wordpress" | "wordpress-simple" | "wpbeginner" | "wpexplorer" | "wpforms" | "wpressr" | "xbox" | "xing" | "xing-square" | "y-combinator" | "yahoo" | "yammer" | "yandex" | "yandex-international" | "yarn" | "yelp" | "yoast" | "youtube" | "youtube-square" | "zhihu"; - +export declare function iconClassName(icon: IconClassName): string; +export type faIconKey = "ad" | "address-book" | "address-card" | "adjust" | "air-freshener" | "align-center" | "align-justify" | "align-left" | "align-right" | "allergies" | "ambulance" | "american-sign-language-interpreting" | "anchor" | "angle-double-down" | "angle-double-left" | "angle-double-right" | "angle-double-up" | "angle-down" | "angle-left" | "angle-right" | "angle-up" | "angry" | "ankh" | "apple-alt" | "archive" | "archway" | "arrow-alt-circle-down" | "arrow-alt-circle-left" | "arrow-alt-circle-right" | "arrow-alt-circle-up" | "arrow-circle-down" | "arrow-circle-left" | "arrow-circle-right" | "arrow-circle-up" | "arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "arrows-alt" | "arrows-alt-h" | "arrows-alt-v" | "assistive-listening-systems" | "asterisk" | "at" | "atlas" | "atom" | "audio-description" | "award" | "baby" | "baby-carriage" | "backspace" | "backward" | "bacon" | "balance-scale" | "balance-scale-left" | "balance-scale-right" | "ban" | "band-aid" | "barcode" | "bars" | "baseball-ball" | "basketball-ball" | "bath" | "battery-empty" | "battery-full" | "battery-half" | "battery-quarter" | "battery-three-quarters" | "bed" | "beer" | "bell" | "bell-o" | "bell-slash" | "bezier-curve" | "bible" | "bicycle" | "biking" | "binoculars" | "biohazard" | "birthday-cake" | "blender" | "blender-phone" | "blind" | "blog" | "bold" | "bolt" | "bomb" | "bone" | "bong" | "book" | "book-dead" | "book-medical" | "book-open" | "book-reader" | "bookmark" | "border-all" | "border-none" | "border-style" | "bowling-ball" | "box" | "box-open" | "boxes" | "braille" | "brain" | "bread-slice" | "briefcase" | "briefcase-medical" | "broadcast-tower" | "broom" | "brush" | "bug" | "building" | "bullhorn" | "bullseye" | "burn" | "bus" | "bus-alt" | "business-time" | "calculator" | "calendar" | "calendar-alt" | "calendar-check" | "calendar-day" | "calendar-minus" | "calendar-plus" | "calendar-times" | "calendar-week" | "camera" | "camera-retro" | "campground" | "candy-cane" | "cannabis" | "capsules" | "car" | "car-alt" | "car-battery" | "car-crash" | "car-side" | "caret-down" | "caret-left" | "caret-right" | "caret-square-down" | "caret-square-left" | "caret-square-right" | "caret-square-up" | "caret-up" | "carrot" | "cart-arrow-down" | "cart-plus" | "cash-register" | "cat" | "certificate" | "chair" | "chalkboard" | "chalkboard-teacher" | "charging-station" | "chart-area" | "chart-bar" | "chart-line" | "chart-pie" | "check" | "check-circle" | "check-double" | "check-square" | "cheese" | "chess" | "chess-bishop" | "chess-board" | "chess-king" | "chess-knight" | "chess-pawn" | "chess-queen" | "chess-rook" | "chevron-circle-down" | "chevron-circle-left" | "chevron-circle-right" | "chevron-circle-up" | "chevron-down" | "chevron-left" | "chevron-right" | "chevron-up" | "child" | "church" | "circle" | "circle-notch" | "city" | "clinic-medical" | "clipboard" | "clipboard-check" | "clipboard-list" | "clock" | "clock-o" | "clone" | "closed-captioning" | "cloud" | "cloud-download-alt" | "cloud-meatball" | "cloud-moon" | "cloud-moon-rain" | "cloud-rain" | "cloud-showers-heavy" | "cloud-sun" | "cloud-sun-rain" | "cloud-upload-alt" | "cocktail" | "code" | "code-branch" | "coffee" | "cog" | "cogs" | "coins" | "columns" | "comment" | "comment-alt" | "comment-dollar" | "comment-dots" | "comment-medical" | "comment-slash" | "comments" | "comments-dollar" | "compact-disc" | "compass" | "compress" | "compress-arrows-alt" | "concierge-bell" | "cookie" | "cookie-bite" | "copy" | "copyright" | "couch" | "credit-card" | "crop" | "crop-alt" | "cross" | "crosshairs" | "crow" | "crown" | "crutch" | "cube" | "cubes" | "cut" | "database" | "deaf" | "democrat" | "desktop" | "dharmachakra" | "diagnoses" | "dice" | "dice-d20" | "dice-d6" | "dice-five" | "dice-four" | "dice-one" | "dice-six" | "dice-three" | "dice-two" | "digital-tachograph" | "directions" | "divide" | "dizzy" | "dna" | "dog" | "dollar-sign" | "dolly" | "dolly-flatbed" | "donate" | "door-closed" | "door-open" | "dot-circle" | "dove" | "download" | "drafting-compass" | "dragon" | "draw-polygon" | "drum" | "drum-steelpan" | "drumstick-bite" | "dumbbell" | "dumpster" | "dumpster-fire" | "dungeon" | "edit" | "egg" | "eject" | "ellipsis-h" | "ellipsis-v" | "envelope" | "envelope-o" | "envelope-open" | "envelope-open-text" | "envelope-square" | "equals" | "eraser" | "ethernet" | "euro-sign" | "exchange-alt" | "exclamation" | "exclamation-circle" | "exclamation-triangle" | "expand" | "expand-arrows-alt" | "external-link-alt" | "external-link-square-alt" | "eye" | "eye-dropper" | "eye-slash" | "fan" | "fast-backward" | "fast-forward" | "fax" | "feather" | "feather-alt" | "female" | "fighter-jet" | "file" | "file-alt" | "file-archive" | "file-audio" | "file-code" | "file-contract" | "file-csv" | "file-download" | "file-excel" | "file-excel-o" | "file-export" | "file-image" | "file-import" | "file-invoice" | "file-invoice-dollar" | "file-medical" | "file-medical-alt" | "file-pdf" | "file-pdf-o" | "file-powerpoint" | "file-prescription" | "file-signature" | "file-upload" | "file-text" | "file-text-o" | "file-video" | "file-word" | "fill" | "fill-drip" | "film" | "filter" | "fingerprint" | "fire" | "floppy-o" | "fire-alt" | "fire-extinguisher" | "first-aid" | "fish" | "fist-raised" | "flag" | "flag-checkered" | "flag-usa" | "flask" | "flushed" | "folder" | "folder-minus" | "folder-open" | "folder-open-o" | "folder-plus" | "font" | "football-ball" | "forward" | "frog" | "frown" | "frown-open" | "funnel-dollar" | "futbol" | "gamepad" | "gas-pump" | "gavel" | "gem" | "genderless" | "ghost" | "gift" | "gifts" | "glass-cheers" | "glass-martini" | "glass-martini-alt" | "glass-whiskey" | "glasses" | "globe" | "globe-africa" | "globe-americas" | "globe-asia" | "globe-europe" | "golf-ball" | "gopuram" | "graduation-cap" | "greater-than" | "greater-than-equal" | "grimace" | "grin" | "grin-alt" | "grin-beam" | "grin-beam-sweat" | "grin-hearts" | "grin-squint" | "grin-squint-tears" | "grin-stars" | "grin-tears" | "grin-tongue" | "grin-tongue-squint" | "grin-tongue-wink" | "grin-wink" | "grip-horizontal" | "grip-lines" | "grip-lines-vertical" | "grip-vertical" | "guitar" | "h-square" | "hamburger" | "hammer" | "hamsa" | "hand-holding" | "hand-holding-heart" | "hand-holding-usd" | "hand-lizard" | "hand-middle-finger" | "hand-paper" | "hand-peace" | "hand-point-down" | "hand-point-left" | "hand-point-right" | "hand-point-up" | "hand-pointer" | "hand-rock" | "hand-scissors" | "hand-spock" | "hands" | "hands-helping" | "handshake" | "hanukiah" | "hard-hat" | "hashtag" | "hat-cowboy" | "hat-cowboy-side" | "hat-wizard" | "haykal" | "hdd" | "heading" | "headphones" | "headphones-alt" | "headset" | "heart" | "heart-broken" | "heartbeat" | "helicopter" | "highlighter" | "hiking" | "hippo" | "history" | "hockey-puck" | "holly-berry" | "home" | "horse" | "horse-head" | "hospital" | "hospital-alt" | "hospital-symbol" | "hot-tub" | "hotdog" | "hotel" | "hourglass" | "hourglass-end" | "hourglass-half" | "hourglass-start" | "house-damage" | "hryvnia" | "i-cursor" | "ice-cream" | "icicles" | "icons" | "id-badge" | "id-card" | "id-card-alt" | "igloo" | "image" | "images" | "inbox" | "indent" | "industry" | "infinity" | "info" | "info-circle" | "italic" | "jedi" | "joint" | "journal-whills" | "kaaba" | "key" | "keyboard" | "khanda" | "kiss" | "kiss-beam" | "kiss-wink-heart" | "kiwi-bird" | "landmark" | "language" | "laptop" | "laptop-code" | "laptop-medical" | "laugh" | "laugh-beam" | "laugh-squint" | "laugh-wink" | "layer-group" | "leaf" | "lemon" | "less-than" | "less-than-equal" | "level-down-alt" | "level-up-alt" | "life-ring" | "lightbulb" | "link" | "lira-sign" | "list" | "list-alt" | "list-ol" | "list-ul" | "location-arrow" | "lock" | "lock-open" | "long-arrow-alt-down" | "long-arrow-alt-left" | "long-arrow-alt-right" | "long-arrow-alt-up" | "low-vision" | "luggage-cart" | "magic" | "magnet" | "mail-bulk" | "mail-forward" | "mail-reply" | "male" | "map" | "map-marked" | "map-marked-alt" | "map-marker" | "map-marker-alt" | "map-pin" | "map-signs" | "marker" | "mars" | "mars-double" | "mars-stroke" | "mars-stroke-h" | "mars-stroke-v" | "mask" | "medal" | "medkit" | "meh" | "meh-blank" | "meh-rolling-eyes" | "memory" | "menorah" | "mercury" | "meteor" | "microchip" | "microphone" | "microphone-alt" | "microphone-alt-slash" | "microphone-slash" | "microscope" | "minus" | "minus-circle" | "minus-square" | "mitten" | "mobile" | "mobile-alt" | "money-bill" | "money-bill-alt" | "money-bill-wave" | "money-bill-wave-alt" | "money-check" | "money-check-alt" | "monument" | "moon" | "mortar-pestle" | "mosque" | "motorcycle" | "mountain" | "mouse" | "mouse-pointer" | "mug-hot" | "music" | "network-wired" | "neuter" | "newspaper" | "not-equal" | "notes-medical" | "object-group" | "object-ungroup" | "oil-can" | "om" | "otter" | "outdent" | "pager" | "paint-brush" | "paint-roller" | "palette" | "pallet" | "paper-plane" | "paperclip" | "parachute-box" | "paragraph" | "parking" | "passport" | "pastafarianism" | "paste" | "pause" | "pause-circle" | "paw" | "peace" | "pen" | "pen-alt" | "pen-fancy" | "pen-nib" | "pen-square" | "pencil-alt" | "pencil-ruler" | "pencil-square-o" | "people-carry" | "pepper-hot" | "percent" | "percentage" | "person-booth" | "phone" | "phone-alt" | "phone-slash" | "phone-square" | "phone-square-alt" | "phone-volume" | "photo-video" | "piggy-bank" | "pills" | "pizza-slice" | "place-of-worship" | "plane" | "plane-arrival" | "plane-departure" | "play" | "play-circle" | "plug" | "plus" | "plus-circle" | "plus-square" | "podcast" | "poll" | "poll-h" | "poo" | "poo-storm" | "poop" | "portrait" | "pound-sign" | "power-off" | "pray" | "praying-hands" | "prescription" | "prescription-bottle" | "prescription-bottle-alt" | "print" | "procedures" | "project-diagram" | "puzzle-piece" | "qrcode" | "question" | "question-circle" | "quidditch" | "quote-left" | "quote-right" | "quran" | "radiation" | "radiation-alt" | "rainbow" | "random" | "receipt" | "record-vinyl" | "recycle" | "redo" | "refresh" | "redo-alt" | "registered" | "remove-format" | "reply" | "reply-all" | "republican" | "restroom" | "retweet" | "ribbon" | "ring" | "road" | "robot" | "rocket" | "route" | "rss" | "rss-square" | "ruble-sign" | "ruler" | "ruler-combined" | "ruler-horizontal" | "ruler-vertical" | "running" | "rupee-sign" | "sad-cry" | "sad-tear" | "satellite" | "satellite-dish" | "save" | "school" | "screwdriver" | "scroll" | "sd-card" | "search" | "search-dollar" | "search-location" | "search-minus" | "search-plus" | "seedling" | "server" | "shapes" | "share" | "share-alt" | "share-alt-square" | "share-square" | "shekel-sign" | "shield-alt" | "ship" | "shipping-fast" | "shoe-prints" | "shopping-bag" | "shopping-basket" | "shopping-cart" | "shower" | "shuttle-van" | "sign" | "sign-in-alt" | "sign-language" | "sign-out" | "sign-out-alt" | "signal" | "signature" | "sim-card" | "sitemap" | "skating" | "skiing" | "skiing-nordic" | "skull" | "skull-crossbones" | "slash" | "sleigh" | "sliders-h" | "smile" | "smile-beam" | "smile-wink" | "smog" | "smoking" | "smoking-ban" | "sms" | "snowboarding" | "snowflake" | "snowman" | "snowplow" | "socks" | "solar-panel" | "sort" | "sort-alpha-down" | "sort-alpha-down-alt" | "sort-alpha-up" | "sort-alpha-up-alt" | "sort-amount-down" | "sort-amount-down-alt" | "sort-amount-up" | "sort-amount-up-alt" | "sort-down" | "sort-numeric-down" | "sort-numeric-down-alt" | "sort-numeric-up" | "sort-numeric-up-alt" | "sort-up" | "spa" | "space-shuttle" | "spell-check" | "spider" | "spinner" | "splotch" | "spray-can" | "square" | "square-full" | "square-root-alt" | "stamp" | "star" | "star-and-crescent" | "star-half" | "star-half-alt" | "star-o" | "star-of-david" | "star-of-life" | "step-backward" | "step-forward" | "stethoscope" | "sticky-note" | "stop" | "stop-circle" | "stopwatch" | "store" | "store-alt" | "stream" | "street-view" | "strikethrough" | "stroopwafel" | "subscript" | "subway" | "suitcase" | "suitcase-rolling" | "sun" | "superscript" | "surprise" | "swatchbook" | "swimmer" | "swimming-pool" | "synagogue" | "sync" | "sync-alt" | "syringe" | "table" | "table-tennis" | "tablet" | "tablet-alt" | "tablets" | "tachometer-alt" | "tag" | "tags" | "tape" | "tasks" | "taxi" | "teeth" | "teeth-open" | "temperature-high" | "temperature-low" | "tenge" | "terminal" | "text-height" | "text-width" | "th" | "th-large" | "th-list" | "theater-masks" | "thermometer" | "thermometer-empty" | "thermometer-full" | "thermometer-half" | "thermometer-quarter" | "thermometer-three-quarters" | "thumbs-down" | "thumbs-up" | "thumbtack" | "ticket-alt" | "times" | "times-circle" | "tint" | "tint-slash" | "tired" | "toggle-off" | "toggle-on" | "toilet" | "toilet-paper" | "toolbox" | "tools" | "tooth" | "torah" | "torii-gate" | "tractor" | "trademark" | "traffic-light" | "train" | "tram" | "transgender" | "transgender-alt" | "trash" | "trash-alt" | "trash-o" | "trash-restore" | "trash-restore-alt" | "tree" | "trophy" | "truck" | "truck-loading" | "truck-monster" | "truck-moving" | "truck-pickup" | "tshirt" | "tty" | "tv" | "umbrella" | "umbrella-beach" | "underline" | "undo" | "undo-alt" | "universal-access" | "university" | "unlink" | "unlock" | "unlock-alt" | "upload" | "user" | "user-alt" | "user-alt-slash" | "user-astronaut" | "user-check" | "user-circle" | "user-clock" | "user-cog" | "user-edit" | "user-friends" | "user-graduate" | "user-injured" | "user-lock" | "user-md" | "user-minus" | "user-ninja" | "user-nurse" | "user-plus" | "user-secret" | "user-shield" | "user-slash" | "user-tag" | "user-tie" | "user-times" | "users" | "users-cog" | "utensil-spoon" | "utensils" | "vector-square" | "venus" | "venus-double" | "venus-mars" | "vial" | "vials" | "video" | "video-slash" | "vihara" | "voicemail" | "volleyball-ball" | "volume-down" | "volume-mute" | "volume-off" | "volume-up" | "vote-yea" | "vr-cardboard" | "walking" | "wallet" | "warehouse" | "water" | "wave-square" | "weight" | "weight-hanging" | "wheelchair" | "wifi" | "wind" | "window-close" | "window-maximize" | "window-minimize" | "window-restore" | "wine-bottle" | "wine-glass" | "wine-glass-alt" | "won-sign" | "wrench" | "x-ray" | "yen-sign" | "yin-yang"; +export type fabIconKey = "500px" | "accessible-icon" | "accusoft" | "acquisitions-incorporated" | "adn" | "adobe" | "adversal" | "affiliatetheme" | "airbnb" | "algolia" | "alipay" | "amazon" | "amazon-pay" | "amilia" | "android" | "angellist" | "angrycreative" | "angular" | "app-store" | "app-store-ios" | "apper" | "apple" | "apple-pay" | "artstation" | "asymmetrik" | "atlassian" | "audible" | "autoprefixer" | "avianex" | "aviato" | "aws" | "bandcamp" | "battle-net" | "behance" | "behance-square" | "bimobject" | "bitbucket" | "bitcoin" | "bity" | "black-tie" | "blackberry" | "blogger" | "blogger-b" | "bluetooth" | "bluetooth-b" | "bootstrap" | "btc" | "buffer" | "buromobelexperte" | "buy-n-large" | "buysellads" | "canadian-maple-leaf" | "cc-amazon-pay" | "cc-amex" | "cc-apple-pay" | "cc-diners-club" | "cc-discover" | "cc-jcb" | "cc-mastercard" | "cc-paypal" | "cc-stripe" | "cc-visa" | "centercode" | "centos" | "chrome" | "chromecast" | "cloudscale" | "cloudsmith" | "cloudversify" | "codepen" | "codiepie" | "confluence" | "connectdevelop" | "contao" | "cotton-bureau" | "cpanel" | "creative-commons" | "creative-commons-by" | "creative-commons-nc" | "creative-commons-nc-eu" | "creative-commons-nc-jp" | "creative-commons-nd" | "creative-commons-pd" | "creative-commons-pd-alt" | "creative-commons-remix" | "creative-commons-sa" | "creative-commons-sampling" | "creative-commons-sampling-plus" | "creative-commons-share" | "creative-commons-zero" | "critical-role" | "css3" | "css3-alt" | "cuttlefish" | "d-and-d" | "d-and-d-beyond" | "dashcube" | "delicious" | "deploydog" | "deskpro" | "dev" | "deviantart" | "dhl" | "diaspora" | "digg" | "digital-ocean" | "discord" | "discourse" | "dochub" | "docker" | "draft2digital" | "dribbble" | "dribbble-square" | "dropbox" | "drupal" | "dyalog" | "earlybirds" | "ebay" | "edge" | "elementor" | "ello" | "ember" | "empire" | "envira" | "erlang" | "ethereum" | "etsy" | "evernote" | "expeditedssl" | "facebook" | "facebook-f" | "facebook-messenger" | "facebook-square" | "fantasy-flight-games" | "fedex" | "fedora" | "figma" | "firefox" | "first-order" | "first-order-alt" | "firstdraft" | "flickr" | "flipboard" | "fly" | "font-awesome" | "font-awesome-alt" | "font-awesome-flag" | "fonticons" | "fonticons-fi" | "fort-awesome" | "fort-awesome-alt" | "forumbee" | "foursquare" | "free-code-camp" | "freebsd" | "fulcrum" | "galactic-republic" | "galactic-senate" | "get-pocket" | "gg" | "gg-circle" | "git" | "git-alt" | "git-square" | "github" | "github-alt" | "github-square" | "gitkraken" | "gitlab" | "gitter" | "glide" | "glide-g" | "gofore" | "goodreads" | "goodreads-g" | "google" | "google-drive" | "google-play" | "google-plus" | "google-plus-g" | "google-plus-square" | "google-wallet" | "gratipay" | "grav" | "gripfire" | "grunt" | "gulp" | "hacker-news" | "hacker-news-square" | "hackerrank" | "hips" | "hire-a-helper" | "hooli" | "hornbill" | "hotjar" | "houzz" | "html5" | "hubspot" | "imdb" | "instagram" | "intercom" | "internet-explorer" | "invision" | "ioxhost" | "itch-io" | "itunes" | "itunes-note" | "java" | "jedi-order" | "jenkins" | "jira" | "joget" | "joomla" | "js" | "js-square" | "jsfiddle" | "kaggle" | "keybase" | "keycdn" | "kickstarter" | "kickstarter-k" | "korvue" | "laravel" | "lastfm" | "lastfm-square" | "leanpub" | "less" | "line" | "linkedin" | "linkedin-in" | "linode" | "linux" | "lyft" | "magento" | "mailchimp" | "mandalorian" | "markdown" | "mastodon" | "maxcdn" | "mdb" | "medapps" | "medium" | "medium-m" | "medrt" | "meetup" | "megaport" | "mendeley" | "microsoft" | "mix" | "mixcloud" | "mizuni" | "modx" | "monero" | "napster" | "neos" | "nimblr" | "node" | "node-js" | "npm" | "ns8" | "nutritionix" | "odnoklassniki" | "odnoklassniki-square" | "old-republic" | "opencart" | "openid" | "opera" | "optin-monster" | "orcid" | "osi" | "page4" | "pagelines" | "palfed" | "patreon" | "paypal" | "penny-arcade" | "periscope" | "phabricator" | "phoenix-framework" | "phoenix-squadron" | "php" | "pied-piper" | "pied-piper-alt" | "pied-piper-hat" | "pied-piper-pp" | "pinterest" | "pinterest-p" | "pinterest-square" | "playstation" | "product-hunt" | "pushed" | "python" | "qq" | "quinscape" | "quora" | "r-project" | "raspberry-pi" | "ravelry" | "react" | "reacteurope" | "readme" | "rebel" | "red-river" | "reddit" | "reddit-alien" | "reddit-square" | "redhat" | "renren" | "replyd" | "researchgate" | "resolving" | "rev" | "rocketchat" | "rockrms" | "safari" | "salesforce" | "sass" | "schlix" | "scribd" | "searchengin" | "sellcast" | "sellsy" | "servicestack" | "shirtsinbulk" | "shopware" | "simplybuilt" | "sistrix" | "sith" | "sketch" | "skyatlas" | "skype" | "slack" | "slack-hash" | "slideshare" | "snapchat" | "snapchat-ghost" | "snapchat-square" | "soundcloud" | "sourcetree" | "speakap" | "speaker-deck" | "spotify" | "squarespace" | "stack-exchange" | "stack-overflow" | "stackpath" | "staylinked" | "steam" | "steam-square" | "steam-symbol" | "sticker-mule" | "strava" | "stripe" | "stripe-s" | "studiovinari" | "stumbleupon" | "stumbleupon-circle" | "superpowers" | "supple" | "suse" | "swift" | "symfony" | "teamspeak" | "telegram" | "telegram-plane" | "tencent-weibo" | "the-red-yeti" | "themeco" | "themeisle" | "think-peaks" | "trade-federation" | "trello" | "tripadvisor" | "tumblr" | "tumblr-square" | "twitch" | "twitter" | "twitter-square" | "typo3" | "uber" | "ubuntu" | "uikit" | "umbraco" | "uniregistry" | "untappd" | "ups" | "usb" | "usps" | "ussunnah" | "vaadin" | "viacoin" | "viadeo" | "viadeo-square" | "viber" | "vimeo" | "vimeo-square" | "vimeo-v" | "vine" | "vk" | "vnv" | "vuejs" | "waze" | "weebly" | "weibo" | "weixin" | "whatsapp" | "whatsapp-square" | "whmcs" | "wikipedia-w" | "windows" | "wix" | "wizards-of-the-coast" | "wolf-pack-battalion" | "wordpress" | "wordpress-simple" | "wpbeginner" | "wpexplorer" | "wpforms" | "wpressr" | "xbox" | "xing" | "xing-square" | "y-combinator" | "yahoo" | "yammer" | "yandex" | "yandex-international" | "yarn" | "yelp" | "yoast" | "youtube" | "youtube-square" | "zhihu"; /** * Options for a message dialog button */ -interface DialogButton { - /** Button text */ - text?: string; - /** Button hint */ - hint?: string; - /** Button icon */ - icon?: IconClassName; - /** Click handler */ - click?: (e: MouseEvent) => void | false | Promise; - /** CSS class for button */ - cssClass?: string; - /** The code that is returned from message dialog function when this button is clicked. - * If this is set, and click event will not be defaultPrevented dialog will close. - */ - result?: string; -} -type DialogProviderType = "bsmodal" | "uidialog" | "panel"; +export interface DialogButton { + /** Button text */ + text?: string; + /** Button hint */ + hint?: string; + /** Button icon */ + icon?: IconClassName; + /** Click handler */ + click?: (e: MouseEvent) => void | false | Promise; + /** CSS class for button */ + cssClass?: string; + /** The code that is returned from message dialog function when this button is clicked. + * If this is set, and click event will not be defaultPrevented dialog will close. + */ + result?: string; +} +export type DialogProviderType = "bsmodal" | "uidialog" | "panel"; /** * Options that apply to all dialog types */ -interface DialogOptions { - /** Auto dispose dialog on close, default is true */ - autoDispose?: boolean; - /** True to auto open dialog */ - autoOpen?: boolean; - /** Backdrop type, static to make it modal, e.g. can't be closed by clicking outside */ - backdrop?: boolean | "static"; - /** List of buttons to show on the dialog */ - buttons?: DialogButton[]; - /** Vertically center modal */ - centered?: boolean; - /** Show close button, default is true */ - closeButton?: boolean; - /** Close dialog on escape key. Default is true for message dialogs. */ - closeOnEscape?: boolean; - /** CSS class to use for all dialog types. Is added to the top ui-dialog, panel or modal element */ - dialogClass?: string; - /** Dialog content/body element, or callback that will populate the content element */ - element?: HTMLElement | ArrayLike | ((element: HTMLElement) => void); - /** Enable / disable animation. Default is false for message dialogs, true for other dialogs */ - fade?: boolean; - /** Sets one of modal-fullscreen{-...-down} classes. Only used for bootstrap modals */ - fullScreen?: boolean | "sm-down" | "md-down" | "lg-down" | "xl-down" | "xxl-down"; - /** Modal option for jQuery UI dialog compatibility only. Not to be confused with Bootstrap modal. */ - modal?: boolean; - /** Event handler that is called when dialog is opened */ - onOpen?: (e?: Event) => void; - /** Event handler that is called when dialog is closed */ - onClose?: (result: string, e?: Event) => void; - /** Prefer Bootstrap modals to jQuery UI dialogs when both are available */ - preferBSModal?: boolean; - /** Prefer Panel even when Modal / jQuery UI is available */ - preferPanel?: boolean; - /** Callback to get options specific to the dialog provider type */ - providerOptions?: (type: DialogProviderType, opt: DialogOptions) => any; - /** Scrollable, sets content of the modal to scrollable, only for Bootstrap */ - scrollable?: boolean; - /** Size. Default is null for (500px) message dialogs, lg for normal dialogs */ - size?: "sm" | "md" | "lg" | "xl"; - /** Dialog title */ - title?: string; - /** Only used for jQuery UI dialogs for backwards compatibility */ - width?: number; +export interface DialogOptions { + /** Auto dispose dialog on close, default is true */ + autoDispose?: boolean; + /** True to auto open dialog */ + autoOpen?: boolean; + /** Backdrop type, static to make it modal, e.g. can't be closed by clicking outside */ + backdrop?: boolean | "static"; + /** List of buttons to show on the dialog */ + buttons?: DialogButton[]; + /** Vertically center modal */ + centered?: boolean; + /** Show close button, default is true */ + closeButton?: boolean; + /** Close dialog on escape key. Default is true for message dialogs. */ + closeOnEscape?: boolean; + /** CSS class to use for all dialog types. Is added to the top ui-dialog, panel or modal element */ + dialogClass?: string; + /** Dialog content/body element, or callback that will populate the content element */ + element?: HTMLElement | ArrayLike | ((element: HTMLElement) => void); + /** Enable / disable animation. Default is false for message dialogs, true for other dialogs */ + fade?: boolean; + /** Sets one of modal-fullscreen{-...-down} classes. Only used for bootstrap modals */ + fullScreen?: boolean | "sm-down" | "md-down" | "lg-down" | "xl-down" | "xxl-down"; + /** Modal option for jQuery UI dialog compatibility only. Not to be confused with Bootstrap modal. */ + modal?: boolean; + /** Event handler that is called when dialog is opened */ + onOpen?: (e?: Event) => void; + /** Event handler that is called when dialog is closed */ + onClose?: (result: string, e?: Event) => void; + /** Prefer Bootstrap modals to jQuery UI dialogs when both are available */ + preferBSModal?: boolean; + /** Prefer Panel even when Modal / jQuery UI is available */ + preferPanel?: boolean; + /** Callback to get options specific to the dialog provider type */ + providerOptions?: (type: DialogProviderType, opt: DialogOptions) => any; + /** Scrollable, sets content of the modal to scrollable, only for Bootstrap */ + scrollable?: boolean; + /** Size. Default is null for (500px) message dialogs, lg for normal dialogs */ + size?: "sm" | "md" | "lg" | "xl"; + /** Dialog title */ + title?: string; + /** Only used for jQuery UI dialogs for backwards compatibility */ + width?: number; } /** * Wrapper for different types of dialogs, including jQuery UI, Bootstrap modals, and Panels. */ -declare class Dialog { - private el; - private dialogResult; - /** - * Creates a new dialog. The type of the dialog will be determined based on - * the availability of jQuery UI, Bootstrap, and the options provided. - * @param opt Optional configuration for the dialog - */ - constructor(opt?: DialogOptions); - /** Default set of dialog options */ - static defaults: DialogOptions; - /** Default set of message dialog options */ - static messageDefaults: MessageDialogOptions; - /** - * Gets the dialog instance for the specified element. - * @param el The dialog body element (.s-Panel, .ui-dialog-content, or .modal-body) or the root element (.modal, .ui-dialog, .s-Panel) - * @returns The dialog instance, or null if the element is not a dialog. - */ - static getInstance(el: HTMLElement | ArrayLike): Dialog; - /** The result code of the button that is clicked. Also attached to the dialog element as data-dialog-result */ - get result(): string; - /** Closes dialog setting the result to null */ - close(): this; - /** Closes dialog with the result set to value */ - close(result: string): this; - /** - * Adds an event handler that is called when the dialog is closed. If the opt.before is true, the handler is called before the dialog is closed and - * the closing can be cancelled by calling preventDefault on the event object. - * @param handler The event handler function - * @param opt Options to determine whether the handler should be called before the dialog is closed, and whether the handler should be called only once. - * The default for oneOff is true unless opt.before is true. - * @returns The dialog instance - */ - onClose(handler: (result?: string, e?: Event) => void, opt?: { - before?: boolean; - oneOff?: boolean; - }): this; - /** - * Adds an event handler that is called when the dialog is closed. If the opt.before is true, the handler is called before the dialog is closed and - * the closing can be cancelled by calling preventDefault on the event object. Note that if the dialog is not yet initialized, the first argument must be - * the body element of the dialog. - * @param el The dialog body element (.s-Panel, .ui-dialog-content, or .modal-body) - * @param handler The event handler function - * @param opt Options to determine whether the handler should be called before the dialog is closed, and whether the handler should be called only once. - * The default for oneOff is true unless opt.before is true. - */ - static onClose(el: HTMLElement | ArrayLike, handler: (result?: string, e?: Event) => void, opt?: { - before?: boolean; - oneOff?: boolean; - }): void; - /** - * Adds an event handler that is called when the dialog is opened. If the second parameter is true, the handler is called before the dialog is opened and - * the opening can be cancelled by calling preventDefault on the event object. - * Note that if the dialog is not yet initialized, the first argument must be the body element of the dialog. - * @param handler The event handler function - * @param opt Options to determine whether the handler should be called before the dialog is opened, and whether the handler should be called only once. - * The default for oneOff is true unless opt.before is true. - * @returns The dialog instance - */ - onOpen(handler: (e?: Event) => void, opt?: { - before?: boolean; - oneOff?: boolean; - }): this; - /** - * Adds an event handler that is called when the dialog is opened. If the second parameter is true, the handler is called before the dialog is opened and - * the opening can be cancelled by calling preventDefault on the event object. Note that if the dialog is not yet initialized, the first argument must be - * the body element of the dialog. - * @param el The dialog body element (.s-Panel, .ui-dialog-content, or .modal-body) - * @param handler The event handler function - * @param opt Options to determine whether the handler should be called before the dialog is opened, and whether the handler should be called only once. - * The default for oneOff is true unless opt.before is true. - * @returns The dialog instance - */ - static onOpen(el: HTMLElement | ArrayLike, handler: (e?: Event) => void, opt?: { - before?: boolean; - oneOff?: boolean; - }): void; - /** Opens the dialog */ - open(): this; - /** Gets the title text of the dialog */ - title(): string; - /** Sets the title text of the dialog. */ - title(value: string): this; - /** Returns the type of the dialog, or null if no dialog on the current element or if the element is null, e.g. dialog was disposed */ - get type(): DialogProviderType; - /** Gets the body/content element of the dialog */ - getContentNode(): HTMLElement; - /** Gets the dialog element of the dialog */ - getDialogNode(): HTMLElement; - /** Gets the node that receives events for the dialog. It's .ui-dialog-content, .modal, or .panel-body */ - getEventsNode(): HTMLElement; - /** Gets the footer element of the dialog */ - getFooterNode(): HTMLElement; - /** Gets the header element of the dialog */ - getHeaderNode(): HTMLElement; - private onButtonClick; - private createBSButtons; - private createBSModal; - private createPanel; - private createUIDialog; - /** - * Disposes the dialog, removing it from the DOM and unbinding all event handlers. - */ - dispose(): void; +export declare class Dialog { + private el; + private dialogResult; + /** + * Creates a new dialog. The type of the dialog will be determined based on + * the availability of jQuery UI, Bootstrap, and the options provided. + * @param opt Optional configuration for the dialog + */ + constructor(opt?: DialogOptions); + /** Default set of dialog options */ + static defaults: DialogOptions; + /** Default set of message dialog options */ + static messageDefaults: MessageDialogOptions; + /** + * Gets the dialog instance for the specified element. + * @param el The dialog body element (.s-Panel, .ui-dialog-content, or .modal-body) or the root element (.modal, .ui-dialog, .s-Panel) + * @returns The dialog instance, or null if the element is not a dialog. + */ + static getInstance(el: HTMLElement | ArrayLike): Dialog; + /** The result code of the button that is clicked. Also attached to the dialog element as data-dialog-result */ + get result(): string; + /** Closes dialog setting the result to null */ + close(): this; + /** Closes dialog with the result set to value */ + close(result: string): this; + /** + * Adds an event handler that is called when the dialog is closed. If the opt.before is true, the handler is called before the dialog is closed and + * the closing can be cancelled by calling preventDefault on the event object. + * @param handler The event handler function + * @param opt Options to determine whether the handler should be called before the dialog is closed, and whether the handler should be called only once. + * The default for oneOff is true unless opt.before is true. + * @returns The dialog instance + */ + onClose(handler: (result?: string, e?: Event) => void, opt?: { + before?: boolean; + oneOff?: boolean; + }): this; + /** + * Adds an event handler that is called when the dialog is closed. If the opt.before is true, the handler is called before the dialog is closed and + * the closing can be cancelled by calling preventDefault on the event object. Note that if the dialog is not yet initialized, the first argument must be + * the body element of the dialog. + * @param el The dialog body element (.s-Panel, .ui-dialog-content, or .modal-body) + * @param handler The event handler function + * @param opt Options to determine whether the handler should be called before the dialog is closed, and whether the handler should be called only once. + * The default for oneOff is true unless opt.before is true. + */ + static onClose(el: HTMLElement | ArrayLike, handler: (result?: string, e?: Event) => void, opt?: { + before?: boolean; + oneOff?: boolean; + }): void; + /** + * Adds an event handler that is called when the dialog is opened. If the second parameter is true, the handler is called before the dialog is opened and + * the opening can be cancelled by calling preventDefault on the event object. + * Note that if the dialog is not yet initialized, the first argument must be the body element of the dialog. + * @param handler The event handler function + * @param opt Options to determine whether the handler should be called before the dialog is opened, and whether the handler should be called only once. + * The default for oneOff is true unless opt.before is true. + * @returns The dialog instance + */ + onOpen(handler: (e?: Event) => void, opt?: { + before?: boolean; + oneOff?: boolean; + }): this; + /** + * Adds an event handler that is called when the dialog is opened. If the second parameter is true, the handler is called before the dialog is opened and + * the opening can be cancelled by calling preventDefault on the event object. Note that if the dialog is not yet initialized, the first argument must be + * the body element of the dialog. + * @param el The dialog body element (.s-Panel, .ui-dialog-content, or .modal-body) + * @param handler The event handler function + * @param opt Options to determine whether the handler should be called before the dialog is opened, and whether the handler should be called only once. + * The default for oneOff is true unless opt.before is true. + * @returns The dialog instance + */ + static onOpen(el: HTMLElement | ArrayLike, handler: (e?: Event) => void, opt?: { + before?: boolean; + oneOff?: boolean; + }): void; + /** Opens the dialog */ + open(): this; + /** Gets the title text of the dialog */ + title(): string; + /** Sets the title text of the dialog. */ + title(value: string): this; + /** Returns the type of the dialog, or null if no dialog on the current element or if the element is null, e.g. dialog was disposed */ + get type(): DialogProviderType; + /** Gets the body/content element of the dialog */ + getContentNode(): HTMLElement; + /** Gets the dialog element of the dialog */ + getDialogNode(): HTMLElement; + /** Gets the node that receives events for the dialog. It's .ui-dialog-content, .modal, or .panel-body */ + getEventsNode(): HTMLElement; + /** Gets the footer element of the dialog */ + getFooterNode(): HTMLElement; + /** Gets the header element of the dialog */ + getHeaderNode(): HTMLElement; + private onButtonClick; + private createBSButtons; + private createBSModal; + private createPanel; + private createUIDialog; + /** + * Disposes the dialog, removing it from the DOM and unbinding all event handlers. + */ + dispose(): void; } /** Returns true if Bootstrap modal is available */ -declare function hasBSModal(): boolean; +export declare function hasBSModal(): boolean; /** Returns true if jQuery UI dialog is available */ -declare function hasUIDialog(): boolean; +export declare function hasUIDialog(): boolean; /** Calls Bootstrap button.noConflict method if both jQuery UI and Bootstrap buttons are available in the page */ -declare function uiAndBSButtonNoConflict(): void; +export declare function uiAndBSButtonNoConflict(): void; /** * Creates a dialog button which, by default, has "Yes" as caption (localized) and "ok" as the result. * @param opt - Optional configuration for the dialog button. * @returns The dialog button with the specified configuration. */ -declare function okDialogButton(opt?: DialogButton): DialogButton; +export declare function okDialogButton(opt?: DialogButton): DialogButton; /** * Creates a dialog button which, by default, has "Yes" as the caption (localized) and "yes" as the result. * @param opt - Optional configuration for the dialog button. * @returns The dialog button with the specified configuration. */ -declare function yesDialogButton(opt?: DialogButton): DialogButton; +export declare function yesDialogButton(opt?: DialogButton): DialogButton; /** * Creates a dialog button which, by default, has "No" as the caption (localized) and "no" as the result. * @param opt - Optional configuration for the dialog button. * @returns The dialog button with the specified configuration. */ -declare function noDialogButton(opt?: DialogButton): DialogButton; +export declare function noDialogButton(opt?: DialogButton): DialogButton; /** * Creates a dialog button which, by default, has "Cancel" as the caption (localized) and "cancel" as the result. * @param opt - Optional configuration for the dialog button. * @returns The dialog button with the specified configuration. */ -declare function cancelDialogButton(opt?: DialogButton): DialogButton; +export declare function cancelDialogButton(opt?: DialogButton): DialogButton; /** * Namespace containing localizable text constants for dialogs. */ -declare namespace DialogTexts { - /** - * Title for alert dialogs. - */ - const AlertTitle: string; - /** - * Text for the cancel button in dialogs. - */ - const CancelButton: string; - /** - * Text for the close button in dialogs. - */ - const CloseButton: string; - /** - * Title for confirmation dialogs. - */ - const ConfirmationTitle: string; - /** - * Title for information dialogs. - */ - const InformationTitle: string; - /** - * Hint for maximizing dialogs. - */ - const MaximizeHint: string; - /** - * Text for the "No" button in dialogs. - */ - const NoButton: string; - /** - * Text for the "OK" button in dialogs. - */ - const OkButton: string; - /** - * Hint for restoring dialogs. - */ - const RestoreHint: string; - /** - * Title for success dialogs. - */ - const SuccessTitle: string; - /** - * Title for warning dialogs. - */ - const WarningTitle: string; - /** - * Text for the "Yes" button in dialogs. - */ - const YesButton: string; +export declare namespace DialogTexts { + /** + * Title for alert dialogs. + */ + const AlertTitle: string; + /** + * Text for the cancel button in dialogs. + */ + const CancelButton: string; + /** + * Text for the close button in dialogs. + */ + const CloseButton: string; + /** + * Title for confirmation dialogs. + */ + const ConfirmationTitle: string; + /** + * Title for information dialogs. + */ + const InformationTitle: string; + /** + * Hint for maximizing dialogs. + */ + const MaximizeHint: string; + /** + * Text for the "No" button in dialogs. + */ + const NoButton: string; + /** + * Text for the "OK" button in dialogs. + */ + const OkButton: string; + /** + * Hint for restoring dialogs. + */ + const RestoreHint: string; + /** + * Title for success dialogs. + */ + const SuccessTitle: string; + /** + * Title for warning dialogs. + */ + const WarningTitle: string; + /** + * Text for the "Yes" button in dialogs. + */ + const YesButton: string; } /** * Options that apply to all message dialog types */ -interface MessageDialogOptions extends DialogOptions { - /** HTML encode the message, default is true */ - htmlEncode?: boolean; - /** Wrap the message in a `
` element, so that line endings are preserved, default is true */
-    preWrap?: boolean;
+export interface MessageDialogOptions extends DialogOptions {
+	/** HTML encode the message, default is true */
+	htmlEncode?: boolean;
+	/** Wrap the message in a `
` element, so that line endings are preserved, default is true */
+	preWrap?: boolean;
 }
 /**
  * Displays an alert dialog
@@ -564,15 +559,15 @@ interface MessageDialogOptions extends DialogOptions {
  * @example
  * alertDialog("An error occured!"); }
  */
-declare function alertDialog(message: string, options?: MessageDialogOptions): Partial;
+export declare function alertDialog(message: string, options?: MessageDialogOptions): Partial;
 /** Additional options for confirm dialog */
-interface ConfirmDialogOptions extends MessageDialogOptions {
-    /** True to also add a cancel button */
-    cancelButton?: boolean;
-    /** Event handler for cancel button click */
-    onCancel?: () => void;
-    /** Event handler for no button click */
-    onNo?: () => void;
+export interface ConfirmDialogOptions extends MessageDialogOptions {
+	/** True to also add a cancel button */
+	cancelButton?: boolean;
+	/** Event handler for cancel button click */
+	onCancel?: () => void;
+	/** Event handler for no button click */
+	onNo?: () => void;
 }
 /**
  * Display a confirmation dialog
@@ -585,7 +580,7 @@ interface ConfirmDialogOptions extends MessageDialogOptions {
  *     // do something when yes is clicked
  * }
  */
-declare function confirmDialog(message: string, onYes: () => void, options?: ConfirmDialogOptions): Partial;
+export declare function confirmDialog(message: string, onYes: () => void, options?: ConfirmDialogOptions): Partial;
 /**
  * Display an information dialog
  * @param message The message to display
@@ -597,7 +592,7 @@ declare function confirmDialog(message: string, onYes: () => void, options?: Con
  *     // do something when OK is clicked
  * }
  */
-declare function informationDialog(message: string, onOk?: () => void, options?: MessageDialogOptions): Partial;
+export declare function informationDialog(message: string, onOk?: () => void, options?: MessageDialogOptions): Partial;
 /**
  * Display a success dialog
  * @param message The message to display
@@ -609,7 +604,7 @@ declare function informationDialog(message: string, onOk?: () => void, options?:
  *     // do something when OK is clicked
  * }
  */
-declare function successDialog(message: string, onOk?: () => void, options?: MessageDialogOptions): Partial;
+export declare function successDialog(message: string, onOk?: () => void, options?: MessageDialogOptions): Partial;
 /**
  * Display a warning dialog
  * @param message The message to display
@@ -618,731 +613,726 @@ declare function successDialog(message: string, onOk?: () => void, options?: Mes
  * @example
  * warningDialog("Something is odd!");
  */
-declare function warningDialog(message: string, options?: MessageDialogOptions): Partial;
+export declare function warningDialog(message: string, options?: MessageDialogOptions): Partial;
 /** Options for `iframeDialog` **/
-interface IFrameDialogOptions {
-    html?: string;
+export interface IFrameDialogOptions {
+	html?: string;
 }
 /**
  * Display a dialog that shows an HTML block in an IFRAME, which is usually returned from server callbacks
  * @param options The options
  */
-declare function iframeDialog(options: IFrameDialogOptions): Partial;
-
-declare function getjQuery(): any;
+export declare function iframeDialog(options: IFrameDialogOptions): Partial;
+export declare function getjQuery(): any;
 /** Returns true if Bootstrap 3 is loaded */
-declare function isBS3(): boolean;
+export declare function isBS3(): boolean;
 /** Returns true if Bootstrap 5+ is loaded */
-declare function isBS5Plus(): boolean;
-
-interface ServiceError {
-    Code?: string;
-    Arguments?: string;
-    Message?: string;
-    Details?: string;
-    ErrorId?: string;
-}
-interface ServiceResponse {
-    Error?: ServiceError;
-}
-interface ServiceRequest {
-}
-interface SaveRequest extends ServiceRequest {
-    EntityId?: any;
-    Entity?: TEntity;
-    Localizations?: any;
-}
-interface SaveRequestWithAttachment extends SaveRequest {
-    Attachments?: any[];
-}
-interface SaveResponse extends ServiceResponse {
-    EntityId?: any;
-}
-interface SaveWithLocalizationRequest extends SaveRequest {
-    Localizations?: {
-        [key: string]: TEntity;
-    };
-}
-interface DeleteRequest extends ServiceRequest {
-    EntityId?: any;
-}
-interface DeleteResponse extends ServiceResponse {
-}
-interface UndeleteRequest extends ServiceRequest {
-    EntityId?: any;
-}
-interface UndeleteResponse extends ServiceResponse {
-}
-declare enum ColumnSelection {
-    List = 0,
-    KeyOnly = 1,
-    Details = 2,
-    None = 3,
-    IdOnly = 4,
-    Lookup = 5
-}
-declare enum RetrieveColumnSelection {
-    details = 0,
-    keyOnly = 1,
-    list = 2,
-    none = 3,
-    idOnly = 4,
-    lookup = 5
-}
-interface ListRequest extends ServiceRequest {
-    Skip?: number;
-    Take?: number;
-    Sort?: string[];
-    ContainsText?: string;
-    ContainsField?: string;
-    Criteria?: any[];
-    EqualityFilter?: any;
-    IncludeDeleted?: boolean;
-    ExcludeTotalCount?: boolean;
-    ColumnSelection?: ColumnSelection;
-    IncludeColumns?: string[];
-    ExcludeColumns?: string[];
-    ExportColumns?: string[];
-    DistinctFields?: string[];
-}
-interface ListResponse extends ServiceResponse {
-    Entities?: TEntity[];
-    Values?: any[];
-    TotalCount?: number;
-    Skip?: number;
-    Take?: number;
-}
-interface RetrieveRequest extends ServiceRequest {
-    EntityId?: any;
-    ColumnSelection?: RetrieveColumnSelection;
-    IncludeColumns?: string[];
-    ExcludeColumns?: string[];
-}
-interface RetrieveResponse extends ServiceResponse {
-    Entity?: TEntity;
-}
-interface RetrieveLocalizationRequest extends RetrieveRequest {
-}
-interface RetrieveLocalizationResponse extends ServiceResponse {
-    Entities?: {
-        [key: string]: TEntity;
-    };
-}
-interface RequestErrorInfo {
-    status?: number;
-    statusText?: string;
-    responseText?: string;
-}
-interface ServiceOptions extends RequestInit {
-    allowRedirect?: boolean;
-    async?: boolean;
-    blockUI?: boolean;
-    headers?: Record;
-    request?: any;
-    service?: string;
-    url?: string;
-    errorMode?: 'alert' | 'notification' | 'none';
-    onCleanup?(): void;
-    /** Should return true if the error is handled (e.g. notification shown). Otherwise the error may be shown twice. */
-    onError?(response: TResponse, info?: RequestErrorInfo): void | boolean;
-    onSuccess?(response: TResponse): void;
+export declare function isBS5Plus(): boolean;
+export interface ServiceError {
+	Code?: string;
+	Arguments?: string;
+	Message?: string;
+	Details?: string;
+	ErrorId?: string;
+}
+export interface ServiceResponse {
+	Error?: ServiceError;
+}
+export interface ServiceRequest {
+}
+export interface SaveRequest extends ServiceRequest {
+	EntityId?: any;
+	Entity?: TEntity;
+	Localizations?: any;
+}
+export interface SaveRequestWithAttachment extends SaveRequest {
+	Attachments?: any[];
+}
+export interface SaveResponse extends ServiceResponse {
+	EntityId?: any;
+}
+export interface SaveWithLocalizationRequest extends SaveRequest {
+	Localizations?: {
+		[key: string]: TEntity;
+	};
+}
+export interface DeleteRequest extends ServiceRequest {
+	EntityId?: any;
+}
+export interface DeleteResponse extends ServiceResponse {
+}
+export interface UndeleteRequest extends ServiceRequest {
+	EntityId?: any;
+}
+export interface UndeleteResponse extends ServiceResponse {
+}
+export declare enum ColumnSelection {
+	List = 0,
+	KeyOnly = 1,
+	Details = 2,
+	None = 3,
+	IdOnly = 4,
+	Lookup = 5
+}
+export declare enum RetrieveColumnSelection {
+	details = 0,
+	keyOnly = 1,
+	list = 2,
+	none = 3,
+	idOnly = 4,
+	lookup = 5
+}
+export interface ListRequest extends ServiceRequest {
+	Skip?: number;
+	Take?: number;
+	Sort?: string[];
+	ContainsText?: string;
+	ContainsField?: string;
+	Criteria?: any[];
+	EqualityFilter?: any;
+	IncludeDeleted?: boolean;
+	ExcludeTotalCount?: boolean;
+	ColumnSelection?: ColumnSelection;
+	IncludeColumns?: string[];
+	ExcludeColumns?: string[];
+	ExportColumns?: string[];
+	DistinctFields?: string[];
+}
+export interface ListResponse extends ServiceResponse {
+	Entities?: TEntity[];
+	Values?: any[];
+	TotalCount?: number;
+	Skip?: number;
+	Take?: number;
+}
+export interface RetrieveRequest extends ServiceRequest {
+	EntityId?: any;
+	ColumnSelection?: RetrieveColumnSelection;
+	IncludeColumns?: string[];
+	ExcludeColumns?: string[];
+}
+export interface RetrieveResponse extends ServiceResponse {
+	Entity?: TEntity;
+}
+export interface RetrieveLocalizationRequest extends RetrieveRequest {
+}
+export interface RetrieveLocalizationResponse extends ServiceResponse {
+	Entities?: {
+		[key: string]: TEntity;
+	};
+}
+export interface RequestErrorInfo {
+	status?: number;
+	statusText?: string;
+	responseText?: string;
+}
+export interface ServiceOptions extends RequestInit {
+	allowRedirect?: boolean;
+	async?: boolean;
+	blockUI?: boolean;
+	headers?: Record;
+	request?: any;
+	service?: string;
+	url?: string;
+	errorMode?: "alert" | "notification" | "none";
+	onCleanup?(): void;
+	/** Should return true if the error is handled (e.g. notification shown). Otherwise the error may be shown twice. */
+	onError?(response: TResponse, info?: RequestErrorInfo): void | boolean;
+	onSuccess?(response: TResponse): void;
+}
+export declare namespace ErrorHandling {
+	/**
+	 * Shows a service error as an alert dialog / notification. If the error
+	 * is null, has no message or code, it shows a generic error message.
+	 */
+	function showServiceError(error: ServiceError, errorInfo?: RequestErrorInfo, errorMode?: "alert" | "notification"): void;
+	/**
+	 * Runtime error handler that shows a runtime error as a notification
+	 * by default only in development mode (@see isDevelopmentMode)
+	 * This function is assigned as window.onerror handler in
+	 * ScriptInit.ts for Serenity applications so that developers
+	 * can notice an error without having to check the browser console.
+	 */
+	function runtimeErrorHandler(message: string, filename?: string, lineno?: number, colno?: number, error?: Error): void;
+	/**
+	 * Determines if the current environment is development mode.
+	 * The runtimeErrorHandler (window.onerror) shows error notifications only
+	 * when this function returns true. The default implementation considers
+	 * the environment as development mode if the host is localhost, 127.0.0.1, ::1,
+	 * or a domain name that ends with .local/.localhost.
+	 * @returns true if the current environment is development mode, false otherwise.
+	 */
+	function isDevelopmentMode(): boolean;
+	/**
+	 * Unhandled promise rejection error handler. It's purpose is to
+	 * ignore logging serviceCall / serviceFetch errors as they have built-in
+	 * error handling but browser logs it in the console, while Node crashes.
+	 * Include below code in script-init/errorhandling.ts to enable:
+	 * window.addEventListener("unhandledrejection", ErrorHandling.unhandledRejectionHandler);
+	 */
+	function unhandledRejectionHandler(err: PromiseRejectionEvent): void;
 }
-
-declare namespace ErrorHandling {
-    /**
-     * Shows a service error as an alert dialog / notification. If the error
-     * is null, has no message or code, it shows a generic error message.
-     */
-    function showServiceError(error: ServiceError, errorInfo?: RequestErrorInfo, errorMode?: 'alert' | 'notification'): void;
-    /**
-     * Runtime error handler that shows a runtime error as a notification
-     * by default only in development mode (@see isDevelopmentMode)
-     * This function is assigned as window.onerror handler in
-     * ScriptInit.ts for Serenity applications so that developers
-     * can notice an error without having to check the browser console.
-     */
-    function runtimeErrorHandler(message: string, filename?: string, lineno?: number, colno?: number, error?: Error): void;
-    /**
-     * Determines if the current environment is development mode.
-     * The runtimeErrorHandler (window.onerror) shows error notifications only
-     * when this function returns true. The default implementation considers
-     * the environment as development mode if the host is localhost, 127.0.0.1, ::1,
-     * or a domain name that ends with .local/.localhost.
-     * @returns true if the current environment is development mode, false otherwise.
-     */
-    function isDevelopmentMode(): boolean;
-    /**
-     * Unhandled promise rejection error handler. It's purpose is to
-     * ignore logging serviceCall / serviceFetch errors as they have built-in
-     * error handling but browser logs it in the console, while Node crashes.
-     * Include below code in script-init/errorhandling.ts to enable:
-     * window.addEventListener("unhandledrejection", ErrorHandling.unhandledRejectionHandler);
-     */
-    function unhandledRejectionHandler(err: PromiseRejectionEvent): void;
-}
-
 /**
  * Represents a Fluent object, which is similar to jQuery but works for only one element.
  * It implements the `ArrayLike` interface and can have 0 (null) or 1 element.
  *
  * @typeparam TElement The type of the underlying HTML element.
  */
-interface Fluent extends ArrayLike {
-    /**
-     * Adds one or more classes to the element. Any falsy value is ignored.
-     *
-     * @param value The class or classes to add. It can be a string, boolean, or an array of strings or booleans.
-     * @returns The Fluent object itself.
-     */
-    addClass(value: string | boolean | (string | boolean)[]): this;
-    /**
-     * Appends content to the element.
-     *
-     * @param child The content to append. It can be a string, a Node object, or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    append(child: string | Node | Fluent): this;
-    /**
-     * Inserts content after the element.
-     *
-     * @param content The content to insert. It can be a string, a Node object, or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    after(content: string | Node | Fluent): this;
-    /**
-     * Appends the element to the specified parent element.
-     *
-     * @param parent The parent element to append to. It can be an Element object or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    appendTo(parent: Element | Fluent): this;
-    /**
-     * Gets the value of the specified attribute.
-     *
-     * @param name The name of the attribute.
-     * @returns The value of the attribute.
-     */
-    attr(name: string): string;
-    /**
-     * Sets the value of the specified attribute.
-     *
-     * @param name The name of the attribute.
-     * @param value The value of the attribute. If the value is falsy the attribute is removed.
-     * @returns The Fluent object itself if a value is provided.
-     */
-    attr(name: string, value: string | number | boolean | null | undefined): this;
-    /**
-     * Inserts content before the element.
-     *
-     * @param content The content to insert. It can be a string, a Node object, or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    before(content: string | Node | Fluent): this;
-    /**
-     * Gets the children of the element as an array (not Fluent)
-     *
-     * @param selector Optional. A CSS selector to filter the children.
-     * @returns An array of HTMLElement objects representing the children.
-     */
-    children(selector?: string): TElement[];
-    /**
-     * Sets (overrides) the class attribute of the element. Any falsy value is ignored.
-     *
-     * @param value The class or classes to add. It can be a string, boolean, or an array of strings or booleans.
-     * @returns The Fluent object itself.
-     */
-    class(value: string | boolean | (string | boolean)[]): this;
-    /**
-     * Triggers a click event on the element.
-     *
-     * @returns The Fluent object itself.
-     */
-    click(): this;
-    /**
-     * Adds a click event listener on the element.
-     *
-     * @param listener A callback function to execute when the click event is triggered.
-     * @returns The Fluent object itself.
-     */
-    click(listener: (e: MouseEvent) => void): this;
-    /**
-     * Gets the closest ancestor of the element that matches the specified selector.
-     *
-     * @param selector A CSS selector to match against.
-     * @returns A Fluent object representing the closest ancestor element.
-     */
-    closest(selector: string): Fluent;
-    /**
-     * Gets or sets the value of the specified data attribute.
-     *
-     * @param name The name of the data attribute.
-     * @returns The value of the data attribute if no value is provided, or the Fluent object itself if a value is provided.
-     */
-    data(name: string): string;
-    data(name: string, value: string): this;
-    /**
-     * Executes a callback function for the element in the Fluent object if it is not null.
-     *
-     * @param callback The callback function to execute for each element.
-     * @returns The Fluent object itself.
-     */
-    each(callback: (el: TElement) => void): this;
-    /**
-     * Gets the underlying HTML element.
-     *
-     * @returns The underlying HTML element.
-     */
-    getNode(): TElement;
-    /**
-     * Removes all child nodes from the element. It also clears event handlers attached via Fluent, and disposes any attached widgets.
-     *
-     * @returns The Fluent object itself.
-     */
-    empty(): this;
-    /**
-     * Finds all elements that match the specified selector within the element.
-     *
-     * @typeparam TElement The type of the found elements.
-     * @param selector A CSS selector to match against.
-     * @returns An array of elements that match the selector.
-     */
-    findAll(selector: string): TElement[];
-    /**
-     * Finds each element that matches the specified selector within the element and executes a callback function for each found element as a Fluent object.
-     *
-     * @typeparam TElement The type of the found elements.
-     * @param selector A CSS selector to match against.
-     * @param callback The callback function to execute for each found element. It receives a Fluent object for each element.
-     * @returns The Fluent object itself.
-     */
-    findEach(selector: string, callback: (el: Fluent, index: number) => void): this;
-    /**
-     * Finds the first element that matches the specified selector within the element.
-     *
-     * @typeparam TElement The type of the found element.
-     * @param selector A CSS selector to match against.
-     * @returns A Fluent object representing the first element that matches the selector.
-     */
-    findFirst(selector: string): Fluent;
-    /**
-     * Sets focus on the element.
-     *
-     * @returns The Fluent object itself.
-     */
-    focus(): this;
-    /**
-     * Checks if the element has the specified class.
-     *
-     * @param klass The class to check for.
-     * @returns `true` if the element has the class, `false` otherwise.
-     */
-    hasClass(klass: string): boolean;
-    /**
-     * Hides the element by setting its display property to "none".
-     *
-     * @returns The Fluent object itself.
-     */
-    hide(): this;
-    /**
-     * Gets the widget associated with the element.
-     *
-     * @typeparam TWidget The type of the widget.
-     * @param type Optional. The constructor function of the widget.
-     * @returns The widget associated with the element.
-     */
-    getWidget(type?: {
-        new (...args: any[]): TWidget;
-    }): TWidget;
-    /**
-     * Inserts the element after the specified reference element.
-     *
-     * @param referenceNode The reference element to insert after. It can be an HTMLElement object or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    insertAfter(referenceNode: HTMLElement | Fluent): this;
-    /**
-     * Inserts the element before the specified reference element.
-     *
-     * @param referenceNode The reference element to insert before. It can be an HTMLElement object or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    insertBefore(referenceNode: HTMLElement | Fluent): this;
-    /**
-     * Gets an iterator for the elements in the Fluent object.
-     *
-     * @returns An iterator for the elements in the Fluent object.
-     */
-    [Symbol.iterator]: TElement[];
-    /**
-     * Gets the element at the specified index.
-     *
-     * @param n The index of the element.
-     * @returns The element at the specified index.
-     */
-    readonly [n: number]: TElement;
-    /**
-     * Gets the number of elements in the Fluent object. Can only be 1 or 0.
-     */
-    readonly length: number;
-    /**
-     * Removes an event listener from the element.
-     *
-     * @typeparam K The type of the event.
-     * @param type The type of the event. It can include a ".namespace" similar to jQuery.
-     * @param listener The event listener to remove.
-     * @returns The Fluent object itself.
-     */
-    off(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): this;
-    off(type: string): this;
-    off(type: string, listener: EventListener): this;
-    off(type: string, selector: string, delegationHandler: Function): this;
-    /**
-     * Adds an event listener to the element. It is possible to use delegated events like jQuery.
-     *
-     * @typeparam K The type of the event.
-     * @param type The type of the event. It can include a ".namespace" similar to jQuery.
-     * @param listener The event listener to add.
-     * @returns The Fluent object itself.
-     */
-    on(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): this;
-    on(type: string, listener: EventListener): this;
-    on(type: string, selector: string, delegationHandler: Function): this;
-    /**
-     * Adds a one-time event listener to the element. It is possible to use delegated events like jQuery.
-     *
-     * @typeparam K The type of the event.
-     * @param type The type of the event. It can include a ".namespace" similar to jQuery.
-     * @param listener The event listener to add.
-     * @returns The Fluent object itself.
-     */
-    one(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): this;
-    one(type: string, listener: EventListener): this;
-    one(type: string, selector: string, delegationHandler: Function): this;
-    /**
-     * Checks if the element matches the specified selector.
-     *
-     * @param selector A CSS selector to match against.
-     * @returns `true` if the element matches the selector, `false` otherwise.
-     */
-    matches(selector: string): boolean;
-    /**
-     * Gets the next sibling element that matches the specified selector, or the first sibling if no selector is provided..
-     *
-     * @param selector Optional. A CSS selector to filter the next sibling.
-     * @returns A Fluent object representing the next sibling element.
-     */
-    nextSibling(selector?: string): Fluent;
-    /**
-     * Gets the parent element of the element.
-     *
-     * @returns A Fluent object representing the parent element.
-     */
-    parent(): Fluent;
-    /**
-     * Prepends content to the element.
-     *
-     * @param child The content to prepend. It can be a string, a Node object, or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    prepend(child: string | Node | Fluent): this;
-    /**
-     * Prepends the element to the specified parent element.
-     *
-     * @param parent The parent element to prepend to. It can be an Element object or another Fluent object.
-     * @returns The Fluent object itself.
-     */
-    prependTo(parent: Element | Fluent): this;
-    /**
-     * Gets the previous sibling element that matches the specified selector, or the first sibling if no selector is provided.
-     *
-     * @param selector Optional. A CSS selector to filter the previous sibling.
-     * @returns A Fluent object representing the previous sibling element.
-     */
-    prevSibling(selector?: string): Fluent;
-    /**
-     * Removes the element from the DOM. It also removes event handlers and disposes widgets by calling "disposing" event handlers.
-     *
-     * @returns The Fluent object itself.
-     */
-    remove(): this;
-    /**
-     * Removes the specified attribute from the element.
-     *
-     * @param name The name of the attribute to remove.
-     * @returns The Fluent object itself.
-     */
-    removeAttr(name: string): this;
-    /**
-     * Removes one or more classes from the element. Any falsy value is ignored.
-     *
-     * @param value The class or classes to remove. It can be a string, boolean, or an array of strings or booleans.
-     * @returns The Fluent object itself.
-     */
-    removeClass(value: string | boolean | (string | boolean)[]): this;
-    /**
-     * Shows the element by setting its display property to empty string.
-     *
-     * @returns The Fluent object itself.
-     */
-    show(): this;
-    /**
-     * Executes a callback function to modify the inline style of the element.
-     *
-     * @param callback The callback function to modify the inline style.
-     * @returns The Fluent object itself.
-     */
-    style(callback: (css: CSSStyleDeclaration) => void): this;
-    /**
-     * Gets or sets the text content of the element.
-     *
-     * @returns The text content of the element if no value is provided, or the Fluent object itself if a value is provided.
-     */
-    text(): string;
-    text(value: string): this;
-    /**
-     * Toggles the visibility of the element.
-     *
-     * @param flag Optional. A flag indicating whether to show or hide the element. If not provided, the visibility will be toggled.
-     * @returns The Fluent object itself.
-     */
-    toggle(flag?: boolean): this;
-    /**
-     * Toggles one or more classes on the element. If the class exists, it is removed; otherwise, it is added.
-     *
-     * @param value The class or classes to toggle. It can be a string, boolean, or an array of strings or booleans.
-     * @returns The Fluent object itself.
-     */
-    toggleClass(value: (string | boolean | (string | boolean)[]), add?: boolean): this;
-    /**
-     * Triggers a specified event on the element.
-     *
-     * @param type The type of the event to trigger.
-     * @param args Optional. An object that specifies event-specific initialization properties.
-     * @returns The Fluent object itself.
-     */
-    trigger(type: string, args?: any): this;
-    /**
-     * Tries to get the widget associated with the element.
-     *
-     * @typeparam TWidget The type of the widget.
-     * @param type Optional. The constructor function of the widget.
-     * @returns The widget associated with the element, or `null` if no widget is found.
-     */
-    tryGetWidget(type?: {
-        new (...args: any[]): TWidget;
-    }): TWidget;
-    /**
-     * Gets or sets the value of the element.
-     *
-     * @param value The value to set. If no value is provided, returns the current value of the element.
-     * @returns The value of the element if no value is provided, or the Fluent object itself if a value is provided.
-     */
-    val(value: string): this;
-    val(): string;
-}
-declare function Fluent(tag: K): Fluent;
-declare function Fluent(element: TElement): Fluent;
-declare function Fluent(element: EventTarget): Fluent;
-declare namespace Fluent {
-    var ready: (callback: () => void) => void;
-    var byId: (id: string) => Fluent;
-    var findAll: (selector: string) => TElement[];
-    var findEach: (selector: string, callback: (el: Fluent) => void) => void;
-    var findFirst: (selector: string) => Fluent;
-}
-declare namespace Fluent {
-    /**
-     * Adds an event listener to the element. It is possible to use delegated events like jQuery.
-     *
-     * @typeparam K The type of the event.
-     * @param element The target element
-     * @param type The type of the event. It can include a ".namespace" similar to jQuery.
-     * @param listener The event listener to add.
-     */
-    function on(element: EventTarget, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): void;
-    function on(element: EventTarget, type: string, listener: EventListener): void;
-    function on(element: EventTarget, type: string, selector: string, delegationHandler: Function): void;
-    /**
-     * Adds a one-time event listener to the element. It is possible to use delegated events like jQuery.
-     *
-     * @typeparam K The type of the event.
-     * @param element The target element
-     * @param type The type of the event. It can include a ".namespace" similar to jQuery.
-     * @param listener The event listener to add.
-     */
-    function one(element: EventTarget, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): void;
-    function one(element: EventTarget, type: string, listener: EventListener): void;
-    function one(element: EventTarget, type: string, selector: string, delegationHandler: Function): void;
-    /**
-     * Removes an event listener from the element.
-     *
-     * @param element The target element
-     * @typeparam K The type of the event.
-     * @param type The type of the event. It can include a ".namespace" similar to jQuery.
-     * @param listener The event listener to remove.
-     */
-    function off(element: EventTarget, type: K, listener?: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): void;
-    function off(element: EventTarget, type: string, listener?: EventListener): void;
-    function off(element: EventTarget, type: string, selector?: string, delegationHandler?: Function): void;
-    /**
-     * Triggers a specified event on the element.
-     *
-     * @param element The target element
-     * @param type The type of the event to trigger.
-     * @param args Optional. An object that specifies event-specific initialization properties.
-     * @returns The event object. Use Fluent.isDefaultPrevented the check if preventDefault is called.
-     */
-    function trigger(element: EventTarget, type: string, args?: any): Event & {
-        isDefaultPrevented?(): boolean;
-    };
-    /**
-     * Adds one or more classes to the element. Any falsy value is ignored.
-     *
-     * @param element The target element
-     * @param value The class or classes to add. It can be a string, boolean, or an array of strings or booleans.
-     */
-    function addClass(element: Element, value: string | boolean | (string | boolean)[]): void;
-    function empty(element: Element): void;
-    /**
-     * Returns true if the element is visible like. This is for compatibility with jQuery's :visible selector.
-     * @param element The target element
-     * @returns true if the element has offsetWidth or offsetHeight or any getClientRects().length > 0
-     */
-    function isVisibleLike(element: Element): boolean;
-    /**
-     * Removes the element from the DOM. It also removes event handlers and disposes widgets by calling "disposing" event handlers.
-     *
-     * @param element The element to remove
-     */
-    function remove(element: Element): void;
-    /**
-     * Removes one or more classes from the element. Any falsy value is ignored.
-     *
-     * @param element The target element
-     * @param value The class or classes to remove. It can be a string, boolean, or an array of strings or booleans.
-     */
-    function removeClass(element: Element, value: string | boolean | (string | boolean)[]): void;
-    /**
-     * Toggles the visibility of the element.
-     *
-     * @param element The target element
-     * @param flag Optional. A flag indicating whether to show or hide the element. If not provided, the visibility will be toggled.
-     * @returns The Fluent object itself.
-     */
-    function toggle(element: Element, flag?: boolean): void;
-    /**
-     * Toggles one or more classes on the element. If the class exists, it is removed; otherwise, it is added. Falsy values are ignored.
-     *
-     * @param element The target element
-     * @param value The class or classes to toggle. It can be a string, boolean, or an array of strings or booleans.
-     */
-    function toggleClass(element: Element, value: string | boolean | (string | boolean)[], add?: boolean): void;
-    /**
-     * Converts the given class value or an array of class values to a CSS class name. Any falsy value is ignored.
-     * @param value The class or classes. It can be a string, boolean, or an array of strings or booleans.
-     * @returns Class name string
-     */
-    function toClassName(value: string | boolean | (string | boolean)[]): string;
-    /**
-     * Returns true if the element is input like. E.g. one of input, textarea, select, button. This is for compatibility with jQuery's :input selector.
-     * @param element The target element
-     * @returns true if element is an input like node
-     */
-    function isInputLike(element: Element): element is (HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement);
-    /** A CSS selector for input like tags */
-    const inputLikeSelector = "input,select,textarea,button";
-    /**
-     * Returns true if the tag is one of input, textarea, select, button.
-     * @param tag The tag
-     * @returns true if the element has offsetWidth or offsetHeight or any getClientRects().length > 0
-     */
-    function isInputTag(tag: string): boolean;
-    /**
-     * Checks if the event's preventDefault method is called. This is for compatibility with jQuery which
-     * has a non-standard isDefaultPrevented method.
-     * @param event The event object
-     * @returns True if preventDefault is called.
-     */
-    function isDefaultPrevented(event: {
-        defaultPrevented?: boolean;
-        isDefaultPrevented?: () => boolean;
-    }): boolean;
-    /**
-     * Tries to read a property from the event, or event.originalEvent, or event.detail. It is designed
-     * for compatibility with the way jQuery wraps original event under originalEvent property, that
-     * causes custom properties to be not available in the event object.
-     *
-     * @param event The event object
-     * @param prop The property name
-     * @returns The property value
-     */
-    function eventProp(event: any, prop: string): any;
+export interface Fluent extends ArrayLike {
+	/**
+	 * Adds one or more classes to the element. Any falsy value is ignored.
+	 *
+	 * @param value The class or classes to add. It can be a string, boolean, or an array of strings or booleans.
+	 * @returns The Fluent object itself.
+	 */
+	addClass(value: string | boolean | (string | boolean)[]): this;
+	/**
+	 * Appends content to the element.
+	 *
+	 * @param child The content to append. It can be a string, a Node object, or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	append(child: string | Node | Fluent): this;
+	/**
+	 * Inserts content after the element.
+	 *
+	 * @param content The content to insert. It can be a string, a Node object, or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	after(content: string | Node | Fluent): this;
+	/**
+	 * Appends the element to the specified parent element.
+	 *
+	 * @param parent The parent element to append to. It can be an Element object or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	appendTo(parent: Element | Fluent): this;
+	/**
+	 * Gets the value of the specified attribute.
+	 *
+	 * @param name The name of the attribute.
+	 * @returns The value of the attribute.
+	 */
+	attr(name: string): string;
+	/**
+	 * Sets the value of the specified attribute.
+	 *
+	 * @param name The name of the attribute.
+	 * @param value The value of the attribute. If the value is falsy the attribute is removed.
+	 * @returns The Fluent object itself if a value is provided.
+	 */
+	attr(name: string, value: string | number | boolean | null | undefined): this;
+	/**
+	 * Inserts content before the element.
+	 *
+	 * @param content The content to insert. It can be a string, a Node object, or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	before(content: string | Node | Fluent): this;
+	/**
+	 * Gets the children of the element as an array (not Fluent)
+	 *
+	 * @param selector Optional. A CSS selector to filter the children.
+	 * @returns An array of HTMLElement objects representing the children.
+	 */
+	children(selector?: string): TElement[];
+	/**
+	 * Sets (overrides) the class attribute of the element. Any falsy value is ignored.
+	 *
+	 * @param value The class or classes to add. It can be a string, boolean, or an array of strings or booleans.
+	 * @returns The Fluent object itself.
+	 */
+	class(value: string | boolean | (string | boolean)[]): this;
+	/**
+	 * Triggers a click event on the element.
+	 *
+	 * @returns The Fluent object itself.
+	 */
+	click(): this;
+	/**
+	 * Adds a click event listener on the element.
+	 *
+	 * @param listener A callback function to execute when the click event is triggered.
+	 * @returns The Fluent object itself.
+	 */
+	click(listener: (e: MouseEvent) => void): this;
+	/**
+	 * Gets the closest ancestor of the element that matches the specified selector.
+	 *
+	 * @param selector A CSS selector to match against.
+	 * @returns A Fluent object representing the closest ancestor element.
+	 */
+	closest(selector: string): Fluent;
+	/**
+	 * Gets or sets the value of the specified data attribute.
+	 *
+	 * @param name The name of the data attribute.
+	 * @returns The value of the data attribute if no value is provided, or the Fluent object itself if a value is provided.
+	 */
+	data(name: string): string;
+	data(name: string, value: string): this;
+	/**
+	 * Executes a callback function for the element in the Fluent object if it is not null.
+	 *
+	 * @param callback The callback function to execute for each element.
+	 * @returns The Fluent object itself.
+	 */
+	each(callback: (el: TElement) => void): this;
+	/**
+	 * Gets the underlying HTML element.
+	 *
+	 * @returns The underlying HTML element.
+	 */
+	getNode(): TElement;
+	/**
+	 * Removes all child nodes from the element. It also clears event handlers attached via Fluent, and disposes any attached widgets.
+	 *
+	 * @returns The Fluent object itself.
+	 */
+	empty(): this;
+	/**
+	 * Finds all elements that match the specified selector within the element.
+	 *
+	 * @typeparam TElement The type of the found elements.
+	 * @param selector A CSS selector to match against.
+	 * @returns An array of elements that match the selector.
+	 */
+	findAll(selector: string): TElement[];
+	/**
+	 * Finds each element that matches the specified selector within the element and executes a callback function for each found element as a Fluent object.
+	 *
+	 * @typeparam TElement The type of the found elements.
+	 * @param selector A CSS selector to match against.
+	 * @param callback The callback function to execute for each found element. It receives a Fluent object for each element.
+	 * @returns The Fluent object itself.
+	 */
+	findEach(selector: string, callback: (el: Fluent, index: number) => void): this;
+	/**
+	 * Finds the first element that matches the specified selector within the element.
+	 *
+	 * @typeparam TElement The type of the found element.
+	 * @param selector A CSS selector to match against.
+	 * @returns A Fluent object representing the first element that matches the selector.
+	 */
+	findFirst(selector: string): Fluent;
+	/**
+	 * Sets focus on the element.
+	 *
+	 * @returns The Fluent object itself.
+	 */
+	focus(): this;
+	/**
+	 * Checks if the element has the specified class.
+	 *
+	 * @param klass The class to check for.
+	 * @returns `true` if the element has the class, `false` otherwise.
+	 */
+	hasClass(klass: string): boolean;
+	/**
+	 * Hides the element by setting its display property to "none".
+	 *
+	 * @returns The Fluent object itself.
+	 */
+	hide(): this;
+	/**
+	 * Gets the widget associated with the element.
+	 *
+	 * @typeparam TWidget The type of the widget.
+	 * @param type Optional. The constructor function of the widget.
+	 * @returns The widget associated with the element.
+	 */
+	getWidget(type?: {
+		new (...args: any[]): TWidget;
+	}): TWidget;
+	/**
+	 * Inserts the element after the specified reference element.
+	 *
+	 * @param referenceNode The reference element to insert after. It can be an HTMLElement object or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	insertAfter(referenceNode: HTMLElement | Fluent): this;
+	/**
+	 * Inserts the element before the specified reference element.
+	 *
+	 * @param referenceNode The reference element to insert before. It can be an HTMLElement object or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	insertBefore(referenceNode: HTMLElement | Fluent): this;
+	/**
+	 * Gets an iterator for the elements in the Fluent object.
+	 *
+	 * @returns An iterator for the elements in the Fluent object.
+	 */
+	[Symbol.iterator]: TElement[];
+	/**
+	 * Gets the element at the specified index.
+	 *
+	 * @param n The index of the element.
+	 * @returns The element at the specified index.
+	 */
+	readonly [n: number]: TElement;
+	/**
+	 * Gets the number of elements in the Fluent object. Can only be 1 or 0.
+	 */
+	readonly length: number;
+	/**
+	 * Removes an event listener from the element.
+	 *
+	 * @typeparam K The type of the event.
+	 * @param type The type of the event. It can include a ".namespace" similar to jQuery.
+	 * @param listener The event listener to remove.
+	 * @returns The Fluent object itself.
+	 */
+	off(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): this;
+	off(type: string): this;
+	off(type: string, listener: EventListener): this;
+	off(type: string, selector: string, delegationHandler: Function): this;
+	/**
+	 * Adds an event listener to the element. It is possible to use delegated events like jQuery.
+	 *
+	 * @typeparam K The type of the event.
+	 * @param type The type of the event. It can include a ".namespace" similar to jQuery.
+	 * @param listener The event listener to add.
+	 * @returns The Fluent object itself.
+	 */
+	on(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): this;
+	on(type: string, listener: EventListener): this;
+	on(type: string, selector: string, delegationHandler: Function): this;
+	/**
+	 * Adds a one-time event listener to the element. It is possible to use delegated events like jQuery.
+	 *
+	 * @typeparam K The type of the event.
+	 * @param type The type of the event. It can include a ".namespace" similar to jQuery.
+	 * @param listener The event listener to add.
+	 * @returns The Fluent object itself.
+	 */
+	one(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): this;
+	one(type: string, listener: EventListener): this;
+	one(type: string, selector: string, delegationHandler: Function): this;
+	/**
+	 * Checks if the element matches the specified selector.
+	 *
+	 * @param selector A CSS selector to match against.
+	 * @returns `true` if the element matches the selector, `false` otherwise.
+	 */
+	matches(selector: string): boolean;
+	/**
+	 * Gets the next sibling element that matches the specified selector, or the first sibling if no selector is provided..
+	 *
+	 * @param selector Optional. A CSS selector to filter the next sibling.
+	 * @returns A Fluent object representing the next sibling element.
+	 */
+	nextSibling(selector?: string): Fluent;
+	/**
+	 * Gets the parent element of the element.
+	 *
+	 * @returns A Fluent object representing the parent element.
+	 */
+	parent(): Fluent;
+	/**
+	 * Prepends content to the element.
+	 *
+	 * @param child The content to prepend. It can be a string, a Node object, or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	prepend(child: string | Node | Fluent): this;
+	/**
+	 * Prepends the element to the specified parent element.
+	 *
+	 * @param parent The parent element to prepend to. It can be an Element object or another Fluent object.
+	 * @returns The Fluent object itself.
+	 */
+	prependTo(parent: Element | Fluent): this;
+	/**
+	 * Gets the previous sibling element that matches the specified selector, or the first sibling if no selector is provided.
+	 *
+	 * @param selector Optional. A CSS selector to filter the previous sibling.
+	 * @returns A Fluent object representing the previous sibling element.
+	 */
+	prevSibling(selector?: string): Fluent;
+	/**
+	 * Removes the element from the DOM. It also removes event handlers and disposes widgets by calling "disposing" event handlers.
+	 *
+	 * @returns The Fluent object itself.
+	 */
+	remove(): this;
+	/**
+	 * Removes the specified attribute from the element.
+	 *
+	 * @param name The name of the attribute to remove.
+	 * @returns The Fluent object itself.
+	 */
+	removeAttr(name: string): this;
+	/**
+	 * Removes one or more classes from the element. Any falsy value is ignored.
+	 *
+	 * @param value The class or classes to remove. It can be a string, boolean, or an array of strings or booleans.
+	 * @returns The Fluent object itself.
+	 */
+	removeClass(value: string | boolean | (string | boolean)[]): this;
+	/**
+	 * Shows the element by setting its display property to empty string.
+	 *
+	 * @returns The Fluent object itself.
+	 */
+	show(): this;
+	/**
+	 * Executes a callback function to modify the inline style of the element.
+	 *
+	 * @param callback The callback function to modify the inline style.
+	 * @returns The Fluent object itself.
+	 */
+	style(callback: (css: CSSStyleDeclaration) => void): this;
+	/**
+	 * Gets or sets the text content of the element.
+	 *
+	 * @returns The text content of the element if no value is provided, or the Fluent object itself if a value is provided.
+	 */
+	text(): string;
+	text(value: string): this;
+	/**
+	 * Toggles the visibility of the element.
+	 *
+	 * @param flag Optional. A flag indicating whether to show or hide the element. If not provided, the visibility will be toggled.
+	 * @returns The Fluent object itself.
+	 */
+	toggle(flag?: boolean): this;
+	/**
+	 * Toggles one or more classes on the element. If the class exists, it is removed; otherwise, it is added.
+	 *
+	 * @param value The class or classes to toggle. It can be a string, boolean, or an array of strings or booleans.
+	 * @returns The Fluent object itself.
+	 */
+	toggleClass(value: (string | boolean | (string | boolean)[]), add?: boolean): this;
+	/**
+	 * Triggers a specified event on the element.
+	 *
+	 * @param type The type of the event to trigger.
+	 * @param args Optional. An object that specifies event-specific initialization properties.
+	 * @returns The Fluent object itself.
+	 */
+	trigger(type: string, args?: any): this;
+	/**
+	 * Tries to get the widget associated with the element.
+	 *
+	 * @typeparam TWidget The type of the widget.
+	 * @param type Optional. The constructor function of the widget.
+	 * @returns The widget associated with the element, or `null` if no widget is found.
+	 */
+	tryGetWidget(type?: {
+		new (...args: any[]): TWidget;
+	}): TWidget;
+	/**
+	 * Gets or sets the value of the element.
+	 *
+	 * @param value The value to set. If no value is provided, returns the current value of the element.
+	 * @returns The value of the element if no value is provided, or the Fluent object itself if a value is provided.
+	 */
+	val(value: string): this;
+	val(): string;
+}
+export declare function Fluent(tag: K): Fluent;
+export declare function Fluent(element: TElement): Fluent;
+export declare function Fluent(element: EventTarget): Fluent;
+export declare namespace Fluent {
+	var ready: (callback: () => void) => void;
+	var byId: (id: string) => Fluent;
+	var findAll: (selector: string) => TElement[];
+	var findEach: (selector: string, callback: (el: Fluent) => void) => void;
+	var findFirst: (selector: string) => Fluent;
+}
+export declare namespace Fluent {
+	/**
+	 * Adds an event listener to the element. It is possible to use delegated events like jQuery.
+	 *
+	 * @typeparam K The type of the event.
+	 * @param element The target element
+	 * @param type The type of the event. It can include a ".namespace" similar to jQuery.
+	 * @param listener The event listener to add.
+	 */
+	function on(element: EventTarget, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): void;
+	function on(element: EventTarget, type: string, listener: EventListener): void;
+	function on(element: EventTarget, type: string, selector: string, delegationHandler: Function): void;
+	/**
+	 * Adds a one-time event listener to the element. It is possible to use delegated events like jQuery.
+	 *
+	 * @typeparam K The type of the event.
+	 * @param element The target element
+	 * @param type The type of the event. It can include a ".namespace" similar to jQuery.
+	 * @param listener The event listener to add.
+	 */
+	function one(element: EventTarget, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): void;
+	function one(element: EventTarget, type: string, listener: EventListener): void;
+	function one(element: EventTarget, type: string, selector: string, delegationHandler: Function): void;
+	/**
+	 * Removes an event listener from the element.
+	 *
+	 * @param element The target element
+	 * @typeparam K The type of the event.
+	 * @param type The type of the event. It can include a ".namespace" similar to jQuery.
+	 * @param listener The event listener to remove.
+	 */
+	function off(element: EventTarget, type: K, listener?: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any): void;
+	function off(element: EventTarget, type: string, listener?: EventListener): void;
+	function off(element: EventTarget, type: string, selector?: string, delegationHandler?: Function): void;
+	/**
+	 * Triggers a specified event on the element.
+	 *
+	 * @param element The target element
+	 * @param type The type of the event to trigger.
+	 * @param args Optional. An object that specifies event-specific initialization properties.
+	 * @returns The event object. Use Fluent.isDefaultPrevented the check if preventDefault is called.
+	 */
+	function trigger(element: EventTarget, type: string, args?: any): Event & {
+		isDefaultPrevented?(): boolean;
+	};
+	/**
+	 * Adds one or more classes to the element. Any falsy value is ignored.
+	 *
+	 * @param element The target element
+	 * @param value The class or classes to add. It can be a string, boolean, or an array of strings or booleans.
+	 */
+	function addClass(element: Element, value: string | boolean | (string | boolean)[]): void;
+	function empty(element: Element): void;
+	/**
+	 * Returns true if the element is visible like. This is for compatibility with jQuery's :visible selector.
+	 * @param element The target element
+	 * @returns true if the element has offsetWidth or offsetHeight or any getClientRects().length > 0
+	 */
+	function isVisibleLike(element: Element): boolean;
+	/**
+	 * Removes the element from the DOM. It also removes event handlers and disposes widgets by calling "disposing" event handlers.
+	 *
+	 * @param element The element to remove
+	 */
+	function remove(element: Element): void;
+	/**
+	 * Removes one or more classes from the element. Any falsy value is ignored.
+	 *
+	 * @param element The target element
+	 * @param value The class or classes to remove. It can be a string, boolean, or an array of strings or booleans.
+	 */
+	function removeClass(element: Element, value: string | boolean | (string | boolean)[]): void;
+	/**
+	 * Toggles the visibility of the element.
+	 *
+	 * @param element The target element
+	 * @param flag Optional. A flag indicating whether to show or hide the element. If not provided, the visibility will be toggled.
+	 * @returns The Fluent object itself.
+	 */
+	function toggle(element: Element, flag?: boolean): void;
+	/**
+	 * Toggles one or more classes on the element. If the class exists, it is removed; otherwise, it is added. Falsy values are ignored.
+	 *
+	 * @param element The target element
+	 * @param value The class or classes to toggle. It can be a string, boolean, or an array of strings or booleans.
+	 */
+	function toggleClass(element: Element, value: string | boolean | (string | boolean)[], add?: boolean): void;
+	/**
+	 * Converts the given class value or an array of class values to a CSS class name. Any falsy value is ignored.
+	 * @param value The class or classes. It can be a string, boolean, or an array of strings or booleans.
+	 * @returns Class name string
+	 */
+	function toClassName(value: string | boolean | (string | boolean)[]): string;
+	/**
+	 * Returns true if the element is input like. E.g. one of input, textarea, select, button. This is for compatibility with jQuery's :input selector.
+	 * @param element The target element
+	 * @returns true if element is an input like node
+	 */
+	function isInputLike(element: Element): element is (HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement);
+	/** A CSS selector for input like tags */
+	const inputLikeSelector = "input,select,textarea,button";
+	/**
+	 * Returns true if the tag is one of input, textarea, select, button.
+	 * @param tag The tag
+	 * @returns true if the element has offsetWidth or offsetHeight or any getClientRects().length > 0
+	 */
+	function isInputTag(tag: string): boolean;
+	/**
+	 * Checks if the event's preventDefault method is called. This is for compatibility with jQuery which
+	 * has a non-standard isDefaultPrevented method.
+	 * @param event The event object
+	 * @returns True if preventDefault is called.
+	 */
+	function isDefaultPrevented(event: {
+		defaultPrevented?: boolean;
+		isDefaultPrevented?: () => boolean;
+	}): boolean;
+	/**
+	 * Tries to read a property from the event, or event.originalEvent, or event.detail. It is designed
+	 * for compatibility with the way jQuery wraps original event under originalEvent property, that
+	 * causes custom properties to be not available in the event object.
+	 *
+	 * @param event The event object
+	 * @param prop The property name
+	 * @returns The property value
+	 */
+	function eventProp(event: any, prop: string): any;
 }
-
 /**
  * Interface for number formatting, similar to .NET's NumberFormatInfo
  */
-interface NumberFormat {
-    /** Decimal separator */
-    decimalSeparator: string;
-    /** Group separator */
-    groupSeparator?: string;
-    /** Number of digits after decimal separator */
-    decimalDigits?: number;
-    /** Positive sign */
-    positiveSign?: string;
-    /** Negative sign */
-    negativeSign?: string;
-    /** Zero symbol */
-    nanSymbol?: string;
-    /** Percentage symbol */
-    percentSymbol?: string;
-    /** Currency symbol */
-    currencySymbol?: string;
+export interface NumberFormat {
+	/** Decimal separator */
+	decimalSeparator: string;
+	/** Group separator */
+	groupSeparator?: string;
+	/** Number of digits after decimal separator */
+	decimalDigits?: number;
+	/** Positive sign */
+	positiveSign?: string;
+	/** Negative sign */
+	negativeSign?: string;
+	/** Zero symbol */
+	nanSymbol?: string;
+	/** Percentage symbol */
+	percentSymbol?: string;
+	/** Currency symbol */
+	currencySymbol?: string;
 }
 /** Interface for date formatting, similar to .NET's DateFormatInfo */
-interface DateFormat {
-    /** Date separator */
-    dateSeparator?: string;
-    /** Default date format string */
-    dateFormat?: string;
-    /** Date order, like dmy, or ymd */
-    dateOrder?: string;
-    /** Default date time format string */
-    dateTimeFormat?: string;
-    /** AM designator */
-    amDesignator?: string;
-    /** PM designator */
-    pmDesignator?: string;
-    /** Time separator */
-    timeSeparator?: string;
-    /** First day of week, 0 = Sunday, 1 = Monday */
-    firstDayOfWeek?: number;
-    /** Array of day names */
-    dayNames?: string[];
-    /** Array of short day names */
-    shortDayNames?: string[];
-    /** Array of two letter day names */
-    minimizedDayNames?: string[];
-    /** Array of month names */
-    monthNames?: string[];
-    /** Array of short month names */
-    shortMonthNames?: string[];
+export interface DateFormat {
+	/** Date separator */
+	dateSeparator?: string;
+	/** Default date format string */
+	dateFormat?: string;
+	/** Date order, like dmy, or ymd */
+	dateOrder?: string;
+	/** Default date time format string */
+	dateTimeFormat?: string;
+	/** AM designator */
+	amDesignator?: string;
+	/** PM designator */
+	pmDesignator?: string;
+	/** Time separator */
+	timeSeparator?: string;
+	/** First day of week, 0 = Sunday, 1 = Monday */
+	firstDayOfWeek?: number;
+	/** Array of day names */
+	dayNames?: string[];
+	/** Array of short day names */
+	shortDayNames?: string[];
+	/** Array of two letter day names */
+	minimizedDayNames?: string[];
+	/** Array of month names */
+	monthNames?: string[];
+	/** Array of short month names */
+	shortMonthNames?: string[];
 }
 /** Interface for a locale, similar to .NET's CultureInfo */
-interface Locale extends NumberFormat, DateFormat {
-    /** Locale string comparison function, similar to .NET's StringComparer */
-    stringCompare?: (a: string, b: string) => number;
-    /** Locale string to upper case function */
-    toUpper?: (a: string) => string;
+export interface Locale extends NumberFormat, DateFormat {
+	/** Locale string comparison function, similar to .NET's StringComparer */
+	stringCompare?: (a: string, b: string) => number;
+	/** Locale string to upper case function */
+	toUpper?: (a: string) => string;
 }
 /** Invariant locale (e.g. CultureInfo.InvariantCulture) */
-declare let Invariant: Locale;
+export declare let Invariant: Locale;
 /**
  * Factory for a function that compares two strings, based on a character order
  * passed in the `order` argument.
  */
-declare function compareStringFactory(order: string): ((a: string, b: string) => number);
+export declare function compareStringFactory(order: string): ((a: string, b: string) => number);
 /**
  * Current culture, e.g. CultureInfo.CurrentCulture. This is overridden by
  * settings passed from a `