1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16/** 17 * ViewStackProcessor declaration 18 * 19 * Implemntation in C+ and exposed to JS 20 * 21 * all definitions in this file are framework internal 22 */ 23 24declare class ViewStackProcessor { 25 26 // make and return new elementId 27 // will be used to create the next Component 28 // this is used for first rneder case 29 public static AllocateNewElmetIdForNextComponent(): number; 30 31 // start Get access recording, and account all access to given elmtId 32 // Note this can be a different elmtId than the one used to create new Component 33 public static StartGetAccessRecordingFor(elmtId: number): void; 34 35 /** 36 * get the elmtId to which any get access shoudl be accounted 37 * note this can be the same as the currently created elmtId (top of stack) 38 * but also a different one (in case a whole subtree gets accounted its root elmtId) 39 * 40 * returns the elmtId given by StartGetAccessRecordingFor 41 * -1 no access recording 42 */ 43 public static GetElmtIdToAccountFor(): number; 44 45 // Stop get access recording 46 // also invalidates any reserved but unclaimed elmtId for Component creation 47 public static StopGetAccessRecording(): void; 48 49 50 /** 51 * when nesting observeComponentCreation functions, such as in the case of 52 * If, and the if branch creates a Text etc that requires an implict pop 53 * this function is needed after executing the inner observeComponentCreation 54 * and before read ViewStackProcessor.GetTopMostElementId(); on the outer one 55 */ 56 public static ImplicitPopBeforeContinue(): void; 57 58 /** 59 * Called once JS update function has been executed, main component 60 * and its wrapping components in the stack need to be 'Finished' 61 * and then a local update be done on given main Element and 62 * wrapping Elements 63 * @param elmtId 64 */ 65 public static FinishAndLocalUpdate(elmtId: number): void; 66 67 68 /** 69 * Returns a globally unique id from ElementRegister 70 * JS signatire: MakeUniqueId() : number 71 */ 72 public static MakeUniqueId(): number; 73} 74