/*
 * 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 assert from 'assert';
// Only use for testing importEqualsDeclaration in toplevel
import g = require('fs');
export import m = require('fs');
module h {
    export module b1 {
        export interface c1 {
            a: number;
        }
    }
    export interface b1 {
        b: string;
    }
}
let a: h.b1.c1 = { a: 1 };
assert(a.a === 1);
let b: h.b1 = { b: "1" };
assert(b.b === "1");
module A {
    export module B {
        export class a1 {
            c: boolean = true;
        }
    }
}
var c: A.B.a1 = new A.B.a1();
assert(c.c === true);
module i {
    export namespace t {
        export module u {
            export interface v {
                d: number;
            }
        }
    }
}
let d: i.t.u.v = { d: 2 };
assert(d.d === 2);
type A = number;
declare const j: number;
declare namespace k {
    export { A };
}
let e: k.A = 3;
assert(e === 3);
namespace l {
    namespace n {
        export var q: string = "test-importEqualsDeclaration";
    }
    import o = n.q;
    export import p = n.q;
    assert(o === "test-importEqualsDeclaration");
    assert(p === "test-importEqualsDeclaration");
}
namespace l {
    assert(p === "test-importEqualsDeclaration");
}
assert(l.p === "test-importEqualsDeclaration");
export {};
