import { AccountMeta, AccountSignerMeta, Address, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, Instruction, InstructionWithAccounts, InstructionWithData, ReadonlyAccount, ReadonlyUint8Array, TransactionSigner, WritableAccount, WritableSignerAccount } from '@solana/kit'; import { WAVEBREAK_PROGRAM_ADDRESS } from '../programs'; import { PermissionConfigUpdateType, PermissionConfigUpdateTypeArgs } from '../types'; export declare const PERMISSION_CONFIG_UPDATE_DISCRIMINATOR = 3; export declare function getPermissionConfigUpdateDiscriminatorBytes(): ReadonlyUint8Array; export type PermissionConfigUpdateInstruction = string, TAccountPermissionConfig extends string | AccountMeta = string, TAccountAuthorityConfig extends string | AccountMeta = string, TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[ TAccountAuthority extends string ? WritableSignerAccount & AccountSignerMeta : TAccountAuthority, TAccountPermissionConfig extends string ? WritableAccount : TAccountPermissionConfig, TAccountAuthorityConfig extends string ? ReadonlyAccount : TAccountAuthorityConfig, ...TRemainingAccounts ]>; export type PermissionConfigUpdateInstructionData = { discriminator: number; update: PermissionConfigUpdateType; }; export type PermissionConfigUpdateInstructionDataArgs = { update: PermissionConfigUpdateTypeArgs; }; export declare function getPermissionConfigUpdateInstructionDataEncoder(): FixedSizeEncoder; export declare function getPermissionConfigUpdateInstructionDataDecoder(): FixedSizeDecoder; export declare function getPermissionConfigUpdateInstructionDataCodec(): FixedSizeCodec; export type PermissionConfigUpdateInput = { authority: TransactionSigner; permissionConfig: Address; authorityConfig: Address; update: PermissionConfigUpdateInstructionDataArgs["update"]; }; export declare function getPermissionConfigUpdateInstruction(input: PermissionConfigUpdateInput, config?: { programAddress?: TProgramAddress; }): PermissionConfigUpdateInstruction; export type ParsedPermissionConfigUpdateInstruction = { programAddress: Address; accounts: { authority: TAccountMetas[0]; permissionConfig: TAccountMetas[1]; authorityConfig: TAccountMetas[2]; }; data: PermissionConfigUpdateInstructionData; }; export declare function parsePermissionConfigUpdateInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedPermissionConfigUpdateInstruction;