import { TransactionBuilder } from '@orca-so/common-sdk'; import { Keypair, PublicKey, TransactionInstruction } from '@solana/web3.js'; import SafeFinder from '../services/safe-finder'; import { Program } from '@project-serum/anchor'; import { InstructionBuilder } from '../builders/instruction-builder'; import { MultisigJob, SafeType, SerializableAction } from '../models'; import { Context } from './context'; import BN from 'bn.js'; export declare function deriveATA(ownerAddress: PublicKey, tokenMint: PublicKey): Promise; export declare class SafeClient { ctx: Context; program: Program; instructionBuilder: InstructionBuilder; wallet: PublicKey; fetcher: SafeFinder; constructor(ctx: Context); static getSpendingLimitSignerAddress(ctx: Context, spendingLimit: PublicKey): Promise; static createSpendingLimits(ctx: Context, fromIndex: number, spendingLimits: { name: string; safeAddress: PublicKey; tokenAddress: PublicKey; amount: BN; period: BN; spenders: PublicKey[]; }[]): Promise; static createSpendingLimit(ctx: Context, index: number, name: string, safeAddress: PublicKey, tokenAddress: PublicKey, amount: BN, period: BN, spenders: PublicKey[]): Promise; private static _createSpendingLimit; static rmSpendingLimit(ctx: Context, safeAddress: PublicKey, spendingLimitAddress: PublicKey): Promise; static updateSpendingLimit(ctx: Context, safeAddress: PublicKey, spendingLimitAddress: PublicKey, name: string, amount: BN, period: BN, spenders: PublicKey[]): Promise; static withdrawToken(ctx: Context, spendingLimitAddress: PublicKey, mintAddress: PublicKey, amount: BN): Promise; static withdrawTokenByOwner(ctx: Context, spendingLimitAddress: PublicKey, safeSignerAddress: PublicKey, mintAddress: PublicKey, amount: BN): Promise; static create(ctx: Context, owners: PublicKey[], approvalsRequired: number): Promise; createProposal(safeAddress: PublicKey, proposalName: string, proposalInstructions: TransactionInstruction[], setupInstructions?: TransactionInstruction[], accountSize?: number, isDraft?: boolean, isApproved?: boolean, separatedActions?: boolean): Promise<[PublicKey, TransactionBuilder]>; approveProposal(proposalAddress: PublicKey): Promise; rejectProposal(proposalAddress: PublicKey): Promise; createRecurringProposalInstructions(safeAddress: PublicKey, proposalKeypair: Keypair, proposal: MultisigJob, setupInstructions?: TransactionInstruction[], accountSize?: number, isDraft?: boolean, isApproved?: boolean, separatedActions?: boolean): Promise; createAddProposalActionInstructions(proposalAddress: PublicKey, proposalActions: SerializableAction[]): Promise; executeProposal(proposalAddress: PublicKey): Promise; addOwnerProposal(safeAddress: PublicKey, newOwners: PublicKey[], newThreshold: number | undefined): Promise<[PublicKey, TransactionBuilder]>; removeOwnerProposal(safeAddress: PublicKey, safeOwner: PublicKey): Promise<[PublicKey, TransactionBuilder]>; fetchOwnedSafes(ownerAddress: PublicKey): Promise; fetchProposal(proposalAddress: PublicKey): Promise; fetchAllProposals(safeAddress: PublicKey): Promise; fetchDerivedSafeAddress(proposalAddress: PublicKey): Promise; fetchSafe(safeAddress: PublicKey): Promise; static findSafeSignerAddress(safeAddress: PublicKey, safeProgramId: PublicKey): Promise<[PublicKey, number]>; findSafeSignerAddress(safeAddress: PublicKey): Promise<[PublicKey, number]>; static buildTx(ctx: Context, instructions: TransactionInstruction[], signers?: Keypair[]): TransactionBuilder; private buildProposal; }