///
import { BN, Program, Wallet } from '@coral-xyz/anchor';
import { Connection, PublicKey, Transaction } from '@solana/web3.js';
import { SogaNodeSale } from "./types/soga_node_sale.js";
import { InitializeConfig, InitializeSalePhaseConfig, UpdateSalePhaseConfig, InitializeSalePhasePaymentTokenConfig, UpdateSalePhasePaymentTokenConfig, InitializeSalePhaseTierConfig, UpdateSalePhaseTierConfig, AirdropConfig, BuyConfig, BuyWithTokenConfig, FillOrderConfig, CreateOrderReceiptConfig } from "./configs/index.js";
import { AirdropEvent, BuyEvent, BuyWithTokenEvent, FillOrderEvent, InitializeSalePhaseEvent, InitializeSalePhasePaymentTokenEvent, InitializeSalePhaseTierEvent, UpdateSalePhaseEvent, UpdateSalePhasePaymentTokenEvent, UpdateSalePhaseTierEvent, CreateOrderReceiptEvent } from "./events-types/index.js";
export declare class SogaNodeSaleLib {
program: Program;
connection: Connection;
constructor(programId: PublicKey, connection: Connection, wallet: Wallet);
signTransaction(tx: Transaction, secretKey: string): Transaction;
addSignatureInTransaction(tx: Transaction, signerAddress: PublicKey, signature: Buffer): Transaction;
addFeePayerAndRecentBlockHashInTransaction(tx: Transaction, feePayer: PublicKey, units?: number): Promise;
isPdaAddressInitialize(pdaAddress: PublicKey): Promise;
getMetadataAccountPda(mintAccountPda: PublicKey, mplProgramId?: PublicKey): Promise<[PublicKey, number]>;
getMasterEditionAccountPda(mintAccountPda: PublicKey, mplProgramId?: PublicKey): Promise<[PublicKey, number]>;
getSogaNodeSaleConfigAccountPdaAndBump(): Promise<[PublicKey, number]>;
getSogaNodeSalePhaseDetailAccountPdaAndBump(salePhaseName: string): Promise<[PublicKey, number]>;
getSogaNodeSalePhaseTierDetailAccountPdaAndBump(sogaNodeSalePhaseDetailPda: PublicKey, tierId: string): Promise<[PublicKey, number]>;
getSogaNodeSalePhasePaymentTokenDetailAccountPdaAndBump(sogaNodeSalePhaseDetailPda: PublicKey, tokenMintAccount: PublicKey): Promise<[PublicKey, number]>;
getSogaNodeSalePhaseTierCollectionMintAccountPdaAndBump(sogaNodeSalePhaseTierDetailPda: PublicKey): Promise<[PublicKey, number]>;
getUserDetailAccountPdaAndBump(sogaNodeSalePhaseDetailPda: PublicKey, user: PublicKey): Promise<[PublicKey, number]>;
getUserTierDetailAccountPdaAndBump(userDetailPda: PublicKey, sogaNodeSalePhaseTierDetailPda: PublicKey): Promise<[PublicKey, number]>;
getNodeMintAccountPdaAndBump(sogaNodeSalePhaseTierCollectionMintAccountPda: PublicKey, tokenId: string): Promise<[PublicKey, number]>;
getOrderDetailAccountPdaAndBump(sogaNodeSalePhaseDetailPda: PublicKey, userDetailPda: PublicKey, orderId: string): Promise<[PublicKey, number]>;
createInitializeTransaction(payer: PublicKey, mainSigningAuthority: PublicKey, config?: InitializeConfig): Promise;
createInitializeSalePhaseTransaction(payer: PublicKey, mainSigningAuthority: PublicKey, signingAuthority: PublicKey, backAuthority: PublicKey, salePhaseName: string, totalTier: number, nodeName: string, nodeSymbol: string, nodeUrl: string, priceFeed: PublicKey, priceFeedId: string, paymentReceiver: PublicKey, config?: InitializeSalePhaseConfig): Promise;
createUpdateKeyTransaction(payer: PublicKey, mainSigningAuthority: PublicKey, signingAuthority: PublicKey, backAuthority: PublicKey, salePhaseName: string): Promise;
createUpdateSalePhaseTransaction(payer: PublicKey, signingAuthority: PublicKey, salePhaseName: string, nodeName: string, nodeSymbol: string, nodeUrl: string, priceFeed: PublicKey, priceFeedId: string, paymentReceiver: PublicKey, buyEnable: boolean, buyWithTokenEnable: boolean, airdropEnable: boolean, config?: UpdateSalePhaseConfig): Promise;
createInitializeSalePhaseTokenPaymentTransaction(payer: PublicKey, signingAuthority: PublicKey, salePhaseName: string, priceFeed: PublicKey, priceFeedId: string, paymentTokenMintAccount: PublicKey, paymentTokenProgram: PublicKey, config?: InitializeSalePhasePaymentTokenConfig): Promise;
createUpdateSalePhaseTokenPaymentTransaction(payer: PublicKey, signingAuthority: PublicKey, salePhaseName: string, priceFeed: PublicKey, priceFeedId: string, paymentTokenMintAccount: PublicKey, paymentTokenProgram: PublicKey, enable: boolean, config?: UpdateSalePhasePaymentTokenConfig): Promise;
createInitializeSalePhaseTierTransaction(payer: PublicKey, signingAuthority: PublicKey, salePhaseName: string, price: BN, quantity: BN, mintLimit: BN, collectionName: string, collectionSymbol: string, collectionUrl: string, whitelistQuantity: BN, tierId: number, config?: InitializeSalePhaseTierConfig): Promise;
createUpdateSalePhaseTierTransaction(payer: PublicKey, signingAuthority: PublicKey, salePhaseName: string, tierId: string, price: BN, mintLimit: BN, buyEnable: boolean, buyWithTokenEnable: boolean, airdropEnable: boolean, whitelistQuantity: BN, config?: UpdateSalePhaseTierConfig): Promise;
createAirdropTransaction(payer: PublicKey, backAuthority: PublicKey, user: PublicKey, salePhaseName: string, config?: AirdropConfig): Promise;
getCurrentTierId(salePhaseName: string, addTier?: number): Promise<[number, PublicKey, number]>;
createBuyTransaction(payer: PublicKey, backAuthority: PublicKey, userPayer: PublicKey, user: PublicKey, salePhaseName: string, quantity: BN, allowFullDiscount: boolean, fullDiscount: number, fullDiscountReceiver: PublicKey, allowHalfDiscount: boolean, halfDiscount: number, halfDiscountReceiver: PublicKey, allowUserDiscount: boolean, userDiscount: number, isWhitelist: boolean | undefined, currentTierId: number | undefined, perNodeRent: BN, nodeRentReceiver: PublicKey, config?: BuyConfig): Promise;
createBuyWithTokenTransaction(payer: PublicKey, backAuthority: PublicKey, userPayer: PublicKey, user: PublicKey, salePhaseName: string, quantity: BN, allowFullDiscount: boolean, fullDiscount: number, fullDiscountReceiver: PublicKey, allowHalfDiscount: boolean, halfDiscount: number, halfDiscountReceiver: PublicKey, allowUserDiscount: boolean, userDiscount: number, paymentTokenMintAccount: PublicKey, paymentTokenProgram: PublicKey, isWhitelist: boolean | undefined, currentTierId: number | undefined, perNodeRent: BN, nodeRentReceiver: PublicKey, config?: BuyWithTokenConfig): Promise;
createOrderReceiptTransaction(payer: PublicKey, backAuthority: PublicKey, user: PublicKey, salePhaseName: string, quantity: BN, followTiers?: boolean, followTierId?: number, config?: CreateOrderReceiptConfig): Promise;
anyPendingOrder(salePhaseName: string, user: PublicKey): Promise;
createFillOrderTransaction(payer: PublicKey, backAuthority: PublicKey, user: PublicKey, salePhaseName: string, config?: FillOrderConfig): Promise;
getSalePhaseDetail(salePhaseName: string): Promise<{
lastBlockTimestamp: BN;
signingAuthority: PublicKey;
backAuthority: PublicKey;
priceFeedAddress: PublicKey;
priceFeedId: string;
paymentReceiver: PublicKey;
totalPayment: BN;
totalDiscount: BN;
totalTiers: number;
totalInitializeTiers: number;
totalCompletedTiers: number;
buyEnable: boolean;
buyWithTokenEnable: boolean;
airdropEnable: boolean;
totalMint: BN;
totalBuy: BN;
totalBuyWithToken: BN;
totalAirdrop: BN;
name: string;
symbol: string;
metadataBaseUri: string;
totalWhitelistMint: BN;
}>;
getSalePhaseTierDetail(salePhaseName: string, tierId: number): Promise<{
lastBlockTimestamp: BN;
collectionMintAddress: PublicKey;
price: BN;
quantity: BN;
mintLimit: BN;
isCompleted: boolean;
totalMint: BN;
totalBuy: BN;
totalBuyWithToken: BN;
totalAirdrop: BN;
totalPayment: BN;
totalDiscount: BN;
buyEnable: boolean;
buyWithTokenEnable: boolean;
airdropEnable: boolean;
whitelistQuantity: BN;
totalWhitelistMint: BN;
}>;
getUserDetail(salePhaseName: string, user: PublicKey): Promise<{
lastBlockTimestamp: BN;
totalMint: BN;
totalBuy: BN;
totalBuyWithToken: BN;
totalAirdrop: BN;
totalPayment: BN;
totalDiscount: BN;
totalOrders: BN;
totalWhitelistMint: BN;
}>;
getUserTierDetail(salePhaseName: string, user: PublicKey, tierId: number): Promise<{
lastBlockTimestamp: BN;
totalMint: BN;
totalBuy: BN;
totalBuyWithToken: BN;
totalAirdrop: BN;
totalPayment: BN;
totalDiscount: BN;
totalWhitelistMint: BN;
}>;
getOrderDetail(salePhaseName: string, user: PublicKey, orderId: number): Promise<{
lastBlockTimestamp: BN;
tierId: number;
isCompleted: boolean;
tokenIds: BN[];
isTokenIdsMinted: boolean[];
quantity: BN;
totalPaymentInUsd: BN;
totalDiscountInUsd: BN;
totalUserDiscountInUsd: BN;
totalPayment: BN;
totalDiscount: BN;
totalUserDiscount: BN;
paymentTokenMintAccount: PublicKey | null;
isWhitelist: boolean;
}>;
removeEventListener(eventId: number): Promise;
addAirdropEventListener(callback: (event: AirdropEvent) => void): number;
addBuyEventListener(callback: (event: BuyEvent) => void): number;
addBuyWithTokenEventListener(callback: (event: BuyWithTokenEvent) => void): number;
addFillOrderEventListener(callback: (event: FillOrderEvent) => void): number;
addInitializeSalePhaseEventListener(callback: (event: InitializeSalePhaseEvent) => void): number;
addInitializeSalePhasePaymentTokenEventListener(callback: (event: InitializeSalePhasePaymentTokenEvent) => void): number;
addInitializeSalePhaseTierEventListener(callback: (event: InitializeSalePhaseTierEvent) => void): number;
addUpdateSalePhaseEventListener(callback: (event: UpdateSalePhaseEvent) => void): number;
addUpdateSalePhasePaymentTokenEventListener(callback: (event: UpdateSalePhasePaymentTokenEvent) => void): number;
addUpdateSalePhaseTierEventListener(callback: (event: UpdateSalePhaseTierEvent) => void): number;
addCreateOrderReceiptEventListener(callback: (event: CreateOrderReceiptEvent) => void): number;
}
//# sourceMappingURL=soga-node-sale-lib.d.ts.map