type WithdrawExcessLamportsInstruction<TProgram, TAccountSourceAccount, TAccountDestinationAccount, TAccountAuthority, TRemainingAccounts> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountSourceAccount extends string ? WritableAccount<TAccountSourceAccount> : TAccountSourceAccount, TAccountDestinationAccount extends string ? WritableAccount<TAccountDestinationAccount> : TAccountDestinationAccount, TAccountAuthority extends string ? ReadonlyAccount<TAccountAuthority> : TAccountAuthority, ...TRemainingAccounts]>;