import type { Abi, AbiConstructor, AbiError, AbiEvent, AbiEventParameter, AbiFallback, AbiFunction, AbiParameter, AbiReceive, AbiStateMutability } from 'abitype'; import { type FormatAbiParameters as FormatAbiParameters_ } from './formatAbiParameters.js'; import type { AssertName } from './types/signatures.js'; /** * Formats ABI item (e.g. error, event, function) into human-readable ABI item * * @param abiItem - ABI item * @returns Human-readable ABI item */ export type FormatAbiItem = Abi[number] extends abiItem ? string : (abiItem extends AbiFunction ? AbiFunction extends abiItem ? string : `function ${AssertName}(${FormatAbiParameters})${abiItem['stateMutability'] extends Exclude ? ` ${abiItem['stateMutability']}` : ''}${abiItem['outputs']['length'] extends 0 ? '' : ` returns (${FormatAbiParameters})`}` : never) | (abiItem extends AbiEvent ? AbiEvent extends abiItem ? string : `event ${AssertName}(${FormatAbiParameters})` : never) | (abiItem extends AbiError ? AbiError extends abiItem ? string : `error ${AssertName}(${FormatAbiParameters})` : never) | (abiItem extends AbiConstructor ? AbiConstructor extends abiItem ? string : `constructor(${FormatAbiParameters})${abiItem['stateMutability'] extends 'payable' ? ' payable' : ''}` : never) | (abiItem extends AbiFallback ? AbiFallback extends abiItem ? string : `fallback() external${abiItem['stateMutability'] extends 'payable' ? ' payable' : ''}` : never) | (abiItem extends AbiReceive ? AbiReceive extends abiItem ? string : 'receive() external payable' : never); type FormatAbiParameters = abiParameters['length'] extends 0 ? '' : FormatAbiParameters_; /** * Formats ABI item (e.g. error, event, function) into human-readable ABI item * * @param abiItem - ABI item * @returns Human-readable ABI item */ export declare function formatAbiItem(abiItem: abiItem): FormatAbiItem; export {}; //# sourceMappingURL=formatAbiItem.d.ts.map