import { Connection, Keypair, PublicKey, Signer, TransactionInstruction } from '@solana/web3.js'; import { CombineVaultInstructionAccounts } from '../generated'; export declare type CombineVaultAccounts = Omit; declare type HasOutstandingShares = CombineVaultSetup & { yourOutstandingShares: PublicKey; yourOutstandingSharesPair: Keypair; }; declare type HasPayment = CombineVaultSetup & { yourPayment: PublicKey; yourPaymentPair: Keypair; }; declare type HasTransferAuthority = CombineVaultSetup & { transferAuthority: PublicKey; transferAuthorityPair: Keypair; }; export declare type CompletedCombineVaultSetup = CombineVaultSetup & HasOutstandingShares & HasPayment & HasTransferAuthority; export declare class CombineVaultSetup { private readonly connection; readonly vault: PublicKey; readonly vaultAuthority: PublicKey; readonly newVaultAuthority: PublicKey; readonly fractionMint: PublicKey; readonly fractionTreasury: PublicKey; readonly redeemTreasury: PublicKey; readonly priceMint: PublicKey; readonly externalPricing: PublicKey; readonly fractionBurnAuthority: PublicKey; readonly instructions: TransactionInstruction[]; readonly signers: Signer[]; yourOutstandingShares?: PublicKey; yourOutstandingSharesPair?: Keypair; yourPayment?: PublicKey; yourPaymentPair?: Keypair; transferAuthority?: PublicKey; transferAuthorityPair?: Keypair; private constructor(); static create(connection: Connection, accounts: { vault: PublicKey; vaultAuthority: PublicKey; newVaultAuthority?: PublicKey; fractionMint: PublicKey; fractionTreasury: PublicKey; redeemTreasury: PublicKey; priceMint: PublicKey; externalPricing: PublicKey; }): Promise; createOutstandingShares(payer: PublicKey): Promise; createPayment(payer: PublicKey): Promise; approveTransfers(payer: PublicKey): this & CombineVaultSetup & { yourOutstandingShares: PublicKey; yourOutstandingSharesPair: Keypair; } & { yourPayment: PublicKey; yourPaymentPair: Keypair; }; hasOutstandingShares(): this is HasOutstandingShares; hasPayment(): this is HasPayment; hasTransferAuthority(): this is HasTransferAuthority; assertComplete(): asserts this is CompletedCombineVaultSetup; get accounts(): CombineVaultInstructionAccounts; } export declare function combineVault(combineSetup: CombineVaultSetup): Promise; export {};