/// import { PublicKey } from "@solana/web3.js"; import { PdaClient, PdaModule } from "@honeycomb-protocol/hive-control"; import { CurrencyKind } from "../generated"; /** * Extends the Honeycomb interface with the `pda` method to access the CurrencyManagerPdaClient. */ declare module "@honeycomb-protocol/hive-control" { interface PdaModule { currencyManager: () => CurrencyManagerPdaClient; } } /** * Represents the Fetch Module which contains boiler plates for pda generations. * @category Modules */ export declare class CurrencyManagerPdaClient extends PdaClient { readonly defaultProgramId: PublicKey; /** * Creates a new instance of the CurrencyManagerPdaClient. */ constructor(); /** * Install this client in the PdaModule. * Every derived module class must implement this method. * @param pdaModule The PdaModule instance to install the client in. * @returns The updated PdaModule instance with the installed client. */ install(pdaModule: PdaModule): PdaModule; /** * Generates a PDA for the currency program based on the given `mint`. * @category Helpers * @param mint The mint public key. * @param programId The program ID of the currency program (optional, default is PROGRAM_ID). * @returns The generated PDA address for the currency program. */ currency(mint: PublicKey, programId?: PublicKey): [PublicKey, number, Buffer[]]; /** * Generates a PDA for the holder account based on the given `owner` and `mint`. * @category Helpers * @param owner The owner public key of the holder account. * @param mint The mint public key. * @param programId The program ID of the holder account program (optional, default is PROGRAM_ID). * @returns The generated PDA address for the holder account. */ holderAccount(owner: PublicKey, mint: PublicKey, programId?: PublicKey): [PublicKey, number, Buffer[]]; /** * Generates both the holder account PDA and the associated token account PDA for a given `owner`, `mint`, * `currencyKind`, `tokenProgram`, and `programId`. * @category Helpers * @param owner The owner public key of the holder account. * @param mint The mint public key. * @param currencyKind The type of currency (e.g., permissioned or non-permissioned). * @param tokenProgram The program ID of the SPL Token program (optional, default is TOKEN_PROGRAM_ID). * @param programId The program ID of the token account program (optional, default is PROGRAM_ID). * @returns An object containing the generated PDA addresses for both the holder account and the token account. */ holderAccountWithTokenAccount(owner: PublicKey, mint: PublicKey, currencyKind: CurrencyKind, programId?: PublicKey): { holderAccount: PublicKey; tokenAccount: PublicKey; }; } /** * Factory function to create a new instance of the CurrencyManagerPdaClient. * @category Factory * @returns A new instance of the CurrencyManagerPdaClient. */ export declare const currencyManagerPdas: () => CurrencyManagerPdaClient;