create a cities list which will show school names and we want to add collapse to show and hide programs list in reactjs typescript with custom css modules
 Sure, I can help you create a cities list with collapsible programs list in ReactJS using TypeScript and CSS modules. Here's an example implementation:

First, let's create a `City` interface to define the shape of our city data:
```typescript
interface City {
  name: string;
  schools: School[];
}

interface School {
  name: string;
  programs: string[];
}
```
Next, let's create a `CityList` component that accepts an array of `City` objects as a prop:
```typescript
import React, { useState } from 'react';
import styles from './CityList.module.css';

interface CityListProps {
  cities: City[];
}

const CityList: React.FC<CityListProps> = ({ cities }) => {
  return (
    <ul className={styles.cityList}>
      {cities.map((city) => (
        <CityItem key={city.name} city={city} />
      ))}
    </ul>
  );
};

export default CityList;
```
Here, we're using the `useState` hook to manage the collapsed/expanded state of each city. We're also defining some CSS classes in a separate `CityList.module.css`
Here is an example of how you can create a list of cities with school names and a collapsible program list in ReactJS with TypeScript and custom CSS modules:

**CitiesList.tsx**
```typescript
import React, { useState } from'react';
import styles from './CitiesList.module.css';

interface School {
  id: number;
  name: string;
  programs: string[];
}

interface City {
  id: number;
  name: string;
  schools: School[];
}

const cities: City[] = [
  {
    id: 1,
    name: 'New York',
    schools: [
      {
        id: 1,
        name: 'NYU',
        programs: ['Computer Science', 'Business', 'Engineering'],
      },
      {
        id: 2,
        name: 'Columbia University',
        programs: ['Law', 'Medicine', 'Business'],
      },
    ],
  },
  {
    id: 2,
    name: 'Los Angeles',
    schools: [
      {
        id: 3,
        name: 'UCLA',
        programs: ['Computer Science', 'Engineering', 'Arts'],
      },
      {
        id: 4,
        name: 'USC',
        programs: ['Business', 'Law', 'Medicine'],
      },
    ],
  },
];

const CitiesList = () => {
  const [expandedCity, setExpandedCity] = useState<number | null>(null);

 