import { PublicKey, TransactionInstruction, TransactionSignature } from '@solana/web3.js'; import { MultisigJob } from '../models'; export interface ISnowflakeSafe { createSafe(owners: PublicKey[], approvalsRequired: number): Promise<[PublicKey, TransactionSignature]>; createProposal(safeAddress: PublicKey, proposalName: string, proposalInstructions: TransactionInstruction[], setupInstructions?: TransactionInstruction[], accountSize?: number, isApproved?: boolean): Promise<[PublicKey, TransactionSignature]>; createRecurringProposal(safeAddress: PublicKey, proposal: MultisigJob, setupInstructions?: TransactionInstruction[], accountSize?: number, isApproved?: boolean): Promise<[PublicKey, TransactionSignature]>; deleteProposal(proposalAddress: PublicKey): Promise; approveProposal(proposalAddress: PublicKey): Promise; rejectProposal(proposalAddress: PublicKey): Promise; abortRecurringProposal(proposalAddress: PublicKey): Promise; executeProposal(proposalAddress: PublicKey): Promise; createAddOwnerProposalInstruction(safeAddress: PublicKey, safeOwner: PublicKey): Promise; createRemoveOwnerProposalInstruction(safeAddress: PublicKey, safeOwner: PublicKey): Promise; createChangeThresholdProposalInstruction(safeAddress: PublicKey, threshold: number): Promise; }