import { BigNumberish } from "ethers"; import { PublicClaimCondition } from "../types/claim-conditions/PublicMintCondition"; import { SnapshotInfo } from "../types/snapshots/SnapshotInfo"; import ClaimConditionPhase from "./ClaimConditionPhase"; declare class ClaimConditionFactory { private phases; private createSnapshot; constructor(createSnapshotFunc: (leafs: string[]) => Promise); /** * Used internally when creating a drop module/updating * the claim conditions of a drop module. * * @internal * * @returns - The claim conditions that will be used when validating a users claim transaction. */ buildConditions(): Promise; /** * Used internally when creating a drop module/updating * the claim conditions of a drop module. * * @internal * * @returns - The claim conditions that will be used when validating a users claim transaction. */ buildConditionsForDropV1(): Promise; /** * Converts a set of generic `PublicClaimCondition`s into a `ClaimConditionFactory` * * @param conditions - The conditions to load, should be returned directly from the contract. * @returns - The loaded claim condition factory. */ fromPublicClaimConditions(conditions: PublicClaimCondition[]): this; /** * Creates a new claim 'phase' with its own set of claim conditions * * @param startTime - The start time of the phase in epoch seconds or a `Date` object. * @param maxQuantity - The max quantity of the phase. By default, this is set to be infinite. In most cases, if your drop only has a single phase, you don't need to override this value. If your drop has multiple phases, you should override this value and specify how many tokens are available for each specific phase. * @param maxQuantityPerTransaction - The maximum number of claims that can be made in a single transaction. By default, this is set to infinite which means that there is no limit. * * @returns - The claim condition builder. */ newClaimPhase({ startTime, maxQuantity, maxQuantityPerTransaction, }: { startTime: Date | number; maxQuantity?: BigNumberish; maxQuantityPerTransaction?: BigNumberish; }): ClaimConditionPhase; /** * Removes a claim condition phase from the factory. * * @param phase - The phase to remove */ deleteClaimPhase(index: number): Promise; /** * @deprecated - Use {@link ClaimConditionFactory.deleteClaimPhase} instead. */ removeClaimPhase(_index: number): void; /** * Helper method fetches all snapshots from a factory. * * @returns - All snapshots in the condition factory. */ allSnapshots(): SnapshotInfo[]; } export default ClaimConditionFactory;