import { BigNumberish, ethers } from 'ethers';
import { MerkleTreeNode, HumanReadableAmount } from './types';
import { Duration } from 'luxon';
export declare class Client {
    private splendid;
    private splendidInterface;
    constructor(splendidContractAddress: string, signerOProvider: ethers.providers.Provider | ethers.Signer);
    createCollection({ curatorFee, initialCollectionContent, epochLength, }: {
        curatorFee: HumanReadableAmount;
        initialCollectionContent: MerkleTreeNode[];
        epochLength: Duration;
    }): Promise<ethers.ContractTransaction>;
    settleCreatorEpochRewardsFromCollection({ collectionOwner, collectionIndex, startingEpoch, startingEpochTreeNode, startingMerkleTreeLeaves, endingEpoch, endingEpochTreeNode, endingMerkleTreeLeaves, }: {
        collectionOwner: string;
        collectionIndex: number;
        startingEpoch: BigNumberish;
        startingEpochTreeNode: MerkleTreeNode;
        startingMerkleTreeLeaves: string[];
        endingEpoch: BigNumberish;
        endingEpochTreeNode: MerkleTreeNode;
        endingMerkleTreeLeaves: string[];
    }): Promise<ethers.ContractTransaction>;
    claimCreatorRewards({ creatorId }: {
        creatorId: BigNumberish;
    }): Promise<ethers.ContractTransaction>;
    claimCuratorRewards({ collectionIndex }: {
        collectionIndex: BigNumberish;
    }): Promise<ethers.ContractTransaction>;
    subscribeToCollection({ collectionOwner, collectionIndex, subscriber, payer, }: {
        collectionOwner: string;
        collectionIndex: BigNumberish;
        subscriber: string;
        payer: string;
    }): Promise<ethers.ContractTransaction>;
    parseEventLog(data: string, topics: string[]): Promise<ethers.utils.LogDescription>;
    private createMerkleTreeFromCollectionContent;
    private hashLeafNode;
    private createMerkleTree;
    private getMerkleProof;
}
