/// import { BigNumber } from "ethers"; export declare enum ClaimType { Airdrop = 0, GnoOption = 1, UserOption = 2, Investor = 3, Team = 4, Advisor = 5 } export interface Claim { account: string; type: ClaimType; claimableAmount: BigNumber; } export interface ProvenClaim extends Claim { index: number; proof: string[]; } export interface ProvenClaims { claims: ProvenClaim[]; merkleRoot: string; } export interface ExecutableClaim extends ProvenClaim { claimedAmount: BigNumber; value?: BigNumber; } export declare const allClaimTypes: ClaimType[]; export declare function claimHash(index: number | BigNumber, { account, type, claimableAmount }: Claim): Buffer; declare const claimInputEntries: readonly ["index", "type", "account", "claimableAmount", "claimedAmount", "proof"]; declare type MapIntoExecutableClaim = T extends readonly [infer U, ...infer Rest] ? U extends keyof ExecutableClaim ? [ExecutableClaim[U], ...MapIntoExecutableClaim] : never : []; export declare type ClaimInput = MapIntoExecutableClaim; declare type ArrayToVecArray = T extends readonly [infer U, ...infer Rest] ? [U[], ...ArrayToVecArray] : []; export declare type ClaimManyInput = [...ArrayToVecArray, BigNumber[]]; export declare function getClaimInput(claim: ExecutableClaim): ClaimInput; export declare function getClaimManyInput(claims: ExecutableClaim[]): ClaimManyInput; export declare function computeProofs(claims: Claim[]): ProvenClaims; export {};