import { Program } from '@coral-xyz/anchor';
import { PublicKey } from '@solana/web3.js';
import { TriadProtocol } from './types/triad_protocol';
import { RpcOptions } from './types';
export default class Poseidon {
    private program;
    private rpcOptions;
    constructor(program: Program<TriadProtocol>, rpcOptions: RpcOptions);
    /**
     * Transfer Poseidon
     * @param args.poseidonAsset - Poseidon Asset
     * @param args.ticketAsset - Ticket Asset
     * @param args.ticketNumber - Ticket Number
     */
    transferPoseidon(poseidons: {
        poseidonAsset: PublicKey;
        ticketAsset: PublicKey;
        ticketNumber: number;
    }[]): Promise<string>;
    /**
     * Withdraw Poseidon
     * @param poseidonAsset - Poseidon Asset - CORE PublicKey
     * @param nft - NFT Poseidon Number
     */
    withdrawPoseidon(poseidonAsset: PublicKey, nft: number): Promise<string>;
    /**
     * Collect Royalty
     * @param collectionSymbol - Collection Symbol
     */
    collectRoyalty(collectionSymbol: string): Promise<string>;
    /**
     * Add Trader Poseidon
     * @param user - User Public Key
     * @param poseidonAsset - Poseidon Asset
     */
    addTraderPoseidon(user: PublicKey, poseidonAsset: PublicKey): Promise<string>;
    /**
     * Remove Trader Poseidon
     * @param user - User Public Key
     * @param poseidonAsset - Poseidon Asset
     */
    removeTraderPoseidon(user: PublicKey, poseidonAsset: PublicKey): Promise<string>;
}
