export declare type Multisig = { version: '0.1.0'; name: 'multisig'; instructions: [ { name: 'createFlow'; accounts: [ { name: 'flow'; isMut: true; isSigner: true; }, { name: 'safe'; isMut: true; isSigner: false; }, { name: 'requestedBy'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'accountSize'; type: 'u32'; }, { name: 'clientFlow'; type: { defined: 'Flow'; }; }, { name: 'isDraft'; type: 'bool'; } ]; }, { name: 'deleteFlow'; accounts: [ { name: 'flow'; isMut: true; isSigner: false; }, { name: 'requestedBy'; isMut: false; isSigner: true; } ]; args: []; }, { name: 'abortFlow'; accounts: [ { name: 'flow'; isMut: true; isSigner: false; }, { name: 'safe'; isMut: false; isSigner: false; }, { name: 'requestedBy'; isMut: false; isSigner: true; } ]; args: []; }, { name: 'createSafe'; accounts: [ { name: 'safe'; isMut: true; isSigner: true; }, { name: 'safeSigner'; isMut: false; isSigner: false; }, { name: 'payer'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'clientSafe'; type: { defined: 'Safe'; }; } ]; }, { name: 'addOwner'; accounts: [ { name: 'safe'; isMut: true; isSigner: false; }, { name: 'safeSigner'; isMut: false; isSigner: true; } ]; args: [ { name: 'owner'; type: 'publicKey'; } ]; }, { name: 'removeOwner'; accounts: [ { name: 'safe'; isMut: true; isSigner: false; }, { name: 'safeSigner'; isMut: false; isSigner: true; } ]; args: [ { name: 'owner'; type: 'publicKey'; } ]; }, { name: 'changeThreshold'; accounts: [ { name: 'safe'; isMut: true; isSigner: false; }, { name: 'safeSigner'; isMut: false; isSigner: true; } ]; args: [ { name: 'threshold'; type: 'u8'; } ]; }, { name: 'approveProposal'; accounts: [ { name: 'safe'; isMut: false; isSigner: false; }, { name: 'flow'; isMut: true; isSigner: false; }, { name: 'caller'; isMut: true; isSigner: true; } ]; args: [ { name: 'isApproved'; type: 'bool'; } ]; }, { name: 'executeMultisigFlow'; accounts: [ { name: 'flow'; isMut: true; isSigner: false; }, { name: 'safe'; isMut: false; isSigner: false; }, { name: 'safeSigner'; isMut: true; isSigner: false; }, { name: 'caller'; isMut: false; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'executeScheduledMultisigFlow'; accounts: [ { name: 'flow'; isMut: true; isSigner: false; }, { name: 'safe'; isMut: false; isSigner: false; }, { name: 'safeSigner'; isMut: true; isSigner: false; }, { name: 'caller'; isMut: false; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'markTimedFlowAsError'; accounts: [ { name: 'flow'; isMut: true; isSigner: false; }, { name: 'safe'; isMut: false; isSigner: false; }, { name: 'safeSigner'; isMut: true; isSigner: false; }, { name: 'caller'; isMut: false; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: []; }, { name: 'addAction'; accounts: [ { name: 'flow'; isMut: true; isSigner: false; }, { name: 'requestedBy'; isMut: false; isSigner: true; } ]; args: [ { name: 'clientAction'; type: { defined: 'Action'; }; }, { name: 'finishDraft'; type: 'bool'; } ]; }, { name: 'createSpendingLimit'; accounts: [ { name: 'spendingLimit'; isMut: true; isSigner: false; }, { name: 'vaultSigner'; isMut: false; isSigner: false; }, { name: 'payer'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'index'; type: 'u16'; }, { name: 'safe'; type: 'publicKey'; }, { name: 'spendingLimitParams'; type: { defined: 'SpendingLimitParams'; }; } ]; }, { name: 'withdrawToken'; accounts: [ { name: 'spendingLimit'; isMut: true; isSigner: false; }, { name: 'vaultSigner'; isMut: false; isSigner: false; }, { name: 'vaultTokenAccount'; isMut: true; isSigner: false; }, { name: 'spender'; isMut: true; isSigner: true; docs: ['check if the spender is allowed to spend in handler']; }, { name: 'spenderTokenAccount'; isMut: true; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'amount'; type: 'u64'; } ]; }, { name: 'updateSpendingLimit'; accounts: [ { name: 'spendingLimit'; isMut: true; isSigner: false; }, { name: 'safe'; isMut: true; isSigner: true; } ]; args: [ { name: 'state'; type: 'u8'; }, { name: 'name'; type: 'string'; }, { name: 'amount'; type: 'u64'; }, { name: 'period'; type: 'i64'; }, { name: 'spenders'; type: { vec: 'publicKey'; }; } ]; }, { name: 'withdrawTokenByOwner'; accounts: [ { name: 'spendingLimit'; isMut: true; isSigner: false; }, { name: 'vaultSigner'; isMut: false; isSigner: false; }, { name: 'vaultTokenAccount'; isMut: true; isSigner: false; }, { name: 'safe'; isMut: true; isSigner: true; }, { name: 'recipientTokenAccount'; isMut: true; isSigner: false; }, { name: 'tokenProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'amount'; type: 'u64'; } ]; }, { name: 'withdrawSol'; accounts: [ { name: 'spendingLimit'; isMut: true; isSigner: false; }, { name: 'vaultSigner'; isMut: true; isSigner: false; }, { name: 'spender'; isMut: true; isSigner: true; docs: ['check if the spender is allowed to spend in handler']; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'amount'; type: 'u64'; } ]; }, { name: 'withdrawSolByOwner'; accounts: [ { name: 'spendingLimit'; isMut: true; isSigner: false; }, { name: 'vaultSigner'; isMut: true; isSigner: false; }, { name: 'safe'; isMut: true; isSigner: true; }, { name: 'systemProgram'; isMut: false; isSigner: false; } ]; args: [ { name: 'amount'; type: 'u64'; } ]; } ]; accounts: [ { name: 'flow'; type: { kind: 'struct'; fields: [ { name: 'requestedBy'; type: 'publicKey'; }, { name: 'safe'; type: 'publicKey'; }, { name: 'lastUpdatedDate'; type: 'i64'; }, { name: 'proposalStage'; type: 'u8'; }, { name: 'createdDate'; type: 'i64'; }, { name: 'triggerType'; type: 'u8'; }, { name: 'nextExecutionTime'; type: 'i64'; }, { name: 'retryWindow'; type: 'u32'; }, { name: 'recurring'; type: 'bool'; }, { name: 'remainingRuns'; type: 'i16'; }, { name: 'scheduleEndDate'; type: 'i64'; }, { name: 'clientAppId'; type: 'u32'; }, { name: 'lastRentCharged'; type: 'i64'; }, { name: 'lastScheduledExecution'; type: 'i64'; }, { name: 'expiryDate'; type: 'i64'; }, { name: 'expireOnComplete'; type: 'bool'; }, { name: 'appId'; type: 'publicKey'; }, { name: 'payFeeFrom'; type: 'u8'; }, { name: 'userUtcOffset'; type: 'i32'; }, { name: 'customComputeBudget'; type: 'u32'; }, { name: 'customFee'; type: 'u32'; }, { name: 'customField1'; type: 'i32'; }, { name: 'customField2'; type: 'i32'; }, { name: 'ownerSetSeqno'; type: 'u8'; }, { name: 'externalId'; type: 'string'; }, { name: 'cron'; type: 'string'; }, { name: 'name'; type: 'string'; }, { name: 'extra'; type: 'string'; }, { name: 'actions'; type: { vec: { defined: 'Action'; }; }; }, { name: 'approvals'; type: { vec: { defined: 'ApprovalRecord'; }; }; } ]; }; }, { name: 'safe'; type: { kind: 'struct'; fields: [ { name: 'approvalsRequired'; type: 'u8'; }, { name: 'creator'; type: 'publicKey'; }, { name: 'createdAt'; type: 'i64'; }, { name: 'signerBump'; type: 'u8'; }, { name: 'ownerSetSeqno'; type: 'u8'; }, { name: 'extra'; type: 'string'; }, { name: 'owners'; type: { vec: 'publicKey'; }; } ]; }; }, { name: 'spendingLimit'; type: { kind: 'struct'; fields: [ { name: 'name'; type: 'string'; }, { name: 'state'; type: 'u8'; }, { name: 'safe'; type: 'publicKey'; }, { name: 'index'; type: 'u16'; }, { name: 'mintAddress'; type: 'publicKey'; }, { name: 'amount'; type: 'u64'; }, { name: 'period'; type: 'i64'; }, { name: 'lastReset'; type: 'i64'; }, { name: 'totalSpent'; type: 'u64'; }, { name: 'spenders'; type: { vec: 'publicKey'; }; } ]; }; } ]; types: [ { name: 'SpendingLimitParams'; type: { kind: 'struct'; fields: [ { name: 'name'; type: 'string'; }, { name: 'mintAddress'; type: 'publicKey'; }, { name: 'amount'; type: 'u64'; }, { name: 'period'; type: 'i64'; }, { name: 'spenders'; type: { vec: 'publicKey'; }; } ]; }; }, { name: 'Action'; type: { kind: 'struct'; fields: [ { name: 'name'; type: 'string'; }, { name: 'actionCode'; type: 'u32'; }, { name: 'instruction'; type: 'bytes'; }, { name: 'program'; type: 'publicKey'; }, { name: 'accounts'; type: { vec: { defined: 'TargetAccountSpec'; }; }; }, { name: 'extra'; type: 'string'; } ]; }; }, { name: 'ApprovalRecord'; type: { kind: 'struct'; fields: [ { name: 'owner'; type: 'publicKey'; }, { name: 'date'; type: 'i64'; }, { name: 'isApproved'; type: 'bool'; } ]; }; }, { name: 'TargetAccountSpec'; type: { kind: 'struct'; fields: [ { name: 'pubkey'; type: 'publicKey'; }, { name: 'isSigner'; type: 'bool'; }, { name: 'isWritable'; type: 'bool'; } ]; }; }, { name: 'TriggerType'; type: { kind: 'enum'; variants: [ { name: 'Manual'; }, { name: 'Time'; }, { name: 'Program'; } ]; }; }, { name: 'ProposalStateType'; type: { kind: 'enum'; variants: [ { name: 'Draft'; }, { name: 'Pending'; }, { name: 'Approved'; }, { name: 'Rejected'; }, { name: 'ExecutionInProgress'; }, { name: 'Complete'; }, { name: 'Failed'; }, { name: 'Aborted'; } ]; }; }, { name: 'FeeSource'; type: { kind: 'enum'; variants: [ { name: 'FromFeeAccount'; }, { name: 'FromFlow'; } ]; }; } ]; errors: [ { code: 6000; name: 'InvalidJobData'; msg: 'SnowflakeSafe: The job data is invalid.'; }, { code: 6001; name: 'InvalidExecutionType'; msg: 'SnowflakeSafe: Invalid execution type for the job.'; }, { code: 6002; name: 'JobIsNotDueForExecution'; msg: 'SnowflakeSafe: The job is not due for execution.'; }, { code: 6003; name: 'JobIsExpired'; msg: 'SnowflakeSafe: The job is expired.'; }, { code: 6004; name: 'CannotMarkJobAsErrorIfItsWithinSchedule'; msg: 'SnowflakeSafe: Unable to mark the time triggered job as error because it is still within schedule.'; }, { code: 6005; name: 'UserInstructionMustNotReferenceTheNodeOperator'; msg: 'SnowflakeSafe: User instruction must not reference the node operator.'; }, { code: 6006; name: 'CreatorIsNotAssignedToOwnerList'; msg: 'SnowflakeSafe: Creator is not assigned to owner list'; }, { code: 6007; name: 'InvalidMinApprovalsRequired'; msg: 'SnowflakeSafe: At least 1 required approvals'; }, { code: 6008; name: 'InvalidMaxApprovalsRequired'; msg: 'SnowflakeSafe: Required approvals exceeds the number of owners'; }, { code: 6009; name: 'InvalidMinOwnerCount'; msg: 'SnowflakeSafe: At least 1 owner.'; }, { code: 6010; name: 'InvalidMaxOwnerCount'; msg: 'SnowflakeSafe: Max owner reached.'; }, { code: 6011; name: 'InvalidSafe'; msg: 'SnowflakeSafe: Invalid Safe.'; }, { code: 6012; name: 'InvalidOwner'; msg: 'SnowflakeSafe: Not an owner.'; }, { code: 6013; name: 'DuplicateOwnerInSafe'; msg: 'SnowflakeSafe: Duplicate owner address in safe.'; }, { code: 6014; name: 'OwnerIsNotRemoved'; msg: 'SnowflakeSafe: Owner is not removed from safe'; }, { code: 6015; name: 'AddressSignedAlready'; msg: 'SnowflakeSafe: Address signed already'; }, { code: 6016; name: 'RequestIsRejected'; msg: 'SnowflakeSafe: Request is rejected'; }, { code: 6017; name: 'RequestIsExecutedAlready'; msg: 'SnowflakeSafe: Request is executed already'; }, { code: 6018; name: 'RequestIsNotApprovedYet'; msg: 'SnowflakeSafe: Request is not approved yet'; }, { code: 6019; name: 'RequestIsNotExecutedYet'; msg: 'SnowflakeSafe: Request is not executed yet'; }, { code: 6020; name: 'ExceedLimitProposalSignatures'; msg: 'SnowflakeSafe: Exceed limit proposal signatures'; }, { code: 6021; name: 'FlowNotEnoughApprovals'; msg: 'SnowflakeSafe: Flow not enough approvals'; }, { code: 6022; name: 'FlowMustHaveZeroApproverBeforeUpdate'; msg: 'SnowflakeSafe: Flow must have zero approver before update'; }, { code: 6023; name: 'FlowMustBeInDraftedBeforeUpdate'; msg: 'SnowflakeSafe: Flow must be in drafted before update'; }, { code: 6024; name: 'FlowIsNotReadyYet'; msg: 'SnowflakeSafe: Flow is not ready yet'; }, { code: 6025; name: 'InvalidUtcOffset'; msg: 'SnowflakeSafe: Invalid UTC offset'; }, { code: 6026; name: 'InvalidCronPatternForScheduledFlow'; msg: 'SnowflakeSafe: Cron pattern cannot be empty for scheduled flow'; }, { code: 6027; name: 'InvalidRemainingRuns'; msg: 'SnowflakeSafe: Remaining run must be between 0 and 1000'; }, { code: 6028; name: 'InvalidMinAmount'; msg: 'SnowflakeSafe: Invalid minimum amount'; }, { code: 6029; name: 'InvalidMinPeriod'; msg: 'SnowflakeSafe: Invalid minimum period'; }, { code: 6030; name: 'SpendingLimitExceeded'; msg: 'SnowflakeSafe: Spending limit exceeded'; }, { code: 6031; name: 'InvalidSpender'; msg: 'SnowflakeSafe: Invalid spender'; }, { code: 6032; name: 'InvalidMintAddress'; msg: 'SnowflakeSafe: Invalid mint address'; }, { code: 6033; name: 'InvalidMinSpenderCount'; msg: 'SnowflakeSafe: Invalid minimum spender count'; }, { code: 6034; name: 'InvalidMaxSpenderCount'; msg: 'SnowflakeSafe: Invalid maximum spender count'; }, { code: 6035; name: 'InvalidNameLength'; msg: 'SnowflakeSafe: Invalid name length'; } ]; }; export declare const IDL: Multisig;