18c339a94Sopenharmony_ci/* 28c339a94Sopenharmony_ci* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd. 38c339a94Sopenharmony_ci* Licensed under the Apache License, Version 2.0 (the "License"); 48c339a94Sopenharmony_ci* you may not use this file except in compliance with the License. 58c339a94Sopenharmony_ci* You may obtain a copy of the License at 68c339a94Sopenharmony_ci* 78c339a94Sopenharmony_ci* http://www.apache.org/licenses/LICENSE-2.0 88c339a94Sopenharmony_ci* 98c339a94Sopenharmony_ci* Unless required by applicable law or agreed to in writing, software 108c339a94Sopenharmony_ci* distributed under the License is distributed on an "AS IS" BASIS, 118c339a94Sopenharmony_ci* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128c339a94Sopenharmony_ci* See the License for the specific language governing permissions and 138c339a94Sopenharmony_ci* limitations under the License. 148c339a94Sopenharmony_ci*/ 158c339a94Sopenharmony_ciimport { AsyncCallback, Callback } from './../basic'; 168c339a94Sopenharmony_ci 178c339a94Sopenharmony_cideclare namespace napitest { 188c339a94Sopenharmony_ci class ModelEvent{ 198c339a94Sopenharmony_ci topic: string; 208c339a94Sopenharmony_ci message: string; 218c339a94Sopenharmony_ci } 228c339a94Sopenharmony_ci 238c339a94Sopenharmony_ci function on(type: string, callback: Callback<number>): void; 248c339a94Sopenharmony_ci function off(type: string, callback?: Callback<number>): void; 258c339a94Sopenharmony_ci function on(type: string, callback: Callback<ModelEvent>): void; // Callback为interface 268c339a94Sopenharmony_ci function off(type: string, callback?: Callback<ModelEvent>): void; 278c339a94Sopenharmony_ci function on(type: string, callback: Callback<{topic:string,message:string}>): void; // Callback为匿名interface 288c339a94Sopenharmony_ci function off(type: string, callback?: Callback<{topic:string,message:string}>): void; 298c339a94Sopenharmony_ci // function on(type: string, callback: Callback<string>): void; // Callback为string 308c339a94Sopenharmony_ci function on(type: 'onEvents', callback: (wid: number) => void): void; // 箭头函数支持 318c339a94Sopenharmony_ci function off(type: 'onEvents', callback?: (wid: number) => void): void; 328c339a94Sopenharmony_ci function on(type: 'onEventFunc', callback: (wid: number, mol: ModelEvent) => void): void; // 箭头函数支持 338c339a94Sopenharmony_ci function off(type: 'onEventFunc', callback?: (wid: number, mol: ModelEvent) => void): void; 348c339a94Sopenharmony_ci 358c339a94Sopenharmony_ci class TestClass1 { 368c339a94Sopenharmony_ci on(type: string, callback: Callback<boolean>): void; 378c339a94Sopenharmony_ci off(type: string, callback?: Callback<boolean>): void; 388c339a94Sopenharmony_ci } 398c339a94Sopenharmony_ci 408c339a94Sopenharmony_ci class TestClass2 { 418c339a94Sopenharmony_ci on(type: string, callback: Callback<ModelEvent>): void; // Callback为interface 428c339a94Sopenharmony_ci off(type: string, callback?: Callback<ModelEvent>): void; 438c339a94Sopenharmony_ci } 448c339a94Sopenharmony_ci 458c339a94Sopenharmony_ci class TestClass3 { 468c339a94Sopenharmony_ci on(type: string, callback: Callback<{topic:string,message:string}>): void; // Callback为匿名interface 478c339a94Sopenharmony_ci off(type: string, callback?: Callback<{topic:string,message:string}>): void; 488c339a94Sopenharmony_ci } 498c339a94Sopenharmony_ci 508c339a94Sopenharmony_ci class TestClass4 { 518c339a94Sopenharmony_ci on(type: 'heartbeat', callback: (wid: boolean) => void): void; // 箭头函数支持 528c339a94Sopenharmony_ci off(type: 'heartbeat', callback?: (wid: boolean) => void): void; // 固定事件,去注册事件 538c339a94Sopenharmony_ci } 548c339a94Sopenharmony_ci 558c339a94Sopenharmony_ci class TestClass5 { 568c339a94Sopenharmony_ci on(type: 'inputStart', callback: (wid: boolean, modeEv: ModelEvent) => void): void; // 回调函数参数个数大于1,支持 578c339a94Sopenharmony_ci off(type: 'inputStart', callback?: (wid: boolean, modeEv: ModelEvent) => void): void; 588c339a94Sopenharmony_ci } 598c339a94Sopenharmony_ci 608c339a94Sopenharmony_ci class TestClass6 { 618c339a94Sopenharmony_ci on(type: string, asyncCallback: AsyncCallback<boolean>): void; 628c339a94Sopenharmony_ci off(type: string, asyncCallback?: AsyncCallback<boolean>): void; 638c339a94Sopenharmony_ci } 648c339a94Sopenharmony_ci 658c339a94Sopenharmony_ci class TestClass7 { 668c339a94Sopenharmony_ci on(type: string, asyncCallback: AsyncCallback<ModelEvent>): void; // Callback为interface 678c339a94Sopenharmony_ci off(type: string, asyncCallback?: AsyncCallback<ModelEvent>): void; 688c339a94Sopenharmony_ci } 698c339a94Sopenharmony_ci 708c339a94Sopenharmony_ci class TestClass10 { 718c339a94Sopenharmony_ci on(type: "heartbeat", callback: Callback<boolean>): void; // 固定事件,回调参数为boolean支持 728c339a94Sopenharmony_ci off(type: "hearbeat", callback?: Callback<boolean>): void; 738c339a94Sopenharmony_ci on(type: "enableChange", callback: Callback<ModelEvent>): void; // 固定事件,回调参数为ModelEvent支持 748c339a94Sopenharmony_ci off(type: "enableChange", callback?: Callback<ModelEvent>): void; 758c339a94Sopenharmony_ci on(type: string, asyncCallback: AsyncCallback<string>): void; 768c339a94Sopenharmony_ci off(type: string, asyncCallback?: AsyncCallback<string>): void; 778c339a94Sopenharmony_ci on(type: string, callback: (wid: number) => void): void; // 箭头函数支持 788c339a94Sopenharmony_ci off(type: string, callback?: (wid: number) => void): void; 798c339a94Sopenharmony_ci // on(type: string, callback: (wid: boolean) => string): void; // 返回值待支持 808c339a94Sopenharmony_ci on(type: "inputStart", callback: (wid: boolean, modeEv: ModelEvent) => void): void; // 回调函数参数个数大于1,支持 818c339a94Sopenharmony_ci off(type: "inputStart", callback?: (wid: boolean, modeEv: ModelEvent) => void): void; 828c339a94Sopenharmony_ci } 838c339a94Sopenharmony_ci 848c339a94Sopenharmony_ci interface TestClass11 { 858c339a94Sopenharmony_ci registerTestfunc11(cb: Function); 868c339a94Sopenharmony_ci unRegisterTestfunc11(cb: Function); 878c339a94Sopenharmony_ci 888c339a94Sopenharmony_ci registerTestfunc12(cb : (wid: number) => string); 898c339a94Sopenharmony_ci unRegisterTestfunc12(cb : (wid: number) => string); 908c339a94Sopenharmony_ci 918c339a94Sopenharmony_ci registerTestfunc13(cb : Callback<boolean>); 928c339a94Sopenharmony_ci unRegisterTestfunc13(cb : Callback<boolean>); 938c339a94Sopenharmony_ci } 948c339a94Sopenharmony_ci function registerNamespacefunc20(cb: Function); 958c339a94Sopenharmony_ci function unRegisterNamespacefunc20(cb: Function); 968c339a94Sopenharmony_ci 978c339a94Sopenharmony_ci function registerNamespacefunc21(cb : (wid: number) => string); 988c339a94Sopenharmony_ci function unRegisterNamespacefunc21(cb : (wid: number) => string); 998c339a94Sopenharmony_ci 1008c339a94Sopenharmony_ci function registerNamespacefunc22(cb : Callback<boolean>); 1018c339a94Sopenharmony_ci 1028c339a94Sopenharmony_ci function unRegisterNamespacefunc22(cb : Callback<boolean>); 1038c339a94Sopenharmony_ci 1048c339a94Sopenharmony_ci function registerNamespacefunc24(cb : (wid: ModelEvent) => string); 1058c339a94Sopenharmony_ci function unRegisterNamespacefunc24(cb : (wid: ModelEvent) => string); 1068c339a94Sopenharmony_ci 1078c339a94Sopenharmony_ci export class NodeISayHello 1088c339a94Sopenharmony_ci { 1098c339a94Sopenharmony_ci addSayHelloListener(listener: NodeISayHelloListener); 1108c339a94Sopenharmony_ci sayHello(from: string, to: string, sayType: SayType); 1118c339a94Sopenharmony_ci removeSayHelloListener(listener: NodeISayHelloListener); 1128c339a94Sopenharmony_ci } 1138c339a94Sopenharmony_ci 1148c339a94Sopenharmony_ci export class NodeISayHelloListener 1158c339a94Sopenharmony_ci { 1168c339a94Sopenharmony_ci onSayHelloStart(info: SayInfo); 1178c339a94Sopenharmony_ci onSayHelloEnd(info: SayInfo); 1188c339a94Sopenharmony_ci } 1198c339a94Sopenharmony_ci 1208c339a94Sopenharmony_ci export enum SayType 1218c339a94Sopenharmony_ci { 1228c339a94Sopenharmony_ci /** 0 主动说话 */ 1238c339a94Sopenharmony_ci kInitiative, 1248c339a94Sopenharmony_ci /** 1 回应对方 */ 1258c339a94Sopenharmony_ci kResponse, 1268c339a94Sopenharmony_ci } 1278c339a94Sopenharmony_ci 1288c339a94Sopenharmony_ci class TestClass12 { 1298c339a94Sopenharmony_ci registerTestfunc14(cb: (wid: SayInfo, test: TestOptional) => void); 1308c339a94Sopenharmony_ci unRegisterTestfunc14(cb: (wid: SayInfo, test: TestOptional) => void); 1318c339a94Sopenharmony_ci } 1328c339a94Sopenharmony_ci function registerNamespacefunc23(cb: (wid: SayInfo, test: TestOptional) => void); 1338c339a94Sopenharmony_ci function unRegisterNamespacefunc23(cb: (wid: SayInfo, test: TestOptional) => void); 1348c339a94Sopenharmony_ci 1358c339a94Sopenharmony_ci export type SayInfo = 1368c339a94Sopenharmony_ci { 1378c339a94Sopenharmony_ci from: string; 1388c339a94Sopenharmony_ci fromId?: number; 1398c339a94Sopenharmony_ci content: string; 1408c339a94Sopenharmony_ci saidTime?: string; 1418c339a94Sopenharmony_ci isEnd?: boolean; 1428c339a94Sopenharmony_ci } 1438c339a94Sopenharmony_ci 1448c339a94Sopenharmony_ci export interface TestOptional 1458c339a94Sopenharmony_ci { 1468c339a94Sopenharmony_ci v1: string; 1478c339a94Sopenharmony_ci v2?: boolean; 1488c339a94Sopenharmony_ci v3: number; 1498c339a94Sopenharmony_ci v4?: string; 1508c339a94Sopenharmony_ci v5?: number; 1518c339a94Sopenharmony_ci } 1528c339a94Sopenharmony_ci} 1538c339a94Sopenharmony_ci 1548c339a94Sopenharmony_ciexport default napitest; 155