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_cideclare namespace napitest {
178c339a94Sopenharmony_ci
188c339a94Sopenharmony_ci// 测试普通方法
198c339a94Sopenharmony_cifunction funcTest(v: boolean): string;
208c339a94Sopenharmony_ci
218c339a94Sopenharmony_ci// 测试注册回调与调用回调
228c339a94Sopenharmony_ciexport class NodeISayHello
238c339a94Sopenharmony_ci{
248c339a94Sopenharmony_ci    // 注册object回调
258c339a94Sopenharmony_ci    addSayHelloListener(listener: NodeISayHelloListener);
268c339a94Sopenharmony_ci    // 注销object回调
278c339a94Sopenharmony_ci    removeSayHelloListener(listener: NodeISayHelloListener);
288c339a94Sopenharmony_ci
298c339a94Sopenharmony_ci    // register注册回调
308c339a94Sopenharmony_ci    registerCallbackfunc(cb : (wid: number) => string);
318c339a94Sopenharmony_ci    // unRegister注销回调
328c339a94Sopenharmony_ci    unRegisterCallbackfunc(cb : (wid: number) => string);
338c339a94Sopenharmony_ci
348c339a94Sopenharmony_ci    // 调用注册的object回调
358c339a94Sopenharmony_ci    sayHello(from: string, to: string, sayType: SayType);
368c339a94Sopenharmony_ci    // 调用register注册的回调
378c339a94Sopenharmony_ci    sayHi(from: string, to: string, sayType: SayType);
388c339a94Sopenharmony_ci
398c339a94Sopenharmony_ci    // promise回调
408c339a94Sopenharmony_ci    sayHelloWithResponse(from: string, to: string, sayType: SayType): Promise<{result: number, errMsg: string, response: string}>;
418c339a94Sopenharmony_ci    
428c339a94Sopenharmony_ci}
438c339a94Sopenharmony_ci
448c339a94Sopenharmony_ciexport class NodeISayHelloListener
458c339a94Sopenharmony_ci{
468c339a94Sopenharmony_ci    onSayHelloStart(info: SayInfo);
478c339a94Sopenharmony_ci    onSayHelloEnd(info: SayInfo);
488c339a94Sopenharmony_ci}
498c339a94Sopenharmony_ci
508c339a94Sopenharmony_ciexport enum SayType
518c339a94Sopenharmony_ci{
528c339a94Sopenharmony_ci    /** 0  主动说话 */
538c339a94Sopenharmony_ci    kInitiative,
548c339a94Sopenharmony_ci    /** 1  回应对方 */
558c339a94Sopenharmony_ci    kResponse,
568c339a94Sopenharmony_ci}
578c339a94Sopenharmony_ci
588c339a94Sopenharmony_ciexport type SayInfo = 
598c339a94Sopenharmony_ci{
608c339a94Sopenharmony_ci    from: string;
618c339a94Sopenharmony_ci    fromId?: number;
628c339a94Sopenharmony_ci    to: string;
638c339a94Sopenharmony_ci    toId?: number;
648c339a94Sopenharmony_ci    content: string;
658c339a94Sopenharmony_ci    saidTime: string;
668c339a94Sopenharmony_ci    isEnd: boolean;
678c339a94Sopenharmony_ci}
688c339a94Sopenharmony_ci 
698c339a94Sopenharmony_ci}
708c339a94Sopenharmony_ci
718c339a94Sopenharmony_ciexport default napitest;
72