import { BlockHash, Extrinsic, Preamble } from '@dedot/codecs'; import { AddressOrPair, Callback, IRuntimeTxCall, ISubmittableExtrinsic, ISubmittableResult, PayloadOptions, SignerOptions, TxHash, TxPaymentInfo, TxUnsub } from '@dedot/types'; import { HexString } from '@dedot/utils'; import type { FrameSystemEventRecord } from '../../chaintypes/index.js'; import type { ISubstrateClient } from '../../types.js'; interface TxHooks { beforeSign?: (tx: Extrinsic & ISubmittableExtrinsic, signerAddress: string) => Promise; transformResult?: (result: ISubmittableResult) => R; } export declare abstract class BaseSubmittableExtrinsic extends Extrinsic implements ISubmittableExtrinsic { #private; readonly client: ISubstrateClient; constructor(client: ISubstrateClient, call: IRuntimeTxCall, preamble?: Preamble); withHooks(hooks: TxHooks): void; protected transformTxResult(result: ISubmittableResult): R; paymentInfo(account: AddressOrPair, options?: Partial): Promise; sign(fromAccount: AddressOrPair, options?: Partial): Promise; signAndSend(account: AddressOrPair, options?: Partial): TxHash; signAndSend(account: AddressOrPair, callback: Callback): TxUnsub; signAndSend(account: AddressOrPair, options: Partial, callback?: Callback): TxUnsub; send(): TxHash; send(callback: Callback): TxUnsub; protected getSystemEventsAt(hash: BlockHash): Promise; /** * Override callU8a to add transaction parameter validation before encoding */ get callU8a(): Uint8Array; toU8a(): Uint8Array; toHex(): HexString; } export {};