type CreateAssociatedTokenIdempotentInstruction<TProgram, TAccountPayer, TAccountAta, TAccountOwner, TAccountMint, TAccountSystemProgram, TAccountTokenProgram, TRemainingAccounts> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountPayer extends string ? WritableSignerAccount<TAccountPayer> & AccountSignerMeta<TAccountPayer> : TAccountPayer, TAccountAta extends string ? WritableAccount<TAccountAta> : TAccountAta, TAccountOwner extends string ? ReadonlyAccount<TAccountOwner> : TAccountOwner, TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram, ...TRemainingAccounts]>;