import * as web3 from "@solana/web3.js"; import { Honeycomb, Operation } from "@honeycomb-protocol/hive-control"; import { HplCurrency } from "../HplCurrency"; /** * Represents the arguments for creating a "Create Holder Account" operation. * @category Types */ type CreateCreateHolderAccountOperationArgs = { currency: HplCurrency; owner: web3.PublicKey; runAllways?: boolean; programId?: web3.PublicKey; }; /** * Creates a "Create Holder Account" operation for the given owner and currency, * creating a new holder account and token account for the specified currency. * * If the token account `already exists` (In case of wrapped currency) then "Wrap Holder Account" instruction will be created. * * @category Operation Builders * @param honeycomb The Honeycomb instance. * @param args The arguments for creating the "Create Holder Account" operation. * @returns An object containing the "Create Holder Account" operation and the holder account address. * @example * const honeycomb = new Honeycomb(...); // Initialize Honeycomb instance * const currency = ...; // HplCurrency instance * const ownerPublicKey = ...; // Owner's public key * * // Create a "Create Holder Account" operation for the owner and currency * const operationArgs: CreateCreateHolderAccountOperationArgs = { * currency, * owner: ownerPublicKey, * }; * const { operation } = await createCreateHolderAccountOperation(honeycomb, operationArgs); * operation.send(); */ export declare function createCreateHolderAccountOperation(honeycomb: Honeycomb, args: CreateCreateHolderAccountOperationArgs): Promise<{ operation: Operation; holderAccount: web3.PublicKey; tokenAccount: web3.PublicKey; }>; export {};