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 { PermissionSigner, PermissionSignerArgs } from '../types'; export declare const PERMISSION_CONFIG_INITIALIZE_DISCRIMINATOR = 2; export declare function getPermissionConfigInitializeDiscriminatorBytes(): ReadonlyUint8Array; export type PermissionConfigInitializeInstruction = string, TAccountPermissionConfig extends string | AccountMeta = string, TAccountAuthorityConfig extends string | AccountMeta = string, TAccountSystemProgram extends string | AccountMeta = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta[] = []> = Instruction & InstructionWithData & InstructionWithAccounts<[ TAccountAuthority extends string ? WritableSignerAccount & AccountSignerMeta : TAccountAuthority, TAccountPermissionConfig extends string ? WritableAccount : TAccountPermissionConfig, TAccountAuthorityConfig extends string ? ReadonlyAccount : TAccountAuthorityConfig, TAccountSystemProgram extends string ? ReadonlyAccount : TAccountSystemProgram, ...TRemainingAccounts ]>; export type PermissionConfigInitializeInstructionData = { discriminator: number; permissionAuthority: PermissionSigner; consumerProgram: Address; }; export type PermissionConfigInitializeInstructionDataArgs = { permissionAuthority: PermissionSignerArgs; consumerProgram: Address; }; export declare function getPermissionConfigInitializeInstructionDataEncoder(): FixedSizeEncoder; export declare function getPermissionConfigInitializeInstructionDataDecoder(): FixedSizeDecoder; export declare function getPermissionConfigInitializeInstructionDataCodec(): FixedSizeCodec; export type PermissionConfigInitializeInput = { authority: TransactionSigner; permissionConfig: Address; authorityConfig: Address; systemProgram?: Address; permissionAuthority: PermissionConfigInitializeInstructionDataArgs["permissionAuthority"]; consumerProgram: PermissionConfigInitializeInstructionDataArgs["consumerProgram"]; }; export declare function getPermissionConfigInitializeInstruction(input: PermissionConfigInitializeInput, config?: { programAddress?: TProgramAddress; }): PermissionConfigInitializeInstruction; export type ParsedPermissionConfigInitializeInstruction = { programAddress: Address; accounts: { authority: TAccountMetas[0]; permissionConfig: TAccountMetas[1]; authorityConfig: TAccountMetas[2]; systemProgram: TAccountMetas[3]; }; data: PermissionConfigInitializeInstructionData; }; export declare function parsePermissionConfigInitializeInstruction(instruction: Instruction & InstructionWithAccounts & InstructionWithData): ParsedPermissionConfigInitializeInstruction;