Show raw api
{
    "functions": [
        {
            "name": "new",
            "desc": "Constructs a new TieDefinition with the given members",
            "params": [
                {
                    "name": "definitionName",
                    "desc": "",
                    "lua_type": "string"
                },
                {
                    "name": "members",
                    "desc": "",
                    "lua_type": "any"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "TieDefinition"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 90,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "GetImplementations",
            "desc": "Gets all valid interfaces for this adornee",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{ TieInterface }"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 151,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "ObserveChildrenBrio",
            "desc": "Observes all the children implementations for this adornee",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<Brio<TieInterface>>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 230,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "Promise",
            "desc": "Promises the implementation",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Adornee"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Promise<TieInterface>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 248,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "GetChildren",
            "desc": "Gets all valid interfaces for this adornee's children",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{ TieInterface }"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 268,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "Find",
            "desc": "Finds the implementation on the adornee. Alais for [FindFirstImplementation]",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Adornee"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "TieInterface | nil"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 291,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "ObserveAllTaggedBrio",
            "desc": "Observes all implementations that are tagged with the given tag name",
            "params": [
                {
                    "name": "tagName",
                    "desc": "",
                    "lua_type": "string"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "TieInterface | nil"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 305,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "FindFirstImplementation",
            "desc": "Finds the first valid interfaces for this adornee",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "TieInterface"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 322,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "HasImplementation",
            "desc": "Returns true if the adornee implements the interface, and false otherwise.",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 346,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "ObserveIsImplemented",
            "desc": "Observes whether the adornee implements the interface.",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 373,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "ObserveIsImplementation",
            "desc": "Observes whether the implParent is a valid implementation",
            "params": [
                {
                    "name": "implParent",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 393,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "ObserveIsImplementedOn",
            "desc": "Observes whether the implParent is a valid implementation on the given adornee",
            "params": [
                {
                    "name": "implParent",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 419,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "ObserveBrio",
            "desc": "Observes a valid implementation wrapped in a brio if it exists.",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<Brio<TieImplementation<T>>>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 452,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "Observe",
            "desc": "Observes a valid implementation if it exists, or nil",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<TieImplementation<T> | nil>>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 473,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "ObserveImplementationsBrio",
            "desc": "Observes valid implementations wrapped in a brio if it exists.",
            "params": [
                {
                    "name": "adornee",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<Brio<TieImplementation<T>>>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 491,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "Implement",
            "desc": "Ensures implementation of the object, binding table values and Lua OOP objects\nto Roblox objects that can be invoked generally.\n\n```lua\n\n```",
            "params": [
                {
                    "name": "adornee",
                    "desc": "Adornee to implement interface on",
                    "lua_type": "Instance"
                },
                {
                    "name": "implementer",
                    "desc": "Table with all interface values or nil",
                    "lua_type": "table?"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "TieImplementation<T>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 594,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "Get",
            "desc": "Gets an interface to the tie definition. Not this can be done\non any Roblox instance. If the instance does not implement the interface,\ninvoking interface methods, or querying the interface will result\nin errors.\n\n:::tip\nProbably use :Find() instead of Get, since this always returns an interface.\n:::",
            "params": [
                {
                    "name": "adornee",
                    "desc": "Adornee to get interface on",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "TieInterface<T>"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 618,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "GetName",
            "desc": "Gets the name of the definition",
            "params": [],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 631,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "GetValidContainerNameSet",
            "desc": "Gets the valid container name set for the tie definition",
            "params": [
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "{ [string]: boolean }"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 641,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "GetNewContainerName",
            "desc": "Gets a container name for a new container. See [GetValidContainerNameSet]\nfor the full set of valid container names for the tie definition.",
            "params": [
                {
                    "name": "tieRealm",
                    "desc": "",
                    "lua_type": "TieRealm"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "string"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 681,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        },
        {
            "name": "IsImplementation",
            "desc": "Returns true if the implParent is an implementation",
            "params": [
                {
                    "name": "implParent",
                    "desc": "",
                    "lua_type": "Instance"
                },
                {
                    "name": "tieRealm",
                    "desc": "Optional tie realm",
                    "lua_type": "TieRealm?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "method",
            "source": {
                "line": 709,
                "path": "src/tie/src/Shared/TieDefinition.lua"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "TieDefinition",
    "desc": "Constructs a new interface declaration which allows for interface usage\nbetween both Roblox API users and OOP users, as well as without accessing a\n[ServiceBag].\n\nAlso allows for extensibility via implementing interfaces.\n\n```lua\nlocal require = require(script.Parent.loader).load(script)\n\nlocal TieDefinition = require(\"TieDefinition\")\n\nreturn TieDefinition.new(\"GlobalLeaderboard\", {\n\t-- Modification\n\t[TieDefinition.Realms.SERVER] = {\n\t\tRemoveAllEntries = TieDefinition.Types.METHOD;\n\t\tSetEntryValueForUserId = TieDefinition.Types.METHOD;\n\t\tIncrementEntryForUserId = TieDefinition.Types.METHOD;\n\t\tCreateEntry = TieDefinition.Types.METHOD;\n\t};\n\n\t-- List\n\tObserveEntriesBrio = TieDefinition.Types.METHOD;\n\tGetEntryList = TieDefinition.Types.METHOD;\n\n\t-- Single\n\tObserveEntryByUserId = TieDefinition.Types.METHOD;\n\tGetEntryForUserId = TieDefinition.Types.METHOD;\n\n\t-- Plural\n\tObserveEntriesByUserIdBrio = TieDefinition.Types.METHOD;\n\tGetEntriesForUserId = TieDefinition.Types.METHOD;\n\n\t-- Rendering\n\tObserveTopCount = TieDefinition.Types.METHOD;\n\tObserveFormatType = TieDefinition.Types.METHOD;\n\tObserveTitleTranslationKey = TieDefinition.Types.METHOD;\n\tObserveEntryTranslationKey = TieDefinition.Types.METHOD;\n})\n```",
    "source": {
        "line": 44,
        "path": "src/tie/src/Shared/TieDefinition.lua"
    }
}