import { Address, Hash, Hex, Log } from 'viem'; import { BaseClientMixin, BaseGasEstimatesMixin, BaseTransactions } from './base'; import type { CallData, CreateDiversifierConfig, CreateRecoupConfig, SplitsClientConfig, TransactionConfig, TransactionFormat } from '../types'; declare class TemplatesTransactions extends BaseTransactions { constructor(transactionClientArgs: SplitsClientConfig & TransactionConfig); protected _createRecoupTransaction({ token, tranches, nonWaterfallRecipientAddress, nonWaterfallRecipientTrancheIndex, chainId, transactionOverrides, }: CreateRecoupConfig): Promise; protected _createDiversifierTransaction({ owner, paused, oracleParams, recipients, chainId, transactionOverrides, }: CreateDiversifierConfig): Promise; } export declare class TemplatesClient extends TemplatesTransactions { readonly eventTopics: { [key: string]: Hex[]; }; readonly callData: TemplatesCallData; readonly estimateGas: TemplatesGasEstimates; constructor(clientArgs: SplitsClientConfig); _submitCreateRecoupTransaction(createRecoupArgs: CreateRecoupConfig): Promise<{ txHash: Hash; }>; createRecoup(createRecoupArgs: CreateRecoupConfig): Promise<{ waterfallModuleAddress: Address; event: Log; }>; _submitCreateDiversifierTransaction(createDiversifierArgs: CreateDiversifierConfig): Promise<{ txHash: Hash; }>; createDiversifier(createDiversifierArgs: CreateDiversifierConfig): Promise<{ passThroughWalletAddress: Address; event: Log; }>; } export interface TemplatesClient extends BaseClientMixin { } declare class TemplatesGasEstimates extends TemplatesTransactions { constructor(clientArgs: SplitsClientConfig); createRecoup(createRecoupArgs: CreateRecoupConfig): Promise; createDiversifier(createDiversifierArgs: CreateDiversifierConfig): Promise; } interface TemplatesGasEstimates extends BaseGasEstimatesMixin { } declare class TemplatesCallData extends TemplatesTransactions { constructor(clientArgs: SplitsClientConfig); createRecoup(createRecoupArgs: CreateRecoupConfig): Promise; createDiversifier(createDiversifierArgs: CreateDiversifierConfig): Promise; } export {};