import { Keypair, PublicKey, TransactionInstruction } from '@solana/web3.js'; import { Program, AnchorProvider } from '@project-serum/anchor'; import { MultisigJob } from '../models/multisig-job'; import BN from 'bn.js'; import { SerializableAction } from '../models'; import { Multisig } from '../idl/multisig'; export declare class InstructionBuilder { program: Program; provider: AnchorProvider; constructor(program: Program, provider: AnchorProvider); buildCreateSpendingLimitInstruction(index: number, name: string, payer: PublicKey, safeSigner: PublicKey, spendingLimitAddress: PublicKey, vaultSignerAddress: PublicKey, mintAddress: PublicKey, amount: BN, period: BN, spenders: PublicKey[]): TransactionInstruction; buildUpdateSpendingLimitInstruction(ownerAddress: PublicKey, spendingLimitAddress: PublicKey, state: number, name: string, amount: BN, period: BN, spenders: PublicKey[]): TransactionInstruction; buildWithdrawTokenInstruction(spendingLimitAddress: PublicKey, amount: BN, spenderAddress: PublicKey, spenderTokenAccountAddress: PublicKey, vaultSignerAddress: PublicKey, vaultTokenAccountAddress: PublicKey): TransactionInstruction; buildWithdrawSolInstruction(spendingLimitAddress: PublicKey, amount: BN, vaultSignerAddress: PublicKey, spender: PublicKey): TransactionInstruction; buildWithdrawTokenByOwnerInstruction(amount: BN, spendingLimitAddress: PublicKey, vaultSignerAddress: PublicKey, vaultTokenAccountAddress: PublicKey, safeSignerAddress: PublicKey, recipientTokenAccountAddress: PublicKey): TransactionInstruction; buildWithdrawSolByOwnerInstruction(amount: BN, spendingLimitAddress: PublicKey, vaultSignerAddress: PublicKey, safeSignerAddress: PublicKey): TransactionInstruction; buildCreateSafeInstruction(payerAddress: PublicKey, safeAddress: PublicKey, safeSignerAddress: PublicKey, safeSignerNonce: number, safeOwners: PublicKey[], approvalsRequired: number): TransactionInstruction; buildAddOwnerInstruction(safeSignerAddress: PublicKey, safeAddress: PublicKey, safeOwner: PublicKey): TransactionInstruction; buildRemoveOwnerInstruction(safeSignerAddress: PublicKey, safeAddress: PublicKey, safeOwner: PublicKey): TransactionInstruction; buildChangeThresholdInstruction(safeSignerAddress: PublicKey, safeAddress: PublicKey, threshold: number): TransactionInstruction; buildCreateFlowInstruction(requestedByAddress: PublicKey, accountSize: number, multisigJob: MultisigJob, isDraft: boolean, safeAddress: PublicKey, newFlowKeypair: Keypair, systemProgram: PublicKey): TransactionInstruction; buildDeleteFlowIx(ownerAddress: PublicKey, flowAddress: PublicKey): TransactionInstruction; buildApproveProposalInstruction(safeAddress: PublicKey, flowAddress: PublicKey, payerAddress: PublicKey): TransactionInstruction; buildRejectProposalInstruction(safeAddress: PublicKey, flowAddress: PublicKey, payerAddress: PublicKey): TransactionInstruction; buildAbortFlowInstruction(flowAddress: PublicKey, safeAddress: PublicKey, callerAddress: PublicKey): TransactionInstruction; buildAddFlowActionInstruction(flowAddress: PublicKey, flowAction: SerializableAction, finishDraft: boolean, requestedByAddress: PublicKey): TransactionInstruction; buildExecuteMultisigFlowInstruction(flowAddress: PublicKey, safeAddress: PublicKey, safeSignerAddress: PublicKey, ownerAddress: PublicKey, flowActions: any): TransactionInstruction; buildNativeTokenTransferIx(fromAddress: PublicKey, toAddress: PublicKey, amount: number): TransactionInstruction; }