/** * Options that can be used with the `@importModel` and `@importModels` * decorators. */ export interface ModelImportOptions { /** * Whether the imported model is required in order for the importer to * function correctly. The default is true. */ isRequired?: boolean; /** * The type (or types) of model to import (corresponding to its item type in * VertiGIS Studio Web App config). */ type: string | string[]; } /** * Metadata captured by an @importModel decorator. */ export interface ModelImportDeclaration extends ModelImportOptions { /** * The property name. */ property: string | symbol; /** * Whether the property is for a collection of models, or just a single * model. */ isMultiple: boolean; } /** * Expresses a dependency on a model. * * @param options The type of model to import, or an options object. */ export declare function importModel(options: string | string[] | ModelImportOptions): PropertyDecorator; /** * Expresses a dependency on a collection of models. * * If the property is an instance of @arcgis/core/Collection, then it will be * modified in place as models become available or unavailable. Otherwise, it * will be set to a new array whenever there is a change. * * @param options The type of models to import, or an options object. */ export declare function importModels(options: string | string[] | ModelImportOptions): PropertyDecorator; /** * Gets all import declarations for a given model instance. * * @param model The model to get imports declarations for. */ export declare function getModelImports(model: object): ModelImportDeclaration[];