import { PortableRegistry } from '@dedot/codecs'; import { SignerPayloadJSON } from '@dedot/types'; import { ISubstrateClient } from '../../types.js'; import { SignedExtension } from './SignedExtension.js'; /** * A fallback signed extension that can be used for extensions * that don't require external input. * * This extension is automatically used for: * - Unknown extensions with empty struct or tuple types * - Known extensions that don't require input, such as: * - CheckNonZeroSender: Ensures sender is not the zero address * - CheckWeight: Block resource (weight) limit check * - PrevalidateAttests: Validates `attest` calls prior to execution * - StorageWeightReclaim: Storage weight reclaim mechanism * * These extensions have empty struct or tuple types and don't need explicit implementation. */ export declare class FallbackSignedExtension extends SignedExtension { private readonly extensionIdent; constructor(client: ISubstrateClient, options: any, extensionIdent: string); get identifier(): string; init(): Promise; fromPayload(_: SignerPayloadJSON): Promise; toPayload(): Partial; } /** * Checks if a type is an empty struct or tuple (doesn't require external input). * * @param registry The portable registry * @param typeId The type ID to check * @returns True if the type is an empty struct or tuple, false otherwise */ export declare function isEmptyStructOrTuple(registry: PortableRegistry, typeId: number): boolean;