import { AccountMeta, AccountSignerMeta, Address, Codec, Decoder, Encoder, Instruction, InstructionWithAccounts, InstructionWithData, ReadonlyAccount, ReadonlySignerAccount, ReadonlyUint8Array, TransactionSigner, WritableAccount, WritableSignerAccount } from '@solana/kit'; import { WAVEBREAK_PROGRAM_ADDRESS } from '../programs'; import { PermissionMessage, PermissionMessageArgs, PermissionSignature, PermissionSignatureArgs } from '../types'; export declare const PERMISSION_CONSUME_CPI_DISCRIMINATOR = 1; export declare function getPermissionConsumeCpiDiscriminatorBytes(): ReadonlyUint8Array; export type PermissionConsumeCpiInstruction = string, TAccountConsumerProgramAuthority extends string | AccountMeta = string, TAccountPermissionConfig extends string | AccountMeta = string, TAccountConsumedPermission extends string | AccountMeta = string, TAccountSystemProgram extends string | AccountMeta = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[ TAccountConsumer extends string ? WritableSignerAccount & AccountSignerMeta : TAccountConsumer, TAccountConsumerProgramAuthority extends string ? ReadonlySignerAccount & AccountSignerMeta : TAccountConsumerProgramAuthority, TAccountPermissionConfig extends string ? ReadonlyAccount : TAccountPermissionConfig, TAccountConsumedPermission extends string ? WritableAccount : TAccountConsumedPermission, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, ...TRemainingAccounts ]>; export type PermissionConsumeCpiInstructionData = { discriminator: number; permissionMessage: PermissionMessage; permissionSignature: PermissionSignature; consumerProgramAuthoritySeeds: Array; }; export type PermissionConsumeCpiInstructionDataArgs = { permissionMessage: PermissionMessageArgs; permissionSignature: PermissionSignatureArgs; consumerProgramAuthoritySeeds: Array; }; export declare function getPermissionConsumeCpiInstructionDataEncoder(): Encoder; export declare function getPermissionConsumeCpiInstructionDataDecoder(): Decoder; export declare function getPermissionConsumeCpiInstructionDataCodec(): Codec; export type PermissionConsumeCpiInput = { consumer: TransactionSigner; consumerProgramAuthority: TransactionSigner; permissionConfig: Address; consumedPermission: Address; systemProgram?: Address; permissionMessage: PermissionConsumeCpiInstructionDataArgs["permissionMessage"]; permissionSignature: PermissionConsumeCpiInstructionDataArgs["permissionSignature"]; consumerProgramAuthoritySeeds: PermissionConsumeCpiInstructionDataArgs["consumerProgramAuthoritySeeds"]; }; export declare function getPermissionConsumeCpiInstruction(input: PermissionConsumeCpiInput, config?: { programAddress?: TProgramAddress; }): PermissionConsumeCpiInstruction; export type ParsedPermissionConsumeCpiInstruction = { programAddress: Address; accounts: { consumer: TAccountMetas[0]; consumerProgramAuthority: TAccountMetas[1]; permissionConfig: TAccountMetas[2]; consumedPermission: TAccountMetas[3]; systemProgram: TAccountMetas[4]; }; data: PermissionConsumeCpiInstructionData; }; export declare function parsePermissionConsumeCpiInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedPermissionConsumeCpiInstruction;