import { Address, Hex } from 'viem'; import { DistributeRequest, PagingOptions, PrexUser, TokenDistributeRequestEntity } from '../types'; import { PrexSigner } from '../core/sign'; import { PrexApiService } from '../api'; import { PrexClient } from '../prex-client'; import { PrexStorage } from '../storage/PrexStorage'; import { DistributeActionInterface } from '../interfaces/prex-client-interface'; import { DistributionSecret } from '../utils/distribution-secrets'; type DistributionSecretParams = DistributionSecret & { distributionId: Hex; recipient?: Address; }; export interface RegisterServerGeneratedSecretInput { distributionId: string; secret: string; encodedRequest: Hex; chainId: number; shortCode: string; } export interface ServerGeneratedSecretInput { distributionId: string; recipient: Address; coordinate: Hex; deadline: string; shortCode: string; } export declare class DistributeAction implements DistributeActionInterface { private client; private apiService; private storage; private user?; private signer?; constructor(client: PrexClient, apiService: PrexApiService, storage: PrexStorage, user?: PrexUser | undefined, signer?: PrexSigner | undefined); submit({ token, amount, amountPerWithdrawal, maxAmountPerAddress, expiry, coolTime, name, coordinate, sender: senderParam, registerPath, }: { token: Address; amount: bigint; amountPerWithdrawal: bigint; maxAmountPerAddress?: bigint; expiry: bigint; coolTime?: bigint; name: string; coordinate?: Hex; enableEncryption?: boolean; sender?: Address; registerPath?: string; }): Promise<{ id: string; secret: string; shortCode: string; }>; generateSubSecret(id: Hex): Promise<{ id: `0x${string}`; secret: string; }>; deposit({ amount, requestId, sender: senderParam, }: { amount: bigint; requestId: Hex; sender?: Address; }): Promise; cancel({ requestId, from }: { requestId: Hex; from?: Address; }): Promise; getTokenOfRequest(id: Hex): Promise
; getExpiryOfRequest(id: Hex): Promise; getCoordinateOfRequest(id: Hex): Promise; getRequest(id: Hex, { secret, coordinate: coordinateFromServer, }: { secret?: Hex; coordinate?: Hex; }): Promise; prepareSecret(_params: { path: string; auth?: string; requestId: Hex; shortCode: string; recipient?: Address; }): Promise<{ secret: `0x${string}`; }>; prepareReceive(params: { requestId: Hex; secret: string; recipient?: Address; }): Promise; _prepareReceive(params: DistributionSecretParams): Promise; receive({ requestId }: { requestId: Hex; }): Promise; queryRequests(query?: { user: Address; }, pagingOptions?: PagingOptions): Promise; static generateNonce(): bigint; static generateShortCode(): string; static generateWithdrawSignature(secret: Hex, dispatcher: Address, nonce: bigint, deadline: bigint, recipient: Address): Promise<`0x${string}`>; private getDeadline; private getKeyForParams; private getSecret; private setSecret; private getShortCode; private setShortCode; _callAPIRegisterRealTimeSecret(path: string, data: RegisterServerGeneratedSecretInput): Promise<{ success: boolean; }>; _callAPIGenerateRealTimeSecret(path: string, data: ServerGeneratedSecretInput, auth?: string): Promise<{ secret: Hex; }>; _post(path: string, data: any, auth?: string): Promise; } export declare function validateDistributionAndSecret(registerRequest: RegisterServerGeneratedSecretInput): Promise; export declare function createServerGeneratedSecret(secret: string, { recipient, coordinate, deadline }: ServerGeneratedSecretInput): Promise; export {}; //# sourceMappingURL=distribute.d.ts.map