import { Address, GetContractReturnType, Hash, Hex, Log } from 'viem'; import { BaseClientMixin, BaseGasEstimatesMixin, BaseTransactions } from './base'; import { vestingFactoryAbi } from '../constants/abi/vestingFactory'; import { vestingAbi } from '../constants/abi/vesting'; import type { CallData, CreateVestingConfig, ReadContractArgs, ReleaseVestedFundsConfig, SplitsClientConfig, StartVestConfig, TransactionConfig, TransactionFormat, SplitsPublicClient } from '../types'; type VestingAbi = typeof vestingAbi; type VestingFactoryAbi = typeof vestingFactoryAbi; declare class VestingTransactions extends BaseTransactions { constructor(transactionClientArgs: SplitsClientConfig & TransactionConfig); protected _createVestingModuleTransaction({ beneficiary, vestingPeriodSeconds, chainId, transactionOverrides, }: CreateVestingConfig): Promise; protected _startVestTransaction({ vestingModuleAddress, tokens, transactionOverrides, }: StartVestConfig): Promise; protected _releaseVestedFundsTransaction({ vestingModuleAddress, streamIds, transactionOverrides, }: ReleaseVestedFundsConfig): Promise; protected _getVestingContract(vestingModule: string, chainId: number): GetContractReturnType; protected _getVestingFactoryContract(chainId: number): GetContractReturnType; } export declare class VestingClient extends VestingTransactions { readonly eventTopics: { [key: string]: Hex[]; }; readonly callData: VestingCallData; readonly estimateGas: VestingGasEstimates; constructor(clientArgs: SplitsClientConfig); _submitCreateVestingModuleTransaction(createVestingArgs: CreateVestingConfig): Promise<{ txHash: Hash; }>; createVestingModule(createVestingArgs: CreateVestingConfig): Promise<{ vestingModuleAddress: string; event: Log; }>; _submitStartVestTransaction(startVestArgs: StartVestConfig): Promise<{ txHash: Hash; }>; startVest(startVestArgs: StartVestConfig): Promise<{ events: Log[]; }>; _submitReleaseVestedFundsTransaction(releaseFundsArgs: ReleaseVestedFundsConfig): Promise<{ txHash: Hash; }>; releaseVestedFunds(releaseFundsArgs: ReleaseVestedFundsConfig): Promise<{ events: Log[]; }>; predictVestingModuleAddress({ beneficiary, vestingPeriodSeconds, chainId, }: CreateVestingConfig): Promise<{ address: Address; exists: boolean; }>; getBeneficiary({ vestingModuleAddress, chainId, }: ReadContractArgs & { vestingModuleAddress: string; }): Promise<{ beneficiary: Address; }>; getVestingPeriod({ vestingModuleAddress, chainId, }: ReadContractArgs & { vestingModuleAddress: string; }): Promise<{ vestingPeriod: bigint; }>; getVestedAmount({ vestingModuleAddress, streamId, chainId, }: ReadContractArgs & { vestingModuleAddress: string; streamId: string; }): Promise<{ amount: bigint; }>; getVestedAndUnreleasedAmount({ vestingModuleAddress, streamId, chainId, }: ReadContractArgs & { vestingModuleAddress: string; streamId: string; }): Promise<{ amount: bigint; }>; } export interface VestingClient extends BaseClientMixin { } declare class VestingGasEstimates extends VestingTransactions { constructor(clientArgs: SplitsClientConfig); createVestingModule(createVestingArgs: CreateVestingConfig): Promise; startVest(startVestArgs: StartVestConfig): Promise; releaseVestedFunds(releaseFundsArgs: ReleaseVestedFundsConfig): Promise; } interface VestingGasEstimates extends BaseGasEstimatesMixin { } declare class VestingCallData extends VestingTransactions { constructor(clientArgs: SplitsClientConfig); createVestingModule(createVestingArgs: CreateVestingConfig): Promise; startVest(startVestArgs: StartVestConfig): Promise; releaseVestedFunds(releaseFundsArgs: ReleaseVestedFundsConfig): Promise; } export {};