import type { ErrorType } from '../../errors/utils.js'; import type { Block, BlockTag } from '../../types/block.js'; import type { Chain } from '../../types/chain.js'; import type { ExtractChainFormatterExclude, ExtractChainFormatterReturnType } from '../../types/chain.js'; import type { Hash } from '../../types/misc.js'; import type { RpcBlock } from '../../types/rpc.js'; import type { ExactPartial, Prettify } from '../../types/utils.js'; import { type DefineFormatterErrorType } from './formatter.js'; import { type FormattedTransaction } from './transaction.js'; type BlockPendingDependencies = 'hash' | 'logsBloom' | 'nonce' | 'number'; export type FormattedBlock>, _ExcludedPendingDependencies extends string = BlockPendingDependencies & ExtractChainFormatterExclude, _Formatted = Omit<_FormatterReturnType, BlockPendingDependencies> & { [_key in _ExcludedPendingDependencies]: never; } & Pick, BlockPendingDependencies>, _Transactions = TIncludeTransactions extends true ? Prettify>[] : Hash[]> = Omit<_Formatted, 'transactions'> & { transactions: _Transactions; }; export type FormatBlockErrorType = ErrorType; export declare function formatBlock(block: ExactPartial): Block; export type DefineBlockErrorType = DefineFormatterErrorType | ErrorType; export declare const defineBlock: ({ exclude, format: overrides, }: { exclude?: TExclude | undefined; format: (_: TOverrideParameters) => TOverrideReturnType; }) => { exclude: TExclude | undefined; format: (args: import("../../types/utils.js").Assign, TOverrideParameters>) => (import("../../types/utils.js").Assign extends infer T ? { [K in keyof T]: import("../../types/utils.js").Assign[K]; } : never) & { [_key in TExclude[number]]: never; }; type: "block"; }; export {}; //# sourceMappingURL=block.d.ts.map