Files
blockly/core/interfaces/i_parameter_model.ts
Beka Westberg 0ad0adfb75 feat!: add serialization hooks to procedure models (#7740)
* feat!: add serialization hooks to procedure models

* chore: fix tests

* chore: remove internal functions

* fix: add state interfaces back
2024-01-23 08:48:08 -08:00

52 lines
1.1 KiB
TypeScript

/**
* @license
* Copyright 2022 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import {ParameterState} from '../serialization/procedures';
import {IProcedureModel} from './i_procedure_model';
/**
* A data model for a procedure.
*/
export interface IParameterModel {
/**
* Sets the name of this parameter to the given name.
*/
setName(name: string): this;
/**
* Sets the types of this parameter to the given type.
*/
setTypes(types: string[]): this;
/**
* Returns the name of this parameter.
*/
getName(): string;
/**
* Return the types of this parameter.
*/
getTypes(): string[];
/**
* Returns the unique language-neutral ID for the parameter.
*
* This represents the identify of the variable model which does not change
* over time.
*/
getId(): string;
/** Sets the procedure model this parameter is associated with. */
setProcedureModel(model: IProcedureModel): this;
/**
* Serializes the state of the parameter to JSON.
*
* @returns JSON serializable state of the parameter.
*/
saveState(): ParameterState;
}