import type { Abi } from 'abitype'; import type { Narrow } from 'abitype'; import type { Error, Filter } from './types.js'; import type { Signature, Signatures } from './types/signatures.js'; import type { ParseStructs } from './types/structs.js'; import type { ParseSignature } from './types/utils.js'; /** * Parses human-readable ABI item (e.g. error, event, function) into `Abi` item. * * @param signature - Human-readable ABI item * @returns Parsed `Abi` item. */ export type ParseAbiItem = (signature extends string ? string extends signature ? Abi[number] : signature extends Signature ? ParseSignature : never : never) | (signature extends readonly string[] ? string[] extends signature ? Abi[number] : signature extends Signatures ? ParseStructs extends infer structs ? { [key in keyof signature]: ParseSignature; } extends infer mapped extends readonly unknown[] ? Filter[0] extends infer result ? result extends undefined ? never : result : never : never : never : never : never); /** * Parses human-readable ABI item (e.g. error, event, function) into `Abi` item. * * @param signature - Human-readable ABI item * @returns Parsed `Abi` item. */ export declare function parseAbiItem(signature: Narrow & ((signature extends string ? string extends signature ? unknown : Signature : never) | (signature extends readonly string[] ? signature extends readonly [] ? Error<'At least one signature required.'> : string[] extends signature ? unknown : Signatures : never))): ParseAbiItem; //# sourceMappingURL=parseAbiItem.d.ts.map