#!/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