/** * @license * Copyright 2022 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { State } from '../serialization/procedures.js'; import { IParameterModel } from './i_parameter_model.js'; /** * A data model for a procedure. */ export interface IProcedureModel { /** Sets the human-readable name of the procedure. */ setName(name: string): this; /** * Inserts a parameter into the list of parameters. * * To move a parameter, first delete it, and then re-insert. */ insertParameter(parameterModel: IParameterModel, index: number): this; /** Removes the parameter at the given index from the parameter list. */ deleteParameter(index: number): this; /** * Sets the return type(s) of the procedure. * * Pass null to represent a procedure that does not return. */ setReturnTypes(types: string[] | null): this; /** * Sets whether this procedure is enabled/disabled. If a procedure is disabled * all procedure caller blocks should be disabled as well. */ setEnabled(enabled: boolean): this; /** Returns the unique language-neutral ID for the procedure. */ getId(): string; /** Returns the human-readable name of the procedure. */ getName(): string; /** Returns the parameter at the given index in the parameter list. */ getParameter(index: number): IParameterModel; /** Returns an array of all of the parameters in the parameter list. */ getParameters(): IParameterModel[]; /** * Returns the return type(s) of the procedure. * * Null represents a procedure that does not return a value. */ getReturnTypes(): string[] | null; /** * Returns whether the procedure is enabled/disabled. If a procedure is * disabled, all procedure caller blocks should be disabled as well. */ getEnabled(): boolean; /** * Serializes the state of the procedure to JSON. * * @returns JSON serializable state of the procedure. */ saveState(): State; } //# sourceMappingURL=i_procedure_model.d.ts.map