/*
 * Copyright (c) 2024 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.
 */
import b from 'assert';
type A1 = string;
type B = number;
declare namespace NS1 {
    export { NS2, A1 };
}
declare namespace NS2 {
    export { NS1, B };
}
export {};
declare const c: NS1.A1;
declare const d: NS2.B;
declare const e: NS1.NS2.B;
declare const f: NS2.NS1.A1;
declare const g: NS1.NS2.NS1.A1;
declare const h: NS2.NS1.NS2.B;
let i: NS1.A1 = "a";
let j: NS2.B = 1;
let k: NS1.NS2.B = 2;
let l: NS2.NS1.A1 = "b";
let m: NS1.NS2.NS1.A1 = "c";
let n: NS2.NS1.NS2.B = 3;
b(i === "a");
b(j === 1);
b(k === 2);
b(l === "b");
b(m === "c");
b(n === 3);
declare namespace o {
    function u(): void;
    let r: number;
}
declare module p {
    function u(): void;
    let r: number;
}
declare module q {
    export let r: s;
    type s = number;
    export {};
}
