# mod.ts
export type Test<T extends Other> = Other2;

interface Other {}
interface Other2 {}

// should not have lat and long in deps
export type Tuple = [lat: number, long: number];

# output
file:///mod.ts: EsModuleInfo {
    module_id: ModuleId(
        0,
    ),
    specifier: "file:///mod.ts",
    re_exports: [],
    swc_id_to_symbol_id: {
        (
            "Test",
            #2,
        ): 1,
        (
            "Other",
            #2,
        ): 2,
        (
            "Other2",
            #2,
        ): 3,
        (
            "Tuple",
            #2,
        ): 4,
    },
    symbols: {
        0: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 0,
            parent_id: None,
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export type Test<T extends Other> = Other2;\n\ninterface Other {}\ninterface Other2 {}\n\n// should not have lat and long in deps\nexport type Tuple = [lat: number, long: number];",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            0,
                        ),
                        end: SourcePos(
                            173,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {
                1,
                2,
                3,
                4,
            },
            exports: {
                "Test": 1,
                "Tuple": 4,
            },
            members: {},
        },
        1: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 1,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export type Test<T extends Other> = Other2;",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            0,
                        ),
                        end: SourcePos(
                            43,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        2: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 2,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "interface Other {}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            45,
                        ),
                        end: SourcePos(
                            63,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        3: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 3,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "interface Other2 {}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            64,
                        ),
                        end: SourcePos(
                            83,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        4: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 4,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export type Tuple = [lat: number, long: number];",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            125,
                        ),
                        end: SourcePos(
                            173,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
    },
}
== symbol deps (types and exprs) ==
1:0..43 [Id(("Other", #2)), Id(("Other2", #2))]

== symbol deps (types only) ==
1:0..43 [Id(("Other", #2)), Id(("Other2", #2))]

== export definitions ==
[Test]: file:///mod.ts:0..43
  export type Test<T extends Other> = Other2;
[Tuple]: file:///mod.ts:125..173
  export type Tuple = [lat: number, long: number];
