#!/usr/bin/env node /** * Post-process Typechain-generated factory files to add interface metadata * * This utility adds ERC-165 interface IDs and interface names to Typechain-generated * factory classes as static readonly properties. * * @example * ```typescript * import { addInterfaceIds } from './utils/addInterfaceIds' * addInterfaceIds('./types/factories') * ``` */ interface AbiItem { type: string; name?: string; inputs?: Array<{ type: string; name?: string; }>; [key: string]: unknown; } /** * Calculate ERC-165 interface ID from contract ABI * @param abi - Contract ABI array * @returns Interface ID as hex string (e.g., "0x12345678") */ export declare function calculateInterfaceId(abi: AbiItem[]): string | null; /** * Add interface metadata to a single factory file * @param factoryPath - Absolute path to the factory file * @returns True if metadata was added, false if skipped, null if failed */ export declare function addInterfaceIdToFactory(factoryPath: string): boolean | null; /** * Add interface IDs to all Typechain-generated factory files in a directory * @param factoriesDir - Path to the factories directory */ export declare function addInterfaceIds(factoriesDir: string): void; export {}; //# sourceMappingURL=addInterfaceIds.d.ts.map