* Copyright (c) 2026 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* @file Provides the capability of integrating advertising services with vendors
* @kit AdsKit
*/
* @since 20
*/
interface SyscapTestResult {
testName: string;
passed: boolean;
description: string;
}
* @since 20
*/
declare namespace SyscapTestCases {
const multiLineDirect: {
readonly input: string;
readonly expected: string;
readonly description: "Multi-line comment with @systemapi immediately after /*";
};
* Test 3:Included in the definition
*/
const singleLineComment: {
readonly input: string;
readonly expected: string;
readonly description: "Single-line comment with @systemapi";
};
* Test 5: Indented comments
*/
const indentedComments: {
readonly input: string;
readonly expected: string;
readonly description: "Indented comments";
};
* Test 8: No space after // in comment
*/
const noSpaceComment: {
readonly input: string;
readonly expected: string;
readonly description: "No space after // in comment";
};
* Test 9: Tab indented comments
*/
const tabIndentedComments: {
readonly input: string;
readonly expected: string;
readonly description: "Tab indented comments";
};
* Test 12: Complete example from requirement
*/
const completeExample: {
readonly input: string;
readonly expected: string;
readonly description: "Complete example from requirement";
};
}
* Test runner interface - implementation should be in .ts file
*/
declare interface SyscapTestRunner {
* Run all tests and return results
*/
runAllTests(): SyscapTestResult[];
* Run specific Test by name
*/
runTest(testName: keyof typeof SyscapTestCases): SyscapTestResult;
* Validate Test cases (check that inputs/expected are properly formatted)
*/
validateTestCases(): boolean;
}
* @since 20
*/
declare namespace SyscapPatterns {
* Combined pattern for both comment types
*/
const combinedPattern: RegExp;
}
* @since 20
*/
declare namespace SyscapErrors {
* Error when comment removal fails
*/
interface RemovalError extends Error {
readonly code: string;
readonly lineNumber?: number;
readonly columnNumber?: number;
}
* Error when Test validation fails
*/
interface ValidationError extends Error {
readonly testName: string;
readonly actual: string;
readonly expected: string;
}
* Error when pattern matching fails
*/
interface PatternError extends Error {
readonly pattern: string;
readonly input: string;
}
}
* Export all declarations
*/
export { SyscapTestResult, SyscapTestCases, SyscapTestRunner, SyscapPatterns, SyscapErrors };