···2233export type ISymbolIdentifier = number | ISymbolMeta;
4455-export interface ISymbolIn {
55+export type ISymbolIn = {
66 /**
77 * Array of file names (without extensions) from which this symbol is re-exported.
88 *
99 * @default undefined
1010 */
1111- readonly exportFrom?: ReadonlyArray<string>;
1111+ exportFrom?: ReadonlyArray<string>;
1212 /**
1313 * Whether this symbol is exported from its own file.
1414 *
1515 * @default false
1616 */
1717- readonly exported?: boolean;
1717+ exported?: boolean;
1818 /**
1919 * External module name if this symbol is imported from a module not managed
2020 * by the project (e.g. "zod", "lodash").
2121 *
2222 * @default undefined
2323 */
2424- readonly external?: string;
2424+ external?: string;
2525 /**
2626 * Optional output strategy to override default behavior.
2727 *
2828 * @returns The file path to output the symbol to, or undefined to fallback to default behavior.
2929 */
3030- readonly getFilePath?: (symbol: ISymbolOut) => string | undefined;
3030+ getFilePath?: (symbol: ISymbolOut) => string | undefined;
3131 /**
3232 * Unique symbol ID. If one is not provided, it will be auto-generated.
3333 */
···3535 /**
3636 * Kind of import if this symbol represents an import.
3737 */
3838- readonly importKind?: 'namespace' | 'default' | 'named';
3838+ importKind?: 'namespace' | 'default' | 'named';
3939 /**
4040 * Kind of symbol.
4141 */
4242- readonly kind?: 'class' | 'function' | 'type';
4242+ kind?: 'class' | 'function' | 'type';
4343 /**
4444 * Arbitrary metadata about the symbol.
4545 *
4646 * @default undefined
4747 */
4848- readonly meta?: ISymbolMeta;
4848+ meta?: ISymbolMeta;
4949 /**
5050 * The desired name for the symbol within its file. If there are multiple symbols
5151 * with the same desired name, this might not end up being the actual name.
5252 *
5353 * @example "UserModel"
5454 */
5555- readonly name?: string;
5555+ name?: string;
5656 /**
5757 * Placeholder name for the symbol to be replaced later with the final value.
5858 *
5959 * @example "_heyapi_31_"
6060 */
6161 readonly placeholder?: string;
6262-}
6262+};
63636464-export interface ISymbolOut extends ISymbolIn {
6565- /**
6666- * Array of file names (without extensions) from which this symbol is re-exported.
6767- */
6868- readonly exportFrom: ReadonlyArray<string>;
6969- /**
7070- * Unique symbol ID.
7171- */
7272- readonly id: number;
7373- /**
7474- * Placeholder name for the symbol to be replaced later with the final value.
7575- *
7676- * @example "_heyapi_31_"
7777- */
7878- readonly placeholder: string;
7979-}
6464+export type ISymbolOut = Omit<ISymbolIn, 'id' | 'placeholder'> &
6565+ Pick<Required<ISymbolIn>, 'id' | 'placeholder'>;
80668167export interface ISymbolRegistry {
8268 /**