import { FunctionType } from '../functions/getvalidfunctiontypeforscriptatpath'; /** * RoomleScript autotocomplete entry. * This is used to provide suggestions in an editor when the user is typing RoomleScript code (where the value of ComponentDefinition is Script). * This will be converted in the VS Code extension to the appropriate CompletionItem. * This also carries documentation, which is provided in the mouse-over tooltip in the VS Code editor. */ export declare class ComponentAutocompleteEntry { /** * The text that will be inserted when the entry is selected in the autocomplete list. This can include placeholders for function arguments etc. */ textToInsert: string; /** * The unique identifier of the entry. This is the parameter key, internal var identifier, function name without arguments, superseding key etc. */ identifier: string; description: string; /** * Automatically generated documentation by the resolver, e.g. listing where the identifier is defined. */ documentation: string; /** * User-added documenation in the RSDocs format. * This is intended to be sourced from the identifier document path holder. * This is appended to the documentation field in the end. */ rsdocs: string; /** * True if this entry is a parameter of the component */ isParameter: boolean; /** * @deprecated use functionType instead */ get isFunction(): boolean; /** * If this is component function, pass its type as FunctionType. If not component function, undefined */ functionType: FunctionType | undefined; /** * True if this entry is a valid value of a parameter */ isValue: boolean; /** * True if this entry is an internal variable (identifier defined in RoomleScript of the component). * Most parameters are also considered to be internal variables. */ isInternalVariable: boolean; /** * This hasn't been used yet and will be removed. * @deprecated */ isKeyword: boolean; /** True if this entry is a superseding of a subcomponent */ isSuperseding: boolean; /** * True if this entry is a RoomleScript snippet that can be inserted as-is, e.g. SubComponent('id'); or SetObjSurface(mat); * Some snippets are generated for convenience, e.g. SetObjSurface for material parameters or internal variables that look like materials. * Built-in functions are loaded in a separate file and should have this flag set to true as well. */ isRoomleScriptSnippet: boolean; /** If this is a function, this holds its keyword arguments. These are sourced from the component.functions.arguments */ keywordArguments: string[]; /** * Mostly used for carrying parameter values. However, this only brings more complexity and is not useful in the end. * @deprecated */ childEntries: ComponentAutocompleteEntry[]; constructor(text: string); /** * Constructor from any object, e.g. parsed from JSON. This is useful for providing custom autocomplete entries from a file. */ static fromAny(obj: any): ComponentAutocompleteEntry | undefined; }